2009年12月11日
Android + Arduino BT
Twitter上で、Android Bluetoothのexpert @esmasui と @Lionas が、このあたり から、Android + Arduino BT で、きゃっきゃっうふふ な企てをしているのを発見。
こちらの「Funnel Tap」の拡張として、面白いかも知れないと思い、その場で『Arduino BT(Bluetooth)』をクリック!クリック!
さっそく、届いたので、HT-03Aと接続出来るか、実験してみることに。
ただ、
※RFモジュールについての注意: 本モジュールは開発者・無線技術者向けのエンジニアリングサンプル製品です。 技術基準適合は受けておりませんので、電波暗室や電波障害を起こさない十分に広い敷地・建屋内で実験を行ってください この商品を製品として市場に販売することはできません。通信ICの評価、デバッグ、研究・開発用としてお役立てください。
のため、こちらの『電波暗袋』に入れて、実験実験。
■Arduino BT編
●PCのBluetooth SPP 経由でプログラムを書き込む
今回は、Arduino BT の サンプルプログラム01号 を、そのまま利用しました。
SPP的には、1.1秒ごとに「ciao」という文字列が送られてくると言うものです。
■HT-03A編
●ピアリング
設定⇒ワイヤレスの設定⇒Bluetooth
で、Arduino BTとのピアリングしておきます。
パスコードは12345です。
●Bluetooth用のコード一式の準備
Android 1.6ですので、 @esmasui せんせ作の「backport-android-bluetooth」を利用します。
しかし、Arduino BTが悪いの、Android 1.6が悪いのかわかりませんが、
IBluetoothDeviceCallback#onGetRemoteServiceChannelResult(String address, int channel)
にて、channelが、『-1』として返ってきてしまいます。
そこで、固定的にchannel番号を振ってしまうコードを追加しました。
(Android 2.0では、直っていると信じて・・・)
改造版のIBluetoothDeviceCallback(BluetoothDeviceクラス内で匿名関数として定義されています)の、
ソースコードはこちら。
jarはこちら。
●HT-03A to Arduino 通信サンプル
ただ単に、「Read」ボタンを押すと、SPP通信して、値を取り、表示するだけのサンプルアプリを作りましたので、ついでにアップしておきます。
とりあえずの動作確認用なので、エラー処理とか全然やっていません。
Eclipseのプロジェクト一式は、こちら。
- by noritsuna
- at 13:43
comments
仕事が早すぎる!!
Lionas さん
あざーっす!
電波暗袋ネタが使いたかったんです><