モード切替機能のつくり方

 2020年3月号では、探検ウォッチに時計機能
きのう
を追加したね。でも、時刻
じこく
を確認するだけじゃなくて、いろいろな機能を切り替えて使ってみたい。そこで、モード機能をつくろう。モードは、micro:bitのボタンの押し方によって機能を切り替えていくものだ。今回はモード0から3までの4つのモードをつくる。

 それぞれのモードの設定と、モードの切り替え方は以下のようになるよ。

モード名時刻設定時計機能タイマー今は機能なし
モード変数モード=0モード=1モード=2モード=3
動作説明時刻を設定できる
Aボタンで時が増える
Bボタンで分が増える
A+Bボタンで時計機能に戻る
傾けて画面を見ると時刻が表示される
ボタンAでタイマーになる
ボタンBでモード3
ボタンA+Bで時刻設定
3分を計測できる。Aボタンを押すとスタート
A+Bで時計機能に戻る
機能はない
「Make your own function(独自の機能をつくろう)」の表示のみ
コード:条件<モード=0>のとき<モード=1>のとき<モード=2>のとき<モード=3>のとき
ボタンAが押されたとき時間の数値が増えるタイマー機能に切り替えるタイマースタート特になし
ボタンBが押されたとき分の数値が増えるモード3に切り替える特になし特になし
ボタンA+Bが押されたとき時計の機能に戻る時刻設定に切り替える時計機能に戻る時計機能に戻る
ロゴが上を向いたとき特になし時刻を表示特になし特になし

①micro:bitを傾ける(“ロゴが上になったとき”)に時刻を表示(モード=1)
②モード=1の時にボタンAとBを一緒
いっしょ
に押すと時刻を設定できる(モード=0)
③モード=0の時にボタンAとBを一緒に押すとモード=1に戻る(時刻を設定したらモード=1に戻ろう)
④モード=1の時にボタンAを押すと3分間測れるタイマーになる(モード=2)
⑤モード=2の時にボタンAとBを一緒に押すと、モード=1に戻る
⑥モード=1の時にボタンBを押すとモード=3になる
⑦モード=3の時にボタンAとBを一緒に押すとモード=1に戻る

 「モード=3」はなにも機能を入れていないので、ボタンを押すと「Make your own function」と表示されるだけだ。ここにはキミのオリジナルの機能をつくってみてほしい。

 モードをプログラムで扱うために「変数」カテゴリーで新しく変数「モード」をつくる。モードを変えるときには、「変数“モード”を“0”にする」ブロックで、“0”をそれぞれの番号にするといい。

変数「モード」を0にするブロック

 モード切替機能のプログラムは以下で公開している。下の画面をクリックすると、MakeCodeの画面が開くよ。

https://makecode.microbit.org/#pub:_homiYVFgg0YU

 モードを切り替えるプログラムをつくるときは、”ボタンAが押されたときモードはいくつか確認する”のように考えるといいだろう。上で説明したモードの切り替え方を参考にして、ボタンAが押されたときのモードにより、どのモードに切り替わるかをプログラミングしたのが下のプログラムだ。モード=3のときのプログラムは何もないので、ここではとりあえずボタンAが押されたらモード=1に戻るようにした。モード=3のプログラムをつくったときに、内容に応じて変更してね。

ボタンAが押されたときにモードを切り替えるプログラム

 モード=0のときにボタンAを押せば「時」が設定できる。「時」の設定は関数「(時)を増やす」ブロックを新しくつくって、関数にしているよ。「ボタン“A”が押されたとき」ブロックで呼び出している。

時刻設定プログラム

 探検ウォッチの機能を増やしていくと、プログラムはどんどん複雑
ふくざつ
になっていく。関数にしてプログラム内で参照することで、できるだけ短くて、わかりやすいプログラムしている(関数については2020年2月号を参考にしてね)。
このプログラムはモード=3に機能は何もないのは上で説明した通りだ。キミのオリジナル機能をつくってみよう!

最新号好評発売中!

子供の科学 2021年 11月号

CTR IMG