今回は、mBot2プログラミングシリーズ(mBlock編)の第9回です。
この回からは、mBot2に搭載されているCyberPiを活用したプログラムを紹介していきます。
今回は、CyberPiを使って音を制御する方法を紹介します。
CyberPiの強力な機能を活用して、mBot2の音の表現力を高めましょう。

この記事で分かること
- CyberPiのマイク・スピーカーについて
- 音に関するブロックとその使い方
- 音の制御プログラムの作成方法
CyberPiとマイク・スピーカー
CyberPiは、mBot2に搭載された多機能モジュールで、ディスプレイ、センサー、マイク、スピーカーなどが一体となっています。
これにより、音の再生や制御、ディスプレイ表示、センサー入力の処理など、さまざまな機能を実現することができます。
ジョイスティックの右上の小さな穴が『マイク』、手前の右下にある細長い穴が『スピーカー』です。


mBlockで扱える『音』に関するブロックは『音』パレットに入っており、内容は大きく次の4つに分類できます。
- 登録済みの音声・効果音を再生する
- 録音した音声を再生する
- 音階・周波数を指定して鳴らす
- 楽器を再生する
- 音の調整
それぞれ解説していきます。
mBlockとは?『スクラッチ(Scratch)』との違い
mBlockは、小学校や学習塾で取り入れられている『スクラッチ(Scratch)』をベースとしたビジュアルプログラミングツールです。
スクラッチの基本的な操作感を引き継ぎながら、ロボットやハードウェアの制御に特化しているため、mBlockを使えば、プログラミング初心者でも簡単にロボットプログラミングを始めることができます。
登録済みの音声・効果音を再生する
mBlockで使用するブロック


登録済みの音声・効果音を再生するブロックです。
[ハーイ▼]をクリックすると、様々な効果音を選択できます。
人の声に関する音声は「英語」で再生されます。
例)「さようなら」を選択すると「bye」と再生されます
2つのブロックの違いは、次の通りです。
・『完了まで~を再生する』:再生が完了してから次のブロックが実行される
・『~を再生する』:再生開始と同時に次のブロックが実行される
登録済み音声を再生する簡単なプログラム
以下は、『「ハーイ」の再生開始と同時にmBot2を前進させる』プログラムです。
『~を再生する』ブロックを使用します。

次に、『「ハーイ」の再生後にmBot2を前進させる』プログラムです。
こちらは『完了まで~を再生する』ブロックを使用します。


録音した音声を再生する
mBlockで使用するブロック

録音を実行するブロックです。
このブロックが実行されると、『録音を停止する』ブロック(後述)を実行するか、10秒経過するまで音声を録音します。
録音された情報は、CyberPiの電源をOFFしたり再起動すると削除されます。

録音を停止するブロックです。
『録音を開始する』ブロックと組み合わせて使用します。


録音を再生するブロックです。
・『完了するまで録音を再生する』:再生が完了してから次のブロックが実行される
・『録音を再生する』:再生開始と同時に次のブロックが実行される
録音・再生する簡単なプログラム
以下は、『録音の開始、停止、及び録音した音声を再生する』プログラムです。

- Bボタン:録音の開始
- Aボタン:録音の停止
- →ボタン:録音の再生

音階・周波数指定を指定して鳴らす
mBlockで使用するブロック

指定した音階の音を、指定した時間だけ鳴らすブロックです。
一般的な演奏速度は、1拍が1秒です。
「60」の音階というと聞き慣れないかもしれませんが、『ドレミ』はMIDI番号で『60,62,64』と表記します。



指定した周波数の音を、指定した時間だけ鳴らすブロックです。
時間指定のないブロックは、音を鳴らし続けます。
鍵盤の音と、国際式表記・周波数との関係は次の通りです。
鍵盤の音 | 国際式表記 | MIDI | 周波数 |
---|---|---|---|
シ | B3 | 59 | 246.9 |
ド | C4 | 60 | 261.6 |
ド# | C#4 | 61 | 277.2 |
ㇾ | D4 | 62 | 293.7 |
ㇾ# | D#4 | 63 | 311.2 |
ミ | E4 | 64 | 329.7 |
ファ | F4 | 65 | 349.2 |
ファ# | F#4 | 66 | 370 |
ソ | G4 | 67 | 392 |
ソ# | G#4 | 68 | 415.4 |
ラ | A4 | 69 | 440 |
ラ# | A#4 | 70 | 466.2 |
シ | B4 | 71 | 493.9 |
ド | C5 | 72 | 523.3 |

楽器を再生する
mBlockで使用するブロック

指定した楽器の音で、指定時間だけ音を鳴らすブロックです。
[スネアドラム▼]を押すと、楽器の選択が可能です。
一般的な演奏速度は、1拍が1秒です。
音の調整
mBlockで使用するブロック



再生速度に関するブロックです。
再生速度の設定、変更(増減)や、再生速度を参照する際に使用します。
- 再生速度の設定範囲は、25~400%
- 再生速度変更(増減)で負の値は速度の減少、正の値は速度の増加を意味する



音量に関するブロックです。
音量の設定、変更(増減)や、音量を参照する際に使用します。
- 音量の設定範囲は、0~100%
- 音量変更(増減)の範囲は、-100~100%
- 負の値は音量の減少、正の値は音量の増加を意味する

全ての音の再生を止めるブロックです。
例題:『カエルの合唱』を流す
- 例題
- 解答例
『カエルの合唱』をプログラムしてみましょう。

音符とプログラム上の時間の関係は、以下の設定を目安にしてみてください。
音符 | 設定時間 |
---|---|
![]() | 0.5拍 |
![]() | 0.25拍 |
![]() | 0.125拍 |
![]() | 0.25拍 |

休符は『〇秒待つ』のブロックを使いました。
全ての音符を羅列するため、プログラムは非常に長くなります。
まとめ
今回は、CyberPiを使って音を制御する方法を学びました。
CyberPiの多機能なセンサーとスピーカーを活用することで、初心者でも簡単にmBot2の音の表現力を高めることができます。
ぜひ、今回のプログラムを参考にして、自分だけのオリジナルプログラムに挑戦してみてください。
次回は、CyberPiのLED制御について解説します。
mBlockを使ったmBot2のプログラミング方法を丁寧に解説していておススメです。
CyberPi単体でもプログラミング教育に非常に役立ちます!
