![]() |
IcsClass
2.0.0
|
近藤科学のICS 3.5/3.6 サーボモータをマイコン経由で動作させるための基クラス [詳解]
#include <IcsBaseClass.h>
公開メンバ関数 | |
virtual 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 constexpr int | MAX_ID = 31 |
サーボIDの最大値 | |
static constexpr int | MIN_ID = 0 |
サーボIDの最小値 | |
static constexpr int | MAX_POS = 11500 |
サーボのポジション最大値 | |
static constexpr int | MIN_POS = 3500 |
サーボのポジション最小値 | |
static constexpr int | ICS_FALSE = -1 |
ICS通信等々で失敗したときの値 | |
限定公開メンバ関数 | |
byte | idMax (byte id) |
サーボIDが範囲内か見る [詳解] | |
bool | maxMin (int maxPos, int minPos, int val) |
ポジションデータの最大、最小値の範囲に収める [詳解] | |
静的限定公開変数類 | |
static constexpr float | ANGLE_F_FALSE = 9999.9 |
角度計算時、範囲内に入ってない場合は999.9にする(負側の場合はマイナスをつける) | |
static constexpr int | ANGLE_I_FALSE = 0x7FFF |
角度計算時、範囲内に入ってない場合は0x7FFFにする(負側の場合はマイナスをつける) | |
static constexpr int | MAX_127 = 127 |
パラメータの最大値 | |
static constexpr int | MAX_63 = 63 |
パラメータの最大値(電流値) | |
static constexpr int | MIN_1 = 1 |
パラメータの最小値 | |
static constexpr float | MAX_DEG = 180.0 |
角度の最大値 | |
static constexpr float | MIN_DEG = -180.0 |
角度の最大値 | |
static constexpr int | MAX_100DEG = 18000 |
角度(x100)の最大値 | |
static constexpr int | MIN_100DEG = -18000 |
角度(x100)の最小値 | |
近藤科学のICS 3.5/3.6 サーボモータをマイコン経由で動作させるための基クラス
Arduino用にHardwareSerial,SoftwareSerialが使えるように基クラスを作成
|
static |
角度データ(float型)をポジションデータに変換
[in] | deg | 角度(deg)(float型) |
-1 | 範囲外 |
|
static |
角度データx100(int型)をポジションデータに変換
[in] | deg | 角度(deg x100)(int型) |
-1 | 範囲外 |
int IcsBaseClass::getCur | ( | byte | id | ) |
サーボモータの現在の電流値を読み込みます
[in] | id | サーボモータのID番号 |
-1 | 通信失敗 |
bool IcsBaseClass::getKrrAllData | ( | unsigned short * | button, |
int | adData[4] | ||
) |
KRRが受信しているボタンデータおよびアナログポート(PA)のデータをすべて取得します
[out] | button | ボタンデータ(KRR_BUTTON を参照) |
[out] | adData | 4ch分のアナログデータ |
ture | 通信成功 |
false | 通信失敗 |
int IcsBaseClass::getKrrAnalog | ( | int | paCh | ) |
KRRが受信している指定したアナログポート(PA)のデータを取得します
[in] | paCh | アナログポートの番号 |
-1 | 通信失敗 |
unsigned short IcsBaseClass::getKrrButton | ( | ) |
int IcsBaseClass::getPos | ( | byte | id | ) |
サーボモータの現在のポジションデータを読み込みます
[in] | id | サーボモータのID番号 |
-1 | 通信失敗 |
int IcsBaseClass::getSpd | ( | byte | id | ) |
サーボモータのスピード(出力)を読み込みます
[in] | id | サーボモータのID番号 |
-1 | 通信失敗 |
int IcsBaseClass::getStrc | ( | byte | id | ) |
サーボモータのストレッチ(保持力)の値を読み込みます
[in] | id | サーボモータのID番号 |
-1 | 通信失敗 |
int IcsBaseClass::getTmp | ( | byte | id | ) |
サーボモータの現在の温度値を読み込みます
[in] | id | サーボモータのID番号 |
-1 | 通信失敗 |
|
protected |
サーボIDが範囲内か見る
[in] | id |
0xFF | 範囲外 |
|
protected |
ポジションデータの最大、最小値の範囲に収める
[in] | maxPos | 最大値 |
[in] | minPos | 最小値 |
[in,out] | val | 現在値 |
|
static |
ポジションデータを角度データ(float型)に変換
[in] | pos | ポジションデータ |
ANGLE_F_FALSE | 正方向範囲外 |
-::ANGLE_F_FALSE | (0x8000) 負方向範囲外 |
|
static |
ポジションデータを角度データ(int型)に変換
[in] | pos | ポジションデータ |
ANGLE_I_FALSE | 正方向範囲外 |
-::ANGLE_I_FALSE | 負方向範囲外 |
int IcsBaseClass::setCur | ( | byte | id, |
unsigned int | curlim | ||
) |
サーボモータの電流リミット(電流制限)値を変更します
[in] | id | サーボモータのID番号 |
[in] | curlim | 電流値のデータ |
-1 | 通信失敗 |
int IcsBaseClass::setFree | ( | byte | id | ) |
サーボモータをフリー(脱力)状態にします
[in] | id | サーボモータのID番号 |
-1 | 範囲外、通信失敗 |
int IcsBaseClass::setPos | ( | byte | id, |
unsigned int | pos | ||
) |
サーボモータの角度を変更します
[in] | id | サーボモータのID番号 |
[in] | pos | ポジションデータ |
-1 | 範囲外、通信失敗 |
int IcsBaseClass::setSpd | ( | byte | id, |
unsigned int | spd | ||
) |
サーボモータのスピード(出力)を変更します
[in] | id | サーボモータのID番号 |
[in] | spd | スピードのデータ(1~127) |
-1 | 通信失敗 |
int IcsBaseClass::setStrc | ( | byte | id, |
unsigned int | strc | ||
) |
サーボモータのストレッチ(保持力)の値を書き込みます
[in] | id | サーボモータのID番号 |
[in] | strc | ストレッチのデータ(1~127) |
-1 | 通信失敗 |
int IcsBaseClass::setTmp | ( | byte | id, |
unsigned int | tmplim | ||
) |
サーボモータの温度リミット(温度制限)値を変更します
[in] | id | サーボモータのID番号 |
[in] | tmplim | 温度リミット値のデータ |
-1 | 通信失敗 |
|
virtual |
ICS通信の送受信
[in,out] | *txBuf | |
[in] | txLen | |
[out] | *rxBuf | 受信格納バッファ |
[in] | rxLen | 受信データ数 |
true | 通信成功 |
false | 通信失敗 |
IcsHardSerialClass, IcsSoftSerialClassで再実装されています。