きっかけ
転がっていた古いUSB用のbluetoothドングル(EDR2系)をUSBホストシールドにつないで使おうとしたら,arduinoのusbホストシールドのライブラリがでかすぎて,作ったプログラムがUNOに入れられなかったので,別の手段を使おうとした.
USBホストシールドを使わない場合の手段は以下の2つ
- BLEのシールドを使う
- bluetoothシリアル変換のボードを使う
BLEの場合
RaspbianをインストールしたRaspberry PiのUSBポートにBLEドングルを指して,BLEシールドを載せたArduinoと通信させようとしていろいろハマった.とりあえず,低レイヤでの接続はできたが,アプリレベルでの通信には成功していない.
なお,これ以上の対応は面倒なので当面は放置することにした.
Bluezのバージョン
現在のバージョン(2015-05-05版のDebian Wheezy相当)のRaspbian付属のBluezはBLEがまともに動作しないため,なるべく新しい版を自分でコンパイルしないといけない.
LinuxのBLE対応のレベル
とりあえず,接続はできるが,低レベルの機能しか提供されていないため,プロトコルスタックをアプリが実装しないといけない.スクリプト言語からgatttoolを叩いて,その出力をスクリプト言語で加工すればできなくもないが,非常に面倒.
結論
あまりに面倒なのでとりあえず,ここまでで中断して他の手段を試すことにした.iOSやandroidだとプロトコルスタックが提供されているのに,非常に残念.
0 件のコメント:
コメントを投稿