マイクロビット(micro:bit)でストップウォッチを作ってみましょう
心配ありません、とてもかんたんなサンプルプログラムです
サンプルプログラム
- A ボタンを押してから「もう一度Aボタンを押すまで」の時間を「秒単位」で表示するプログラムです
- B ボタンを押すと「0」にリセットできます
- B ボタンを押さず、A ボタンを繰り返し押すことで「ラップタイム」を測ることが可能です
サンプルプログラムは以下のとおりです
- 子供にもわかりやすいよう、意図的に秒単位にしています(小数点以下は四捨五入してます)
- 測ったタイムを記録する機能はありません
- あくまで秒単位です(1分10秒の場合は、70秒と表示されます)
動かし方
操作方法はとてもかんたんです
- 起動すると、「0(秒)」が表示されます
- 「0」の状態から「A」ボタンを押すと、時間計測が開始されます
- もう一度「A」ボタンを押すと、「最初にAボタンを押してから経過した時間」が表示されます
- さらに「A」ボタンを押すと、最初に「A」ボタンを押してからの時間が表示されます(ラップタイムの代わりに使ってください)
- 「B」ボタンを押すと「0」に戻ります
リセット機能です
プログラムの解説
変数の解説です
- 変数(スタート時間):最初に「A」ボタンを押した時間を「秒単位」で格納します
- 変数(ストップ時間):二回目以降に「A」ボタンを押した時間を「秒単位」で格納します
- 変数(時間):マイクロビットLED画面に表示するための「計測時間」です
「ストップ時間」ー「スタート時間」で計算されます
次に、「最初だけ」の解説です
3つの変数に「0」をセットして時間を初期化します
「ずっと」の解説です
測った時間を「LED画面に表示し続けます」
次に「ボタン A が押されたとき」です
- スタート時間が「0」の場合 つまり、時間を測る前 にAが押された場合は、スタート時間を設定しています
- スタート時間が「0以外」の場合 つまり、時間を測っている途中に A が押された場合はストップした時間を設定して、測った時間(つまり ストップ時間ースタート時間)を 変数:時間 に入力します
ポイントは、micro:bitの時間は単位がミリ秒だということですね。画面表示する際に必ずミリ秒単位で表示されると微妙に分かりづらいです。ここでミリ秒 -> 秒 に単位修正するために、「継続時間を1000倍」&「四捨五入する」こととしています
つまり、結構誤差があるということですね。1秒程度は誤差があるプログラムであるということをご認識ください
最後に「ボタン B が押されたとき」です
Bが押されたときは、ストップウォッチをリセットさせます
なので3つの変数(変数:時間、変数:ストップ時間、変数:スタート時間)に0を代入すればOKです
とても簡単ですね。ぜひやってみましょう
関連記事です
プログラミングにトライして見るなら、まずはLightbotから初めて見ることをおすすめします
以上です