mBotのブザーで音楽を作ろう
mBotは、ブザーを使って、色々なメロディを作ることが出来ます。mBotのケースを外すと、mBotの右側に、ブザーがついているのが確認できます。

mBotで音のプログラミングをする前に、ブザーの仕組みを簡単に紹介します。「音」は、空気が振動して伝わります。

図2-1 ブザーの仕組み 出典:https://monoist.atmarkit.co.jp/mn/articles/1301/09/news004.html
その音波を受けた人の鼓膜が振動し、聴覚神経に伝わることによって、「音)」として感じ取ることが出来ます。ブザーは、コイルに電流が流れる際に、振動板が揺れ、空気の振動として伝わります。
・mBot_v1.1 日本国内正規品 Bluetooth版 購入時期は2019年8月
(新型Bluetoothモジュール)
・mBlock_v5.1 (ローカル版)
・オンラインのファームウェアバージョン_06.01.107
・Windows10
・アップロードモードオフ
mBotプログラミング②ドレミファソラシドを作ろう
まずは、以下の手順で、プログラムを作って、「ド」の音を鳴らしてみましょう。
1、「イベント」パレットを選び、「スペースキーが押されたとき」をドラック&ドロップ
2、「ライト・ブザー」パレットを選び、「C4の音階を0.25秒鳴らす」をドラック&ドロップ
3、上のプログラムを作ったら、イベントを実行して、「ド」の音が鳴るか確認
小学校では、ドレミファソラシド・・・・と習いますが、英語では、CDEFGABC・・・になります。
また、アルファベットの横にある数字は、オクターブを表します。例えばC3を、1オクターブ上げた音が、C4です。
小学校では、音の長さは、○○分音符と習います。例えば、4分音符は、だいたい1秒ですが、正しい時間(秒)ではありません。
ロボットは、あいまいな時間を指示されても、どう動けばよいか、分からないので、プログラムをするとき、正しい時間の単位である「秒」でロボットに、音を鳴らす長さを伝えます。
ブザーブロックに最初に表示されている長さは、「0.25秒」ですが、音符にする場合は、だいたいの目安として、下の図を参考にしてください。

ブザーで「ド」の音(おと)を鳴(な)らすことが出来た後は、ドレミファソラシドをプログラミングしてみましょう。
「ド」を鳴らせた時と同じ方法で、C4の下に、D4、E4・・・とブロックを繋ぎ合わせて、ドレミファソラシドがなるか確かめてみましょう。

小数点は、小学校3年の算数で習いますので、小学校1・2年生では難しいかも知れません。
ただ、1秒よりも短い数字と説明して、実際にブザーを1秒鳴らした後、0.25秒鳴らせば、多くの子が、その意味を直感的に理解できるようになると思います。
ロボットプログラミングでは、実際にロボットを動かしながら、小数の数を変えていく事で、理解が進むので、低学年でも、そこまで心配は不要です。
mBotプログラミング③ ~きらきら星の演奏~
次は、みんな知っている、「きらきら星」を演奏させてみましょう。きらきら星は、ドレミで表すと、
ドドソソララソー ファファミミレレドー
ソソファファミミレー ソソファファミミレー
ドドソソララソー ファファミミレレドー
では、以下の手順でプログラムを作ってみましょう。
1、イベントを設定する
2、「ドレミ」をCDEにあてはめてブロックをつなげていく
ドドソソララソー ファファミミレレドー
C C G G A A G F F E E D D C
ソソファファミミレー ソソファファミミレー
G G F F E E D G G F F E E D
ドドソソララソー ファファミミレレドー
C C G G A A G F F E E D D C
3、プログラムを実行して、「きらきら星」のメロディが流れるかを確認する
4、各ブロックの、音の長さを、調整する。
※フレーズとフレーズの間に、「ひと呼吸」おきたい場合は、制御パレット内にある「●●秒待つ」ブロックを使って実現することが出来ます。
これで作ったプログラムを見てみましょう。とても長くて、分かりにくいプログラムになりました。
プログラムを作る時は、だれが見ても分かりやすいように、少ないブロックで、簡単に作ることが出来ないか、いつも考えることがとても大切です。
それでは、この長いプログラムをもっと見やすく、分かりやすくできないか、考えてみましょう。
ここで、注目してほしいのは、「ソソファファミミレー」が2回繰り返されている所です。
ソソファファミミレー ソソファファミミレー
G G F F E E D G G F F E E D
この部分を、「制御」パレットにある、繰り返しブロックを使って、短くしましょう。

■繰り返しブロックの種類
繰り返しブロックは、3種類あります。
「〇〇」回(かい)繰り返すブロックは、繰り返しの回数を指定したいときに使います。
「ずっと」ブロックは、ずっとプログラムを実行させておきたいときに使います。「ずっと繰り返す」ブロックは、この後に習う、センサーを使ったプログラミングで、とても重要な役割をします。
「〇〇」まで繰り返すブロックは、ひし形の所に、「条件を表すブロック」をいれます。このブロックは、演算やセンサーのブロックを活用したいときに、活躍するブロックです。
ここでは、「●●回繰り返す」の、回数を2に変更して、使ってみましょう。下のように、スクリプトが短くなりました。

ここがポイント ~イベント~
ロボットは、一つの動作が終わるまで、次の動作をすることが出来ません。 プログラミングするときは、ひとつひとつ、丁寧に、動作をプログラムする必要があります。
人間(にんげん)は、無意識にうちに順番に物事を進めます。その時、人間は、順番を入れ替えたり、同時におこなったりすることがあります。
しかし、ロボットは、一つの動作が終わるまで、次の動作には進めません。
自分が思っている動作をロボットにしてほしい時は、どう動いてほしいかを、
細かく分け、一つ一つ順番に丁寧に指示してあげる必要があります。
ティンカリング ~色々演奏してみよう~
1、カエルの歌を演奏させてみよう
2、インターネットで楽譜をしらべて、好きな曲を演奏させてみよう