【microbit】マイクの使い方【騒音検知、録音と再生】

【microbit】マイクの使い方【騒音検知、録音と再生】

※当サイトには広告が掲載されています。ご了承くださいm(_ _)m

本記事ではmicro:bit(V2)のマイクを使いこなせるようになることを目指して解説します。

本記事の内容
  • 【microbit】マイクの使い方【騒音検知、録音と再生】

実際のプログラム例と実行結果を示しながら解説します。

マイクはV2以降の機種のみ搭載しています。V1.5には搭載していません。
スポンサーリンク

【microbit】マイクの使い方【騒音検知、録音と再生】

micro:bitには周囲の音を検出するマイクがあります。マイクはV2以降の機種のみ搭載しています。V1.5には搭載していません。

マイクを使ってできること

マイクを使うと下記のようなことができます。

  • 周囲の音がうるさくなったこと、静かになったことを検出する
  • 音声を録音して再生する
  • 周囲の音の大きさに応じて動作を変える

上記のとおりです。ぜひ、使い方をマスターしましょう!

「まわりの音の大きさ」ブロック(マイクで検出した値)

マイクで取得した音の大きさは「まわりの音の大きさ」ブロックに数値で保存されています。

マイクで取得した音の大きさは0~255の256段階で保存されます。

0(無音) ~ 255(一番大きい)

「なんで、最大が255なの?100の方がキリ良くない?」と思われるかもですが、コンピューターはデータを2進法で表現しているので、実はキリが良いんです。

コンピューターのデータの扱い方は「【初心者向け】パソコンのビットとバイトをエンジニアが丁寧に解説」の記事をご覧ください。

音の大きさを表示

実際にマイクで取得した値をLEDディスプレイに表示してみましょう。

作ったプログラムはこんな感じです。マイクで検出した音の大きさをLEDディスプレイに表示しています。

音の大きさは数値で保存されているので、「数を表示」ブロックを使います。

シミュレーターを使う場合はバーを動かすとマイクで検出した値を変えることができます。

これで擬似的にまわりの音の大きさを変えることができます。

「まわりの音がうるさくなったとき」ブロック

この命令はまわりの音がうるさくなったとき/静かになったときをきっかけに動作するプログラムを作る開始命令です。

開始命令なので、ブロックの間に様々な命令を書きます。

また、「うるさくなった」の部分は次の2種類から選べます。

  • うるさくなった
  • 静かになった

例えば、次のようにすると「まわりがうるさくなったときに×マークを表示」します。

「うるさい/静か」の基準値(しきい値)

ここで気になるのは「うるさくなった/静かになったって人それじゃない?」ってことですよね?

なので、プログラム上では基準の値が決めてあります。これを「しきい」といい、具体的には次のとおりです。

  • うるさくなった:165以上
  • 静かになった:86以下

上記のとおりです。

検出タイミング

また、「まわりの音がうるさくなったとき」ブロックは開始命令なので、うるさくなったことを検出したタイミングだけ動作します。

つまり、音の大きさが165未満から165以上に変わったタイミングのみ動作します。例えば、170から225に変わったタイミングでは動作しないということです。

これは「静かになったとき」も同じ考え方です。

「うるさいかどうかのしきい値を設定する」ブロック

この命令は「うるさくなった/静かになった」のしきい値を変更できる命令です。

先程、しきい値は次のとおりだと述べました。

  • うるさくなった:165以上
  • 静かになった:86以下

この値を変更できるということです。

例えば次のように使います。最初にしきい値を変更すれば、それ以降はその値が適用されます。

マイクを使う例 ~音のグラフ~

例として、取得した音の大きさに応じてLEDディスプレイに棒グラフを表示するプログラムを作ります。

こちらのサイトのサンプルプログラムが面白かったので参考にさせてもらいました。ありがとうございます。

プログラムの考え方としては次のとおりです。

  1. マイクでまわりの音の大きさを検出する
  2. 音の大きさに応じてLEDディスプレイの明るさ設定を変える
  3. 音の大きさに応じてLEDディスプレイに棒グラフを表示する
ただ単に音の大きさに応じて棒グラフを表示するのではなく、LEDの明るさも変えることで、より音の大きさがわかりやすくなります。

これをプログラムにするとこんな感じです。

プログラムの実行結果例は次のとおりです。

このプログラムには「plot bar graph」命令が使われています。それについてはこちらの解説をご覧ください。

【拡張機能】Recordの使い方

拡張機能に音声を録音・再生するための機能があります。

追加手順

追加手順は次のとおりです。

[拡張機能]をクリックします。

[audio-recording]をクリックします。

すると「Record」が追加されます。

命令ブロックは5種類あります。

上から3つを詳しく紹介します。下の2つはちょっと難しいので割愛します。

「record audio clip」ブロック

この命令は最大3秒間の音を録音する命令です。録音できる音は1つだけで、もう一度実行すると上書きされます。

また、この命令は2つのパラメーターを指定できます。

  • until done・・・録音が終わるまで次の命令を実行しない
  • in background・・・録音しながら次の命令を実行する

それぞれでプログラムを作るとこんな感じです。

上記のように録音が完了するのを待ってから✔マークを表示したい場合は「until done」を使い、録音中に表示したいマークがあれば「in background」を使えばいいですよ。

「play audio clip」ブロック

この命令は録音した音を再生する命令です。「record audio clip」ブロックで録音した音が再生されます。

また、録音と同じで2つのパラメーターを指定できます。

  • until done・・・再生が終わるまで次の命令を実行しない
  • in background・・・再生しながら次の命令を実行する

それぞれでプログラムを作るとこんな感じです。

考え方は先程と同じです。

「audio is playing」ブロック

この命令は録音した音が再生中かどうかを判定する命令です。

また、次の通り、再生以外の状態も判定することができます。

  • playing・・・再生中(「play audio clip」命令実行中)
  • recording・・・録音中(「record audio clip」命令実行中)
  • stopped・・・停止中(再生中でも録音中でも空でもない状態)
  • empty・・・空(録音されている音がない状態)

例えば、「再生中の間は♪マークを表示する」とか、「録音中はマイクマークを表示する」とかできます。

Record系を使う例

以上のRecord関連命令を使って録音・再生プログラムを作ります。

考え方は次のとおりです。

  • 最初に♪マークを表示する
  • ボタンAが押されたときに録音を開始する
  • ボタンBが押されたときに再生を開始する
  • それぞれの状態(空/録音中/再生中/停止中/)で各アイコンを表示する

上記のとおりです。この考え方で作ったプログラムは次のとおりです。
※実行結果はmicro:bitに書き込んでから確認してみてください。

少し詳しく解説しますね。

▼「ボタンAが押されたときに録音を開始する」部分

▼「ボタンBが押されたときに再生を開始する」部分

▼「それぞれの状態(空/録音中/再生中/停止中/)でアイコンを表示する」部分

いかがでしょうか?録音・再生・状態を使うシンプルなプログラムです。

まとめ

本記事のおさらいです。

  • マイク機能はmicro:bitの本体がV2以降のみに対応(V1.5非対応)
  • 検出した音の大きさは「まわりの音の大きさ」ブロックに数値で保存される
  • 数値の範囲は0(無音)~255(一番大きい)
  • 「うるさくなったとき/静かになったとき」をきっかけに動作可能
  • 「うるさい/静か」の基準は「しきい値」で設定可能
  • 音を「録音/再生」可能
  • 音の状態(再生中/録音中/停止中/空)を条件分岐に使うと便利

上記のとおりです。

それでは、micro:bitを楽しんでください(^_^)/~

micro:bit講座一覧へ戻る

タイトルとURLをコピーしました