![]() |
IcsClass
1.0.0
|
近藤科学のKRSサーボをマイコン経由で動作させるのを1パッケージにまとめたクラス [詳解]
#include <IcsClass.h>
公開メンバ関数 | |
IcsClass (HardwareSerial *icsSerial, int enpin) | |
コンストラクタ [詳解] | |
IcsClass (HardwareSerial *icsSerial, int enpin, long baudrate, int timeout) | |
コンストラクタ [詳解] | |
~IcsClass () | |
デストラクタ [詳解] | |
bool | begin () |
通信の初期設定 [詳解] | |
bool | begin (long baudrate, int timeout) |
通信の初期設定 [詳解] | |
bool | begin (HardwareSerial *serial, int enpin, long baudrate, int timeout) |
通信の初期設定 [詳解] | |
bool | synchronize (byte *txBuf, byte txLen, byte *rxBuf, byte rxLen) |
ICS通信の送受信 [詳解] | |
int | setPos (byte id, unsigned int pos) |
サーボモータの角度を変更します [詳解] | |
int | setFree (byte id) |
サーボモータをフリー(脱力)状態にします [詳解] | |
int | setStrc (byte id, unsigned int strc) |
サーボモータのストレッチ(保持力)の値を書き込みます [詳解] | |
int | setSpd (byte id, unsigned int spd) |
サーボモータのスピード(出力)を変更します [詳解] | |
int | setCur (byte id, unsigned int curlim) |
サーボモータの電流リミット(電流制限)値を変更します [詳解] | |
int | setTmp (byte id, unsigned int tmplim) |
サーボモータの温度リミット(温度制限)値を変更します [詳解] | |
int | getStrc (byte id) |
サーボモータのストレッチ(保持力)の値を読み込みます [詳解] | |
int | getSpd (byte id) |
サーボモータのスピード(出力)を読み込みます [詳解] | |
int | getCur (byte id) |
サーボモータの現在の電流値を読み込みます [詳解] | |
int | getTmp (byte id) |
サーボモータの現在の温度値を読み込みます [詳解] | |
int | getPos (byte id) |
サーボモータの現在のポジションデータを読み込みます [詳解] | |
unsigned short | getKrrButton () |
KRRが受信しているボタンのデータを取得します [詳解] | |
int | getKrrAnalog (int paCh) |
KRRが受信している指定したアナログポート(PA)のデータを取得します [詳解] | |
bool | getKrrAllData (unsigned short *button, int adData[4]) |
KRRが受信しているボタンデータおよびアナログポート(PA)のデータをすべて取得します [詳解] | |
静的公開メンバ関数 | |
static int | degPos (float deg) |
角度データ(float型)をポジションデータに変換 [詳解] | |
static float | posDeg (int pos) |
ポジションデータを角度データ(float型)に変換 [詳解] | |
static int | degPos100 (int deg) |
角度データx100(int型)をポジションデータに変換 [詳解] | |
static int | posDeg100 (int pos) |
ポジションデータを角度データ(int型)に変換 [詳解] | |
静的公開変数類 | |
static const int | MAX_ID = 31 |
サーボIDの最大値 | |
static const int | MIN_ID = 0 |
サーボIDの最小値 | |
static const int | MAX_POS = 11500 |
サーボのポジション最大値 | |
static const int | MIN_POS = 3500 |
サーボのポジション最小値 | |
static const int | ICS_FALSE = -1 |
ICS通信等々で失敗したときの値 | |
近藤科学のKRSサーボをマイコン経由で動作させるのを1パッケージにまとめたクラス
IcsClass::IcsClass | ( | HardwareSerial * | serial, |
int | enpin | ||
) |
コンストラクタ
[in] | *serial | ICSに設定するUART(HardwareSerial型のポインタ) |
[in] | enpin | 送受信切替えピンのピン番号 |
IcsClass::IcsClass | ( | HardwareSerial * | serial, |
int | enpin, | ||
long | baudrate, | ||
int | timeout | ||
) |
コンストラクタ
[in] | *serial | ICSに設定するUART(HardwareSerial型のポインタ) |
[in] | enpin | 送受信切替えピンのピン番号 |
[in] | bandrate | サーボの通信速度 |
[in] | timeout | 受信タイムアウト(ms) |
IcsClass::~IcsClass | ( | ) |
デストラクタ
bool IcsClass::begin | ( | ) |
通信の初期設定
true | 通信設定完了 |
false | 通信設定失敗 |
bool IcsClass::begin | ( | long | baudrate, |
int | timeout | ||
) |
通信の初期設定
[in] | baudrate | ICSの通信速度(115200,625000,1250000(1.25M)bps) |
[in] | timeout | 受信タイムアウト(ms) |
true | 通信設定完了 |
false | 通信設定失敗 |
bool IcsClass::begin | ( | HardwareSerial * | serial, |
int | enpin, | ||
long | baudrate, | ||
int | timeout | ||
) |
通信の初期設定
[in] | *serial | ICSに設定するUART(HardwareSerial型のポインタ) |
[in] | enpin | 送受信切替えピンのピン番号 |
[in] | baudrate | ICSの通信速度(115200,625000,1250000(1.25M)bps) |
[in] | timeout | 受信タイムアウト(ms) |
true | 通信設定完了 |
false | 通信設定失敗 |
|
static |
角度データ(float型)をポジションデータに変換
[in] | deg | 角度(deg)(float型) |
-1 | 範囲外 |
|
static |
角度データx100(int型)をポジションデータに変換
[in] | deg | 角度(deg x100)(int型) |
-1 | 範囲外 |
int IcsClass::getCur | ( | byte | id | ) |
サーボモータの現在の電流値を読み込みます
[in] | id | サーボモータのID番号 |
-1 | 通信失敗 |
bool IcsClass::getKrrAllData | ( | unsigned short * | button, |
int | adData[4] | ||
) |
KRRが受信しているボタンデータおよびアナログポート(PA)のデータをすべて取得します
[out] | button | ボタンデータ(KRR_BUTTON を参照) |
[out] | adData | 4ch分のアナログデータ |
ture | 通信成功 |
false | 通信失敗 |
int IcsClass::getKrrAnalog | ( | int | paCh | ) |
KRRが受信している指定したアナログポート(PA)のデータを取得します
[in] | paCh | アナログポートの番号 |
-1 | 通信失敗 |
unsigned short IcsClass::getKrrButton | ( | ) |
int IcsClass::getPos | ( | byte | id | ) |
サーボモータの現在のポジションデータを読み込みます
[in] | id | サーボモータのID番号 |
-1 | 通信失敗 |
int IcsClass::getSpd | ( | byte | id | ) |
サーボモータのスピード(出力)を読み込みます
[in] | id | サーボモータのID番号 |
-1 | 通信失敗 |
int IcsClass::getStrc | ( | byte | id | ) |
サーボモータのストレッチ(保持力)の値を読み込みます
[in] | id | サーボモータのID番号 |
-1 | 通信失敗 |
int IcsClass::getTmp | ( | byte | id | ) |
サーボモータの現在の温度値を読み込みます
[in] | id | サーボモータのID番号 |
-1 | 通信失敗 |
|
static |
ポジションデータを角度データ(float型)に変換
[in] | pos | ポジションデータ |
#ANGLE_F_FALSE | 正方向範囲外 |
-::ANGLE_F_FALSE | (0x8000) 負方向範囲外 |
|
static |
ポジションデータを角度データ(int型)に変換
[in] | pos | ポジションデータ |
#ANGLE_I_FALSE | 正方向範囲外 |
-::ANGLE_I_FALSE | 負方向範囲外 |
int IcsClass::setCur | ( | byte | id, |
unsigned int | curlim | ||
) |
サーボモータの電流リミット(電流制限)値を変更します
[in] | id | サーボモータのID番号 |
[in] | curlim | 電流値のデータ |
-1 | 通信失敗 |
int IcsClass::setFree | ( | byte | id | ) |
サーボモータをフリー(脱力)状態にします
[in] | id | サーボモータのID番号 |
-1 | 範囲外、通信失敗 |
int IcsClass::setPos | ( | byte | id, |
unsigned int | pos | ||
) |
サーボモータの角度を変更します
[in] | id | サーボモータのID番号 |
[in] | pos | ポジションデータ |
-1 | 範囲外、通信失敗 |
int IcsClass::setSpd | ( | byte | id, |
unsigned int | spd | ||
) |
サーボモータのスピード(出力)を変更します
[in] | id | サーボモータのID番号 |
[in] | spd | スピードのデータ(1~127) |
-1 | 通信失敗 |
int IcsClass::setStrc | ( | byte | id, |
unsigned int | strc | ||
) |
サーボモータのストレッチ(保持力)の値を書き込みます
[in] | id | サーボモータのID番号 |
[in] | strc | ストレッチのデータ(1~127) |
-1 | 通信失敗 |
int IcsClass::setTmp | ( | byte | id, |
unsigned int | tmplim | ||
) |
サーボモータの温度リミット(温度制限)値を変更します
[in] | id | サーボモータのID番号 |
[in] | tmplim | 温度リミット値のデータ |
-1 | 通信失敗 |
bool IcsClass::synchronize | ( | byte * | txBuf, |
byte | txLen, | ||
byte * | rxBuf, | ||
byte | rxLen | ||
) |
ICS通信の送受信
[in,out] | *txBuf | |
[in] | txLen | |
[out] | *rxBuf | 受信格納バッファ |
[in] | rxLen | 受信データ数 |
true | 通信成功 |
false | 通信失敗 |