GND基本的な固定方法オプションフレームにより以下の様な構成が可能です。様々な配線方法が考慮されていますので、用途に応じた方法を選択します。TTLRS-485DXHUBとDynamixelを接続する場合は、同じピン数のコネクタを装備したケーブルを使用します。電源が供給された状態での配線作業は絶対に避けて下さい。配線を終え電源を投入すると、正常であればDynamixelの背面上部に装備された赤色のLEDが0.5秒点滅した後消灯します(ホストからLEDの点灯指示等が無いものとする)。通信を行っていないにもかかわらず電源投入時にLEDが常時消灯ないし常時点灯した場合は、何らかの重大な問題が生じている可能性があります。電源を切り、配線方法やケーブル、電源装置を確認して下さい。LEDが一定周期で点滅し続ける場合は、Dynamixel自信が何かしらの異常を検出した時です。通信プロトコルについてDynamixel(スレーブ)自らが勝手にデータを送信することは無く、別途用意されるPC等(マスターないしホスト)から送信されるデータをDynamixelが受信した際にのみデータを返信するといったマスタースレーブ方式を採用しています。決められた電文に従った(プロトコル)電文にのみ応答します。その1回分の電文をパケットと言います。Dynamixelシリーズには2種類の通信プロトコル(1.0と2.0)が存在し、本品はその2種類に対応しています。I/Fはシリアル通信を行う際の電気的な仕様の1つです。1つの信号線で送信と受信を行う半二重を選択しています。RS-485RS-485はシリアル通信を行う際の電気的な仕様の1つです。1つの信号を2本の差動信号に変換して伝達する事で、耐ノイズ性を向上させています。Dynamixelシリーズでは安定したデジタル通信を用いて制御する事としたためRS-485を採用しましたが、ケーブルの本数を増やすと配線作業に支障を来すため、1対(1つの信号)で送信と受信を行う半二重を選択しています。IDについてDynamixelは出荷時において個体識別用のID(数字)が全て1に設定されいます。その状態のまま1つのネットワークに複数台接続してしまうと、ホストから個々のDynamixelを識別することができないまでか、全てのDynamixelが自分自身への指令と認識してしまいます。そのため、複数台を接続して使用する際は、必ず予め1台ずつ異なるIDを設定しておきます。IDを設定する際は先の識別の問題を回避するためホストが提供するネットワークに1台のみのDynamixelを接続し、複数台のDynamixelが接続されていない状態で作業を行う必要があります。IDは、既存のIDと同じ値を設定する事が前提となります。IDを持ったDynamixelは同じ書き込みが行われますが応答は返しません。IDを持った複数台のDynamixelを同期して同じ運転を行わせるといった場合に利用できます。ボーレートについてDynamixelのボーレートは高いほど大量のデータを短時間に送受信できます。高いボーレートはケーブルの長さや等の外的要因が相まって、データそのものの信頼性が損なわれる確率が高くなります。複数台のDynamixelを使用する際は、全て同じボーレートに設定しておく必要があります。コントロールテーブルとはDynamixel内に用意されたメモリ領域をここではコントロールテーブルと称します。コントロールテーブル中の任意のデータにアクセスする手段として通信プロトコロルが用意されています。ホストから指定されたIDを持ったDynamixelのコントロールテーブルに対して読み書きを行う事で全てを統括するため、先のIDやボーレートもコントロールテーブル上に配置されています。コントロールテーブルの詳細は後述の表に示します。動作モードについてDynamixelは用途に応じて複数の動作モードを選択できます。大きく分けて3つの基本動作を持ちます。関節を構成する部位等に使用し、指定された角度を維持する。本Dynamixelでは「角度」とは言わず「位置」と称し、通常は0~360°の範囲でホーンの位置決めを行う。車輪を構成する部位等に使用し、指定された回転速度を維持する。指定された負荷を制御する。これらの制御の切り替えや制御を行う際の条件の設定は、コントロールテーブル上に配置された様々なパラメータの値を変更することで行います。1.0※プロトコルV2対応ファームウェアのプロトコルは以下と異なります。その場合はこちらを参照してください。DX/EX/AX/MXシリーズ共通の通信プロトコルです。XシリーズでプロトコルをV1に切り替えた際にも適用されます。WRITE基本的な情報IDDynamixelでは複数のデバイスを同じネットワークに接続して運用する事を前提としているため、各々のデバイスを区別するためにユニークなID番号を用いる事としています。ホストは任意のIDを持ったデバイスを指定して命令し、指定されたIDに一致したデバイスがそれに応答するといったマスタースレーブ方式を採用しています。複数のデバイスに同じID値が付けられている事は前提としていないため、1つのネットワークに同一IDを持つデバイスが複数存在してはなりません。コントロールテーブルデバイスの情報はメモリマップでとして提供されており、それをコントロールテーブルと称します。複数の情報はコントロールテーブル上の異なるアドレスに割り当てられており、必要に応じてホストから任意のIDを持ったデバイスの任意のアドレスへアクセスします。パケット通信ホストとデバイス間は一般的なシリアル通信を行うハードウェアで接続され、パケット単位で処理される共通の通信プロトコルを用いて相互に情報をやりとりします。ここではホストからデバイスへ送信されるパケットを「インストラクションパケット」、デバイスからホストへ送信されるパケットを「ステータスパケット」と称します。ホストから送信するインストラクションパケットの主な機能はIDの指定とコントロールテーブルの任意のアドレスへのデータの読み書きとなります。そのパケットに対して応答すべきデバイスから返信されるステータスパケットには、ホストから読み出し要求されたコントロールテーブル内のデータや、書き込み要求に対する整合性の結果などが含まれます。以後「0x」が付与された英数字は16進数、そうでないものは10進数とみなします。Levelによってパケットの有無が異なります。インストラクションパケットインストラクションパケットはホストからデバイスへ命令するためのパケットです。パケット構造は以下の通りで、囲み1つが1byteを意味します。Header先頭2バイトは0xFF,0xFFの固定値。ID送信先のデバイスのID。0~253(0x00~0xFD)の範囲及び254(0xFE)。254のIDは1回のインストラクションパケットで複数のデバイスに対して命令を発効する際に使用。LengthInstruction以後の全てのバイト数。Instruction以下のいずれかのインストラクション。4~ParameterInstructionで要求される追加情報(可変長)。Checksum計算方法は次の通りです。ParamN)計算された値が255を超えた場合は下位8ビットをSUMとします。ステータスパケットステータスパケットはホストから送信されるインストラクションパケットをデバイスが受信した後、その応答としてデバイスからホストへ返信されるパケットです。パケット構造は以下の通りで、囲み1つが1byteを意味します。Header先頭2バイトは0xFF,0xFFの固定値。LengthError以後の全てのバイト数。Errorパケット処理中に検出されたデバイスの動作状況等。電源電圧が指定動作電圧の範囲を超えたParameterインストラクションパケットに従った追加情報(可変長)。Checksum計算方法は次の通りです。ParamN)計算された値が255を超えた場合は下位8ビットをSUMとします。インストラクション詳細PING特定のIDを持ったDynamixelの存在を確認します。IDに254を指定してPINGインストラクションを送信すると、ネットワークに存在する全てのDynamixelが順次ステータスパケットを返します。インストラクションパケットのParameterなしステータスパケットのParameterなし例)INST:ID=1にPINGを発行。...ChecksumSTAT:ID=1のDynamixelが応答。...ChecksumREAD特定IDのデバイスへアドレス・バイトサイズを指定してコントロールテーブルのデータを読み出します。IDは0~253の範囲が指定できます。DATA[N-1]例)INST:AX-12A想定。Length=2(0x02)を指定してREADを発行。...ChecksumSTAT:8bit幅で現在のPresentTemperature=32(0x20)の値を返信。...ChecksumWRITE特定IDのデバイスへアドレス・データ(任意バイト数)を指定してコントロールテーブルへ書き込みます。IDは0~252の範囲と254が指定でき、254を指定した場合はステータスパケットが返りません。DATA[N-1]ステータスパケットのParameterなし例)INST:AX-12A想定。16bit幅)を指定してWRITEを発行。...ChecksumSTAT:ID=1のDynamixelが応答。WRITE特定IDのデバイスへアドレス・データ(任意バイト数)を指定してコントロールテーブルへ書き込む点ではWRITEインストラクションと同じですが、その後ACTIONインストラクションが実行されない限りコントロールテーブルへ反映されません。IDは0~253の範囲と254が指定でき、254を指定した場合はステータスパケットが返りません。Instructionを1にし、ACTIONインストラクションを待機中である事を示します。DATA[N-1]ステータスパケットのParameterなし例)INST:AX-12A想定。...ChecksumSTAT:ID=1のDynamixelが応答。WRITEインストラクションで待機中のデバイスのコントロールテーブルを更新します。IDは0~253の範囲と254が指定でき、254を指定した場合はステータスパケットが返りません。Instructionが1であれば0になりますが、0であったデバイスはエラーを返します。インストラクションパケットのParameterなしステータスパケットのParameterなし例)INST:ID=1に対しACTIONを発行。Instructionが1であった場合の正常時の返信。...Error0xFC...ChecksumRESET特定IDのデバイスを出荷時の状態にします。IDは0~253の範囲と254が指定でき、254を指定した場合はステータスパケットが返りません。インストラクションパケットのParameterなしステータスパケットのParameterなし例)INST:ID=0にRESETを発行。WRITEParameterに共通のアドレス・共通のバイトサイズ(16bit幅)・複数のIDと各データを指定した1回のインストラクションパケットで、複数のデバイスのコントロールテーブルへ書き込みます。インストラクションパケットのIDは254固定、パラメータ内のIDは重複しない0~253の範囲をとります。...例)INST:AX-12A想定。...Checksumコントロールテーブル(1.0)※プロトコルV2対応ファームウェアのコントロールテーブルは以下と異なります。その場合はこちらを参照してください。Ver.36以降を搭載した以下のDynamixelに共通するコントロールテーブルです。uint80~254データ幅が16bitないし32bitのアイテムはリトルエンディアン(データの下位バイトから順に格納)。Accessに(NVM)とあるアイテムは不揮発メモリとなっており、電源を切っても値が保持される。頻繁な書き換えは想定されていないため、書き換えは必要最低限にとどめること。Enalbeが0でなくてはならない。(reserve)はシステムで予約され、読み出した値に有効性はない。書き込みを行ってはならない。Valueは出荷時ないしファクトリーリセットを行った際の値。ファームウェアのバージョンによって値が変更される場合がある。Numberモデルナンバーです。各モデルには以下の固有値が割り当てられます。Firmwareファームウェアのバージョンです。ID各Dynamixelを特定するための固有の値で0~253の範囲で設定します。同一ネットワーク中のDynamixelには各々異なるIDが要求されます。IDとし、全てのDynamixelへパケットを送信する際に使用します。4:Baudrate通信速度を決める分周値で、通信速度は次式で導かれます。-0.160※ホストとのボーレートの誤差は±2%以下が要求されます。MXシリーズのみ以下の値の時にイリガルなボーレートが割り当てられていますので注意が必要です。Timeインストラクションパケットが送られた後、ステータスパケットを返すまでの待ち時間を設定します。単位は2[usec]です。LimitJointモード時のDynamixelの動作角度範囲を設定します。Positionは以下の範囲にある必要があります。Errorが起こります。設定値に応じてDynamixelの動作モードが変わります。Limit時Jointモードとなり、出荷時の位置決め制御となります。0Wheelモードになります。Turnモードになります。Mode※MX-106のみデュアルモードにおけるマスタ/スレーブ、及び回転方向を設定します。1:逆方向マスター/スレーブ選択ビットスレーブに設定されたDynamixelは、マスターに設定されたDynamixelと同期化用ケーブルで接続すると、マスタに設定されたDynamixelと同期したポジションに自動的に動作します。1つの関節に対し2つのDynamixelを使用する事で、トルクアップが期待できます。同期化ケーブルの接続によりスレーブの回転方向が変わり、黒い線を並列に接続した場合は順方向に、クロスして接続した場合は逆方向に回転します。Positionで位置決め制御を行います。TemperatureDynamixelの動作温度の上限です。Errorが起こります。VoltageDynamixelの動作電圧の上限と下限です。Errorが起こります。値は実際の電圧の10倍です。Address12が80なら、電圧の下限は8Vに設定されます。TorqueDynamixelの最大トルク出力です。Runモードになります。35)の2つに最大トルクが定義されます。電源を入れるとEEPROMの最大トルク値がRAMの最大トルク値にコピーされます。35)の値によって制限されます。LevelDynamixelが返すステータスパケットの措置を設定します。LED対応するBitが1に設定されると、その要因発生時にステータスLEDが点滅します。要因が解消するとLEDは2秒後に消灯します。Limit(Address34~35)を0にします。Limit(Address34~35)を再設定する必要があります。Turnモード時のオフセット位置を調整します。Positionに現れます。divider位置の分解能を設定します。Positionに現れます。Run(ゼロトルク)になります。Address24に1を設定するかゴールポジションが設定されるとトルクが有効になります。25:LED1が設定されるとLEDが点灯し、0が設定されると消灯します。GainMXシリーズはPID制御を行います。Gainは微分ゲインで、いずれも値の範囲は0〜254です。PositionDynamixelの出力角の位置を設定します。0(0x000)~4095(0xfff)の設定値に対し、出力軸は0°~360°の範囲で動作します。Turnモード時はそのモードに従います。Positionへ動く時の速度で、単位は約0.114rpmです。0に設定すると速度制御を無視し、モータの最大速度で運転します。1023に設定すると約117.07rpmで運転します。Wheelモード時は10bit目が回転方向を意味します。Limit最大出力の上限値です。単位は最大出力に対する割合です。Torqueが512なら最大出力対比約50%、1023なら100%が出力の上限となります。Torqueの値を初期値として使用します。Position出力軸の現在の角度です。Positionと同様0(0x000)~4095(0xfff)の値に対し、0°~360°を表します。Wheelモードでは総回転角度を表します。Speed出力軸の現在の角速度です。ビット10は回転方向を表します。Load操作するDynamixelの負荷の大きさです。10bit目が負荷の向きを表します。Voltage現在のDynamixelに供給されている電圧です。値は実際の電圧の10倍です。10Vは100(0x64)と表します。TemperatureDynamixelの内部温度(°C)です。InstructionREG_WRITEコマンドでインストラクションが格納されたとき1が設定され、ACTIONコマンドによって格納されたインストラクションが完了したら0が設定されます。Positionが更新され、Dynamixelが目標位置へ移動している間に1となります。47:Lock1が設定されるとAddress24からAddress35以外のエリアが書き換え不能となります。ロックを解除する方法は、電源を切る以外にありません。48~49:Punch操作時にモータに供給される最小の電流です。初期値は0x20に設定されていて、最大値は0x3ffです。68~69:Current現在の電流値です。単位は4.5mAです。値が2048より大きい場合は+方向に、2048より小さい場合は-方向に電流が流れている事を意味します。Enable※MX-64及びMX-106のみ0が設定されるとトルク制御モードが停止し位置決め制御ないしエンドレスターンが使用できます。1が設定されるとトルク制御モードが開始され、位置決め制御ないしエンドレスターンが使用できなくなります。Torqueで指示された値でのみ運転します。Torque※MX-64及びMX-106のみトルク制御モード時のトルクを指定します。単位は4.5mAです。0~1023の範囲でCCW方向、1024~2047の範囲でCW方向にトルクを指示します。Limit以上の値は出力されません。Positionが更新された際のメカニカルなショックを抑止する場合に設定します。0に設定すると加速度制御を行いません。Speedを0以外の値に設定する必要があります。Limitを0に設定するとWheelモードになります。車輪として使用する際にこのモードに設定します。Positionは車輪の総回転角度を表します。値はCCW方向に回転すると減少、CW方向に回転すると増加し、積算されます。値が0を下回ると65535になり、65535を超えると0になります。Turnモードになります。通常の位置決め制御時の範囲である-180°~180°を超えて、-2520°~2520°の位置決め制御を行う際にこのモードに設定します。