2013年10月15日火曜日

LEGO Mindstorms EV3 シリアルコンソール接続

 2連休レゴマラソン?の休憩に、LEGO Mindstorms EV3 をいじってみました。
EV3 を購入したアフレルさんのサイトに技術情報(外部機器との接続)として、有益な情報があるので、それらを試してみます。

 こちらをもとにUbuntu上にクロス開発環境を構築して、SDカードからブートできる環境を作成しました。

 また、秋月のFT232のUSBシリアル変換モジュールでEV3ブロクのセンサポート1でシリアル接続をできるアダプタを作成して、ブート時のシリアルコンソール画面を確認しました。



 EV3のセンサポートのシリアルコンソールでの配線がわからなかったのですが、NXTとの互換性を考えるとおそらくI2Cポート(ピン5と6)のSCLとSDAがNXTのときRS485だったし、その2ピンがTXとRXになっているに違いありません。2分の1の確率で間違っていたら逆につなぎ替えるつもりで接続して、どうやら成功。ピン5がEV3側のTX(→秋月FT232モジュールのRXポートへ接続)、ピン6がRX(←秋月FT232モジュールのTXポートと接続)のようです。ちなみにGNDはピン2と3です。


 起動時に「l」(小文字のL)キーを押すとU-bootのプロンプトに入れます。何もしなければそのままLinuxが立ち上がります。U-bootに入った場合は「boot」で続けてLinuxが起動します。
 Linux Version のところに「muneo@ubuntu」となていますが、ubuntuというマシン名のマシンでmuenoユーザがビルドしたことがわかります。本体ではなくSDカードのビルドしたLinuxが起動しているのが確認できます。
 このEV3のLinuxはディストリビューションとしては「Angstrom Linux」といわれるものだそうで、ググってみると、かつてリナザウ(LinuxのZaurus)に使われていたもののような記述がありました。また、最近ではBeagleBoneの標準インストールディストリビューションになっています。Angstromのサイトレポジトリをみると色々あるんですが、EV3のLinuxにはパッケージマネージャは入っていないようです。BeagleBone Black だとopkgで色々インストールできるんですが・・・。ipkファイルをどうにか解凍して中身を取り出したらEV3でも使えるんでしょうか?ソースで入手してクロスコンパイルして手動でコピーしろってことでしょうかね。まあ、非力なCPU(といっても、10年くらい前のLinuxパソコンだと思えば十分なスペックなんじゃないだろうか?)ではセルフコンパイルも辛いし。

 今後、Google先生にお伺いしたり、ソースを読んだりして、モータを回したり、センサを使ったりしてみたいと思っています。I2C接続も可能なはずなので、独自のセンサも行けるんじゃないかと期待しています。それと、無線LANもついていてLinuxですから、Web系サービスを動かして、なにかゴニョゴニョとできるんじゃないかという期待もあります。Raspberry Pi とともに楽しみなプラットフォームです。