« Visual Studio 2010でBoostを使う | トップページ | 悪質出会い系サイトの勧誘だったでござる (-_-) »

2012年12月15日 (土)

Hello world for Roomba Hack!!

やる気が戻ってきたので、Roomba Hackを始めました。

手始めに、ここを参考にさせてもらいながら通信ケーブルを作りました。材料はすでに揃えてあったのですが、仕事が忙しかったり疲れていたりでやる気が出なかったので今まで放置していました。

続いてプログラムです。まずはシリアル通信のループバックテストをしてから、プログラミング言語を学ぶと最初にやる”Hello world”の表示プログラム的な意味合いで、Roombaにドレミというメロディを演奏させるプログラムを作ってみました。

これがそのプログラムのプロジェクトワークスペースを固めたファイルです。「HelloRoomba.zip」をダウンロード

開発環境はVisual Studio 2010で、シリアル通信をするためにBoostライブラリを使いました。

このプログラムは full mode を使用しているので、一度このプログラムを走らせるとRoombaのボタンをいくら押しても何も変化しなくなります。元に戻したい場合は、

char command[] = { 128, 130, 132, (以下省略)

の部分を

char command[] = { 128, 130, 131, (以下省略)

にしてプログラムを再実行してください。132がFull Modのopcodeで、131がSafe Modeのopcodeです。Safe ModeになってからRoombaを持ち上げてやると、wheel drop (脱輪)を検出してPassive Modeに遷移します。Passive Modeになれば、ボタン操作等を受け付けるようになります。

作ってみてわかったことなのですが、Roomba Open Interface (ROI)にはバージョン情報を取得するコマンドなどがないので、Roombaとの通信が確立したのかどうか確認しずらいのですね。なので、ボーレートが合っているのかどうかわかりにくい。仕方がないのでメロディを鳴らして通信が確立したことを確認するのがよさそうです。

とりあえずこれでメロディがなることまで確認できたので、シリアル通信の無線化を含めていろいろ遊んでみる予定です。

« Visual Studio 2010でBoostを使う | トップページ | 悪質出会い系サイトの勧誘だったでござる (-_-) »

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/167990/56326839

この記事へのトラックバック一覧です: Hello world for Roomba Hack!!:

« Visual Studio 2010でBoostを使う | トップページ | 悪質出会い系サイトの勧誘だったでござる (-_-) »

最近の写真