13: 2011-07-19 (火) 16:50:00 takaboo | 14: 2011-07-22 (金) 18:01:56 takaboo | ||
---|---|---|---|
Line 209: | Line 209: | ||
本装置を操作するための専用プログラムが予め搭載されており、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 | ||
> | > | ||
Line 249: | Line 249: | ||
このうち、ユーザ自ら変更出来るのは接続モードと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 | ||
Line 364: | Line 364: | ||
本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] | ||
Line 371: | Line 371: | ||
****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) |
{ | { | ||
// 動作環境設定 | // 動作環境設定 | ||
Line 420: | Line 420: | ||
} | } | ||
- | void main (void) { | + | int main (void) { |
UD3_ACTIVE_TASK (1); // タスク1をアクティブ化 | UD3_ACTIVE_TASK (1); // タスク1をアクティブ化 | ||
} | } | ||
Line 447: | Line 447: | ||
} | } | ||
- | void main (void) { | + | int main (void) { |
UD3_ACTIVE_TASK (2); // タスク2をアクティブ化 | UD3_ACTIVE_TASK (2); // タスク2をアクティブ化 | ||
} | } | ||
Line 473: | Line 473: | ||
} | } | ||
- | void main (void) { | + | int main (void) { |
UD3_ACTIVE_TASK (3); // タスク3をアクティブ化 | UD3_ACTIVE_TASK (3); // タスク3をアクティブ化 | ||
} | } | ||
Line 499: | Line 499: | ||
} | } | ||
- | void main (void) { | + | int main (void) { |
UD3_ACTIVE_TASK (4); // タスク4をアクティブ化 | UD3_ACTIVE_TASK (4); // タスク4をアクティブ化 | ||
} | } | ||
Line 524: | Line 524: | ||
} | } | ||
- | void main (void) { | + | int main (void) { |
UD3_ACTIVE_TASK (1); // タスク1をアクティブ化 | UD3_ACTIVE_TASK (1); // タスク1をアクティブ化 | ||
} | } | ||
Line 549: | Line 549: | ||
} | } | ||
- | void main (void) { | + | int main (void) { |
UD3_ACTIVE_TASK (1); // タスク1をアクティブ化 | UD3_ACTIVE_TASK (1); // タスク1をアクティブ化 | ||
} | } | ||
Line 574: | Line 574: | ||
} | } | ||
- | void main (void) { | + | int main (void) { |
UD3_ACTIVE_TASK (1); // タスク1をアクティブ化 | UD3_ACTIVE_TASK (1); // タスク1をアクティブ化 | ||
} | } | ||
Line 598: | Line 598: | ||
} | } | ||
- | void main (void) { | + | int main (void) { |
UD3_ACTIVE_TASK (1); | UD3_ACTIVE_TASK (1); | ||
} | } | ||
Line 613: | Line 613: | ||
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] | ||
Line 669: | Line 649: | ||
#include <ud3.h> | #include <ud3.h> | ||
- | void main (void) { | + | int main (void) { |
{ | { | ||
// ADC | // ADC | ||
Line 692: | Line 672: | ||
#include <ud3.h> | #include <ud3.h> | ||
- | void main (void) { | + | int main (void) { |
{ | { | ||
// ADC | // ADC | ||
Line 715: | Line 695: | ||
#include <ud3.h> | #include <ud3.h> | ||
- | void main (void) { | + | int main (void) { |
{ | { | ||
// ADC | // ADC | ||
Line 738: | Line 718: | ||
#include <ud3.h> | #include <ud3.h> | ||
- | void main (void) { | + | int main (void) { |
{ | { | ||
// ADC | // ADC | ||
Line 761: | Line 741: | ||
#include <ud3.h> | #include <ud3.h> | ||
- | void main (void) { | + | int main (void) { |
{ | { | ||
// ADC | // ADC | ||
Line 784: | Line 764: | ||
#include <ud3.h> | #include <ud3.h> | ||
- | void main (void) { | + | int main (void) { |
{ | { | ||
// ADC | // ADC | ||
Line 807: | Line 787: | ||
#include <ud3.h> | #include <ud3.h> | ||
- | void main (void) { | + | int main (void) { |
{ | { | ||
// ADC | // ADC | ||
Line 830: | Line 810: | ||
#include <ud3.h> | #include <ud3.h> | ||
- | void main (void) { | + | int main (void) { |
{ | { | ||
// ADC | // ADC | ||
Line 855: | Line 835: | ||
#include <ud3.h> | #include <ud3.h> | ||
- | void main (void) { | + | int main (void) { |
{ | { | ||
// PWMキャプチャモードに設定 | // PWMキャプチャモードに設定 | ||
Line 880: | Line 860: | ||
#include <ud3.h> | #include <ud3.h> | ||
- | void main (void) { | + | int main (void) { |
{ | { | ||
// パルス幅計測モードに設定 | // パルス幅計測モードに設定 | ||
Line 905: | Line 885: | ||
#include <ud3.h> | #include <ud3.h> | ||
- | void main (void) { | + | int main (void) { |
{ | { | ||
// パルス幅計測モードに設定 | // パルス幅計測モードに設定 | ||
Line 1098: | Line 1078: | ||
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); | ||
Line 1163: | Line 1143: | ||
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); | ||
Line 1443: | Line 1423: | ||
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); | ||
Line 1503: | Line 1483: | ||
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); | ||
Line 1528: | Line 1508: | ||
***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] | ||
Line 1626: | Line 1607: | ||
****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); | ||
Line 1637: | Line 1618: | ||
****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); | ||
Line 1648: | Line 1629: | ||
****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); | ||
Line 1659: | Line 1640: | ||
****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); | ||
Line 1670: | Line 1651: | ||
***コンソール関連 [#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); | ||
-パラメータ | -パラメータ | ||
Line 1688: | Line 1748: | ||
****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); | ||
-パラメータ | -パラメータ | ||
Line 1697: | Line 1758: | ||
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); | ||
-パラメータ | -パラメータ | ||
Line 1712: | Line 1774: | ||
****UD3_PUTS [#qc95c51a] | ****UD3_PUTS [#qc95c51a] | ||
- | コンソールへ文字列を送信する。 | + | コンソールへ文字列を送信する。~ |
+ | 予めUD3_ASSIGN_xxx_TO_CONSOLEにて使用するI/Fにコンソールを割り当てておく必要がある。 | ||
void UD3_PUTS (char *s); | void UD3_PUTS (char *s); | ||
-パラメータ | -パラメータ | ||
Line 1723: | Line 1786: | ||
****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); | ||
-パラメータ | -パラメータ | ||
Line 1737: | Line 1801: | ||
****UD3_RXBUFF [#w6cb53ad] | ****UD3_RXBUFF [#w6cb53ad] | ||
- | コンソールから受信されたバイト数を返す。 | + | コンソールから受信されたバイト数を返す。~ |
+ | 予めUD3_ASSIGN_xxx_TO_CONSOLEにて使用するI/Fにコンソールを割り当てておく必要がある。 | ||
int UD3_RXBUFF (void); | int UD3_RXBUFF (void); | ||
-パラメータ | -パラメータ | ||
Line 1747: | Line 1812: | ||
****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, ...) { | ||
-パラメータ | -パラメータ | ||
Line 1760: | Line 1826: | ||
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); | ||
-パラメータ | -パラメータ | ||
Line 1776: | Line 1843: | ||
***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); | ||
Line 1789: | Line 1856: | ||
-使用例 | -使用例 | ||
- | ****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); | ||
Line 1804: | Line 1871: | ||
-使用例 | -使用例 | ||
- | ****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); | ||
Line 1819: | Line 1886: | ||
-使用例 | -使用例 | ||
- | ****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); | ||
Line 1836: | Line 1903: | ||
-使用例 | -使用例 | ||
- | ****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); | ||
Line 1853: | Line 1920: | ||
-使用例 | -使用例 | ||
- | ****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); | ||
Line 1870: | Line 1937: | ||
-使用例 | -使用例 | ||
- | ****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); | ||
Line 1887: | Line 1954: | ||
-使用例 | -使用例 | ||
- | ****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); | ||
Line 1904: | Line 1971: | ||
-使用例 | -使用例 | ||
- | ****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); | ||
Line 1921: | Line 1988: | ||
-使用例 | -使用例 | ||
- | ****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追加・変更に伴う追加・修正 | ||