マイクロビットで和音を鳴らしたいと思ったのですが、複数の音を同時に鳴らす方法がわかりませんでした。
それならいっそのこと、複数のマイクロビットを同時に鳴らしてみようと思い立ちました。
せっかくなので、2台のマイクロビットでハモらせてみようと思います。
機能
「音楽」ブロックを使ってメロディーを作り、それを関数にします。いくつかのメロディーを関数として準備しておきます。
「A」ボタンを押すと、一方のマイクロビットがメロディーを再生します。
一節が終わると、「無線」でもう一方のマイクロビットに合図を送ります。受け取ったマイクロビットもメロディーを再生し、「無線」で合図を送り返します。
これを繰り返すことで、2台のマイクロビットが交互に歌ったり、一緒に違う旋律を歌ったりすることができます。
今回は、コブクロの「風をみつめて」という歌のサビの部分を使ってみました。

「A」ボタンを押すと、マイクロビットAがメロディーを歌います(関数「A1」と関数「A2」)。ふたつの関数を歌い終わると、無線で合図「3」を送信します。マイクロビットBは、合図「3」を受けて、関数「B3」を歌います。終わると合図「4」を送信し、引き続き関数「B4」を歌います。合図「4」を受け取ったマイクロビットAは、関数「A4」を歌います。「A4」と「B4」は同時に歌うことになるので、ここで、2台のマイクロビットがハモることになります。
このように、合図を送り合いながら、それぞれの旋律を歌います。
材料
- マイクロビット(×2)
- 皿ネジ(M3x15mm)(×4)
- ナット(M3)(×8)
- プラスチック座金(内径3mm)(×4)
- USBケーブル(×2)
- 電池ボックス(セリアの電池式モバイルバッテリー)(×2)
- 電池(単三×4)
- スピーカー(セリアのマルチメディアスピーカー)(×2)
- ジャンパー線(一方がワニ口クリップになっているもの)(×4)
- 消しゴムの切れはし、両面テープ

プログラム
2小節分のメロディーを関数にしたものを、マイクロビットA用に4種類、マイクロビットB用に5種類準備します。


最初に無線の設定と音楽のテンポ設定を行います。
「A」ボタンを押したとき、無線を受信したとき、それぞれについて、所望の関数呼び出し、無線送信の処理を行います。

つなぎかた
2台とも、全く同じ作業を行います。
マイクロビットの「0」、「GND」ピンに、ジャンパー線をつなぎます。

スピーカーの裏に、両面テープで電池ボックスを貼り付けます。

スピーカーの上に、消しゴムと両面テープでマイクロビットを取り付けます。

電池、およびスピーカーを、マイクロビットと接続します。

結果
一方のマイクロビットの「A」ボタンを押すと、2台が交互に歌ったり、ハモったりしてくれます。
音楽にあわせて、LEDで顔のイメージを表示させているのですが、表示に時間がかかるため、表示を切り替える部分(2小節ごと)だけ、歌が間延びしてしまいます(8分休符ひとつ分をけずっているのですが、それでも間延びしています)。
頑張れば、もっと複雑な合唱などもできそうですが、今回はここまででギブアップです。
なお、私がマイクロビットの使い方を習得するのにあたっては、以下の書籍を参考にさせていただきました。
初心者向けから、比較的高度なものまで、さまざまな情報が記載されているだけでなく、子供向けの作例も多数掲載されていますので、「プログラミング教育」のための題材さがしなどにもおすすめです。