3: 2009-07-03 (金) 13:11:29 sho ソース 4: 2009-07-03 (金) 18:31:51 sho ソース
Line 3: Line 3:
16ビットデータレジスタは(L)と(H)の2バイトで表されます。両方のバイトが1つのインストラクションパケットにおいて同時に書き込まれる必要があります。 16ビットデータレジスタは(L)と(H)の2バイトで表されます。両方のバイトが1つのインストラクションパケットにおいて同時に書き込まれる必要があります。
|Address|Item|Access|Initial Value| |Address|Item|Access|Initial Value|
-|0 (0x0)|[[Model Number(L)>#f9679b00]]|R|28 (0x1C)+|0 (0x0)|[[Model Number(L)>#f9679b00]]|R|-
-|1 (0x1)|[[Model Number(H)>#f9679b00]]|R|0 (0x00)+|1 (0x1)|[[Model Number(H)>#f9679b00]]|R|-
-|2 (0x2)|[[Version of Firmware>#c0b99f75]]|R|?|+|2 (0x2)|[[Version of Firmware>#c0b99f75]]|R|-|
|3 (0x3)|[[ID>#afcb4273]]|R/W|1 (0x01)| |3 (0x3)|[[ID>#afcb4273]]|R/W|1 (0x01)|
|4 (0x4)|[[Baudrate>#a99cb9a8]]|R/W|34 (0x22)| |4 (0x4)|[[Baudrate>#a99cb9a8]]|R/W|34 (0x22)|
Line 55: Line 55:
**各アイテムの詳細 [#bb158fce] **各アイテムの詳細 [#bb158fce]
-***Address 0, 1 (0x00, 0x01) Model Number [#f9679b00]+***Model Number [#f9679b00]
モデルナンバーです。 モデルナンバーです。
-***Address 2 (0x02) Version of Firmware [#c0b99f75]+***Version of Firmware [#c0b99f75]
ファームウェアのバージョンです。 ファームウェアのバージョンです。
-***Address 3 (0x03) ID [#afcb4273]+***ID [#afcb4273]
各Dynamixelを特定するための固有のIDナンバーです。同じネットワークの各Dynamixelに異なるIDが必要です。 各Dynamixelを特定するための固有のIDナンバーです。同じネットワークの各Dynamixelに異なるIDが必要です。
-***Address 4 (0x04) Baudrate [#a99cb9a8]+***Baudrate [#a99cb9a8]
通信速度を決定します。以下の公式で計算します。~ 通信速度を決定します。以下の公式で計算します。~
Baudrate[BPS]=2000000 / (value + 1)~ Baudrate[BPS]=2000000 / (value + 1)~
Line 81: Line 81:
注意: ±3%以下の許容誤差が一般に通信可能な範囲です。 注意: ±3%以下の許容誤差が一般に通信可能な範囲です。
-***Address 5 (0x05) Return Delay Time [#h9279b18]+***Return Delay Time [#h9279b18]
インストラクションパケットが送られた後、ステータスパケットが返ってくるまでの時間です。遅延時間は2uSec * Address5の値です。 インストラクションパケットが送られた後、ステータスパケットが返ってくるまでの時間です。遅延時間は2uSec * Address5の値です。
-***Address 6, 7, 8, 9 (0x06, 0x07, 0x08, 0x09) CW Angle Limit, CCW Angle Limit [#r26ada5a]+***CW Angle Limit, CCW Angle Limit [#r26ada5a]
Dynamixelの動作角を設定します。Goal Positionは以下の範囲にある必要があります。~ Dynamixelの動作角を設定します。Goal Positionは以下の範囲にある必要があります。~
CW Angle Limit <= Goal Position <= CCW Angle Limit~ CW Angle Limit <= Goal Position <= CCW Angle Limit~
Goal Positionが動作角のリミットを越えると、Angle Limit Errorが起こります。 Goal Positionが動作角のリミットを越えると、Angle Limit Errorが起こります。
-***Address 11 (0x0B) Highest Limit Temperature [#pf1cedb0]+***Highest Limit Temperature [#pf1cedb0]
Dynamixelの動作温度の上限です。Dynamixelの内部温度がこの値より高くなるとOverheating Errorが起こります。値は℃です。 Dynamixelの動作温度の上限です。Dynamixelの内部温度がこの値より高くなるとOverheating Errorが起こります。値は℃です。
-***Address 12, 13 (0x0C, 0x0D) Lowest Limit Voltage, Highest Limit Voltage [#p813d1f0]+***Lowest Limit Voltage, Highest Limit Voltage [#p813d1f0]
Dynamixelの動作電圧の上限下限です。現在の電圧(Address42)が指定した範囲から出ると、Input Voltage Errorが起こります。値は実際の電圧の10倍です。例えばAddress12が80なら、電圧の下限は8Vに設定されます。 Dynamixelの動作電圧の上限下限です。現在の電圧(Address42)が指定した範囲から出ると、Input Voltage Errorが起こります。値は実際の電圧の10倍です。例えばAddress12が80なら、電圧の下限は8Vに設定されます。
-***Address 14, 15, 34, 35 (0x0E, 0x0F, 0x22, 0x23) Max Torque, Torque Limit [#sa69d1ab]+***Max Torque, Torque Limit [#sa69d1ab]
Dynamixelの最大トルク出力です。この値が0に設定されるとDynamixelはトルクがかかっていないFree Runモードになります。EEPROM(Address14, 15)とRAM(Address34, 35)の2つに最大トルクが定義されます。電源を入れるとEEPROMの最大トルク値がRAMの最大トルク値にコピーされます。DynamixelのトルクはRAM(Address34, 35)の値によって制限されます。 Dynamixelの最大トルク出力です。この値が0に設定されるとDynamixelはトルクがかかっていないFree Runモードになります。EEPROM(Address14, 15)とRAM(Address34, 35)の2つに最大トルクが定義されます。電源を入れるとEEPROMの最大トルク値がRAMの最大トルク値にコピーされます。DynamixelのトルクはRAM(Address34, 35)の値によって制限されます。
-***Address 16 (0x10) Status Return Level [#fc051727]+***Status Return Level [#fc051727]
インストラクションパケットを受けた後にDynamixelがステータスパケットを返すかどうかを決定します。 インストラクションパケットを受けた後にDynamixelがステータスパケットを返すかどうかを決定します。
|Adress16|ステータスパケット| |Adress16|ステータスパケット|
Line 106: Line 106:
Broadcast ID(0xFE)を使ったインストラクションの場合は、Address16の値に関わらずステータスパケットを返しません。 Broadcast ID(0xFE)を使ったインストラクションの場合は、Address16の値に関わらずステータスパケットを返しません。
-***Address 17 (0x11) Alarm LED [#m1f363e1]+***Alarm LED [#m1f363e1]
対応するBitが1に設定されると、Errorが起こったときにステータスLEDが点滅します。 対応するBitが1に設定されると、Errorが起こったときにステータスLEDが点滅します。
|Bit|Function| |Bit|Function|
Line 119: Line 119:
すべてのビットのOR論理演算に従って動作します。例えば0x05が設定されていたら、Input Voltage ErrorかOverheating Errorが起こったときにLEDが点滅します。エラー状態から正常状態に戻るとLEDは2秒後に点滅を止めます。 すべてのビットのOR論理演算に従って動作します。例えば0x05が設定されていたら、Input Voltage ErrorかOverheating Errorが起こったときにLEDが点滅します。エラー状態から正常状態に戻るとLEDは2秒後に点滅を止めます。
-***Address 18 (0x12) Alarm Shutdown [#aa4c7882]+***Alarm Shutdown [#aa4c7882]
対応するビットが1に設定されていて、エラーが発生するとDynamixelのトルクがオフになります。Alarm LEDとは異なり、Errorが発生した後、正常状態に戻ってもトルクオフの状態が維持されます。復帰するためにはTorque Enable(Address24)を1に再設定しなければなりません。 対応するビットが1に設定されていて、エラーが発生するとDynamixelのトルクがオフになります。Alarm LEDとは異なり、Errorが発生した後、正常状態に戻ってもトルクオフの状態が維持されます。復帰するためにはTorque Enable(Address24)を1に再設定しなければなりません。
|Bit|Function| |Bit|Function|
Line 131: Line 131:
|Bit0|1に設定されていたら、Input Voltage Errorが起こるとトルクをオフにします| |Bit0|1に設定されていたら、Input Voltage Errorが起こるとトルクをオフにします|
-***Address 20~23 (0x14~0x17) Down Calibration, Up Calibration [#d4af5057]+***Down Calibration, Up Calibration [#d4af5057]
Dynamixelで使用されるPotentiomerterの誤差を補うのに使用されるデータです。ユーザーはこのデータを変更できません。 Dynamixelで使用されるPotentiomerterの誤差を補うのに使用されるデータです。ユーザーはこのデータを変更できません。
以下はRAMエリアです。~ 以下はRAMエリアです。~
-***Address 24 (0x18) Torque Enable [#m041ac16]+***Torque Enable [#m041ac16]
最初に電源を入れるとDynamixelはTorque Free Run(ゼロトルク)になります。Address24に1を設定するとトルクが有効になります。 最初に電源を入れるとDynamixelはTorque Free Run(ゼロトルク)になります。Address24に1を設定するとトルクが有効になります。
-***Address 25 (0x19) LED [#k6f31590]+***LED [#k6f31590]
1が設定されるとLEDが点灯し、0が設定されると消灯します。 1が設定されるとLEDが点灯し、0が設定されると消灯します。
-***Address 26~29 (0x1A~0x1D) CW Compliance Margin, CCW Compliance Margin, CW Compliance Slope, CCW Compliance Slope [#ac00ee58]+***CW Compliance Margin, CCW Compliance Margin, CW Compliance Slope, CCW Compliance Slope [#ac00ee58]
Dynamixelのコンプライアンスは、コンプライアンスのMarginとSlopeを設定することで定義されます。この特徴は出力軸で衝撃を吸収するのに利用します。下のグラフはそれぞれのコンプライアンス値(A、B、C、Dの長さ)がポジションエラーと適用されたトルクによってどう定義されるかを示します。 Dynamixelのコンプライアンスは、コンプライアンスのMarginとSlopeを設定することで定義されます。この特徴は出力軸で衝撃を吸収するのに利用します。下のグラフはそれぞれのコンプライアンス値(A、B、C、Dの長さ)がポジションエラーと適用されたトルクによってどう定義されるかを示します。
#ref(DxCntTable1.png,90%) #ref(DxCntTable1.png,90%)
Line 152: Line 152:
また[[Endless Turn>#j6a51fa3]]モードにする際に使用します。詳細は[[Endless Turn>#j6a51fa3]]参照。 また[[Endless Turn>#j6a51fa3]]モードにする際に使用します。詳細は[[Endless Turn>#j6a51fa3]]参照。
-***Address 30, 31 (0x1E, 0x1F) Goal Position [#ee2d2463]+***Goal Position [#ee2d2463]
Dynamixelの出力角の位置を要求します。0x3ffを設定すると出力軸が300°の位置まで動きます。 Dynamixelの出力角の位置を要求します。0x3ffを設定すると出力軸が300°の位置まで動きます。
#ref(DxCntTable2.png,80%) #ref(DxCntTable2.png,80%)
-***Address 32, 33 (0x20, 0x21) Moving Speed [#i69bf70b] +***Moving Speed [#i69bf70b] 
-出力軸がGoal Positionへ動く時の角速度を設定します。1に設定すると最低速度となります。0に設定すると速度調節が全く適用されない供給電圧で可能な最高の速度となります。~ +出力軸がGoal Positionへ動く時の角速度です。0に設定すると速度調節が適用されない供給電圧で可能な最大の速度になります。
-Moving Speed(Address 32, 33) 及びPresent Speed(Address 38, 39)の値に0.111を掛けるとRPMに変換することができます。すなわち、最大値は1023×0.111=113.6RPMとなります。しかし、RX-28の最大速度は79.4RPM(at 16V)です。速度の範囲を広く設定しているのは、外的要因によって最大速度より速くなる場合を考慮したためです。つまり16Vを供給する場合は、0~79.4RPMの範囲内で速度を制御することが可能です。Moving Speedの値と速度の関係を下図に示します。+
-#ref(DxCntTable3.png,100%) +***Present Position [#g40fd002]
- +
-***Address 36, 37 (0x24, 0x25) Present Position [#g40fd002]+
出力軸の現在の角度です。 出力軸の現在の角度です。
-***Address 38, 39 (0x26, 0x27) Present Speed [#ra254ee8]+***Present Speed [#ra254ee8]
出力軸の現在の角速度です。 出力軸の現在の角速度です。
-***Address 40, 41 (0x28, 0x29) Present Load [#k921f4f9]+***Present Load [#k921f4f9]
操作するDynamixelの負荷の大きさです。ビット10は負荷の向きです。 操作するDynamixelの負荷の大きさです。ビット10は負荷の向きです。
| Bit | Bit15~11 | Bit10 | Bit9 Bit8 Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 | | Bit | Bit15~11 | Bit10 | Bit9 Bit8 Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 |
Line 174: Line 171:
Load Direction = 0 : CCW Load, Load Direction = 1 : CW Load Load Direction = 0 : CCW Load, Load Direction = 1 : CW Load
-***Address 42 (0x2A) Present Voltage [#o9dde163]+***Present Voltage [#o9dde163]
現在のDynamixelに供給されている電圧です。値は実際の電圧の10倍です。例えば、10Vは100(0x64)と表します。 現在のDynamixelに供給されている電圧です。値は実際の電圧の10倍です。例えば、10Vは100(0x64)と表します。
-***Address 43 (0x2B) Present Temperature [#yb6e508c]+***Present Temperature [#yb6e508c]
Dynamixelの内部温度(℃)です。 Dynamixelの内部温度(℃)です。
-***Address 44 (0x2C) Registered Instruction [#x5982be7]+***Registered Instruction [#x5982be7]
REG_WRITEコマンドでインストラクションが格納されたとき1が設定され、ACTIONコマンドによって格納されたインストラクションが完了したら0が設定されます。 REG_WRITEコマンドでインストラクションが格納されたとき1が設定され、ACTIONコマンドによって格納されたインストラクションが完了したら0が設定されます。
-***Address 46 (0x2E) Moving [#jf0f3fa1]+***Moving [#jf0f3fa1]
Dynamixelが供給された電力で動いているときに1が設定されます。 Dynamixelが供給された電力で動いているときに1が設定されます。
-***Address 47 (0x2F) Lock [#bb3a2a7c]+***Lock [#bb3a2a7c]
1が設定されるとAddress24からAddress35以外のエリアが書き換え不能となります。ロックを解除する方法は、電源を切る以外にありません。 1が設定されるとAddress24からAddress35以外のエリアが書き換え不能となります。ロックを解除する方法は、電源を切る以外にありません。
-***Address 48, 49 (0x30, 0x31) Punch [#f79fd083]+***Punch [#f79fd083]
操作時にモータに供給される最小の電流です。初期値は0x20に設定されていて、最大値は0x3ffです。 操作時にモータに供給される最小の電流です。初期値は0x20に設定されていて、最大値は0x3ffです。


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