小学校でプログラミング教育が必修化になった影響もあり、たくさんの種類のプログラミングおもちゃが発売されています。
プログラミングおもちゃを検索すると、ロボットや知育玩具が数多く登場しますが、もっとキラキラでカワイイものがあってもいいんじゃないかと思いました。
そこで、マイクロビット(micro:bit)を使って「魔法の宝石箱」を作ってみました。
魔法少女の持つかわいい変身ブローチや魔法のアイテムに憧れた方も多いと思います。そんな魔法のアイテムを自分で作ることができれば、とても素敵ですよね!
この記事では、マイクロビットを使ったジュエリーボックスの作り方をご紹介します。
夏休みの工作にもおすすめです。
魔法の宝石箱を工作する
まずは工作パート。魔法の宝石箱本体を作ります。
先にプログラムを知りたい!という方は「プログラミングで魔法をかける」からどうぞ。
100円ショップで材料をそろえる
マイクロビット本体と電池ボックス以外の材料は、すべて100円ショップでそろえました。
- フタ付きの箱
マイクロビットと電池ケースとスピーカーが入るサイズを選びましょう。
- 厚紙
箱の中のいい感じの位置にマイクロビットをおさめるためのパーツをつくります。
- 色画用紙、折り紙
ピンク×金色の組み合わせにするとより魔法少女のアイテムっぽくなります。
アクセントに赤を入れるのも〇
- シールやデコパーツなど
宝石っぽくて、立体的なものがオススメ。
他にマスキングテープやオーロラシートなどお好みで。
フタ付きの箱は、セリアで購入した「フタ付きケース(キューブ)クリア」を使いました。
箱をかわいくデコレーションする
材料がそろったら、箱をデコレーションしていきましょう。
ハート、月、星、リボン、ハネは魔法少女鉄板のモチーフですね!
中はこんな感じ。
マイクロビットの位置を決めて、電池ケースなどもキレイにおさまるようにします。
プログラミングで魔法をかける
MakeCodeエディターを開く
MakeCode(メイクコード)エディターの画面を開いて、プログラミングしましょう。
MakeCodeエディターの基本的な使い方は、「【マイクロビット】MakeCode(メイクコード)エディターの使い方」にまとめています。
プログラムの仕様
宝石箱を開けた時に、ハートが表示され音楽が流れるプログラムを作りました。
- 宝石箱を開けると、ハートが表示され音楽が1回流れる。
- 音楽が流れ終わったら、ハートが消える。
- 宝石箱を閉じてもう一度開けると、ハートが表示され音楽が1回流れる。
旧バージョンのマイクロビット(v1.5)の場合は、スピーカーが別途必要になります。
記事では、旧バージョンのマイクロビット(v1.5)とバネ型のプラグをピンに刺すタイプのスピーカーを使っています。
完成プログラム
プログラムの内容は画像のようになります。
明るさセンサーで開閉を判断
箱が閉まっているか開いているかは、明るさセンサーを使って判断します。
- 「明るさ」が10より大きい
→ 明るいので箱は開いている - 「明るさ」が10以下
→ 暗いので箱は閉まっている
判定の値(10)は、お部屋の明るさなどに合わせて調整してみてくださいね。
明るさセンサーについては、「明るさセンサーを使った簡単なプログラムを作ってみよう」でくわしく解説しています。
また、「明るさ」という名前の変数を作り、「明るさ」の値を保存しておきます。
変数カテゴリで「変数を追加する」ボタンをクリックして変数を作ってください。
変数の値を変える「変数~を~にする」ブロックも変数カテゴリにあります。
変数については「変数とは?スクラッチ(Scratch)を使って解説」でくわしく解説しています。
箱が開いたときの処理
箱が開いた(「明るさ」の値が10より大きい)時のプログラムを作りましょう。
- 「アイコンを表示」で、ハートを表示する。
- 「音楽を鳴らす」を使って、音楽が流れるようにする。
- 「表示を消す」で、ハートを消す。
複数の命令をおまとめ!「関数」
上の画像のプログラムでも動きますが、音を鳴らすブロックが多くてちょっと見にくいですね。
それと別のタイミングでも同じ音楽を流したくなったら、また同じ数だけブロックを追加するのは大変です。
例えば「ボタンAが押された時」にも同じ音楽を流したくなったら、下のようなプログラムになります。
うゎぁ……ってなりませんでしたか?
両方とも同じメロディーになっているのか確認してみてください。
イヤですよね?
それと、ちょっと直したいなと思ったら2カ所直さないといけないのも大変です。どちらか直し忘れてしまうかも。
そんな時は関数を使うと便利です。
関数を作る
- カテゴリの「高度なブロック」をクリック、「関数」を選ぶ。
- 「関数を作成する…」をクリックし、関数を作成する。
関数名にはどんな命令のまとまりか分かるような名前をつけて「完了」をクリックしましょう。
今回関数名は「音楽を鳴らす」にしました。他の部分は触らなくてOK。
関数「音楽を鳴らす」ブロックがプログラミングエリアに出てきました。
「ずっと」にあった「音楽を鳴らす」ブロックを関数「音楽を鳴らす」の中に移動させましょう。
関数を呼び出す
「ずっと」の「音楽を鳴らす」ブロックがあった場所に、関数「音楽を鳴らす」を呼び出す命令を入れましょう。
関数カテゴリにある「呼び出し 音楽を鳴らす」ブロックを使います。
これでスッキリ見やすくなりましたね!
何度も使う処理があったら、それを関数にすると便利!
関数については「関数とは?スクラッチ(Scratch)を使って解説」でくわしく解説しています。
音楽を1回だけ鳴らす
ここまで作って気がついたかと思いますが、このままだと明るい間、ずっと音楽が鳴りっぱなしです。
シミュレーターがうるさいので、シミレーターを停止するボタンで止めておきましょう。
箱を開けた時に1回だけ音楽が流れるようにします。
マーカーを引いてある所が追加した部分です。
- 「最初だけ」で変数「演奏した」を「真」にする。
→ マイクロビットを箱にセットする時に 音楽が鳴らないようにしています。
- 箱が開いている かつ まだ音楽を流していない 場合、
ハートを表示し、音楽を流した後、変数「演奏した」を「真」にする。
→ 音楽を流し終わった状態にしています。
- 箱が閉じている かつ 音楽を流し終わっている 場合、
変数「演奏した」を「偽」にする。
→ 音楽を流していない状態にもどしています。
真(true) と 偽(false)
1回音楽を流したか判断する目印として、変数「演奏した」を追加しました。
- 変数「演奏した」に「真」が入っていたら、音楽を流し終わった状態を表す。
- 変数「演奏した」に「偽」が入っていたら、まだ音楽を流していない状態を表す。
ここに出てくる「真」と「偽」は何かと言うと、
- 真(true)はそうだよ
- 偽(false)はちがうよ
という意味です。
演奏した?そうだよ~とか、ちがうよ~と読みかえてもらえればOKです。
「真」と「偽」は、論理のカテゴリにあります。
かつ(AND) と または(OR)
判定条件が2つ以上ある場合、論理のカテゴリの「かつ」や「または」と書いてあるブロックを使います。
では、条件と条件をつないでいる「かつ」や「または」とはどういう意味でしょうか。
- かつ(AND)は全ての条件をクリアしていればOK
- または(OR)は1つでも条件をクリアしていればOK
例えば、リンゴ・バナナ・トマト・玉ねぎがあったとき
・リンゴ → OK(真)
・バナナ → ダメ(偽)
・トマト → ダメ(偽)
・玉ねぎ → ダメ(偽)
・リンゴ → OK(真)
・バナナ → OK(真)
・トマト → OK(真)
・玉ねぎ → ダメ(偽)
ということになります。
論理演算については「論理演算(かつ・または・ではない)とは?スクラッチ(Scratch)を使って解説」でくわしく解説しています。
シミュレーターで確認
プログラムが完成したら、シミュレーターでテストしましょう。
- 一度明るさを0にした後、明るさの値を上げた時、ハートが表示され、音楽が流れたでしょうか?
- 音楽は1回だけ流れるでしょうか?
- 音楽が流れ終わったら、ハートが消えたでしょうか?
- もう一度明るさを0にした後、明るさの値を上げた時、ハートが表示され、音楽が流れたでしょうか?
マイクロビットの左上の丸の中を上下にドラッグすると、明るさの値を変えることができます。
シミュレーターで確認できたら、マイクロビットに転送して実際に動かしてみましょう。
まとめ
魔法の宝石箱の作り方を紹介しました。
魔法の宝石箱は、「ボタンを押した時」や「ゆさぶられた時」など、まだまだ機能を追加する余地があります。
ぜひプログラムを追加して、自分だけの魔法の宝石箱を作ってくださいね!