「ロボット・電子工作・マイコン」カテゴリーアーカイブ

FM3マイコンでLチカ

販売されてからだいぶ経ってしまいましたが、インターフェース誌2012年6月号付属のFM3マイコン基板 (富士通製Cortex-M3コア搭載マイコン MB9BF618T)を試してみました。

f:id:studio_k:20120929225622j:image:w320

今回のFM3マイコン(MB9BF618T)のスペックはかなりの高スペックです。

動作クロック 144MHz
フラッシュROM 1MB
RAM 128KB

開発ツールにIARの評価版(32KB制限)を使用して、SysTickタイマを使用したLED点滅のサンプルは本に書かれている通りであっさり動きました。
しかし、フラッシュROMが1MBもあるのに32KBまでというのはつらいです。(30日間期間限定もありますが、現在の私のペースではほとんど動かさずに期限オーバーとなってしまうでしょう。)
MDK-ARMの評価版も32KBまでとのことです。

そこで、インターフェース誌2012年7月号で紹介されていた、GCC+Eclipseベースの開発ツール(Pizzafactory8 CQ版)を試してみました。
CQ版と言いつつそのまま動くようにはなっていないようでかなり苦労しましたが、ここなどを参考に、なんとかLED点滅サンプルが動きました。

2足歩行ロボをKinectでコントロールするデモ(YOKAロボまつり26)

2012年7月22日に福岡市のロボスクエアで行われたYOKAロボまつり26で、2足歩行ロボをKinectでコントロールするデモをさせていただきました。

マグネットさん、ビデオの編集ありがとうございます。

当日は思うように動かないバージョンでしたが、その後、逆運動学の計算式を使ったプログラムに改良して、だいぶスムーズに動くようになりました。
現在、Wiiリモコンと組み合わせて、歩行モーションを指示できるように改良中です。
これでバトルもできるかも!?

BeagleBoardへUbuntu12.04とOpenCV2.4のインストール

5/1にUbuntu12.04とOpenCV2.4が立て続けにリリースされたので、BeagleBoardへ入れてみました。

1.Ubuntu12.04について

以下のサイトを参考に、プレインストールイメージからインストールしました。

http://legacyos.homeip.net/beagleboard2/

http://elinux.org/BeagleBoardUbuntu

そのほかの設定もこれまでと同様の手順で、特に問題なくインストール完了しました。

試してはいませんが、12.04ではarmhf(ARM Hardware Float)版となり、浮動小数点演算のパフォーマンスが上がるのではないかと思います。

2.無線LANについて

前の記事①前の記事②では

・無線親機 Buffalo WZR-HP-G300NH

・無線子機 PLANEX GW-USValue-EZ

を使用していました。

その後、無線親機をNEC Aterm WR8750Nに変えたところ、どうやってもGW-USValue-EZから接続できなかったため、無線子機にはBuffalo WLI-U2-KG54を使用していました。

その際、以下のようなエラーが出て、通信も安定しませんが、

phy0 -> rt2500usb_set_device_state: Error - Device failed to enter state 3 (-16).
phy0 -> rt2x00lib_autowakeup: Error - Device failed to wakeup.

以下のコマンドでパワーマネジメントをOFFにすると直りました。(wlan2の番号は環境に合わせる必要があります。)

/sbin/iwconfig wlan2 power off

OS起動時にOFFにするために、/etc/rc.localに以下を追記しています。

(ただし、スクリプトが実行されるタイミングが遅いため少しエラーが出ます。)

/sbin/iwconfig wlan2 power off

GW-USValue-EZが11nに対応し最高150Mbpsの通信速度に対して、WLI-U2-KG54は11gで最高54Mbpsとなりますが、WLI-U2-KG54の方が電波の通りが良いようで、実質はあまり問題はありませんでした。

Ubuntu12.04でも上記と同様にGW-USValue-EZはNGで、WLI-U2-KG54もパワーマネジメントをOFFで通信ができるようになりました。

3.OpenCV2.4について

今回は2.4をインストールしましたが、6/2に既に2.4.1がリリースされています。今後は1~2か月の短いペースでバージョンアップする予定のようです。

ビルドに必要なパッケージのインストールから、ビルドまで以下の通り。

# sudo apt-get install ffmpeg
# sudo apt-get install libgtk2.0-dev
# sudo apt-get install libavcodec-dev
# sudo apt-get install libavformat-dev
# sudo apt-get install libjpeg8-dev
# sudo apt-get install libtiff4-dev
# sudo apt-get install libgif-dev
# sudo apt-get install libv4l-dev
# sudo apt-get install cmake
# mkdir opencv
# mv OpenCV-2.4.0.tar.bz2 opencv
# cd opencv
# tar xjf OpenCV-2.4.0.tar.bz2
# mkdir release
# cd release
# cmake -DBUILD_EXAMPLES=ON -DCMAKE_BUILD_TYPE=RELEASE -DBUILD_PYTHON_SUPPORT=ON ../OpenCV-2.4.0
# make -j 2
# sudo make install
# sudo ldconfig

2.3.1までは、当環境にて使用しているUSBカメラ(LOGICOOL C905m)では以下の対応が必要でした。

MJPEG形式が使用できないので、YUYV形式を使用する

カメラの画像が遅延する

2.4ではC905mでもMJPEGが使用できるようです!!

また、その結果非常にスムーズに表示され、ソースを変更しなくても遅延も少なくなりました。

Ubuntuのバージョンアップではあまり違いを感じられていませんが、USBカメラ(LOGICOOL C905m)が問題なく使えるようになったのが非常にうれしいです。

[amazonjs asin=”4061538225″ locale=”JP” title=”OpenCVによる画像処理入門 (KS情報科学専門書)”]

Kinectで獅子舞ロボをコントロール

2年前に子供が作った獅子舞ロボをKinectでコントロールできるようにしてみました。

f:id:studio_k:20120506175821j:image:w480

獅子舞ロボはArduinoとサーボ×2でできています。
PCに接続したKinectで関節(Kinectではスケルトンと呼んでいます)を認識して、PCからシリアルで接続したArduinoに前後・左右の角度を送っています。

2自由度ですが、思ったよりも良く動くので、人型ロボットで動かしたくなりました。