昨年に引き続き、BLEのスピード・ケイデンスセンサをsimulinkに接続する試みです。Arduino MKR WiFi 1010に、simulinkモデルを書き込んで動かすことを想定しています。
以下のページが参考になるのですが、なかなかハードルが高そうです。
サイクリングスピード・ケイデンスサービス 1.0
https://www.bluetooth.com/ja-jp/specifications/specs/cycling-speed-and-cadence-service-1-0/
参考にさせていただいたブログです。大変助かりました。有難うございました。
susutex’s blog様
https://susutex.hatenablog.com/entry/2017/08/24/200000
昨年分からなかった一番上の数字、1だとスピードセンサ、2だとケイデンスセンサを示していることが分かりました。昨年試したときは2を示しており、センサはケイデンスモードにしていたので、問題ないことが確認できました。
今年は、スピードセンサとケイデンスセンサとが兼用のものでないセンサも購入して試してみました。それぞれ別々のsimulinkモデルにしています。一つのモデルにしたところ、監視と調整で動かすとエラーが出たりしたためです(PCスペックの問題かもしれません)。
モデル自体については、複雑なことはほとんど無くBLEの送信及び受信ブロックを配置し、CentralでScanを押せばメータを検索する設定になります。メータが見つかったら、一端BLEのブロックの設定をOKで閉じ、もう一度設定を開くと先ほど検索したセンサがデバイスのところに表示されます。なお、一つのブロックで設定すれば、他のブロックにもデバイスが反映されていましたのでスキャンは不要です。
スピードセンサ
ケイデンスセンサ
ケイデンスの場合の設定(BLE Sendブロック)
今回は上手く動いてくれました。一部疑問点は残るものの、一番上の数字がスピードセンサでは1、ケイデンスセンサでは2を示しています。2A5C(CSC Feature)に2を送信していますが、スピードセンサで試す時にこのようにしないと動かなかったりしたので、2にしています。本来は1だと思うのですが分かりません。2A5B(CSC Measurement)で受信するのがデータです。
テストでは、センサを手に持って振って値が変わるかを確認しますが、何度もやっていると時々センサが吹っ飛びそうになります。
自転車に取り付けて確認してみましたが、速度に変換する計算がまだできていないため、今後引き続き取り組んでいきたいと思っています。今のところ、ホイールを回転させると数値が変わっていき、ホイールが止まると数値変化も止まります。上から2-5番目の数値は累積値になっていました。6,7はホイールが回転していると常に変化していました。
スピードセンサ(リアホイールのハブに固定します。写真真ん中辺り)
実はサイクルコンピュータもあるのですが、simulinkで遠回りですが慌てず進めていきたいと思います。昨年とあまり変わらずすみません。今回、自転車での確認からをMacbook Airで試してみましたが特に問題なく環境を移行できています。さらにCOMポートの設定がオートでできるので、使いやすくなりました。
サイクルコンピュータ
ペアリングすればすぐ速度を検出しました。
今回使用したセンサです。配線がいらないので煩わしさが全くありません。私が購入した時よりも500円ほどお安くなっています。