2013年1月21日月曜日

スマートウォッチi'm Watchでプラレールを操作してみた

android 1.6ベースのスマートウォッチi'm Watchでプラレールを操作してみました。早速ですが動画はこちら。



操作の流れは下図のようになります。

i'm Watchは母艦であるGalaxy S3とBluetoothテザリングによりネットワークを共有しているので、i'm WatchからGalaxy S3へソケット接続し、命令を送信します。Galaxy S3は受け取った命令をもとに、プラレール上のPIC24FマイコンへBluetooth命令を送信し、モーターを動かしています。なお、今回母艦であるGalaxy S3にはカスタムロム(CM10-based JCROM)をインストールしています。

i'm WatchとPICは直接通信できないの?

当初はi'm WatchとPICを直接通信できないかと思っていました。i'm Watchはandroid 1.6ベースなので、自作アプリからBluetoothを利用するときは(例えば)backport-android-bluetoothなどを使わねばならないのですが、実際にやってみると

のようにbackport-android-bluetoothが必要とするandroid.bluetooth.IBluetoothDeviceがないと言われたので今回は断念しました。

ソースとか

通信のサンプルソースは以下の通りです。
このサンプルの利用イメージは下図のようになります。

母艦からPICへの送信アプリは、hrdakinoriさんのDroidControlにサーバーソケット機能を追加して作成しています。hrdakinoriさんに感謝します。

なお、i'm Watch用アプリであるDroidControlImWatchでは、母艦のIPアドレスを指定する必要があります。設定用のGUIを用意しましたので、そちらで設定を行ってください(追記2013.4.30)。なお、androidでBluetoothテザリングを行うと母艦側は192.168.44.1になるようなので、その値を初期値としてあります。ポートは両方のアプリで指定する必要がありますが、今回は8081にしています(特に根拠はないです)。

参考にしたサイト

0 件のコメント:

コメントを投稿