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のプロジェクト一式は、こちら

comments

仕事が早すぎる!!

  • Lionas
  • 2009年12月12日 21:39

Lionas さん

あざーっす!

電波暗袋ネタが使いたかったんです><

  • noritsuna
  • 2009年12月13日 00:39
comment form
comment form
Creative Commons License
This weblog is licensed under a Creative Commons License.