どれ使う?プログラミング教育ツール

拍手したらジングルベルが流れるプログラムを作ってみた ~micro:bit v2の内蔵スピーカー&マイクの活用法

 子ども向けプログラミング学習用マイクロコンピューター「micro:bit」の新型(v2)を前回の記事で紹介しました。新型micro:bitの新機能に、スピーカーとマイクがあります。そこでこれらの機能を使い、手をたたいて大きな音を出したら、ジングルベルを再生するという仕組みを作りましょう。ついでにLED部分を光らせればクリスマスのいい演出になりますよ。

micro:bitを透明ケースに入れてツリーにぶら下げればクリスマス飾りになる

ジングルベルのメロディをプログラム

micro:bit用の「MakeCode」を開いて新しいプログラムを作成します。

 最初に、ジングルベルを再生する部分のプログラムを作ります。メロディをプログラムするときは、一音一音地道にブロックを並べるので、なるべく手間を減らしたいと思います。ジングルベルの曲の中で繰り返し登場するパターンを関数として登録して、同じパターンは再利用できるようにしましょう。

 次の図の通り、[高度なブロック]エリアを開くと[関数]カテゴリーがあるので、そこで関数を作成します。まず必要な関数に名前を付けてひと通り作成します。

[高度なブロック]エリアを開き[関数]カテゴリーから[関数を作成する...]をクリック
任意の名前をつけて[完了]ボタンを押すと関数が生成される。ここでは“patternA”という名前の関数を作成
必要な関数を作成したところ。“patternA”、“patternB”、“patternC”はメロディを分割するために使用する。“playMusic”はメロディの関数を呼び出してジングルベルを再生するために使用する

 作成した関数にメロディをプログラムします。

関数“patternA”、“patternB”、“patternC”に、ジングルベルのメロディをプログラムしたところ。同じ音が続くところは、再生時に切れ目なく聞こえてしまうので、拍を半分にして休符を入れた

大きな音がしたらジングルベルを再生!

 次に、全体の仕組みのプログラムです。次の図を参考に、ジングルベルを再生する関数(下図❶)、プログラム実行時に“大きな音”の大きさを定義するプログラム(下図❷)、“大きな音”がしたらメロディを流したりアイコン等を表示するプログラム(下図❸)を作成します。

❶メロディの関数をジングルベルの構成通りに呼び出す。音量を“100”に設定。❷【v2専用ブロック使用】[入力]-[その他]カテゴリーにある[“大きな音”のしきい値を*に設定する]ブロックで、しきい値を“180”に設定。❸【v2専用ブロック使用】[入力]カテゴリーにある[音がしたとき“大きな音”]ブロックを使う。アイコン表示、“playMusic”関数の呼び出し、文字列の表示を設定
説明したプログラム全体を表示した画面。不鮮明なので詳細は各説明を参照

 これで、“大きな音”がしたときにジングルベルが流れるプログラムの完成です。

 上の図の❶で設定する音量の値と、❷で設定するしきい値の値に注意してください。micro:bitが再生したジングルベルの音自体が“大きな音”と判定されると、いったんジングルベルが流れ始めたら、ずっと“大きな音”がしていることになるので再生は止まらず何度も再生されてしまいます。そこで、このプログラムでは、ジングルベルの音量は“100”と設定し、“大きな音”の定義は高めに“180”と設定しています。これで、ジングルベルは1回再生したら止まります。次にまた“大きな音”がしたら、また1回再生されます。

 micro:bitにプログラムを転送して、実際に動かしてみた様子を動画でご紹介します。電池モジュールとつないだmicro:bitを透明の空き容器に入れてツリーにぶら下げ、暗いところで試してみました。しきい値が“180”だとかなり大きな音で手を叩く必要があります。再生音は音量が“100”で、micro:bitが容器に入っているのでちょっと小さめに聞こえます。いろいろと試して好みの値に調整してみてください。

microbit v2で作った拍手したらジングルベルが流れるクリスマス飾り ‐ 窓の杜

 “大きな音がしたら”ジングルベルが流れるだけでなく、ゆらしたら、ひっくり返したら、明るくなったら、暗くなったら、など、他にも色々な演出ができますね。ぜひチャレンジしてみてください!

 2020年度から小学校でプログラミング教育が実施されています。これに伴い家庭でも手軽にプログラミングを学習できるツールが多数登場していますが、どんなツールを使えばいいのか迷ってしまう方も多いのではないでしょうか? そこで本連載では家庭でのプログラミング教育にピッタリなお勧めツールを紹介していきたいと思います。