RoombaをVisual C#で制御する(その1)
花岡ちゃんのウィークエンド:ルンバを試す
今回のウィークエンドは、おなじみのお掃除ロボットRoombaをパソコンにシリアル接続し、C#で動かしてみます。
Roomba500シリーズ以降は、本体上部の化粧パネルの下に7pinのminiDINソケットがあり、ここからシリアル通信でコマンドを送ることでモーターを動かしたり、センサを読み取ったりすることが出来ます。まずはこのパネルを外します。
化粧パネルは主に4箇所の爪で止まっています。後部にさらに2つ小さなフックがありますが、爪を全部外すと自然に外れます。4つの爪は最初の写真の付箋を貼った位置にあり、小さなマイナスドライバーを化粧パネルと本体の隙間に入れ、こじりながら化粧パネルを持ち上げると、比較的容易にパネルを外すことが出来ます。
7pinのminiDINですが、意外と入手困難です。ぶらりと秋葉に立ち寄ったついでにガード下で探したのですが、なかなか見つかりません。昔はこんなものどこにでもあったのですが、さすが21世紀、こういうアナログな部品は見つけにくいようです。結局、マルツで発見しました。結構いいお値段です。
ハウジングがかなり大きいのでピン部分だけを使います。こんな感じです。
シリアル通信の結線はこのようにします。MAX232の電源電圧が電池4本だとちょっと高めですが、これくらいなら問題ありません。
PDF版はこちらから。
「rommbaif.pdf」をダウンロード
Roombaのシリアルは5Vのロジックレベルなのでパソコンのシリアルポートに接続するには、このようにレベル変換が必要です。また、シリアルケーブルは普通のヘッドホンなどに使う2芯シールド線を使い、GND,TXD,RXDの3本だけを接続します。柔らかいし、ダイソーで売っている「ヘッドホン延長ケーブル」で簡単に延長できるので、移動ロボットの実験には最適です。ノイズの心配をする向きもありますが、普通の家庭の環境では115Kで通信しても何ら問題ありません。写真のものはネットタンサーの付属品ですが、自作も簡単です。
コマンド体系などについては、英文ですがこのドキュメント"iRobot Roomba 500 Open Interface(OI)Specification"があります。内容はそれほど難しくないので、試してみたい方はダウンロードしておくことをお勧めします。
続きは次の投稿にて。
« ロボット開発プラットフォームについて | トップページ | RoombaをVisual C#で制御する(その2) »
「花岡ちゃんのウィークエンド」カテゴリの記事
- レーザー距離センサVL53L0Xを複数使うには(2022.05.01)
- 【訂正!】PIC24Fでレーザー距離センサVL53L0Xを使う(2022.04.13)
- PIC24Fでレーザー距離センサVL53L0Xを使う(おしまい)(2022.04.14)
- PIC24Fでレーザー距離センサVL53L0Xを使う(その3)(2022.04.13)
- PIC24Fでレーザー距離センサVL53L0Xを使う(その2)(2022.04.12)
« ロボット開発プラットフォームについて | トップページ | RoombaをVisual C#で制御する(その2) »
コメント