micro:bit(マイクロビット)はScratchで誰でも簡単に電子工作できるボート。「音楽を流すブロック」を使って、自分好みの音楽プレーヤーをつくりましょう。
用意するもの
前回、「音楽を流すブロック」を使ったプログラムと、新しい用具として「スピーカー」を使って、音楽を流してみましたね。今回は「音楽を流すブロック」を使い、工作しながら遊び道具をつくっていきましょう。
前回に引き続き、スピーカーとワニ口クリップコードもしくはミノムシクリップコードを用意。コードは今回少し多めに使うので、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に取り付けて音楽を出してみました。そして、アルミホイルを使って触ってスタートやストップできるボタンを自作してみました。今日覚えたブロックを使えば、早押しゲームやもぐら叩きゲームなどもつくれます。ぜひ試してみてください。