10: 2011-04-02 (土) 18:23:45 takaboo ソース 11: 2011-04-03 (日) 14:32:38 takaboo ソース
Line 209: Line 209:
本装置を操作するための専用プログラムが予め搭載されており、USB(ボーレート:任意)・Bluetooth(ボーレート:任意)・Dynamixel I/F(ボーレート:1Mbps)のいずれかを経由してユーザプログラムの転送や諸設定を行う事が出来ます。~ 本装置を操作するための専用プログラムが予め搭載されており、USB(ボーレート:任意)・Bluetooth(ボーレート:任意)・Dynamixel I/F(ボーレート:1Mbps)のいずれかを経由してユーザプログラムの転送や諸設定を行う事が出来ます。~
SIMPLE TERMで該当のポートを開き、ブートローダのコマンドモードに入ると以下のメッセージ及びプロンプトが表示されます。 SIMPLE TERMで該当のポートを開き、ブートローダのコマンドモードに入ると以下のメッセージ及びプロンプトが表示されます。
- --< UDIII Ver.2.1 by BestTechnology >--+ --< UDIII Ver.2.3 by BestTechnology >--
 >  >
この状態で使用出来るコマンドは'?'を入力すると表示されます。 この状態で使用出来るコマンドは'?'を入力すると表示されます。
 >?  >?
- --< UDIII Ver.2.1 by BestTechnology >--+ --< UDIII Ver.2.3 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.1 by BestTechnology >--+ --< UDIII Ver.2.3 by BestTechnology >-- 
 +  [w]:UPLOAD [g]:BOOT [i]:FLASH INFO [e]:ERASE [b]:BLUETOOTH
 >b  >b
-  CONNECTING TO BLUETOOTH MODULE .......+  CONNECTING TO BLUETOOTH MODULE ......
 BT>?  BT>?
 -- BLUETOOTH CONFIGURATION --  -- BLUETOOTH CONFIGURATION --
-  [o]:SLEEP [w]:MASTER [c]:SLAVE [s]:SIXAXIS [p] PIN [i]:info [ESC]:exit+  [o]:SLEEP [w]:MASTER [c]:SLAVE [s]:SIXAXIS [a]:AUTHENTICATION [p]:PIN CODE 
 +  [h]:INQUIRY [i]:info [ESC]:exit
 BT>  BT>
Line 620: Line 622:
dxClient: UD3をスレーブとした全ポートからのDyanmixelパケットに応答する~ dxClient: UD3をスレーブとした全ポートからのDyanmixelパケットに応答する~
dxHost: RS485ポートのみユーザ定義のUD3をホストとしたDynamixelパケット処理を行い、それ以外のポートはdxNonと同様 dxHost: RS485ポートのみユーザ定義のUD3をホストとしたDynamixelパケット処理を行い、それ以外のポートはdxNonと同様
-~デフォルトはdxNon+~デフォルトはdxClient
-戻り値 -戻り値
~なし ~なし
Line 1668: Line 1670:
なお、USB・Bluetooth・RS485のI/FはDynamixelパケットによる通信に使用されるため、コンソールとしてのみ使用するには[[UD3_SET_DXPACKETMODE>#y7012ac0]]でDynamixelパケット処理を停止しておく必要があります。その場合はDynamixelパケット処理が行われなくなります。~ なお、USB・Bluetooth・RS485のI/FはDynamixelパケットによる通信に使用されるため、コンソールとしてのみ使用するには[[UD3_SET_DXPACKETMODE>#y7012ac0]]でDynamixelパケット処理を停止しておく必要があります。その場合はDynamixelパケット処理が行われなくなります。~
また、コンソールへの送信にはシリアル通信の都合からそれ相応の時間を要します。高速で動作させているタスクの中で高い頻度で送信を行うと処理時間が長くなります。 また、コンソールへの送信にはシリアル通信の都合からそれ相応の時間を要します。高速で動作させているタスクの中で高い頻度で送信を行うと処理時間が長くなります。
 +
 +コンソールとして使用する時に限り、RS485についてはボーレートが1M[bps]固定となります。
****UD3_PUTC [#w4f6854d] ****UD3_PUTC [#w4f6854d]
Line 1766: Line 1770:
 int i ;  int i ;
 if (UD3_PRINTF("%d", &i)) UD3_PRINTF("i=%d", i);  if (UD3_PRINTF("%d", &i)) UD3_PRINTF("i=%d", i);
 +
 +***Dynamixelホスト関連 [#rd133a45]
 +RS485を使用してUD3をホストとした他のDynamixelスレーブ機器との通信を行います。~
 +なお、UD3のRS485はデフォルトでUD3をスレーブとしたDynamixelパケットによる通信に使用されるため、ホストとして使用するには[[UD3_SET_DXPACKETMODE>#y7012ac0]]でdxHostを指定して初期化しておく必要があります。
 +
 +****DX_ChangeBaudrate (new) [#z585203f]
 +ボーレートを変更する。
 + void DX_ChangeBaudrate (uint32_t baud);
 +-パラメータ
 +--uint32_t '''baud'''
 +~ボーレート[bps]~
 +デフォルトは1000000[bps]
 +-戻り値
 +~なし
 +-使用例
 +
 +****DX_Ping (new) [#bf72833f]
 +指定されたIDの存在を確認する。
 + bool DX_Ping (uint8_t id, uint32_t timeout);
 +-パラメータ
 +--uint8_t '''id'''
 +~対象ID
 +--uint32_t '''timeout'''
 +~タイムアウト[ms]
 +-戻り値
 +~true: タイムアウト時間内に正常な応答があった~
 +false: タイムアウト時間を超過ないしアラームステータスが返された
 +-使用例
 +
 +****DX_Ping2 (new) [#nf87452a]
 +不明なIDのデバイスのIDを見つける。
 + bool DX_Ping2 (uint8_t *id, uint32_t timeout);
 +-パラメータ
 +--uint8_t '''*id'''
 +~見つかったIDを保存する変数のポインタを指定
 +--uint32_t '''timeout'''
 +~タイムアウト[ms]
 +-戻り値
 +~true: タイムアウト時間内に正常な応答があり、idへ応答したidが返される~
 +false: タイムアウト時間を超過しても応答が無かった
 +-使用例
 +
 +****DX_ReadByteData (new) [#f32225e1]
 +指定IDの指定アドレスから1バイトのデータを読み出す。
 + bool DX_ReadByteData (uint8_t id, uint8_t adr, uint8_t *result, uint32_t timeout);
 +-パラメータ
 +--uint8_t '''id'''
 +~対象ID
 +--uint8_t '''adr'''
 +~対象アドレス
 +--uint32_t '''timeout'''
 +~タイムアウト[ms]
 +-戻り値
 +~true: タイムアウト時間内に正常な応答があった~
 +false: タイムアウト時間を超過しても応答が無い、もしくはアラームステータスが返された
 +-使用例
 +
 +****DX_ReadWordData (new) [#m5230d39]
 +指定IDの指定アドレスから1ワード(2バイト)のデータを読み出す。
 + bool DX_ReadWordData (uint8_t id, uint8_t adr, uint16_t *result, uint32_t timeout);
 +-パラメータ
 +--uint8_t '''id'''
 +~対象ID
 +--uint8_t '''adr'''
 +~対象アドレス
 +--uint32_t '''timeout'''
 +~タイムアウト[ms]
 +-戻り値
 +~true: タイムアウト時間内に正常な応答があった~
 +false: タイムアウト時間を超過しても応答が無い、もしくはアラームステータスが返された
 +-使用例
 +
 +****DX_ReadBlockData (new) [#d0ba2a9e]
 +指定IDの指定アドレスから指定バイト数のデータを読み出す。
 + bool DX_ReadBlockData (uint8_t id, uint8_t adr, uint8_t *result, uint8_t len, uint32_t timeout);
 +-パラメータ
 +--uint8_t '''id'''
 +~対象ID
 +--uint8_t '''adr'''
 +~対象アドレス
 +--uint32_t '''timeout'''
 +~タイムアウト[ms]
 +-戻り値
 +~true: タイムアウト時間内に正常な応答があった~
 +false: タイムアウト時間を超過しても応答が無い、もしくはアラームステータスが返された
 +-使用例
 +
 +****DX_WriteByteData (new) [#nd22b7cf]
 +指定IDの指定アドレスへ1バイトのデータを書き込む。
 + bool DX_WriteByteData (uint8_t id, uint8_t adr, uint8_t dat, uint32_t timeout);
 +-パラメータ
 +--uint8_t '''id'''
 +~対象ID
 +--uint8_t '''adr'''
 +~対象アドレス
 +--uint32_t '''timeout'''
 +~タイムアウト[ms]
 +-戻り値
 +~true: タイムアウト時間内に正常な応答があった~
 +false: タイムアウト時間を超過しても応答が無い、もしくはアラームステータスが返された
 +-使用例
 +
 +****DX_WriteWordData (new) [#f8044400]
 +指定IDの指定アドレスへ1ワード(2バイト)のデータを書き込む。
 + bool DX_WriteWordData (uint8_t id, uint8_t adr, uint16_t dat, uint32_t timeout);
 +-パラメータ
 +--uint8_t '''id'''
 +~対象ID
 +--uint8_t '''adr'''
 +~対象アドレス
 +--uint32_t '''timeout'''
 +~タイムアウト[ms]
 +-戻り値
 +~true: タイムアウト時間内に正常な応答があった~
 +false: タイムアウト時間を超過しても応答が無い、もしくはアラームステータスが返された
 +-使用例
 +
 +****DX_WriteBlockData (new) [#f5423302]
 +指定IDの指定アドレスへ複数バイトのデータを書き込む。
 + bool DX_WriteBlockData (uint8_t id, uint8_t adr, const uint8_t *dat, uint8_t len, uint32_t timeout);
 +-パラメータ
 +--uint8_t '''id'''
 +~対象ID
 +--uint8_t '''adr'''
 +~対象アドレス
 +--uint32_t '''timeout'''
 +~タイムアウト[ms]
 +-戻り値
 +~true: タイムアウト時間内に正常な応答があった~
 +false: タイムアウト時間を超過しても応答が無い、もしくはアラームステータスが返された
 +-使用例
 +
 +****DX_SyncWriteData (new) [#pf448981]
 + bool DX_SyncWriteData (uint8_t size, const uint8_t *dat);
**サンプルプログラム [#kf8170aa] **サンプルプログラム [#kf8170aa]


トップ   差分 リロード印刷に適した表示   全ページ一覧 単語検索 最新ページの一覧   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom