サーボモータをPCから制御
「Bioloid」を購入した際に、一緒に買っておいた物があります。
・USB-シリアル変換ケーブル BTE061B
・Dynamixel AX用接続ケーブル BTE063
の2つです。
これを使って、PCからサーボモータの制御や調整ができるそうです。
という訳で、試してみました。
さて、「AX接続用ケーブル」の説明によると、信号線のみなので、電力は別途用意してくださいとの事。
確かに、3ピンの内両端の2本しか結線されていません。
電力は別途と言われても・・・
と、ここで思いつきました。
サーボモータ(AX-12)には、3ピン端子が2つあります。
2つあるのは、マルチドロップ(ようするに「じゅずつなぎ」)接続するためです。
3ピンの内訳は、GND(接地線)、電力線、信号線となっています。
AX-12はマルチドロップ接続なのだから、末端の奴は端子が1つ空いてます。
空いてるんだから、そこへ繋いでしまえ!(一応、壊れないかどうか考えてみましたよ。)
2端子ある内の、一方からは電力供給で、もう片方は信号線による制御という訳です。
結果から言うと、うまくいきました。
(USB-シリアル変換器の切替スイッチをTTL側にするのを忘れていて、少々手間取りましたが・・・)
テストに使ったのは、右腕用サーボモータ(ID6)です。
この接続方式だと、両側に制御マイコンが繋がった状態になっていますが、CM-5側は動かさなければ良いわけです。(↓逆さまだからIDは”9”じゃなくて”6”です!!)
Dynamixel専用のコンフィギュレータソフトで値の読み出しと、サーボの回転を試してみました。
特にトルクやスピードのリミットを設定せずに動かしてみたので、怖いくらいのスピードで動きます。
(ロボット用サーボとしては普通クラスなのでしょうが、これでも危なそうです。もっと高トルク&高速な物って、ほんと危険そうですね。)
ちなみに、AX用接続ケーブルの「BTE063」を分解してみましたが、予想通りでD-SUB9ピン端子の1番と5番をAX-12用ケーブルの両端のピンに直結しているだけです。これくらいなら自分でも作れそうですが、1個 1,000円なので、手間を考えると購入したほうがよさそうですね。
この辺りのマイコン系は知識がないのでこれから勉強していく必要がありそうです。
USB-シリアル変換器は、ここの「UMOD」 を利用すると自作できるのかも?ドライバをどうするかが問題ですが。
いろいろ調べていて分かった事。(間違った認識をしている部分もありそうですが)
・AX-12の通信は、TTLレベルのハーフデュプレックス方式である。
具体的には、双方向通信を1本の信号線(GND+信号線)で行うために、時分割(交互?)で送信/受信の信号を流すということ。 制御系ではよく使われる方式みたいで、センター(BioloidだとCM-5)マイコンが中心となって、各端末(AX-12)をマルチドロップで接続して双方向通信を行う。
・CM-5とAX-12の間では、以下のような仕組みで通信されるらしい。
1)CM-5 → AX-12(ID1) ”指定角度へ動け”(送信)
CM-5 ← AX-12(ID1) ”了解”(受信)
2)CM-5 → AX-12(ID1) ”現在の角度を教えろ”(送信)
CM-5 ← AX-12(ID1) ”180°です”(受信)
3)CM-5 → AX-12(全部) ”トルクの上限を100にしろ”(ブロードキャスト送信)
CM-5 ← AX-12(?) ”了解(?)” 応答あるのか?
マルチドロップで繋がっているから、基本的に信号は全ての端末に受信される。
各AX-12は、自分のID(重複はダメ)向けに送られてきたコマンドのみを受ける(実行に移す)。
センター(CM-5)が親分なので、指示がない限り、各AX-12が勝手に信号を出す事はない。
もう少し勉強したり、実験したりして理解できたら、まとめて見ようと思います。
ところで、USBじゃなくて、RS-232Cと直結する変換ケーブルって無いのですかね?
→ (後日)無い理由が分かりました。よく考えれば単純な事で、通常のPC等にあるシリアル端子で、RS-232Cとなると、最大通信速度は58Kbpsとかになってしまう訳で、「Bioloid」のデフォルトである1Mbpsでの通信が出来ないからですね。(RS-232Cの規格では数百Kbpsぐらいは可能なようですけど)
ヒューマノイド型 完成
ちょっと、日にちが空いてしまいましたが、ようやくヒューマノイド型の組み立てが完了しました。
バランスをとってやれば、電源を入れなくても立てるようです。(油断すると、後ろに倒れる・・・)
ちゃんと配線できたか不安でしたが、とりあえず動作確認用のプログラムで動かしてみます。
背中の制御ボードの「Start」ボタンを押すと、各サーボモータがちょっとだけ動くプログラムです。
電源を入れると、モーター音なのか「キーン」という高周波音がします。
ボタンをポチっと押してみると、サーボモータに振られたID順にピクっと動きました。
とりあえず、全部(19個)のサーボモータが正常に動くようです。
次に、サンプルの音を検知すると、腕を上げて拍手するというプログラムを試してみます。
・・・と、その前に、発売元から制御マイコン用のファームウェアのバージョンアップが出ているので、それをダウンロードしておきます。
サンプルプログラムを開始して、頭の上あたりで手を叩いてみると・・・
ちゃんと、反応してロボットも手を叩いています。
(マニュアルには、人間が手を叩いた回数に合わせて、ロボットも手を叩くとありますが・・・なんか1回すくないような気も・・・きっと音センサーの感度のせいでしょう。)
とりあえず、動作したのですが、あちこちから「びろん」と出ているケーブルが気になる。
動かすときに、ケーブルが噛んだり、絡まったりしないようにする必要があると聞いた事があるので、配線をきれいにまとめる事にしました。
とりあえず、ケーブルがサーボモータやブラケットに沿うように、ブラケットの隙間を通してみました。
さらに、膨らむのをおさえるために、サーボモータに密着するようにしてみました。
写真だと分かりにくいですが、細めの結束線(コードとかを束ねるアレ。正式名称は不明。)で、サーボモータのネジ穴を通して結んでいます。(あまった部分は、ニッパーでカット。)
足首の部分は、どうしようか悩んだ挙句に、近くに転がっていた黒いビニールテープ(正確には絶縁テープでしたが)で、ぐるっと巻いてしまいました。
サーボモータが黒いので、ちょうど良い感じです。
↓狭いところにケーブルを通すには、先の曲がったピンセットが活躍しました。
そんな感じで、ケーブルを配線し直したのがコレです。
(左側) 前から撮影。なかなかスッキリしました。
(右側) 後ろから撮影。肩のあたりがイマイチです・・・
最後に、組み立て中に使用した主な工具などを紹介しておきます。
ボルトやナットが入っている白い器は、ピクニックとかで使う紙製の深皿です。(お薦め!)
ドライバーは、「+0」と「+1」があった方が良いです。(「+1」はサーボホーンの反対側をネジ止めする時に使用しました。)
アーム型ロボットの組立て
日曜日に購入したロボット組立てキットですが、ようやく動作確認を兼ねた組立てをしてみました。
マニュアルにサンプルとして掲載されていた、アーム型ロボットです。
サーボモータにブラケットを付けるためのボルトとナットが小さくて、最初はてこずりましたが、いくつか締めている内に慣れてきました。
パソコンに専用ソフトもインストールして、テスト用のプログラムで動かしてみました。
(組立て開始からテスト動作までで、約3時間ほどかかりました。集中してればもっと早いかも)
簡単とはいえ、自分で組み立てた物が動くのを見るのは楽しいですね。
話題はちょっと変わりますが、写真の背景に写っているのは、そのまんま畳です。
実は、ロボットの組み立て等をするために、作業スペースを用意しておきました。
部屋(フローリング)の端に、畳タイプの収納ボックス を並べて、その上に小さいテーブル(万力付き)とライトを備え付けてみました。(長さ90cm×幅60cm×高さ44cmのボックスを4つ並べています。)
中の物を取り出すためには、上の物を移動させる手間がかかりますが、収納容量が大きいので重宝しています。
ロボットキットを購入
ロボットの組立てキットを購入しました。
Webでの事前調査により、購入を決意していた「Bioloid
」です。
ベストテクノロジー
という会社から9月に発売された、組立てキットです。
夕方(5時頃)に、秋葉原の「ツクモ ロボット王国
」に行きました。
多分、入荷待ちだろうと思い、予約のつもりで行ったのですが、店員に
聞いてみると、現品があるとの事。
その場で購入出来てしまいました。
あらかじめ、Webで組立ての情報も得ていたので、工具専門店にも
立ち寄って、細身のプラスドライバーも購入しておきました。
(普段、あまり意識してませんでしたが、ちゃんとサイズの規格があ
るんですね。”+0”でも随分細いのですが、念のため”+00”と
いうもっと細いドライバーも購入しておきました。)
早速、家に帰ってから組立てをと思うところですが、なにせロボット
は初心者ですから、まずはじっくりとマニュアルを読む事にします。
どちらにしろ、今日は、情報処理試験を受験してきたところなので、
疲れていることもあって、中身を少し確認するだけにしておきました。














