2016年3月20日日曜日

Dexter Industries GoPiGo 組み立て

 今回のガラクタは Dexter Industries社の GoPiGo です。


 Raspberry Pi + ATMega328 (Arudino相当) で構成される車輪ロボットで、モータ・タイヤ・アクリルのフレームと ATMega328 の載った基板等でキットになっています。

 パッケージ。


 開けたところ。


 ボディはDexter Industries お得意のいつものアクリル板をレーザ加工したものとネジ、支柱での組み合わせです。まずは、底板にギアモータを取り付けます。ギアモータはaitendo等でも売っている中華製のあれです。格安ですが両軸出ています。

 ギアモータは底面板にネジ止めするのではなくアクリルのT字型の小さな板で挟みこむような形でギアモータに空いている貫通穴と一緒に長いネジを通してナットで止めるのですが、自分はここを足回りなのでキツ目に締め込んでおこうと思ってドライバで締めた際に「ミシッ」という嫌な音がして小さな板にヒビが入ってしまいました。Dexterの組立てビデオを後から見たのですが、ここはドライバを使わず手でナットを締める程度にしておくみたいです。走らせた時ゆるまないのかな?


 ギアモータの内側の軸にスペーサ2枚とエンコーダ円盤を挿しこみます。ここもネジ止めなどはなく、挿すだけです。子供でも作りやすいようにドライバでのネジ止めも最低限にしてあるってことでしょうか。


 ひっくり返して、底板の上面に制御ボードを取り付けます。この制御ボードにはATMega328Pが載っていて、ファームウェアはArduinoのスケッチとして作成されているようです。GoPiGo は他のDexter Industries社製品同様に各種情報がオープンソースで提供されています。GoPiGoはこちらのGitHubに情報が公開されています。BrickPi や GrovePi も同様に Dexter Industries社はオープンにしてくれているのには感謝です。(Mindsensors社も各種センサの設計情報公開してくれないかな?)
 ちなみにGoPiGoの主なハード構成を回路図から見てみると、前述のとおり RPi と制御ボード上のATMega328P (ファームウェアを見るとArduinoのスケッチ、~.inoになっています)がやり取りをする構成です。回路図を見るとRPiとArduino(制御ボードのATmega328P)がUART、I2C、SPIでそれぞれ接続されているように見えますが、RPi側のライブラリとArduino側のスケッチを見ると RPi がI2CマスタでArduino側がI2Cスレーブとなっているようです。SPIとUARTの接続はArduino側のファーム書き換え用ではないでしょうか。また、モータのドライブはArduinoのPWM出力を HブリッジのICに入れているようです。また、フォトインタラプタの間にエンコーダ円盤を挟んでカウント信号をArduinoのInterrupt入力端子で受けているようです。


 次にボールキャスタを取り付けます。あとで気がついたんですが、上の写真はボールキャスタを前後間違えて取り付けています。ちょうどいい穴があったので画像向かって左側に間違って付けてしまいましたが、最終的に右側に取り付け直しています。


 制御ボードにRaspberry Piを裏返した状態で取り付けます。ボールキャスタの位置を取り付け直しています。


電池ボックスをマジックテープで取り付けます。


 裏返したところ。


 Raspberry Pi のOSはRaspbianをDexter Industries社がカスタマイズした Raspbian for Robots をダウンロードして使いました。
 続けて、ライントレース用センサオプションを取り付け。


 やっぱり、アクリル板と支柱の組み合わせ。


 こんな感じで取り付けられます。


 続いて、サーボマウント(パン=水平方向の首振り)オプションを取り付け。


 アクリル板とネジ・・・。


 組み立てて、Raspberry Piのカメラモジュールを取り付けました。


それと、Groveの超音波センサを両面テープで取付。


 これで、とりあえず、ハードの組み立ては終了です。


 さて、何をして遊ぼうか?