2014年8月14日木曜日

夏休みの工作 RAPIRO

 お盆の時期になり、自分も少しですが夏休みを頂きました。といっても、腰も痛いし、どこに言っても混んでいるので、今年の夏休みに予定しているイベントといえば、初日の病院の受診めぐり・・・くらいです・・・。
 さて、病院を済ませた後は、ゆっくり今年の夏休みの工作を楽しみたいと思います。ちなみに去年は「パイ揉みハンド」、でしたが、今年は、先日、共立エレショップさんで期間限定の特別価格で販売していたときに買っておいた RAPIRO を組み立てたいと思います。




 まずは開梱。




二段になって部品が入っています。組み立て説明書は入っておらず、そのかわりに、Web上に画像付きで丁寧な組み立てマニュアルが公開されています。

 まずは、マニュアルに従って、サーボにシールを張ります。サーボ本体とコネクタにペアでシールを張って、あとで、どのコネクタがどのサーボのものかわからなくならないようにするためです。



 次に電池ボックスを組み立てます。ちなみに電池はEneloop または Enagizer 5本を推奨しています。これは、サーボを動かすのに大電流を取り出せるバッテリが必要だからでしょう。




 電池ボックスを組み立てたら、Eneloopを入れて、組み立て・調整時にも電源として利用します。


 制御ボードに電源と各サーボをシールと制御ボードのシルク印刷とを合わせて取り付けていき、一旦、電源を入れます。


 これで、各サーボが初期位置に移動するので、このあとはサーボの位置を下手に動かさないように注意が必要です。

 まずは、下半身から組み立てます。腰部の大型パーツにWaist用サーボを取り付けます。


 腰部パーツを裏返して、左右脚のヨー回転(leg_y)サーボを取り付けます。



 ケーブルを腰の中心付近の穴に通し直したところ。


 脚のブラケットを取り付けて、


 脚の平部分のサーボをブラケットとともに取り付けます。


 足底部を取り付けて固定し、下半身はとりあえず完成。


 続いて上半身。胸(胴体)下半分のパーツを取り付けて、


 肩のサーボ&肩のブラケットを取り付けます。肩、腕で使用するサーボは脚部で使用するサーボより一回り小さいものです。


 次に左右の腕を組み立てていきます。


 肘部は稼働しませんが、ハンドが開閉します。



 腕を取り付けました。


 続いて、制御盤を取り付けて、各サーボのコネクタを配線します。


 制御ボードを胴体に取り付けて、


 サーボを配線。


 サーボのコードが乱雑になるので、コードをうまくまとめて空きスペース(コードを逃がすためのスペースやコードを引っ掛ける爪があらかじめ胴体にちゃんと整形されています。)

  
 コードをまとめた後、自分はホットボンドでチョン付して、軽くコードを固定しました。


 我ながら綺麗にまとめたな・・・と思っていたんですが、腕のサーボケーブルの動作域分の余長を取るのをすっかり忘れていました・・・。腕をあげようとするとコードがパンパンに張ってしまって動きません。とほほ・・。


 仕方ないので、ホットボンドを一旦外して、再度、余長を確保した上で、再度、ケーブルを整理。


 首のサーボを取り付けた胴体上部をかぶせて、


 頭部のベース(首)パーツを取り付けます。二本でているリボンケーブルはLED基板用とRaspberry Pi接続用です。


 ここからは、頭部の組み立てになります。後部パーツにLEDボードを取り付けて、


 前部パーツに目のカバーを取り付けます。


 ここで、オプションのRaspberry Pi も合わせて取りつることにしました。まず、前部パーツの眉間にカメラモジュールを取り付けます。ただし、カメラが上下逆に取り付けられるのですが、いいのでしょうか?撮影される画像を逆さにして処理しろってことなのかな?


 カメラを取り付けた前部パーツを裏返して、面構え。


 Raspberry Pi を取り付けます。首部の台座に取り付けられるようになっています。


 ちょっと、やりずらいですが、前部パーツのカメラのケーブルをRaspberry Piのコネクタに差し込みます。



 制御ボードからのRaspberry Pi 接続用6pinケーブルをGPIOコネクタに差し込みます。


 頭部の前後パーツを合わせて、後ろ側からネジ止めして完成です。

 正面。


 斜め前。



 斜め後ろ。



 電源を投入して、目のLEDを点灯させたところ。


 自分の場合は組立直後だと、左足首、ウェスト、右肩が若干初期位置からずれていました。この初期位置というか原点姿勢の調整は制御基板のスケッチにオフセット値をハードコーディングすることで調整するようになっています。そうそう、そもそもRAPIROの制御基板はArduino互換ボードです。なので、プログラムはArduino IDEでターゲットをArduino UNOとしてスケッチを作成することで行います。元になるファームウェアとしてのスケッチがRAPIROのサイト(というかGit)に公開されているので、これをダウンロードしてコンパイル、書き込みを行います。先の原点調整はスケッチ内のオフセット値を適宜書き換えながら書き込み、実行を繰り返して調整を行っていきます。

 Raspberry Pi が接続されて起動している状態だとそちらに引っ張られて、制御基板のArduinoのシリアル通信・書き込みが失敗するので、一旦、Raspberry Pi のケーブルを外して調整作業を行いました。今後は、いちいち頭部のネジを外して開けてコネクタを抜くといったことは面倒なので、Raspberry Pi側のGPIOのピン状態を切り替えるとか、外部回路を追加するとか、何らかの方法でRaspberry Piを接続したままUSB経由で制御基板のArduinoを利用できる方法を考えようと思います。って、思ったんだけど、よく考えたら、Raspberry Pi上でArduino IDE動かせばいいんじゃん。外部パソコンでやるのとくらべると、コンパイル等遅いかもしれませんが、その方法が一番良さそうです。

 これで、組み上げは終わったんですが、ここで、もう一度、頭部と胸部を外して、胸部にPSDセンサを取り付けて制御ボードのA6ピンのアナログ入力に接続しました。ついでに、頭部のRaspberry Pi用カメラモジュールを逆さ(上下正しい)方向に付け直しました。カメラ用のネジ穴の配置と合わないんですが、穴の位置に合わせると上下が逆になってしまうので。