マイクロビットのサウンド機能

 マイクロビットにはサウンド機能が用意されています。音楽を演奏したり特定の周波数の音を鳴らすことができます。

 今回はこのサウンド機能を使って音楽を演奏したりテルミンっぽい楽器プログラムの作成、温度が一定値を超えたら警告音を出すプログラムを作成します。

用意するもの

 今回は音を鳴らすために以下のものが必要になります。

・スピーカーまたはイヤホン
・スピーカーまたはイヤホンと接続するための線

 接続するための線は工作で使う銅線を使います。鰐口クリップでとめることができるタイプであれば手軽で便利です。また、マイクロビットの各ピンに接続するコネクタもありますので、それらを利用して結線する方法もあります。

  • スピーカー

    スピーカー

  • 接続するための線。鰐口クリップ使用(左)。コネクタを装着した場合(右)
  • 接続するための線。鰐口クリップ使用(左)。コネクタを装着した場合(右)
  • 接続するための線。鰐口クリップ使用(左)。コネクタを装着した場合(右)

 ここでは鰐口クリップを使ってマイクロビットとスピーカーを接続します。図4のようにマイクロビットのGNDと0番をスピーカーのミニプラグに繋げます(シミュレーター画像でも結線方法が図で示されます)。

  • マイクロビットに図のように接続

    マイクロビットに図のように接続

  • 同様にスピーカーやイヤホンの入力端子に接続、このような形になります
  • 同様にスピーカーやイヤホンの入力端子に接続、このような形になります
  • 同様にスピーカーやイヤホンの入力端子に接続、このような形になります

音楽を演奏する

 最初に音楽を演奏してみましょう。ここでは「ド」の音を一定間隔で鳴らしてみます。警告音として鳴らす場合には都合がよいでしょう。  開発のためのページを開きます。新規プロジェクトを作成して下さい。

・JavaScript用のブロックエディタ
https://makecode.microbit.org/

新規プロジェクトを作成すると図のような状態になります。

  • 新規プロジェクトを作成

    新規プロジェクトを作成

音楽は「音楽」のカテゴリにあります。ここから「音を鳴らす 高さ「真ん中のド」 長さ「1」拍」というブロックを配置します。

  • 「音楽」カテゴリから「音を鳴らす高さ「真ん中のド」長さ「1」拍」をクリック

    「音楽」カテゴリから「音を鳴らす高さ「真ん中のド」長さ「1」拍」をクリック

  • 「ずっと」ブロックにあてはめます

    「ずっと」ブロックにあてはめます

このままだと「ド」の音がずっと鳴り続けてしまいます。そこで、休符を入れて「ド」「ド」「ド」と鳴るようにします。休符も「音楽」のカテゴリにあります。「休符(ミリ秒)「1」拍」のブロックを配置します。

  • 音楽」カテゴリから「休符(ミリ秒)「1」拍」をクリック

    「音楽」カテゴリから「休符(ミリ秒)「1」拍」をクリック

  • 図のように配置します

    図のように配置します

ブロックを配置するとマイクロビットのシミュレータが自動的に音を鳴らしてしまいます。音が気になる場合はシミュレーターの「■」ボタンをクリックすると音が鳴り止みます。再度クリックすると音が鳴ります。

  • シミュレーターの方で音を再現・制御できます
  • シミュレーターの方で音を再現・制御できます
  • シミュレーターの方で音を再現・制御できます

これで完成です。ダウンロードボタンをクリックしてHEXファイルを作成します。あとは作成されたHEXファイルをマイクロビットに転送します。しばらくするとプログラムが起動して、スピーカーから「ド」の音が繰り返し鳴ります。

傾きと音を組み合わせる

 マイクロビットには傾斜センサーがありますので、これを利用して音を鳴らすようにしてみます。先ほどは音階でしたが、特定の周波数の音を出してみます。
 まず、新規にプロジェクトを作成します。

  • 新規プロジェクトを作成

    新規プロジェクトを作成

 傾きによって音の周波数を変更するので「音楽」のカテゴリから「音を鳴らす(Hz) 高さ「真ん中のド」」のブロックを配置します。

  • 「音楽」カテゴリから「音を鳴らす(Hz)高さ「真ん中のド」」をクリック

    「音楽」カテゴリから「音を鳴らす(Hz)高さ「真ん中のド」」をクリック

  • 「ずっと」ブロックにあてはめます

    「ずっと」ブロックにあてはめます

 次に傾きの値を周波数にします。「入力」のカテゴリをクリックします。「…さらに表示」をクリックします。すると「傾斜(°)「ピッチ」」のブロックが出てくるので配置します。配置したら「傾斜(°)「ピッチ」」のブロックを「音を鳴らす(Hz) 高さ「真ん中のド」」ブロックの「真ん中のド」に重ねます。すると傾きによって音の高さが変わるようになります。

  • 「入力」カテゴリの下に表示される「・・・さらに表示」をクリック

    「入力」カテゴリの下に表示される「・・・さらに表示」をクリック

  • 「傾斜(°)「ピッチ」」ブロックをクリックします

    「傾斜(°)「ピッチ」」ブロックをクリックします

  • 図のようにあてはめます

    図のようにあてはめます

完成したらマイクロビットにプログラムを転送します。マイクロビットを傾けて音が変わることを確認しましょう。

  • 図のように縦方向に傾けると

    図のように縦方向に傾けると

  • 音が変わっていくのが確認できるはずです|

    音が変わっていくのが確認できるはずです

さらに工夫すればテルミンのような楽器っぽくなります。マイクロビットで得られる傾斜は2種類あります。この2つの傾きの値を掛け算した値を音の高さにすることで楽器のようになります。 ブロックは以下のように組み上げていきます。

  • 先ほどの状態から「計算」カテゴリの「0×0」ブロックをクリックします
  • 先ほどの状態から「計算」カテゴリの「0×0」ブロックをクリックします
  • 先ほどの状態から「計算」カテゴリの「0×0」ブロックをクリックします

  • 表示される「0×0」ブロックに図のように「傾斜「ピッチ」と「傾斜「ロール」」をあてはめます
  • 表示される「0×0」ブロックに図のように「傾斜「ピッチ」と「傾斜「ロール」」をあてはめます
  • 表示される「0×0」ブロックに図のように「傾斜「ピッチ」と「傾斜「ロール」」をあてはめます

  • 図のようにあてはめると完成です

    図のようにあてはめると完成です

完成したらマイクロビットにプログラムを転送して動作を確認しましょう。マイクロビットを傾けることで音の高さが変わるはずです。

あらかじめ用意された音楽を演奏する

 今度は音楽を演奏してみましょう。マイクロビットには、あらかじめ何曲も音楽が用意されています。ここではベートーヴェンの「歓喜の歌」を演奏させてみます。  ブロックを以下のように組み上げていきます。ブロックを配置したら「メロディを開始する「歓喜の歌」 繰り返し「一度だけ」」のように選択します。また、「最初だけ」のブロックに入れてください。間違って「ずっと」のブロックに入れると最初の音だけが繰り返されてしまいます。もし、「ずっと」のブロックに入れた場合は「一時停止(ミリ秒)「100」」で演奏する時間を指定してください。音楽はバックグラウンドで演奏されるのでゲームでも利用することができます。

  • 新規プロジェクトを作成します

    新規プロジェクトを作成します

  • 「音楽」カテゴリの「メロディを開始する「ダダダム」くり返し「一度だけ」をクリック」

    「音楽」カテゴリの「メロディを開始する「ダダダム」くり返し「一度だけ」をクリック」

  • 図のように「最初だけ」ブロックにあてはめ、「ダダダム」を「歓喜の歌」に変更します

    図のように「最初だけ」ブロックにあてはめ、「ダダダム」を「歓喜の歌」に変更します

完成したらマイクロビットにプログラムを転送して動作を確認しましょう。転送後、マイクロビットが起動すると歓喜の歌が演奏されます。

音階を指定して演奏する

 自分で作成した曲や既存の曲を演奏することもできます。この場合は「音を鳴らす 高さ「真ん中のド」 長さ「1」拍」ブロックを使います。以下のように組み上げると、♪きらきら星の先頭二小節が演奏されます。

  • 新規プロジェクトからはじめます。「音楽」カテゴリをクリックし、「音を鳴らす 高さ「真ん中のド」長さ「1」拍」ブロックをクリックします
  • 新規プロジェクトからはじめます。「音楽」カテゴリをクリックし、「音を鳴らす 高さ「真ん中のド」長さ「1」拍」ブロックをクリックします
  • 新規プロジェクトからはじめます。「音楽」カテゴリをクリックし、「音を鳴らす 高さ「真ん中のド」長さ「1」拍」ブロックをクリックします

  • 配置した「音を鳴らす 高さ「真ん中のド」長さ「1」拍」ブロックを選択し、コピー&ペーストすると必要な分だけ増ブロックが増えます。それぞれの音を変えていきましょう
  • 配置した「音を鳴らす 高さ「真ん中のド」長さ「1」拍」ブロックを選択し、コピー&ペーストすると必要な分だけ増ブロックが増えます。それぞれの音を変えていきましょう
  • 配置した「音を鳴らす 高さ「真ん中のド」長さ「1」拍」ブロックを選択し、コピー&ペーストすると必要な分だけ増ブロックが増えます。それぞれの音を変えていきましょう

完成したらマイクロビットにプログラムを転送して動作を確認しましょう。転送後、マイクロビットが起動すると曲が演奏されます。 起動したら一度しか演奏されないのでボタンを押したら演奏されるように改造してみるとよいでしょう。

温度が一定値を超えたら音を鳴らす

 最後に温度が一定値を超えたら音を鳴らしてみましょう。CPUの温度チェッカーもしくは、うまく値を設定すれば熱中症アラームとしても使うことができるかもしれません。

  • 温度と組み合わせると(参照:第2回マイクロビットリモートで温度計を作ろう micro:bit編)、一定温度になると自分の作った音が鳴るという仕組みも可能になります

    温度と組み合わせると(参照:第2回マイクロビットリモートで温度計を作ろう micro:bit編)、一定温度になると自分の作った音が鳴るという仕組みも可能になります

 マイクロビットが複数台ある場合は、温度が一定値を超えたら無線通信を使ってもう一台のマイクロビットでアラーム音を鳴らすようにしてみるのもよいでしょう。

著者 古籏一浩
プログラミングをベースにして面白そうなものはとりあえずやってみるというスタンス。複雑なものよりシンプルで楽しめるものが好み。
著者サイト:http://www.openspc2.org/