先日、複数のマイクロビットで同時に音を鳴らすという作例をつくりました(記事は こちら)。
親機のマイクロビットを振って「指揮」をすると、子機のマイクロビット(複数)がそれぞれのパートを「演奏」するというものです。
その際、プログラム自体はうまくできたのですが、音が小さくてあまりよく聞こえないという問題が生じました。
マイクロビットに百円ショップで購入したスピーカーをつないでいたのですが、音が小さく、複数のマイクロビットを同時に鳴らすと、それぞれがどんな音を鳴らしているのかよく判断できないような状況になってしまいました。
本来ならばもっとたくさんのマイクロビットで同時に音を鳴らしたかったのですが、音があまり聞こえないため、その時は3台で断念しました。
これに対し、本当は、もっと大きな音の出る、アンプのついたスピーカーを準備すればよいのですが、アンプ付きスピーカーをマイクロビットの台数分準備するのも大変です。
そんな訳で今回は、ひとつのアンプ付きスピーカーで、複数のマイクロビットの音を同時に鳴らすことができないか、調査してみることにしました。
調査1
マイクロビットの出力端子は中間電位を出力することはできず、HIGH(電源電圧)とLOW(0V)を交互に出力することで音を鳴らしています。
まずは、マイクロビットが出力する音声信号の波形をオシロスコープで確認してみます。
使用したオシロスコープはこちらです。
ずっと「真ん中のラ(440Hz)」の音を鳴らし続けるプログラムを作成してマイクロビットに書き込み、「0」番ピンの電圧波形を確認しました。
このように、周期が2.27msec(440Hz)、振幅が2.4V(Ni-MH電池2本を電源として使っているので、電源電圧は2.4Vになります)の波形が観測できました。
音を「上のラ(880Hz)」に変更してみました。
このように、振幅は変わらず、周期が1.13msec(880Hz)に変わりました。
調査2
マイクロビットの出力端子は中間電位を出力することができないので、マイクロビット出力に可変抵抗を取り付けてみました。
このように、可変抵抗のつまみを調整することで、出力波形の振幅を変えることができました。
オシロスコープの代わりにアンプ付きスピーカーをつないだところ、つまみの調整で音量が変わることを確認できました(コーラの缶の形をしているのがスピーカーです)。
調査3
マイクロビットをふたつに増やしてみました。
ひとつは「真ん中のラ(440Hz)」、もうひとつは「上のラ(880Hz)」の信号を出力しています。
このように、440Hzと880Hzのふたつの波形を合成した波形になりました。
なお、可変抵抗のつまみを電源側いっぱいに回してしまうと、ふたつのマイクロビットの出力端子同士がショートしてしまうので、やってはいけません。
また、可変抵抗のいずれかのつまみをグランド側いっぱいに回すと、出力信号が0Vになってしまうため、もう一方のマイクロビットの波形もなくなってしまいます。
完成
みっつのマイクロビットをアンプ付きスピーカーをつないでみました。
音を鳴らしてみると、それぞれのパートの音がしっかりと判別できます。
マイクロビット同士をショートさせないように注意は必要ですが、この方法を使えば、複数のマイクロビットの音をひとつのスピーカーで鳴らすことが可能です。
なお、私がマイクロビットの使い方を習得するのにあたっては、以下の書籍を参考にさせていただきました。
初心者向けから、比較的高度なものまで、さまざまな情報が記載されているだけでなく、子供向けの作例も多数掲載されていますので、「プログラミング教育」のための題材さがしなどにもおすすめです。