Dynamixel AX-12
今日はまじめにロボットのお話。バイオロイド搭載のDynamixel AX-12。
結局Merosで再度PWMサーボを使うことになって、ROBO−ONEがあり、スクエアがあり・・・で、カントリーが終わるまでは、触らないことにしてたんですが、最近K-PROJECTのかつさんからいただいていたマニュアルを印刷して読んでました。
もらったのが去年の12月なんでむしろ今更って感じなんですが;;(すみません。
で、いろんなセンサーの補正もかけたくてCM−5を使うのがどうも微妙なので、H8マイコンから動かす方法を考えていました。
でも結局、送信と受信の賢い方法が思い浮かばず、参考文献もいいのが見つからず、Broadcasting IDのみを使用していっそ受信を捨てることができないかとベステクさんにメールしてみた。
ちなみにBroadcasting IDというのは、全体への命令をあらわす。
普段、AX-12というモーターはIDが割り当てられており、サーボモーターひとつひとつに命令を送って動作する。
そして、その代わりに命令を送られたサーボモーターから、そのモーターの角度・スピード・内部温度などの値が戻ってくる・・・という使い方をする。
だが、全体を指定すると、それぞれのモーターからの情報は帰ってこないのだ。
そして、質問はこう。
- DATA(PIN3)にマイコンのTXDのみ接続してHalf duplex UARTを作成しない。
- 受信をせずにBroadcasting IDを使用する。
- そして一定時間ごとにサーボのデータを更新する。
これが可能かどうか。
結論はYESだそうだ。
実行も、いきなり「0xFF 0xFF 0xFE〜」のデータを送ったのでいいらしい。
これだと、PWMサーボの現行のシステムをそのまま移植できる気がする。
もちろん、AX-12というモーターの利点をほとんど殺した使い方になってしまうが、
- ソフトウェア割り込みのPWMによるジッターが発生しない
- 分割回路を必要としない
- スピードの指定が出来る
これだけでも、充分PWMサーボとの差別化は出来る。
あくまでも、現行のシステムと互換するための使い方であり、ゆくゆくはちゃんと処理したいと思う。
ていうか、モーターひとつひとつがアクチュエーターであり、センサーであるなんてすばらしすぎる。
モニターに各関節の温度が表示されれば、まるでガンダムじゃないかw
どっちかって言うと加工より制御の方が興味があるので、扱えるデータが多いのはかなり楽しい。
今回は本気でDynamixel AX-12でROBO−ONE目指そうと思います。
かつです。
私も最近、ようやくAX-12仕様の機体の制作を始めたスロースターターです(苦笑)
マイコン周りは全然分からないので、色々と情報公開していただけると助かります。
こちらこそ、かつさんの翻訳してくださったマニュアルが大変役に立ってます。
発見した情報などは、随時公開して行こうと思います。
AX-12ロボ、がんばりまっしょい♪