BBC micro:bit で室内サイクリング
バーチャルライドアプリで室内サイクリングを楽しむには、FTMSに対応したバーチャルライドバイクが必要です。BBC micro:bitは、BLE機能があり、FTMSを実装することが可能です。
そこで、BBC micro:bitで使えるバーチャルライドバイク用のMakeCode拡張ブロックをつかって、バーチャルライドバイクをプログラミングしてみましょう。
準備
- BBC micro:bit (本体)
- 小型サーボモーター
- 室内サイクルトレーナー
-
Virtual Ride拡張ブロック - https://github.com/jp-96/pxt-ubit-virtualride
【ご注意】micro:bit v2.0には対応していません。
バーチャルライド
いくつかのバーチャルライドアプリがFTMSに対応しています。
- Zwift - https://www.zwift.com/
- Kinomap - https://www.kinomap.com/
- RGT CYCLING - https://www.rgtcycling.com/
- OneLap - https://www.onelapjapan.jp/ , https://www.onelap.com/
MakeCode でプログラミング
Fitness Machine Service を開始します
「最初だけ」で、Start the Fitness Machine Service を呼び出します。
これにより、micro:bitは、Fitness Machine Serviceを開始しますので、パソコンやスマホのバーチャルライドアプリから、接続できます。
1秒おきに、Indoor Bike Data を通知します
「ずっと」で、1秒おきに、Calc And Notify Indoor Bike Dataを呼び出します。
このブロックでは、CrankIntervalTimeとResistance Levelとで、ケイデンスやスピード、パワーを算出して、バーチャルライドアプリへIndoor Bike Dataとして、通知しています。
CrankIntervalTimeの値は、室内サイクルトレーナーのセンサーから取得してください。
シミュレーション情報に従って、負荷を変更します
クライアント(アプリ)からシミュレーション情報が送られてくると、On Set Indoor Bike Simulation Parameters Procedure through Fitness Machine Control Pointブロックが呼び出されますので、Get Simulation Gradeで、斜度(%)を取得し、負荷を変化させます。
室内サイクルトレーナーの負荷部分を小型サーボモーター駆動に改造し、取得した斜度(%)に連動するようにサーボホーンの角度をプログラミングしてください。
おわりに
今回、Microsoft MakeCode for micro:bit の独自拡張機能であるVirtual Ride拡張ブロックを使うことによって、バーチャルライドバイクを簡単につくることができるようになりました。Fitness Machine Service (FTMS)に対応したバーチャルライドアプリであれば、どれでも室内サイクリングが楽しめます。



