当サイトは2020年小学生のプログラミング必修化に関して、関連する情報を纏めています。

Micro:bit(マイクロビット)で学ぶ 13

Micro:bit(マイクロビット)で学ぶ 13

前回の記事では、ブロックエディターの入力ブロックとmicropythonを対比しながら説明しました。今回は音楽ブロックの紹介です。

当記事は、シリーズでマイクロビット(Micro:bit)のプログラミングについて紹介しています。初めての方はこちらをご覧ください。

2021年8月25日更新:Mu EditorがV1.1.0b5へバージョンアップされていますので、『Micro:bit(マイクロビット)で学ぶ 9』を参照して最新版を導入してみてください。ただし、当記事はV1.0.3を基にしていますので画面が異なっている場合があるかもしれませんが、プログラミング的には変わりはありません。

以下の説明とサンプルプログラムは、こちらのページの内容を私なりに、ブロックエディターと比較してmicropythonで記述する例を紹介しています。クラス、関数、モジュールなどは最初は難しいかなという事で説明を省き、サンプルプログラムを通して理解できればと考えています。

音楽ブロックについて

注:実際のmicropython説明記事と、当記事のパラメーター指定について一部異なる点があります。説明記事通りに指定するとエラーする場合がありましたので、Micro:bitでテストして実際に問題なく動いたパラメーター設定にしてあります。今後のmicropyhonのアップデートにより変わる可能性があります。当方でも注意しますが、もし当記事のサンプルプログラムが動かない場合がありましたら、お手数ですが記事一番下の『コメントを残す』から連絡をお願い致します。

 
ブロック micropython
1.音を鳴らす 高さ
microbit13-1
import music
music.play(music, pin0, wait=True, loop=False)
music指定した音のリストをpin0に出力します。music命令を使用するには最初にmusicをimportする必要があります。
pinは、pin0,pin1,pin2のいずれかを指定できます。
wait=Trueで排他処理、Falseで背景処理です。
loop=Falseで1回演奏、loop=Trueで繰り返し演奏です。
musicのリストは、’オクターブ:長さ’で指定します。オクターブは、こちらの表を参考にしてください。長さは、music.set_tempo(ticks=4, bpm=120)で指定します。ticks=4、bpm=120はデフォルトです。オクターブも長さも再度指定するまで引き継がれます。[‘c1:4’, ‘e:2’, ‘g’, ‘c2:4’] はリストの例です。
以下は、ベートーベンの運命の最初の部分を演奏するプログラム
2.音を鳴らす Hz
microbit13-2
music.pitch(oto, nagasa, pin0, wait=True)
otoで指定した周波数の音を、nagasaで指定したms時間、pin0から演奏します。周波数の情報についてはこちらの表を参照してください。
pinは、pin0,pin1,pin2のいずれかを指定できます。
wait=Trueで排他処理、Falseで背景処理です。
music.pitch(262, 1000, pin0, wait=True)はC4の音を1秒間pin0に出力する例です。
以下はF4の音を1秒間pin1に出力するプログラム

3.休符
microbit13-3
1で説明したmusicリストで’r:長さ’で指定します。
以下は、ベートーベンの運命の最初の部分を演奏するプログラム
4.メロディーを開始する
microbit13-4
music.play(music.DADADADUM)
内蔵されている曲DADADADUMを演奏します。他にも多くの曲が含まれています。他の曲の情報については、こちらを参照してください。1と同じパラメーターを指定できます。
以下は、バッハのプレリュードをpin1から1回演奏するプログラム


5.音楽 メロディーの音をだした
microbit13-5

 

現時点、実装されていないようです。継続調査します。
6.拍、テンポ
microbit13-6
microbit13-7

 

music.get_tempo()
ビートとテンポをタプルとして返します。
以下は、ビートとテンポをREPLで印刷するプログラム。変更していないのでデフォルトの120と4が返されます。以下のプログラムを転送後、REPLアイコンを押してからMicro:bitのリセットボタンを押すとREPL画面に結果が印刷されます。
7.テンポを設定する
microbit13-9
microbit13-8
music.set_tempo(ticks=4, bpm=120)
この命令でビートとテンポを設定できます。テンポだけを設定したい場合はmusic.set_tempo(bpm=120) と指定します。増やす場合は増やした分を足した結果を指定します。20足したい場合は140を指定します。
以下は、ビートを6、テンポを180にするプログラム
8.演奏を停止
(ブロック無し)
music.stop(pin0)
指定された端子のすべての音楽再生を停止します。pinはpin0,pin1,pin2を指定できます。
以下は、プレリュードを2秒間だけ演奏するプログラム。2秒間で演奏を止めるためには、music.play命令を背景で実行する必要があります。(wait=False)
9.設定をリセット
(ブロック無し)
music.reset()
ビート、テンポなどをデフォルトに戻します。ticks = 4、bpm = 120、duration = 4、octave = 4 がデフォルトです。

 

音楽ブロックについての紹介は以上です。次の記事ではLEDブロックとループブロックの紹介をします。


最後まで記事をお読みいただきありがとうございます。
記事の改善に役立てたいと思いますので、よろしければアンケートにご協力ください。

記事内容についてお伺い


    良く解る解る解りにくい部分がある解りにくい 


     

    マイクロビットカテゴリの最新記事