BLE Nano 通信速度向上の方法

お父ちゃん  2016.5.13 
Home > 電子工作 > BLE Nano 通信速度向上の方法
すき 0
うんこ 0
Bluetooth Low Energy (BLE)でリアルタイムに常時データ通信したい時に諸々設定いじったので備忘録的に記載します。
 
BLEがLow Energy (低消費電力)たる所以って通信をたまにして、あとは節電モードに入って休んでるってことですよね。
Beaconとかで使用する場合にはこれでもいいのですが、BLEってiPhoneでもAndroidでも共通で使えますし それなりの通信したいと思いますよね (トリバゴのCM風の言い方で)
 
スマホでコントロールするプラレールを作った時にBLE Nanoを使用し、リアルタイムデータ送受信を実現するために以下2点の操作実施しました。

ble.waitForEvent();を削除

BLE Nanoのサンプルコードのloopにあるble.waitForEvent();を削除すると通信速度上がります。

オフィシャルのサポート掲示板でも

“For BLE, it will enter sleep mode to save power, ble.waitForEvent() is to see any BLE events there for processing and then sleep, the sleep time is not fixed, so the loop should have minimal codes there, if you want to do a task, use a timer, see the SimpleControls examples to understand how it works.
If you don’t need to save power, try to remove the ble.waitForEvent().”

とのことでble.waitForEvent();が有効だと不定期にスリープモードに入るので通信速度あげたいなら削除していいようす。当然 消費電力は増加しますが。。

通信インターバル (Connection Interval) 時間を短くする

Connection Intervalは
C:\ユーザー\AppData\Local\Arduino15\packages\RedBearLab\hardware\nRF51822\1.0.5\cores\RBL_nRF51822\nRF51822-master\source
内のprojectconfig.hで設定できます。
 

デフォルトではこうなってるので

とかにすると速度向上します。
時間設定はアプリによって調整必要だと思います。

コメントはこちらから

メールアドレスが公開されることはありません。コメントのみでもOKです。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください