BrickPi でモーターの動作確認まで

Raspberry Pi で F# が動かせたので、今度は BrickPi の設定です。

image

BrickPi Image Setup: Setting up your SD Card For the BrickPi
http://www.dexterindustries.com/BrickPi/getting-started/pi-prep/

にある Modify your own image にしたがって、BrickPi パッケージをインストールしていきます。

git clone https://github.com/DexterInd/BrickPi.git

から始まって、ちまちまと設定をしないといけないので、Download and use our modified Raspbian image on your own SD Card のほうから、BrickPi インストール済みの OS をダウンロードしたほうが良さそうです。今回は、mono, fsharp のインストールが大変なので、ちまちまと modify していきました。sudo nano /etc/inittab のあたりとか、既に Raspberry Pi 配布の Debian では設定済みのところがあるので、あれ?と思うところもありあますが、そのまま進んで完了です。

■サンプルを動かして動作確認する

サンプルは Progam メニューの中に色々あります。グラフィカルにプログラミングができる Scratch も魅力的ではあるのですが、最終的には F# で動かしたいのでここは飛ばし、

Scratch

C ← BrickPi
http://www.dexterindustries.com/BrickPi/program-it/c/

でビルドをします。

BrickPi のボードの MB と MC に EV3 のモーターをつなげて

cd BrickPi_C/Project_Examples/simplebot/
cp ../../Drivers/*.h .
gcc -o sbot simplebot_simple.c -lrt -lm -L/usr/local/lib -lwiringPi
sudo ./sbot

でモーターが動きます。Drivers ディレクトリからコピーしているのは、BrickPi.h と tick.h とい2つのファイルです。

最初、sbot のようにユーザーモードで動かして、なんか BrickPiSetup で -1 を返すし変だなーと思っていたのですが、どうやら root 権限じゃないと動かないようです。シリアルポート ttyAMA0 を読み書きするのでルート権限が必要なようです。

ソース自体は実に単純で https://github.com/DexterInd/BrickPi_C/blob/master/Project_Examples/simplebot/simplebot_simple.c を見ると、

  • BrickPiSetup で初期化
  • BrickPi.Address に通信アドレス設定
  • BrickPi.MotorEnable[motor1] のモーターの設定
  • BrickPiSetupSensors() でセンサーに設定
  • BrickPi.MotorSpeed[motor1] にモーターのスピードを設定
  • BrickPiUpdateValues() で設定をアップロード

のようなパターンでできます。C# のサンプルはないので、適宜 API を DllImport する必要がありそうですが、まあなんとかなるかな。

■WiFi と電源供給の関係

image

モーターの駆動は上の 9V 電池から、WiFi などの動作は下の mini USB から取ってきているようです。BrickPi の 9V 電源を指しただけでも Raspberry Pi は動作するのですが、WiFi を差し込むと電圧が足りないのか止まってしまうんですよね。手元にあるのが、Logitec の Skylink LAN-W300n/U2S というものなのですが、消費電力が多いのかもしれません。

ちなみに、新しく買ってきた elecom WDC-150U2MBK は Raspberry Pi が認識しないというパターンに陥っているので、慎重に選んだほうがよさそうです。いくつかのサイトを見ると、Logitec か bufferlo の製品を使っている場合が多そうです。たしか、基盤は一緒なので、ドングルの名前さえうまく設定してやれば Raspberry Pi で認識するようになったハズなのですが。

■参考

工作と小物のがらくた部屋: BrickPi を入手しました。
http://junkroom2cyberrobotics.blogspot.jp/2014/02/brickpi.html

このサイトを見ると Planex の BT-micro3H2X が高いですがよさそうです。WiFi と Bluetooth が一緒になっているのでよさそうです。

カテゴリー: RaspberryPi パーマリンク