第二弾として、実際に自転車をこいで、ホイールの回転数を取得して画面上の自転車レースに反映させるゲームを作成しました。
ホイールの回転数の取得は、実際の自転車用スピードメーター(サイクルコンピューター)と同じ原理で、スポークにつけた磁石がセンサーを通過することで回転数を取得します。micro:bitにはオンボードの磁気センサーがついていますのでうってつけです。
ここで問題なのが、Scratch3.0とmicro:bitを連携させるためにScratch micro:bit HEXをインストールすると、micro:bitで使えるI/Oが限られてしまうことです。入力のインターフェースとしては加速度センサーによる傾き、P0~P2のデジタル入力、ABボタンしか取得できず、磁気センサーの情報が取れません。
解決策として、磁気センサー用と、Scratchlink用の2つのmicro:bitを組み合わせることにしました。2つのmicro:bitのP0、3V、GNDの3つの端子を、金属製スペーサを挟んでビス止めしました。
磁気センサー用のmicro:bitのセンサー値が閾値を超えたら、P0に1を出力、Scratchlink用のmicro:bitは、P0が1になったらScratch側のカウンターをインクリメントし、一定時間ごとの回転数をカウントします。