![]() |
ICS_Class 3.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) |
サーボモータの現在のポジションデータを読み込みます | |
int | getID () |
ICSデバイスのIDを取得する | |
int | setID (byte id) |
ICSデバイスの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型)に変換 | |
限定公開メンバ関数 | |
byte | idMax (byte id) |
サーボIDが範囲内か見る | |
bool | maxMin (int maxPos, int minPos, int val) |
ポジションデータの最大、最小値の範囲に収める | |
近藤科学の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 | 通信失敗 |
int IcsBaseClass::getID | ( | ) |
ICSデバイスの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::setID | ( | byte | id | ) |
ICSデバイスの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で再実装されています。