今回は、mBotプログラミングシリーズの第2回です。
この回では、mBotを使って音楽を演奏させるプログラムの作り方を紹介します。
mBotにはスピーカーが内蔵されており、mBlockを使えば簡単に音楽を再生することができます。
お気に入りのメロディを作って、プログラミングの楽しさをさらに広げてみましょう。
全講座の一覧はこちら
目標
- 音階の設定方法を理解する
- mBotで音楽を演奏するプログラムを作成する。
必要なブロック
『ライト・ブザー』パレット
mBotのLEDライトやブザーを制御するブロックが入っています。
今回は、ブザーを制御するブロックを使用します。
「C4」の音階の音を、指定時間だけ鳴らします。
- 音階は「ドレミファソラシド」に対応している
- ド#,ㇾ#,ファ#,ソ#,ラ#には非対応
- メロディーを作る際に便利
「C4」の音階というと聞き慣れないかもしれませんが、『ドレミ』は英語(国際式表記)で『CDE』と表記します。
数字はオクターブを表していて、「C4」は4オクターブ目の「ド」を表しています。
「700Hz」の高さの音を、指定時間だけ鳴らします
- 細かく音を調整したいときや、音階以外の音を作るときに便利
鍵盤の音と、国際式表記・周波数との関係は次の通りです。
鍵盤の音 | 国際式表記 | 周波数 |
---|---|---|
シ | B3 | 246.9 |
ド | C4 | 261.6 |
ド# | C#4 | 277.2 |
ㇾ | D4 | 293.7 |
ㇾ# | D#4 | 311.2 |
ミ | E4 | 329.7 |
ファ | F4 | 349.2 |
ファ# | F#4 | 370 |
ソ | G4 | 392 |
ソ# | G#4 | 415.4 |
ラ | A4 | 440 |
ラ# | A#4 | 466.2 |
シ | B4 | 493.9 |
ド | C5 | 523.3 |
『制御』パレット
条件分岐や繰り返しをするブロックが入っています。
今回は、待ち処理のブロックを使用します。
指定時間だけ動作を止めるブロック。
音を鳴らす場面では、休符(音を鳴らさない時間)として使うことができます。
簡単な動作プログラム作成
音階を指定するブロックを使って、『ドレミファソラシドを鳴らす』プログラムを作ってみます。
『C → D → E → F → G → A → B → C(1オクターブ上)』の順に並べて接続すればOKです。
【例題】音楽を流してみよう
例題1:周波数を指定するブロックを使う
- 例題
- 解答例
周波数を指定するブロックを使って、『ドレミファソラシドを鳴らす』プログラムを作ってみましょう。
C4~C5の音階に対応した周波数を設定した例です。
例題2:ド#、ㇾ#、ファ#、ソ#、ラ#を鳴らす
- 例題
- 解答例
『ド#、ㇾ#、ファ#、ソ#、ラ#を鳴らす』プログラムを作ってみましょう。
ド#,ㇾ#,ファ#,ソ#,ラ#は音階指定ブロックに対応していないため、周波数指定ブロックでプログラムする必要があります。
上の例は、C#4~A#4の音階に対応した周波数を設定したプログラムです。
例題3:『カエルの合唱』を流す
- 例題
- 解答例
『カエルの合唱』をプログラムしてみましょう。
音符とプログラム上の時間の関係は、以下の設定を目安にしてみてください。
音符 | 設定時間 |
---|---|
0.8秒 | |
0.4秒 | |
0.2秒 | |
0.4秒 |
休符は『〇秒待つ』のブロックを使います。
全ての音符を羅列するため、プログラムは非常に長くなります。
まとめ
今回は、mBotを使って音楽を演奏させる方法を学びました。
音階ブロックを使えば、プログラミング初心者でも簡単に楽しめます。さらに、独自のアレンジを加えることで創造力を広げることができます。
次回は、LEDライトの光らせ方についてご紹介します。
mBlockを使ったmBotのプログラミング方法を丁寧に解説していておススメです。
mBotを使用した拡張的な遊びは『mBotでものづくりをはじめよう』が参考になります。mBotのパーツを段ボールと組み合わせてオリジナルのロボットを作るといったような拡張的な遊びが楽しめます。
コメント