13: 2011-07-19 (火) 16:50:00 takaboo |
14: 2011-07-22 (金) 18:01:56 takaboo |
| 本装置を操作するための専用プログラムが予め搭載されており、USB(ボーレート:任意)・Bluetooth(ボーレート:任意)・Dynamixel I/F(ボーレート:1Mbps)のいずれかを経由してユーザプログラムの転送や諸設定を行う事が出来ます。~ | | 本装置を操作するための専用プログラムが予め搭載されており、USB(ボーレート:任意)・Bluetooth(ボーレート:任意)・Dynamixel I/F(ボーレート:1Mbps)のいずれかを経由してユーザプログラムの転送や諸設定を行う事が出来ます。~ |
| SIMPLE TERMで該当のポートを開き、ブートローダのコマンドモードに入ると以下のメッセージ及びプロンプトが表示されます。 | | SIMPLE TERMで該当のポートを開き、ブートローダのコマンドモードに入ると以下のメッセージ及びプロンプトが表示されます。 |
- | --< UDIII Ver.2.3 by BestTechnology >-- | + | --< UDIII Ver.2.5 by BestTechnology >-- |
| > | | > |
| この状態で使用出来るコマンドは'?'を入力すると表示されます。 | | この状態で使用出来るコマンドは'?'を入力すると表示されます。 |
| >? | | >? |
- | --< UDIII Ver.2.3 by BestTechnology >-- | + | --< UDIII Ver.2.5 by BestTechnology >-- |
| [w]:UPLOAD [g]:BOOT [i]:FLASH INFO [e]:ERASE [b]:BLUETOOTH | | [w]:UPLOAD [g]:BOOT [i]:FLASH INFO [e]:ERASE [b]:BLUETOOTH |
| > | | > |
| このうち、ユーザ自ら変更出来るのは接続モードとPINコードで、ブートローダから選択及び変更が出来ます。ブートローダからBluetoothの設定を行う場合は、コマンドモードのプロンプトが'>'の状態で'b'を入力します。Bluetoothの設定モードに入ると、プロンプトは'BT'に変わります。この状態で使用出来るコマンドは'?'を入力すると表示されます。なお、Bluetooth経由でブートローダのコンソールを操作している場合はBluetoothの設定が行えませんので、その場合は他のI/Fを使用してください。 | | このうち、ユーザ自ら変更出来るのは接続モードとPINコードで、ブートローダから選択及び変更が出来ます。ブートローダからBluetoothの設定を行う場合は、コマンドモードのプロンプトが'>'の状態で'b'を入力します。Bluetoothの設定モードに入ると、プロンプトは'BT'に変わります。この状態で使用出来るコマンドは'?'を入力すると表示されます。なお、Bluetooth経由でブートローダのコンソールを操作している場合はBluetoothの設定が行えませんので、その場合は他のI/Fを使用してください。 |
| | | |
- | --< UDIII Ver.2.3 by BestTechnology >-- | + | --< UDIII Ver.2.5 by BestTechnology >-- |
| [w]:UPLOAD [g]:BOOT [i]:FLASH INFO [e]:ERASE [b]:BLUETOOTH | | [w]:UPLOAD [g]:BOOT [i]:FLASH INFO [e]:ERASE [b]:BLUETOOTH |
| >b | | >b |
| 本APIを使用したアプリケーションはシステムとして1つのタスクが静的に常時占有されます。このタスクは主にDynamixelプロトコルによる通信処理等に使用されますが、通信が発生しない限り軽微な負荷で動作しています。 | | 本APIを使用したアプリケーションはシステムとして1つのタスクが静的に常時占有されます。このタスクは主にDynamixelプロトコルによる通信処理等に使用されますが、通信が発生しない限り軽微な負荷で動作しています。 |
| | | |
- | APIの詳細は以下に列挙しますが、GCC Developer Lite Version2.3.2.6r4以降に収録されたUD3ライブラリを前提として記述されていますので、それより古いバージョンでは対応しないAPIが存在します。ご注意ください。 | + | APIの詳細は以下に列挙しますが、GCC Developer Lite Version2.4.0.13以降に収録されたUD3ライブラリを前提として記述されていますので、それより古いバージョンでは対応しないAPIが存在します。ご注意ください。 |
| | | |
| ***システム及びタスク関連 [#aacb0ce6] | | ***システム及びタスク関連 [#aacb0ce6] |
| | | |
| ****UD3_INITIALIZE (obsolete)[#bd0f80b9] | | ****UD3_INITIALIZE (obsolete)[#bd0f80b9] |
- | ****main (new) [#v3c21b98] | + | ****main [#v3c21b98] |
| メインタスクに相当し、一番最初に実行される初期化関数。タスクの起動やGPIOの初期化等はこの関数内で記述する。~ | | メインタスクに相当し、一番最初に実行される初期化関数。タスクの起動やGPIOの初期化等はこの関数内で記述する。~ |
| なお本タスクは優先度が最上位にあるため、並列で他のタスクを実行する際はUD3_WAIT等を挿入して意図的にタスクスイッチを促すべきである。 | | なお本タスクは優先度が最上位にあるため、並列で他のタスクを実行する際はUD3_WAIT等を挿入して意図的にタスクスイッチを促すべきである。 |
- | void main (void); | + | int main (void); |
| -パラメータ | | -パラメータ |
| ~なし | | ~なし |
| -戻り値 | | -戻り値 |
- | ~なし | + | ~int |
| -使用例 | | -使用例 |
| #include <ud3.h> | | #include <ud3.h> |
| | | |
- | void main (void) | + | int main (void) |
| { | | { |
| // 動作環境設定 | | // 動作環境設定 |
| } | | } |
| | | |
- | void main (void) { | + | int main (void) { |
| UD3_ACTIVE_TASK (1); // タスク1をアクティブ化 | | UD3_ACTIVE_TASK (1); // タスク1をアクティブ化 |
| } | | } |
| } | | } |
| | | |
- | void main (void) { | + | int main (void) { |
| UD3_ACTIVE_TASK (2); // タスク2をアクティブ化 | | UD3_ACTIVE_TASK (2); // タスク2をアクティブ化 |
| } | | } |
| } | | } |
| | | |
- | void main (void) { | + | int main (void) { |
| UD3_ACTIVE_TASK (3); // タスク3をアクティブ化 | | UD3_ACTIVE_TASK (3); // タスク3をアクティブ化 |
| } | | } |
| } | | } |
| | | |
- | void main (void) { | + | int main (void) { |
| UD3_ACTIVE_TASK (4); // タスク4をアクティブ化 | | UD3_ACTIVE_TASK (4); // タスク4をアクティブ化 |
| } | | } |
| } | | } |
| | | |
- | void main (void) { | + | int main (void) { |
| UD3_ACTIVE_TASK (1); // タスク1をアクティブ化 | | UD3_ACTIVE_TASK (1); // タスク1をアクティブ化 |
| } | | } |
| } | | } |
| | | |
- | void main (void) { | + | int main (void) { |
| UD3_ACTIVE_TASK (1); // タスク1をアクティブ化 | | UD3_ACTIVE_TASK (1); // タスク1をアクティブ化 |
| } | | } |
| } | | } |
| | | |
- | void main (void) { | + | int main (void) { |
| UD3_ACTIVE_TASK (1); // タスク1をアクティブ化 | | UD3_ACTIVE_TASK (1); // タスク1をアクティブ化 |
| } | | } |
| } | | } |
| | | |
- | void main (void) { | + | int main (void) { |
| UD3_ACTIVE_TASK (1); | | UD3_ACTIVE_TASK (1); |
| } | | } |
| uint32_t tm = UD3_GET_ELAPSEDTIME (); | | uint32_t tm = UD3_GET_ELAPSEDTIME (); |
| | | |
- | ****UD3_SET_DXPACKETMODE (new) [#y7012ac0] | + | ****UD3_SET_DXPACKETMODE (obsolete) [#y7012ac0] |
- | USB・Bluetooth・RS485のシリアルポートの機能を設定する。~ | + | |
- | Bluetoothに関してはブートローダにて設定されるモードが優先される。 | + | |
- | void UD3_SET_DXPACKETMODE (TDxPacketMode mode); | + | |
- | -パラメータ | + | |
- | --TDxPacketMode '''mode''' | + | |
- | ~dxNon: 全ポートをユーザ定義のシリアル通信機能として使用し、Dynamixelパケット処理は行わない~ | + | |
- | dxClient: UD3をスレーブとした全ポートからのDyanmixelパケットに応答する~ | + | |
- | dxHost: RS485ポートのみユーザ定義のUD3をホストとしたDynamixelパケット処理を行い、それ以外のポートはdxNonと同様 | + | |
- | ~デフォルトはdxClient | + | |
- | -戻り値 | + | |
- | ~なし | + | |
| | | |
| ****UD3_SET_DXPACKETENABLE (obsolete) [#pd1e307a] | | ****UD3_SET_DXPACKETENABLE (obsolete) [#pd1e307a] |
- | Dynamixelパケット通信機能を開始・停止する。デフォルトで開始されるが、Bluetooth・USB・RS485経由の通信をDynamixelパケットで占有されずにユーザ自らのコンソールとして使用する場合は停止させておく必要がある。 | |
- | void UD3_SET_DXPACKETENABLE (bool mode); | |
- | -パラメータ | |
- | --bool '''mode''' | |
- | ~false: Dyanmixelパケット処理を停止する~ | |
- | true: Dyanmixelパケット処理を開始する | |
- | ~デフォルトはtrue | |
- | -戻り値 | |
- | ~なし | |
| | | |
| ****UD3_GET_BTCONNECT [#odf822c9] | | ****UD3_GET_BTCONNECT [#odf822c9] |
| #include <ud3.h> | | #include <ud3.h> |
| | | |
- | void main (void) { | + | int main (void) { |
| { | | { |
| // ADC | | // ADC |
| #include <ud3.h> | | #include <ud3.h> |
| | | |
- | void main (void) { | + | int main (void) { |
| { | | { |
| // ADC | | // ADC |
| #include <ud3.h> | | #include <ud3.h> |
| | | |
- | void main (void) { | + | int main (void) { |
| { | | { |
| // ADC | | // ADC |
| #include <ud3.h> | | #include <ud3.h> |
| | | |
- | void main (void) { | + | int main (void) { |
| { | | { |
| // ADC | | // ADC |
| #include <ud3.h> | | #include <ud3.h> |
| | | |
- | void main (void) { | + | int main (void) { |
| { | | { |
| // ADC | | // ADC |
| #include <ud3.h> | | #include <ud3.h> |
| | | |
- | void main (void) { | + | int main (void) { |
| { | | { |
| // ADC | | // ADC |
| #include <ud3.h> | | #include <ud3.h> |
| | | |
- | void main (void) { | + | int main (void) { |
| { | | { |
| // ADC | | // ADC |
| #include <ud3.h> | | #include <ud3.h> |
| | | |
- | void main (void) { | + | int main (void) { |
| { | | { |
| // ADC | | // ADC |
| #include <ud3.h> | | #include <ud3.h> |
| | | |
- | void main (void) { | + | int main (void) { |
| { | | { |
| // PWMキャプチャモードに設定 | | // PWMキャプチャモードに設定 |
| #include <ud3.h> | | #include <ud3.h> |
| | | |
- | void main (void) { | + | int main (void) { |
| { | | { |
| // パルス幅計測モードに設定 | | // パルス幅計測モードに設定 |
| #include <ud3.h> | | #include <ud3.h> |
| | | |
- | void main (void) { | + | int main (void) { |
| { | | { |
| // パルス幅計測モードに設定 | | // パルス幅計測モードに設定 |
| UD3_SET_M1PWMDUTY (200); | | UD3_SET_M1PWMDUTY (200); |
| | | |
- | ****UD3_GET_M1PWMDUTY (new)[#q5687f5b] | + | ****UD3_GET_M1PWMDUTY [#q5687f5b] |
| M1の設定済みPWMデューティー比を取得する。~ | | M1の設定済みPWMデューティー比を取得する。~ |
| int16_t UD3_GET_M1PWMDUTY (void); | | int16_t UD3_GET_M1PWMDUTY (void); |
| UD3_SET_M2PWMDUTY (200); | | UD3_SET_M2PWMDUTY (200); |
| | | |
- | ****UD3_GET_M2PWMDUTY (new) [#hed95d65] | + | ****UD3_GET_M2PWMDUTY [#hed95d65] |
| M2の設定済みPWMデューティー比を取得する。~ | | M2の設定済みPWMデューティー比を取得する。~ |
| int16_t UD3_GET_M2PWMDUTY (void); | | int16_t UD3_GET_M2PWMDUTY (void); |
| include <ud3.h> | | include <ud3.h> |
| | | |
- | void main (void) { | + | int main (void) { |
| // GPIO8,9をパルス幅計測モードに | | // GPIO8,9をパルス幅計測モードに |
| UD3_CFG_GPIO8 (GPIO_PWM_CAP); | | UD3_CFG_GPIO8 (GPIO_PWM_CAP); |
| include <ud3.h> | | include <ud3.h> |
| | | |
- | void main (void) { | + | int main (void) { |
| // GPIO8,9をパルス幅計測モードに | | // GPIO8,9をパルス幅計測モードに |
| UD3_CFG_GPIO8 (GPIO_PWM_CAP); | | UD3_CFG_GPIO8 (GPIO_PWM_CAP); |
| ***SIXAXIS関連 [#tc0f292d] | | ***SIXAXIS関連 [#tc0f292d] |
| BluetoothのモードがSIXAXISで、SIXAXISないしDUALSHOCK3がワイヤレス接続された時に取得出来る情報です。デジタルボタンの押力の取得及び振動モータの運転は出来ません。 | | BluetoothのモードがSIXAXISで、SIXAXISないしDUALSHOCK3がワイヤレス接続された時に取得出来る情報です。デジタルボタンの押力の取得及び振動モータの運転は出来ません。 |
| + | なお、予め[[UD3_ASSIGN_BT_TO_SIXAXIS>#h5d1973e]]にてBluetoothにSIXAXIS通信機能を割り当てておく必要は特にありませんが、ブートローダでBluetoothをSIXAXISモードに設定した場合はそれ以外の機能への割り当てはできません。 |
| | | |
| ****UD3_GET_PSDIGITAL1 [#na9afa77] | | ****UD3_GET_PSDIGITAL1 [#na9afa77] |
| | | |
| ****UD3_GET_GX (obsolute)[#wa4f160b] | | ****UD3_GET_GX (obsolute)[#wa4f160b] |
- | ****UD3_GET_PSGX (new) [#hccd1b38] | + | ****UD3_GET_PSGX [#hccd1b38] |
| SIXAXISのX軸加速度を取得する。 | | SIXAXISのX軸加速度を取得する。 |
| uint16_t UD3_GET_PSGX(void); | | uint16_t UD3_GET_PSGX(void); |
| | | |
| ****UD3_GET_GY (obsolute)[#m9f9751e] | | ****UD3_GET_GY (obsolute)[#m9f9751e] |
- | ****UD3_GET_PSGY (new) [#rd271105] | + | ****UD3_GET_PSGY [#rd271105] |
| SIXAXISのY軸加速度を取得する。 | | SIXAXISのY軸加速度を取得する。 |
| uint16_t UD3_GET_PSGY(void); | | uint16_t UD3_GET_PSGY(void); |
| | | |
| ****UD3_GET_GZ (obsolute)[#i5505dd1] | | ****UD3_GET_GZ (obsolute)[#i5505dd1] |
- | ****UD3_GET_PSGZ (new) [#ibd2e0bc] | + | ****UD3_GET_PSGZ [#ibd2e0bc] |
| SIXAXISのZ軸加速度を取得する。 | | SIXAXISのZ軸加速度を取得する。 |
| uint16_t UD3_GET_PSGZ(void); | | uint16_t UD3_GET_PSGZ(void); |
| | | |
| ****UD3_GET_GYRO (obsolute)[#pcb0b72f] | | ****UD3_GET_GYRO (obsolute)[#pcb0b72f] |
- | ****UD3_GET_PSGYRO (new) [#cd05b422] | + | ****UD3_GET_PSGYRO [#cd05b422] |
| SIXAXISの角加速度を取得する。 | | SIXAXISの角加速度を取得する。 |
| uint16_t UD3_GET_PSGYRO(void); | | uint16_t UD3_GET_PSGYRO(void); |
| | | |
| ***コンソール関連 [#d0d4a9b4] | | ***コンソール関連 [#d0d4a9b4] |
- | コンソールとして使用出来るUSB・Bluetooth・RS485のいずれかを介したシリアル通信を行います。デフォルトの送信先コンソールは全ポートBとなっていますが、いすれかのI/Fからの受信が発生する事でデフォルトコンソールが切り替わります。~ | + | USB・Bluetooth・RS485の各I/Fは、「コンソール」「Dynamixelホスト」「Dynamixelクライアント」「SIXAXIS通信」のいずれかの機能を割り当てて使用する事ができます。USBとRS485は初期状態においてどの機能も割り当てられていないため、それぞれの機能を使用したAPIも機能しない状態になっています。Bluetoothについては、ブートローダでSIXAXISモードの設定がなされた場合のみ、「SIXAXIS通信」機能が自動的に活性化します。~ |
- | なお、USB・Bluetooth・RS485のI/FはDynamixelパケットによる通信に使用されるため、コンソールとしてのみ使用するには[[UD3_SET_DXPACKETMODE>#y7012ac0]]でDynamixelパケット処理を停止しておく必要があります。その場合はDynamixelパケット処理が行われなくなります。~ | + | なお、RS485に「コンソール」機能を割り当てた場合はボーレートが1M[bps]固定され、「Dynamixelホスト」機能はRS485のみ、「SIXAXIS通信」機能はBluetoothにのみ設定できます。 |
- | また、コンソールへの送信にはシリアル通信の都合からそれ相応の時間を要します。高速で動作させているタスクの中で高い頻度で送信を行うと処理時間が長くなります。 | + | |
| | | |
- | コンソールとして使用する時に限り、RS485についてはボーレートが1M[bps]固定となります。 | + | |CENTER:BGCOLOR(red):||c |
| + | | :idea:|ToppersカーネルとUSBの相性がよろしくないため、恒久的な通信ポートとしてUSBを使用する事は控える事。&br;超大なデータを常時吐き続けると、カーネルごとフリーズする場合がある。| |
| + | |
| + | ****UD3_ASSIGN_USB_TO_CONSOLE (new)[#w433da59] |
| + | USBをコンソール機能に割り当てる。以前のUSBへの割り当ては解除される。 |
| + | bool UD3_ASSIGN_USB_TO_CONSOLE (void); |
| + | -パラメータ |
| + | ~なし |
| + | -戻り値 |
| + | ~bool 割り当てが成功するとtrue |
| + | ****UD3_ASSIGN_USB_TO_DXCLIENT (new) [#i8f4c502] |
| + | USBをDynamixelのクライアント機能に割り当てる。以前のUSBへの割り当ては解除される。 |
| + | bool UD3_ASSIGN_USB_TO_DXCLIENT (void); |
| + | -パラメータ |
| + | ~なし |
| + | -戻り値 |
| + | ~bool 割り当てが成功するとtrue |
| + | ****UD3_DEASSIGN_USB (new) [#m33f02d9] |
| + | 以前のUSBへの割り当てを解除する。 |
| + | bool UD3_DEASSIGN_USB (void); |
| + | -パラメータ |
| + | ~なし |
| + | -戻り値 |
| + | ~bool 割り当てが成功するとtrue |
| + | ****UD3_ASSIGN_RS485_TO_CONSOLE (new) [#q8dded9d] |
| + | RS485をコンソール機能に割り当てる。以前のRS485への割り当ては解除される。 |
| + | bool UD3_ASSIGN_RS485_TO_CONSOLE (void); |
| + | -パラメータ |
| + | ~なし |
| + | -戻り値 |
| + | ~bool 割り当てが成功するとtrue |
| + | ****UD3_ASSIGN_RS485_TO_DXCLIENT (new) [#z3a825e0] |
| + | RS485をDynamixelのクライアント機能に割り当てる。以前のRS485への割り当ては解除される。 |
| + | bool UD3_ASSIGN_RS485_TO_DXCLIENT (void); |
| + | -パラメータ |
| + | ~なし |
| + | -戻り値 |
| + | ~bool 割り当てが成功するとtrue |
| + | ****UD3_ASSIGN_RS485_TO_DXHOST (new) [#a4298bb2] |
| + | RS485をDynamixelのホスト機能に割り当てる。以前のRS485への割り当ては解除される。 |
| + | bool UD3_ASSIGN_RS485_TO_DXHOST (void); |
| + | -パラメータ |
| + | ~なし |
| + | -戻り値 |
| + | ~bool 割り当てが成功するとtrue |
| + | ****UD3_DEASSIGN_RS485 (new) [#pc7926c0] |
| + | 以前のRS485への割り当てを解除する。 |
| + | bool UD3_DEASSIGN_RS485 (void); |
| + | -パラメータ |
| + | ~なし |
| + | -戻り値 |
| + | ~bool 割り当てが成功するとtrue |
| + | ****UD3_ASSIGN_BT_TO_CONSOLE (new) [#p3b1f9b6] |
| + | Bluetoothをコンソール機能に割り当てる。以前のBluetoothへの割り当ては解除される。 |
| + | bool UD3_ASSIGN_BT_TO_CONSOLE (void); |
| + | -パラメータ |
| + | ~なし |
| + | -戻り値 |
| + | ~bool 割り当てが成功するとtrue |
| + | ****UD3_ASSIGN_BT_TO_DXCLIENT (new) [#a92c0818] |
| + | BluetoothをDynamixelのクライアント機能に割り当てる。以前のBluetoothへの割り当ては解除される。 |
| + | bool UD3_ASSIGN_BT_TO_DXCLIENT (void); |
| + | -パラメータ |
| + | ~なし |
| + | -戻り値 |
| + | ~bool 割り当てが成功するとtrue |
| + | ****UD3_ASSIGN_BT_TO_SIXAXIS (new) [#h5d1973e] |
| + | BluetoothをSIXAXISないしDUALSHOCK3との通信機能に割り当てる。以前のBluetoothへの割り当ては解除される。 |
| + | bool UD3_ASSIGN_BT_TO_SIXAXIS (void); |
| + | -パラメータ |
| + | ~なし |
| + | -戻り値 |
| + | ~bool 割り当てが成功するとtrue |
| + | ****UD3_DEASSIGN_BT (new) [#da99d076] |
| + | 以前のBluetoothへの割り当てを解除する。 |
| + | bool UD3_DEASSIGN_BT (void); |
| + | -パラメータ |
| + | ~なし |
| + | -戻り値 |
| + | ~bool 割り当てが成功するとtrue |
| | | |
| ****UD3_PUTC [#w4f6854d] | | ****UD3_PUTC [#w4f6854d] |
- | コンソールに1文字送信する。 | + | コンソールに1文字送信する。~ |
| + | 予めUD3_ASSIGN_xxx_TO_CONSOLEにて使用するI/Fにコンソールを割り当てておく必要がある。 |
| void UD3_PUTC (char c); | | void UD3_PUTC (char c); |
| -パラメータ | | -パラメータ |
| | | |
| ****UD3_GETC [#ibd505dc] | | ****UD3_GETC [#ibd505dc] |
- | コンソールから1文字取得する。受信バッファが空の場合は最低1バイト受信するまで返らない。 | + | コンソールから1文字取得する。受信バッファが空の場合は最低1バイト受信するまで返らない。~ |
| + | 予めUD3_ASSIGN_xxx_TO_CONSOLEにて使用するI/Fにコンソールを割り当てておく必要がある。 |
| char UD3_GETC (void); | | char UD3_GETC (void); |
| -パラメータ | | -パラメータ |
| while (UD3_RXBUFF()) UD3_PUTC(UD3_GETC()); | | while (UD3_RXBUFF()) UD3_PUTC(UD3_GETC()); |
| | | |
- | ****UD3_GETS (new) [#lc54c38f] | + | ****UD3_GETS [#lc54c38f] |
- | コンソールからエンター(CRかLF)ないしエスケープ(ESC)コードを受信するまで文字列を取得する。 | + | コンソールからエンター(CRかLF)ないしエスケープ(ESC)コードを受信するまで文字列を取得する。~ |
| + | 予めUD3_ASSIGN_xxx_TO_CONSOLEにて使用するI/Fにコンソールを割り当てておく必要がある。 |
| int UD3_GETS (char *s, int len); | | int UD3_GETS (char *s, int len); |
| -パラメータ | | -パラメータ |
| | | |
| ****UD3_PUTS [#qc95c51a] | | ****UD3_PUTS [#qc95c51a] |
- | コンソールへ文字列を送信する。 | + | コンソールへ文字列を送信する。~ |
| + | 予めUD3_ASSIGN_xxx_TO_CONSOLEにて使用するI/Fにコンソールを割り当てておく必要がある。 |
| void UD3_PUTS (char *s); | | void UD3_PUTS (char *s); |
| -パラメータ | | -パラメータ |
| | | |
| ****UD3_PUTSB [#e16d8efa] | | ****UD3_PUTSB [#e16d8efa] |
- | コンソールへ指定バイト数のデータを送信する。 | + | コンソールへ指定バイト数のデータを送信する。~ |
| + | 予めUD3_ASSIGN_xxx_TO_CONSOLEにて使用するI/Fにコンソールを割り当てておく必要がある。 |
| void UD3_PUTSB (char *s, int len); | | void UD3_PUTSB (char *s, int len); |
| -パラメータ | | -パラメータ |
| | | |
| ****UD3_RXBUFF [#w6cb53ad] | | ****UD3_RXBUFF [#w6cb53ad] |
- | コンソールから受信されたバイト数を返す。 | + | コンソールから受信されたバイト数を返す。~ |
| + | 予めUD3_ASSIGN_xxx_TO_CONSOLEにて使用するI/Fにコンソールを割り当てておく必要がある。 |
| int UD3_RXBUFF (void); | | int UD3_RXBUFF (void); |
| -パラメータ | | -パラメータ |
| | | |
| ****UD3_PRINTF [#xd168578] | | ****UD3_PRINTF [#xd168578] |
- | コンソールへ書式化文字列を送信する。 | + | コンソールへ書式化文字列を送信する。~ |
| + | 予めUD3_ASSIGN_xxx_TO_CONSOLEにて使用するI/Fにコンソールを割り当てておく必要がある。 |
| int UD3_PRINTF (const char *format, ...) { | | int UD3_PRINTF (const char *format, ...) { |
| -パラメータ | | -パラメータ |
| while UD3_PRINTF("HELLO! %d\n", i++); | | while UD3_PRINTF("HELLO! %d\n", i++); |
| | | |
- | ****UD3_SCANF (new) [#l1b83762] | + | ****UD3_SCANF [#l1b83762] |
- | コンソールから書式化文字列を受信する。 | + | コンソールから書式化文字列を受信する。~ |
| + | 予めUD3_ASSIGN_xxx_TO_CONSOLEにて使用するI/Fにコンソールを割り当てておく必要がある。 |
| int UD3_SCANF (const char *type, void *val); | | int UD3_SCANF (const char *type, void *val); |
| -パラメータ | | -パラメータ |
| ***Dynamixelホスト関連 [#rd133a45] | | ***Dynamixelホスト関連 [#rd133a45] |
| RS485を使用してUD3をホストとした他のDynamixelスレーブ機器との通信を行います。~ | | RS485を使用してUD3をホストとした他のDynamixelスレーブ機器との通信を行います。~ |
- | なお、UD3のRS485はデフォルトでUD3をスレーブとしたDynamixelパケットによる通信に使用されるため、ホストとして使用するには[[UD3_SET_DXPACKETMODE>#y7012ac0]]でdxHostを指定して初期化しておく必要があります。 | + | なお、UD3のRS485はデフォルトで機能が割り当てられていないため、予め[[UD3_ASSIGN_RS485_TO_DXHOST>#a4298bb2]]にてRS485にDynamixelホスト機能を割り当てておく必要があります。 |
| | | |
- | ****DX_ChangeBaudrate (new) [#z585203f] | + | ****DX_ChangeBaudrate [#z585203f] |
| ボーレートを変更する。 | | ボーレートを変更する。 |
| bool DX_ChangeBaudrate (uint32_t baud); | | bool DX_ChangeBaudrate (uint32_t baud); |
| -使用例 | | -使用例 |
| | | |
- | ****DX_Ping (new) [#bf72833f] | + | ****DX_Ping [#bf72833f] |
| 指定されたIDの存在を確認する。 | | 指定されたIDの存在を確認する。 |
| bool DX_Ping (uint8_t id, uint32_t timeout, uint16_t *errcode); | | bool DX_Ping (uint8_t id, uint32_t timeout, uint16_t *errcode); |
| -使用例 | | -使用例 |
| | | |
- | ****DX_Ping2 (new) [#nf87452a] | + | ****DX_Ping2 [#nf87452a] |
| 不明なIDのデバイスのIDを見つける。 | | 不明なIDのデバイスのIDを見つける。 |
| bool DX_Ping2 (uint8_t *id, uint32_t timeout, uint16_t *errcode); | | bool DX_Ping2 (uint8_t *id, uint32_t timeout, uint16_t *errcode); |
| -使用例 | | -使用例 |
| | | |
- | ****DX_ReadByteData (new) [#f32225e1] | + | ****DX_ReadByteData [#f32225e1] |
| 指定IDの指定アドレスから1バイトのデータを読み出す。 | | 指定IDの指定アドレスから1バイトのデータを読み出す。 |
| bool DX_ReadByteData (uint8_t id, uint8_t adr, uint8_t *result, uint32_t timeout, uint16_t *errcode); | | bool DX_ReadByteData (uint8_t id, uint8_t adr, uint8_t *result, uint32_t timeout, uint16_t *errcode); |
| -使用例 | | -使用例 |
| | | |
- | ****DX_ReadWordData (new) [#m5230d39] | + | ****DX_ReadWordData [#m5230d39] |
| 指定IDの指定アドレスから1ワード(2バイト)のデータを読み出す。 | | 指定IDの指定アドレスから1ワード(2バイト)のデータを読み出す。 |
| bool DX_ReadWordData (uint8_t id, uint8_t adr, uint16_t *result, uint32_t timeout, uint16_t *errcode); | | bool DX_ReadWordData (uint8_t id, uint8_t adr, uint16_t *result, uint32_t timeout, uint16_t *errcode); |
| -使用例 | | -使用例 |
| | | |
- | ****DX_ReadBlockData (new) [#d0ba2a9e] | + | ****DX_ReadBlockData [#d0ba2a9e] |
| 指定IDの指定アドレスから指定バイト数のデータを読み出す。 | | 指定IDの指定アドレスから指定バイト数のデータを読み出す。 |
| bool DX_ReadBlockData (uint8_t id, uint8_t adr, uint8_t *result, uint8_t len, uint32_t timeout, uint16_t *errcode); | | bool DX_ReadBlockData (uint8_t id, uint8_t adr, uint8_t *result, uint8_t len, uint32_t timeout, uint16_t *errcode); |
| -使用例 | | -使用例 |
| | | |
- | ****DX_WriteByteData (new) [#nd22b7cf] | + | ****DX_WriteByteData [#nd22b7cf] |
| 指定IDの指定アドレスへ1バイトのデータを書き込む。 | | 指定IDの指定アドレスへ1バイトのデータを書き込む。 |
| bool DX_WriteByteData (uint8_t id, uint8_t adr, uint8_t dat, uint32_t timeout, uint16_t *errcode); | | bool DX_WriteByteData (uint8_t id, uint8_t adr, uint8_t dat, uint32_t timeout, uint16_t *errcode); |
| -使用例 | | -使用例 |
| | | |
- | ****DX_WriteWordData (new) [#f8044400] | + | ****DX_WriteWordData [#f8044400] |
| 指定IDの指定アドレスへ1ワード(2バイト)のデータを書き込む。 | | 指定IDの指定アドレスへ1ワード(2バイト)のデータを書き込む。 |
| bool DX_WriteWordData (uint8_t id, uint8_t adr, uint16_t dat, uint32_t timeout, uint16_t *errcode); | | bool DX_WriteWordData (uint8_t id, uint8_t adr, uint16_t dat, uint32_t timeout, uint16_t *errcode); |
| -使用例 | | -使用例 |
| | | |
- | ****DX_WriteBlockData (new) [#f5423302] | + | ****DX_WriteBlockData [#f5423302] |
| 指定IDの指定アドレスへ複数バイトのデータを書き込む。 | | 指定IDの指定アドレスへ複数バイトのデータを書き込む。 |
| bool DX_WriteBlockData (uint8_t id, uint8_t adr, const uint8_t *dat, uint8_t len, uint32_t timeout, uint16_t *errcode); | | bool DX_WriteBlockData (uint8_t id, uint8_t adr, const uint8_t *dat, uint8_t len, uint32_t timeout, uint16_t *errcode); |
| -使用例 | | -使用例 |
| | | |
- | ****DX_SyncWriteData (new) [#pf448981] | + | ****DX_SyncWriteData (obsolete)[#pf448981] |
- | bool DX_SyncWriteData (uint8_t size, const uint8_t *dat); | + | ****DX_WriteSyncData (new) [#uebb1423] |
| + | 複数のデバイスへ同時に個別のデータを書き込む。 |
| + | bool DX_WriteSyncData (uint8_t size, const uint8_t *dat, uint16_t *errcode); |
| | | |
| **サンプルプログラム [#kf8170aa] | | **サンプルプログラム [#kf8170aa] |
| APIを使用したいくつかのサンプルプログラムを用意しました。以下よりダウンロードして解凍した上でご利用ください。詳細はコメントおよびAPIのドキュメントを参考に読み解いてください。 | | APIを使用したいくつかのサンプルプログラムを用意しました。以下よりダウンロードして解凍した上でご利用ください。詳細はコメントおよびAPIのドキュメントを参考に読み解いてください。 |
| + | |
| + | #ref(UD3_SMPL1.4.zip) |
| + | -更新履歴~ |
| + | 2011/7/22 Ver.1.4~ |
| + | GCC Developer Lite 2.4.0.16以降のAPI追加・変更に伴う追加・修正 |
| | | |
| #ref(UD3_SMPL1.3.zip) | | #ref(UD3_SMPL1.3.zip) |
| -更新履歴~ | | -更新履歴~ |
- | 2010/4/6 Ver.1.3~ | + | 2011/4/6 Ver.1.3~ |
| GCC Developer Lite 2.4.0.0r3以降のAPI追加・変更に伴う追加・修正 | | GCC Developer Lite 2.4.0.0r3以降のAPI追加・変更に伴う追加・修正 |
| | | |