アンドロイドでArduinoロボット動かしてテレビとか操作してみた。
動機
New York Timesで、「2011年の終わりには、googleがアンドロイドフォンで家の電球を操作できるようになる。すごいね。」的なことを報道していたので、発表される前にやってみようかな。という軽い気持ちから。
目的
- アンドロイドフォンで家事用ロボット!
- 基本的なアイディアとしては、ロボットを遠隔操作して、そのロボットが見付けたデバイスを操作してみよう!みたいなもの。
- 折角なので、この間発表されたAndroid Open Accessory Development Kit (ADK)を使ってアンドロイドでArduino操作してみた。
概要
- デバイス(デモではテレビとLEDライト)にはそれぞれRFIDタグを割り振てられている
- ロボットにはRFIDリーダーが取り付けられていて、それぞれのデバイスのRFIDを読み取ることが出来る。
- 使うアンドロイドフォンは2台。
- ロボットに載せてArduinoに命令を送りロボットコントロールするために一台(ロボットクライアント)
- 遠隔地からそのロボットをコントロールするために一台(コントローラークライアント)
- ロボットはビデオイメージをコントローラにストリームバック。アンドロイドフォンをサーバーにして、外部から直接SDにアクセスさせる仕組み。
- ロボットが新しいデバイス(RFID情報)を取得する度にその情報と目的地のRFID情報をコントローラクライアントに送信
- コントローラクライアントは、その方法を受け取り次第データベースに参照し、新しいデバイスであれば操作するためのAPIプラグインをダウンロードインストール
- というわけで、どんなデバイスでも遠隔操作できるようになるという仕組み。
例
あ、部屋のアラーム留めるの忘れてた!
ルームメイトにあとでとやかく言われるのやだな。
しかたない。アンドロイドフォン使って留めとくか。
おっと、主から連絡が入ったぞ
よしよし、アラームクロックまで移動させられよう。
アラームクロックのRFIDをスキャンして。
RFID情報とMACアドレス情報をベースに、操作するためのインターフェースを取得。
よし、これで家のアラームを操作できる
電源、オフ!
といった感じ。。
デモ (with presentation)
*デモは2分32秒から!
質問があればお気軽にー。