ミュージックプレーヤーをつくろう! 【micro:bitでオモチャをつくろう】

micro:bit(マイクロビット)はScratchで誰でも簡単に電子工作できるボート。「音楽を流すブロック」を使って、自分好みの音楽プレーヤーをつくりましょう。

ミュージックプレーヤーをつくろう! 【micro:bitでオモチャをつくろう】

youtu.be

用意するもの

前回、「音楽を流すブロック」を使ったプログラムと、新しい用具として「スピーカー」を使って、音楽を流してみましたね。今回は「音楽を流すブロック」を使い、工作しながら遊び道具をつくっていきましょう。

前回に引き続き、スピーカーとワニ口クリップコードもしくはミノムシクリップコードを用意。コードは今回少し多めに使うので、5本用意してくださいね。

上記以外に今回は、厚紙またはダンボールと、アルミホイル、ハサミ、ノリ、色マジックを用意します。自分で用意できない場合は、家の人に手伝ってもらいましょう。

今回作成するオモチャは、ミュージックプレーヤーです。「音楽を流すブロック」を使って、音楽を流したり停止したりできるボタンをつくり、ミュージックプレーヤーにします。

これまでは、プログラムをスタートしたり、ストップするときは、micro:bitの「A」と「B」というボタンを使っていましたね。今回は、このボタンそのものを自分でつくります。説明が難しいですが、一緒につくっていけば簡単なので、最後まで一緒につくってみましょう。

「ミュージックプレーヤー」のプログラムをつくる

用意ができたら、さっそく「ミュージックプレーヤー」のプログラムをつくりましょう。プログラムを作成する方法を覚えていますか?忘れてしまった場合はここをクリックしてください。そして、「新しいプロジェクト」と書かれた箇所をクリックしてみましょう。下記のように表示されれば、準備OK。

まずは、「最初だけ」ブロックを使いましょう。

プログラムメニューエリアの【変数】をクリックして「変数を追加する」ブロックをクリック。

[作成する変数の名前]と書かれたページが表示されるので、画像のように「音楽」と入力します。

「変数(音楽)を(0)にする」ブロックをクリックし、最初のブロックにくっつけます。

これは、micro:bitのボタンを使ってゲームをつくろう応用編でも説明しましたね。変数「音楽」という入れ物をつくって、中に「0」という値を入れたということです。「最初だけ」ブロックにくっつけるのはこれだけです。

ボタンに変わる新しい動くキッカケを与えるブロックは、「端子(P0)がタッチされたとき」ブロック。これはタッチセンサー (静電容量センサー)とも呼びます。micro:bitではこのブロックを使うと、人の手が端子に触ったり離れたりするのがわかります。そのため、ボタンのように扱えます。

それでは、プログラムです。【入力】をクリックして「端子(P0)がタッチされたとき」ブロックをクリック。

「端子(P1)がタッチされたとき」と端子を(P1)に変更します。これは、スピーカーの端子がP0とかぶるのを防ぐためです。

続いて、プログラムメニューエリアの【変数】をクリックして「変数(音楽)を(0)にする」ブロックをクリック。

「変数(音楽)を(1)にする」と変数を(1)に変更して、「端子(P1)がタッチされたとき」にくっつけます。

「端子(P1)がタッチされたとき」ブロックを変数ごとコピーしてみましょう。コピーしたいブロックを選んで、[⌘]+[C]または[Ctrl]+[C]を押してコピー、[⌘]+[V]または[Ctrl]+[V]を押して貼り付けます。

「端子(P2)がタッチされたとき」と端子を(P2)、「変数(音楽)を(2)にする」と変数を(2)に変更します。

引き続き、端子P1、P2がタッチされたときの処理をブロックでつくっていきましょう。「ずっと」ブロックを使ってプログラムをつくっていきます。

端子P1を触ると音楽が再生/停止するプログラム

端子P1を触ると音楽が流れて、もう一度端子P1を触ると、音楽が止まるというプログラムにしようと思います。どんなブロックを使いますか?正解は、【論理】ブロックの「もし〈真〉なら でなければ」ブロックを使います。【論理】をクリックして「もし〈真〉なら でなければ」ブロックをクリックして、「ずっと」ブロックにくっつけます。

では条件をつくっていきましょう。先ほど、端子P1、P2がタッチされたときに変数[音楽]の値を書き換えるプログラムをつくりましたよね。勘がいい人はわかるのではないでしょうか?

では、答え合わせをしていきましょう。【論理】ブロックの「(0)(=▼)(0)」をクリック。

左側に変数「音楽」、右側に「1」を入れ、「もし〈真〉なら でなければ」ブロックの〈真〉にくっつけます。

これで、「端子(P1)がタッチされたとき」の分岐ができました。

同じように、「端子(P2)がタッチされたとき」の処理も行います。「でなければ」下のようなアイコンをクリックして、行を増やします。

「(変数)(=▼)(1)」をコピーして、(1)を(2)に変更して、先ほど増やした行にくっつけます。

これで、「端子(P1)がタッチされたとき」「端子(P2)がタッチされたとき」それぞれの条件を分岐できました。さらに詳しい処理を書いていきます。

音楽を流す処理

「端子(P1)がタッチされたとき」に音楽を流したいと思います。「最初だけ」ブロックで使った、「変数(音楽)を(0)にする」をコピーしてそれぞれの条件分岐の下にコピーしましょう。

これは、「端子(P1)がタッチされたとき」に変数が「1」に変わり、処理が実行されるのですが、変数を「0」に戻さないと、ずっと1音目が鳴り続けてしまうのを防ぐためです。

いよいよ音楽を流すブロックを配置していきます。【音楽】をクリックして「メロディを開始する(ダダダム)くり返し(一度だけ)」ブロックをクリックして、「ずっと」ブロックの中「変数(音楽)を(0)にする」ブロック1個目の下にくっつけます。

「メロディを開始する(ダダダム)くり返し(一度だけ)」ブロックの値を、「メロディを開始する(プレリュード)くり返し(ずっと)」と変更。くり返しを(ずっと)にすることで、ストップするまで音楽が流れ続けます。

音楽が流れている間、アニメーションを流してみます。音楽が流れている間はずっとアニメーションしたいので、ループのブロックを使います。

【ループ】をクリックして「もし(真)ならくりかえし」ブロックをクリックして、「ずっと」ブロックの中「メロディを開始する(プレリュード)くり返し(ずっと)」の下にくっつけます。

次に条件を作成しますが、この時点では変数が0です。この条件を抜けるのは変数が1か、2の場合だけです。なので、変数が0の間であれば、アイコンを表示していいということです。「(音楽)=(0)」をつくってくっつけましょう。

アイコンのブロックを用意。【基本】をクリックして「アイコンを表示」ブロックをクリックしてくっつけます。

音符のアイコンに変更して、複製して並べます。

音楽をストップする処理

以上で、音楽を流す処理が終了しました。今度は音楽をストップする処理ですね。「ずっと」ブログ中「(音楽)=(2)」ブロックの下に処理を書いていきたいと思います。

メロディを止める場合は、同じメロディのブロックで、1度だけ音楽を流せば止まります。先ほどと同じようにメロディのブロックを用意します。【音楽】をクリックして「メロディを開始する(ダダダム)くり返し(一度だけ)」ブロックをクリックして、「ずっと」ブロックの中「変数(音楽)を(0)にする」ブロック2個目の下にくっつけます。

音楽は停止ボタンなので、短くてキレのいい(ピコーン!)をくり返し(一度だけ)にします。これで音楽が停止します。

最後に停止したときに音符のアイコンを消してみましょう。アイコンを(×)にして、「メロディを開始する(ピコーン!)くり返し(一度だけ)」ブロックの下にくっつけます。

一番下の「でなければ」部分は今回使わないので、右にある(−)をクリックして削除。

プログラムが正しく作成できたか確認

どうでしたか?プログラムが正しくつくれたか確認してみましょう。

左側のプレビューエリアで、動くかどうかチェックしてみましょう1の部分をクリックすると音楽が流れます。2の部分をクリックすると音楽が停止します。

ダウンロード

プレビューエリアでプログラムの動きが確認できたら、micro:bitにプログラムを書き込んでみましょう。画面下にある「名称未設定」と書かれた場所をクリックして、下記のように「ミュージックプレーヤー」とカタカナで入力してみましょう。その後、文字を入力した横の青いボタンをクリックして、プログラムのファイルをパソコンにダウンロード。

micro:bitとパソコンを接続して、ダウンロードした「microbit-ミュージックプレーヤー.hex」をmicro:bitに保存しましょう。もしやり方を忘れてしまった場合は、こちらの記事
を参考にしてくださいね。保存(書き込み)が完了すると、一度パソコンとの接続がきれて、プログラムが動き出します。一度電源を抜いて、下の配線図を参考にしてみましょう。

ダンボールを使ってミュージックプレーヤーのような形をつくってみましょう。アルミホイルを好きな形に3つ切り抜きます。

アルミホイル部分がスイッチなので、ノリを使ってしっかり貼り付けましょう。

  • セロハンテープで貼り付けてしまうと、ボタンとして動かなくなる可能性があるので、必ずノリを使って貼り付けてください。

ダンボールにアルミホイルを貼り付けたら、配線を行います。図と写真を参考につないでみてください。

GNDの部分は、難しいですが、写真のようにつないでみてください。

遊び方

音楽をスタートするときは、中央のボタンを押したまま、左側のスタートボタンを押します。ストップする場合は、中央のボタンを押したまま、右側のストップボタンを押します。

どうでしょうか?スタートをタッチすると音楽が流れて、LEDに音符のアニメーションが表示され、ストップをタッチすると、音楽が停止しましたか?

今回は、音楽が流れるブロックと、スピーカーやイヤホンをmicro:bitに取り付けて音楽を出してみました。そして、アルミホイルを使って触ってスタートやストップできるボタンを自作してみました。今日覚えたブロックを使えば、早押しゲームやもぐら叩きゲームなどもつくれます。ぜひ試してみてください。