【マイクロビット×MakeCode】女の子の工作に!プログラミングで魔法の宝石箱を作ろう。

小学校でプログラミング教育が必修化になった影響もあり、
たくさんの種類のプログラミングおもちゃが発売されています。

「プログラミング おもちゃ」で検索するとたくさんのおもちゃが出てきますが、
ロボットいかにも知育玩具ですといった感じのものが多いですよね。

 

もちろんどれも十分楽しめるものなのですが、

「もっとキラキラでカワイイものがあってもいいんじゃないか!」

と思いまして…

マイクロビット(micro:bit)で「魔法の宝石箱」を作ってみました。

 

魔法使いサリーからはじまり、セーラームーンやおジャ魔女どれみ、プリキュアなどなど…
魔法少女はその時代時代で子どもたちの心を魅了してきました。

魔法少女の持つかわいい変身ブローチや魔法のアイテムに胸をおどらせた人も多いはず。

そんな魔法のアイテムを自分で作れたらステキですよね!

夏休みの工作にもオススメですよ。

 

スポンサーリンク

魔法の宝石箱を工作する

魔法の宝石箱

まずは工作パート。魔法の宝石箱本体を作ります。

プログラムを知りたい!という方は「プログラミングで魔法をかける」からどうぞ。

100円ショップで材料をそろえる

宝石箱の材料

マイクロビット本体と電池ボックス以外の材料は、すべて100円ショップでそろえました。

  • フタ付きの箱
    マイクロビットと電池ケースとスピーカーが入るサイズを選びましょう。
     
  • 厚紙
    箱の中のいい感じの位置にマイクロビットをおさめるためのパーツをつくります。
     
  • 色画用紙、折り紙
    ピンク×金色の組み合わせにするとより魔法少女のアイテムっぽくなります。
    アクセントに赤を入れるのも〇
     
  • シールやデコパーツなど
    宝石っぽくて、立体的なものがオススメ。
    他にマスキングテープやオーロラシートなどお好みで。

 

フタ付きの箱は、セリアで購入した「フタ付きケース(キューブ)クリア」を使いました。

フタ付きケース(キューブ)クリア

 

箱をかわいくデコレーションする

箱をデコレーションする

材料がそろったら、箱をデコレーションしていきましょう。

ハート、月、星、リボン、ハネは魔法少女鉄板のモチーフですね!

 

中はこんな感じ。

宝石箱の中

マイクロビットの位置を決めて、電池ケースなどもキレイにおさまるようにします。

 

PRお子さんにぴったりの学びをオーダーメイド!プログラミング教室【LITALICOワンダー】

プログラミングで魔法をかける

フタを開けた宝石箱

MakeCodeエディターを開く

MakeCode(メイクコード)エディターの画面を開いて、プログラミングしましょう。

 

MakeCodeエディターの基本的な使い方は、下の記事にまとめています。

 

プログラムの仕様

宝石箱を開けた時に、ハートが表示され音楽が流れるプログラムを作りました。

  • 宝石箱を開けると、ハートが表示され音楽が1回流れる。
  • 音楽が流れ終わったら、ハートが消える。
  • 宝石箱を閉じてもう一度開けると、ハートが表示され音楽が1回流れる。

 

旧バージョンのマイクロビット(v1.5)の場合は、スピーカーが別途必要になります。

記事では、旧バージョンのマイクロビット(v1.5)と
バネ型のプラグをピンに刺すタイプのスピーカーを使っています。

\ケーブルがないので邪魔になりません!/

 

完成プログラム

プログラムの内容は画像のようになります。

箱を開けると音楽が流れるプログラム1

箱を開けると音楽が流れるプログラム2

では、考え方を説明していきます。

 

明るさセンサーで開閉を判断

箱が閉まっているか開いているかは、明るさセンサーを使って判断します。

箱が開いているかの判定

  • 「明るさ」が10より大きい
    → 明るいので箱は開いている
  • 「明るさ」が10以下
    → 暗いので箱は閉まっている

判定の値(10)は、お部屋の明るさなどに合わせて調整してみてくださいね。

明るさセンサーについては、
明るさセンサーを使った簡単なプログラムを作ってみよう」でくわしく解説しています。

 

また、「明るさ」という名前の変数を作り、「明るさ」の値を保存しておきます。

変数カテゴリで「変数を追加する」ボタンをクリックして変数を作ってください。
変数の値を変える「変数~を~にする」ブロックも変数カテゴリにあります。

 

変数とは、データを一時的に覚えておくための入れ物のことです。
プログラムで人間が分かるように名前を付けます。

変数については「変数とは?スクラッチ(Scratch)を使って解説」でくわしく解説しています。

 

箱が開いたときの処理

箱が開いた(「明るさ」の値が10より大きい)時のプログラムを作りましょう。

箱が開いていた時の処理

  1. 「アイコンを表示」で、ハートを表示する。
  2. 「音楽を鳴らす」を使って、音楽が流れるようにする。
  3. 「表示を消す」で、ハートを消す。

 

複数の命令をおまとめ!「関数」

上の画像のプログラムでも動きますが、音を鳴らすブロックが多くてちょっと見にくいですね。

それと別のタイミングでも同じ音楽を流したくなったら、
また同じ数だけブロックを追加するのは大変です。

例えば「ボタンAが押された時」にも同じ音楽を流したくなったら、
下のようなプログラムになります。

同じ処理をたくさん作るのは大変

うゎぁ…ってなりませんでしたか?

両方とも同じメロディーになっているのか確認してみてください。
……イヤですよね。

それと、ちょっと直したいなと思ったら2カ所直さないといけないのも大変です。
片方直し忘れてしまうかもしれません。

 

そんな時は関数を使うと便利です。

さっそく使ってみましょう。

関数を作る

関数を作る

  1. カテゴリの「高度なブロック」をクリック、「関数」を選ぶ。
  2. 「関数を作成する…」をクリックし、関数を作成する。

 

関数名をつける

関数名にはどんな命令のまとまりか分かるような名前をつけて、「完了」をクリックしましょう。

今回関数名は「音楽を鳴らす」にしました。
他の部分は触らなくてOK。

 

関数のブロックが出てきた

関数「音楽を鳴らす」ブロックがプログラミングエリアに出てきました。

 

「ずっと」にあった「音楽を鳴らす」ブロックを関数「音楽を鳴らす」の中に移動させましょう。

音楽が流れる関数

 

関数を呼び出す

「ずっと」「音楽を鳴らす」ブロックがあった場所に、
関数「音楽を鳴らす」を呼び出す命令を入れましょう。

 

関数カテゴリにある「呼び出し 音楽を鳴らす」ブロックを使います。

関数を呼び出す

これでスッキリ見やすくなりましたね!

 

関数とは、命令のまとまりのことです。
何度も使う処理があったら、それを関数にすると便利!

関数については「関数とは?スクラッチ(Scratch)を使って解説」でもくわしく解説しています。

 

音楽を1回だけ鳴らす

ここまで作って気がついたかと思いますが、
このままだと明るい間、ずっと音楽が鳴りっぱなしです。

シミュレーターがうるさいので、シミレーターを停止するボタンで止めておきましょう。

 

箱を開けた時に1回だけ音楽が流れるようにします。

箱を開けると音楽が流れるプログラム1

マーカーを引いてある所が追加した部分です。

  • 「最初だけ」で変数「演奏した」を「真」にする。
    → マイクロビットを箱にセットする時に 音楽が鳴らないようにしています。
     
  • 箱が開いている かつ まだ音楽を流していない 場合、
    ハートを表示し、音楽を流した後、変数「演奏した」を「真」にする。
    → 音楽を流し終わった状態にしています。
     
  • 箱が閉じている かつ 音楽を流し終わっている 場合、
    変数「演奏した」を「偽」にする。
    → 音楽を流していない状態に戻しています。

 

真(true) と 偽(false)

1回音楽を流したか判断する目印として、変数「演奏した」を追加しました。

変数「演奏した」の役割は、

  • 変数「演奏した」「真」が入っていたら、
    音楽を流し終わった状態を表す。
  • 変数「演奏した」「偽」が入っていたら、
    まだ音楽を流していない状態を表す。

 

ここに出てくる「真」「偽」は何かと言うと、

  • 真(true)そうだよ
  • 偽(false)ちがうよ

という意味です。

演奏した?そうだよ~とか、
演奏した?ちがうよ~と
読みかえてもらえればOKです。

「真」「偽」は、論理のカテゴリにあります。

 

かつ(AND) と または(OR)

かつとまたは

 

判定条件が2つ以上ある場合、
論理のカテゴリの「かつ」「または」と書いてあるブロックを使います。

では、条件と条件をつないでいる「かつ」「または」とはどういう意味でしょうか。

 

  • かつ(AND)全ての条件をクリアしていればOK
  • または(OR)1つでも条件をクリアしていればOK

 

例えば、リンゴ・バナナ・トマト・玉ねぎがあったとき

「赤い かつ 果物」という条件の場合
 ・リンゴ → OK(真)
 ・バナナ → ダメ(偽)
 ・トマト → ダメ(偽)
 ・玉ねぎ → ダメ(偽)
「赤い または 果物」という条件の場合
 ・リンゴ → OK(真)
 ・バナナ → OK(真)
 ・トマト → OK(真)
 ・玉ねぎ → ダメ(偽)

ということになります。

 

論理演算については「論理演算(かつ・または・ではない)とは?スクラッチ(Scratch)を使って解説」でくわしく解説しています。

 

シミュレーターで確認

プログラムが完成したら、シミュレーターでテストしましょう。

  • 一度明るさを0にした後、明るさの値を上げた時、
    ハートが表示され、音楽が流れたでしょうか?
  • 音楽は1回だけ流れるでしょうか?
  • 音楽が流れ終わったら、ハートが消えたでしょうか?
  • もう一度明るさを0にした後、明るさの値を上げた時、
    ハートが表示され、音楽が流れたでしょうか?

マイクロビットの左上の丸の中を上下にドラッグすると、明るさの値を変えることができます。

シミュレーターで確認できたら、マイクロビットに転送して実際に動かしてみましょう。

 

まとめ

魔法の宝石箱の作り方を紹介しました。

説明が長くなってしまいましたがいかがだったでしょうか。

 

魔法の宝石箱は、「ボタンを押した時」や「ゆさぶられた時」など
まだまだ機能を追加する余地があります。

ぜひプログラムを追加して自分だけの魔法の宝石箱を作ってくださいね!

 

タイトルとURLをコピーしました