micro:bitプログラミング(14) タイマーを作ろう

タイマーを作ろう

今日は前回の続きです!

micro:bit(マイクロビット)を使って、自分で計測時間を決められるタイマーを作ります。

もちろん今回も全てシミュレーターで実行できますので、無料でお試しできます?
実機を買うのは、遊び方や使い方を覚えてからでも遅くないですよ?

まずはいつものURLにアクセスしてください?

Microsoft MakeCode for micro:bit
A Blocks / JavaScript code editor for the micro:bit powered by Microsoft MakeCode.

自分で時間を決めてみよう

前回作ったタイマーでは、3分間しか計れませんでした。カップラーメンを作るくらいなら問題ありませんが、もうちょっと計ってみたいですよね?

ここでは、自分で計計する時間を決めて、その時間が経過したら音を鳴らすようにしてみましょう。

プログラムの全体はほとんど前回と変わりませんので、続きから説明しますね。

4分計ってみよう

プログラムする前に、次のことを考えてみてください。

前回作ったプログラムでは3分間を計ることができました。

これを使って4分計るにはどうしたらいいでしょうか?

そうですね!

3分(=180000ミリ秒)を計測していましたから、180000に1分(=60000ミリ秒)を足せばいいですね。

前回の180000のところを、240000とすれば4分を計ることができますね?

4分計って音を鳴らすプログラム

4分計って音を鳴らすプログラム

2分計ってみよう

では次のことを考えてみてください。

前回作ったプログラムでは3分間を計ることができました。

これを使って2分計るにはどうしたらいいでしょうか?

そうですね!

3分(=180000ミリ秒)を計測していましたから、180000から1分(=60000ミリ秒)を引けばいいですね。

前回の180000のところを、120000とすれば2分を計ることができますね?

2分計って音を鳴らすプログラム

2分計って音を鳴らすプログラム

自分で作った時間を計測するには

さぁ、ここまで考えたら自分で作った時間をどうやって計るのか分かりますよね?

そう!

180000(=3分)とか240000(=4分)、120000(=2分)とかしていた箇所を、変数に置き換えればできます‼️

まずは変数を作りましょう。

  • 「変数」から「変数を追加する」をクリック
  • 出てきたダイアログに「MyTime」と入力します
変数「MyTime」を作る

変数「MyTime」を作る

MyTimeの初期化

作成したMyTimeの初期化します。

最初に0にしたいので、次のようにしてみてください。

  • 「基本」から「最初だけ」をクリックします
  • 「変数」から「変数[MyTime▼]を(0)にする」をクリックします
  • それを「最初だけ」の中に入れます
最初に変数MyTimeを0にする

最初に変数MyTimeを0にする

これでmicro:bitが起動したときにMyTimeが0になります。

MyTimeを増やそう

次にこのMyTimeを増やす方法を考えます。

Aボタンはもう使っていますが、Bボタンはまだ使っていません。ということは、Bボタンを押されたらMyTimeを増やす、という命令を作れば良さそうです。

やってみましょう!

  • 「入力」から「ボタン[A▼]が押されたとき」をクリックします
  • [A▼]をクリックして[B▼]に変えます
  • 「変数」から「変数[MyTime▼]を(1)だけ増やす」をクリックします
  • これを「ボタン[B▼]が押されたとき」の中に入れましょう

これでBボタンが押されるたびにMyTimeが一つずつ増えていきます。

BボタンでMyTimeを一つずつ増やす

BボタンでMyTimeを一つずつ増やす

でも、これだとどれだけ押したか分からなくなりそうですね ?

なので、押した数をLEDに表示してみましょう。

  • 「基本」から「数を表示(0)」をクリックします
  • 「変数」から「MyTime」をクリックします
  • MyTimeを「数を表示(0)」の(0)の中に入れます
  • できた命令ブロックを「ボタン[B▼]が押されたとき」の一番下に入れます

これで自分の押した数がLEDに表示されるようになりました。

LEDに表示されるように改良

LEDに表示されるように改良

ここまでやったら、一度シミュレーターでBボタンを押して、思った通りの動きをするかどうか確認してみてくださいね。

180000を置きかえよう

ここまできたらあと一歩!

次は180000となっている箇所を、この変数MyTimeに置き換えます。

と言っても、そのまま置き換えてしまってはいけません。

MyTimeは1,2,3,…と増えていきます。この時間の単位は「」です。

しかし、稼働時間の単位は「ミリ秒」なので、そのままでは比べられません。

なので、自分の作った変数MyTimeをミリ秒に変えてあげる必要がありますね。

そのためには「計算」ブロックの「(0) [x▼] (0)」を使いましょう。

1分は60000ミリ秒ですから、「MyTime x 60000」とすることで分をミリ秒に変えることができますね。

やってみましょう。

  • 「計算」から「(0) [x▼] (0)」をクリックします
  • 「変数」から「MyTime」をクリックします
  • MyTimeを「(0) [x▼] (0)」の左側の(0)に入れます
  • 右側の(0)に6000と入力します

これで計算式の完成です。

分をミリ秒に変える計算

分をミリ秒に変える計算

最後にこの計算式を180000と置き換えれば完成です!

一応、全部の命令を載せておきますね。

もし正しく動かない場合は参考にしてみてください。

完成!

完成!

テストしよう!

それでは、作ったプログラムをテストしてみましょう。

いきなり大きな数字を入れると待っている間が退屈?

なので、最初は小さな数からやってみましょう。

  1. Bボタンを押してください。LEDに1と表示されればOKです
  2. Aボタンを押してください。1分後に音がなればOKです

正しく動きましたか?

もし間違っていた場合は上の完成図と自分のプログラムを見比べてくださいね。

正しく動いたら完成です‼️

自分だけのタイマーを使って、いろんな時間を計ってみてくださいね?

最後に

今日はあまり図を使いませんでしたが、ここまで一緒にやってきているから大丈夫でしょう?

もし分からない場合はコメントくださいね。

前回と今回で時間の計り方を勉強しました。

もしできるのなら、これをこんな風↓に改造してもいいかもしれませんね。

  • 1分ごとにLEDの数字を減らす
  • 数字ではなく、LEDの個数=残りの分数として光らせてみる

いろんな改造方法があると思いますので、ご自身で試してみてくださいね?

次回はこの方法を応用して、ストップウォッチを作ってみたいと思います?

ではまた!

コメント