2015年12月10日木曜日

IchigoJam で遊ぶ その6 IchigoStorms

 IchitoJam で遊ぶ 第6弾は LEGO Mindstorms を IchigoJam で制御してみようと思います。ただし、IchigoJam でダイレクトに LEGO Mindstorms のセンサとシリアル通信したり、サーボモータのエンコーダパルスをカウントしたりするのは難しいので(モータのPWM駆動くらいはIchigoJam単体でイケルと思いますが)、センサとの通信とモータエンコーダのカウント及びモータPWMは ATMega 328P (に Arduinoのファームウェアを書き込んだもの)に行わせて、IchigoJam は ATMega と シリアル通信することで、制御を行います。

 IchigoJam にスタックできるシールド形状の基板を秋月電子のパワーグリッドユニバーサル基板で作成しました。外部からの 6~9V前後の給電をレギュレータで5Vにしてシールド側の電源とするとともに、IchigoJam側のUSBコネクタに繋がるソケットに供給しています。
 実はこの基板の製作で一番苦労したのは、LEGO Mindstorms で使われている特殊なモジュラーコネクタを用意することでした。一見、電話(ISDN)などに使われる6極のモジュラーに見えますが、爪の位置が真ん中ではなくコネクタの穴に向かって覗きこむように見ると右側にずれています。この特殊なコネクタは Robo Product さんで入手しました。



 この IchigoJam + シールド を LEGO と結合できるようにするために、以前に BrickPi のケースを新型のものに取り替えた時に余った旧型の BrickPi のRaspberry Pi を固定するためのアクリルケース(ボード)を流用することにしました。
 IchigoJam と Raspberry Pi の穴位置を変換するスペーサマウントをアクリル板で自作して、取り付けました。





 IchigoStorms シールドを載せて、


 IchigoStorms 本体は、こんな感じで出来上がりました。



 超音波センサとサーボモータ大を2つ使って、簡単なタンクのモデルを組んでみました。





 IchigoJam の BASIC で簡単な障害物回避プログラム(超音波センサがある距離内で検知したら、左に曲がる)を試しに動かしてみました。


 ソースは・・・、そういてば、本体に載せたIchigoJamで直接プログラミングして、パソコンにダウンロードしてないや。あとで、追加で掲載する予定です。

 以下、落書きレベルですが、回路図のpng画像です。


以下が、ATMega328P側のコード(Arduinoスケッチ)になります。 EV3UARTSensor というライブラリを利用させてもらっています。このライブラリはこちらから頂いたものです。

IchigoJam の BASICコードは以下のとおり。

0 件のコメント:

コメントを投稿