2012年8月8日水曜日

Arduino with USB BT ドングル


ついにこの日がやってきました。
待ちに待った、USB Bluetooth ドングルを Arduino で使うライブラリが登場しました。

必要なものは
・Arduino (Uno など)
・USB Host Shield 2.0 (相当)
・USB BT ドングル (対応機種不明)
 (Planex BT-Micro EDR1X、Buffalo BSHSBD03、で動作確認)

です。
使用ソフトウェアは
Arduino IDE 1.0.1 + USB Host Shield Library 2.0 です。

UHS ライブラリに、最近のアップデートで「RFCOMM」というサンプルが追加されました。
詳しくは、Circuits@Home の記事 を確認して下さい。
基本的にはライブラリをインストールして、サンプルを実行するだけです。


この RFCOMM というサンプルは Android のBT 通信でよく使われるSPP 通信に対応しています。上の写真は S2 BT Terminal です。
Android 側から送った文字は Arduino のシリアルポートに出力されます(もちろん逆方向も)。

Harpy でも試してみました。
このHarpy は USB Host Shield 2.0 相当に改造してあります。
(改造の詳細は Harpy のメーリングリストなどに情報があります。)

USB のVbas を3.3V から取る様に改造しているめか、Planex ドングルは使えたものの、Buffalo ドングルは使用で来ませんでした。

また、シリアル通信で文字化けするので、115200bps →19200bps に速度を落としました。

とりあえず通信ができただけですが、待望のBT ドングル通信に感動しています。
待ち切れなくてPIC に走ったり、いろいろ手を出しましたが、、、
やっぱりArduino が 好きです。

※USB Host Shield 2.0 に関して
Sparkfun の USB Host Shield や、Harpy nano の回路は Circuits@Home の古い USB Host Shield が元になっています。
Sparkfun のシールドを、ライブラリ2.0 に対応させるには、一部改造する必要があります。こちらの記事を参考にして下さい。

本家 Circuits@Home のシールドは代理店がないので、個人輸入するしかないのですが、Amazon でUHS 2.0 相当のシールドが売られている様です。(コピー商品のようですが、、、)

1 件のコメント:

  1. はじめまして。TKAと申します。
    ArduinoとAndroidのBTドングルを使った通信を
    試している者です。

    このサイトに倣い、以下の条件で行いましたがAndroid側のBTターミナルで接続をしようとすると「unable to connect」となってしまい通信ができません。考えられる原因があればご教授いただきたく思います。

    Android端末:IS05 (android 2.3.4)
    Arduino: Arduino UNO
    USB host shield : sparkfun製(改造済み)
    BTドングル:PLANEX BTMICROEDR1XZ
    BTターミナル:S2 Bluetooth Terminal3
    arduinoにコンパイルしたプログラム:circuits@homeに載っている「hello from arduino」を表示するもの

    何卒、よろしくお願いいたしますm(_ _)m

    返信削除