[microbit] マイクロビット プログラム例 ゆさぶってLEDにマークを表示する

スポンサーリンク

マイクロビットのプログラミング例として、マイクロビットをゆさぶるたびに異なるマークをLEDに表示する「おみくじ」プログラムを作りました。マイクロビットが振られたことを加速度センセーで調べて、そのときの状態を条件で分けてマークに変換して、LEDで表示させます。状態はいろいろ変化するように、ランダムな数字を発生させて、変数に記憶させるようにしました。

マイクロビットをゆさぶってLEDにマーク表示

ゆさぶられたことを調べる 加速度センサー

「入力」の「ゆさぶられたとき」で、マイクロビットがゆさぶられたことを調べることができます。ブロックの中には他のブロックを埋め込めるので、「ゆさぶられた」ときにアクションを実行することができます。マイクロビットには加速度センサーがついていて、マイクロビットが揺さぶられたり、落とされた場合の速度の変化を調べることができます。

プログラムでは、「ゆさぶられたとき」のアクションとして、サイコロを振ったようなめちゃくちゃな数字(1〜100までの乱数)を発生させています。

数字を覚えておく 変数

プログラムを作るとき、アクションの結果をおぼえておきたいシーンがよくあります。後でいつでも使えるように、箱みたいなものに結果をいれておけると便利です。それが、「変数」です。自分で自由に名前をつけることができます。

マイクロビットのプログラム中では、「ゆさぶられたとき」に発生させた1〜100までの「何かの数字(なにがでるかわからない)」を変数にいれておぼえさせました。「数字だよ」ということがわかるように「num」という名前(numberの略)にしました。その後の「何の数字が出たか?」を調べてグループ分けする処理で、変数をチェックしています。

条件をわける

出た数字によってマークを変えるので、変数をチェックしてグループ分けをしました。条件によってアクションをわけるために使うのが、論理の「もし〜なら」というブロックです。

マイクロビットのプログラムでは、【1〜77】【78〜97】【98・99・100】の3つのグループに分けました。最初に【98・99・100】かをチェックし、次に残りの数字で【78〜97】かをチェックし、どれでもなければ【1〜77】と判断しました。【98・99・100】は3/100の確率で珍しい数字なので大吉の「大」と表示し、あとは中吉の「中」、小吉の「小」に分けました。

LEDにマークを表示する

LEDに何かを表示したい場合は、基本の「表示」に関するブロックを選びます。LED画面に自作のマークを表示させる場合は、「LED画面に表示」を選んで、5x5の点を使ってON/OFFの点を自分で選んでデザインすることができます。

マイクロビットのプログラムでは、漢字の「大」「中」「小」を表現してみました。

マイクロビットでプログラムを動かして遊ぶ

プログラムが完成したら、マイクロビット本体にプログラムを実行します。

マイクロビット本体をゆさぶると乱数が発生し、「大」「中」「小」のいずれかがLEDで表示されます。

プログラムのヒント

マイクロビットがゆさぶられたときに発生させた乱数を保存しておくのに、変数を使いました。変数に数字を保存しておくことで、以降の処理で値を参照することができるようになります。ランダムな数字を変数に格納した直後に、一度「数字を表示」で変数を表示すると、正しく条件分岐できたかを簡単に確認することができます。

分岐条件は少しだけ複雑になりました。プログラミング言語によっては、多方向に分岐できる命令があるので、そのような分岐処理の方がシンプルに表現できます。

処理の最後に、「一時停止」と「表示を消す」を加えたことで、より遊びやすくなりました。しかし、「大マーク」などの珍しい表示が出た時に喜んでも、すぐに表示が消えてしまうので、家族と驚きを共有するのが難しかったです。「ボタンを押したら消える」など工夫をすると良いと思いました。

プログラミングの感想

大、中、小を、表す記号を考えるのが、大変でした。少し、変えてみたり、追加してみたりして、たのしかったです。次は、もっと、広い範囲の数でやってみたいです。(小学5年生)

タイトルとURLをコピーしました