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)
に対応したバーチャルライドアプリであれば、どれでも室内サイクリングが楽しめます。