【microbit:basic第2回】触ると喜ぶデジタルペット:micro:bit V2のタッチと音でプログラミング!

0
17

さて、第2回目となるmicro:bitを使ったプログラミングの基本としてお子様へ与えるミッションはこちらです。 「micro:bitをペットに見立てて、金色のロゴマークを優しく撫でたら嬉しい音と顔を出し、揺さぶったら怒るようにしてほしい!」

今回は、最新の「micro:bit V2」に標準搭載されている「タッチロゴ(触る)」と「内蔵スピーカー(音)」、そして「加速度センサー(揺れ)」をフル活用します。これにより、外部からのアクション(入力)によってプログラムの動きを変える「イベント駆動」という重要な仕組みを学びます。

ステップ1:開発環境「MakeCode」とV2の機能を確認

パソコンのブラウザから「MakeCode」にアクセスし、新しいプロジェクトを作成します。 micro:bit V2の基板表面の上部にある金色のマーク(ロゴ)は、指で触れると反応するタッチセンサーになっています。また、裏面には小さなスピーカーが付いており、本体だけで音を鳴らすことができます。さらに、本体の揺れや傾きを感知する「加速度センサー」も内蔵されています

ステップ2:撫でたら喜ぶ仕組みを作ろう

まずは「撫でたら喜ぶ」プログラムです。今回は、最初からある「ずっと」ブロックは使いません。

  1. 「入力」カテゴリから、「ロゴが[短くタップ]されたとき」というブロックを取り出します。
  2. 「短くタップ」の部分をクリックし、「タッチされた」に変更します。
  3. このブロックの中に、「基本」カテゴリから「アイコンを表示」ブロックを入れて、ハートマークや笑顔など好きな顔を選びます。
  4. さらに、「音楽」カテゴリから「鳴らす(メロディを鳴らす:テンポ120 bpm 終るまで」ブロックを取り出し、アイコンの下に繋ぎます。嬉しい感情が伝わるようなメロディを選びましょう。

これで、「ロゴに触ると、笑顔になって音楽が鳴る」処理が完成です。

ステップ3:揺さぶったら怒る仕組みを作ろう

次に「揺さぶったら怒る」プログラムを追加します。本体が揺らされたことを検知するには、加速度センサーからの入力信号を利用します

  1. 「入力」カテゴリから、「[ゆさぶられた]とき」ブロックを取り出して、何もない場所に置きます。
  2. その中に「アイコンを表示」ブロックを入れ、怒った顔のマークを選びます。
  3. 同様に「音楽」カテゴリから「鳴らす(メロディを鳴らす:テンポ120 bpm 終るまで」ブロックを追加し、怒っているような音を選びます。

左側のシミュレーターで動きを確認しましょう。「SHAKE(揺さぶる)」という白いボタンをクリックするか、マウスでシミュレーター上のmicro:bitを左右に振るように動かすと、怒った顔と音が鳴るはずです。

ステップ4:より本物のペットに近づける!(親からのアドバイス)

もしお子様が早く完成させたら、こんなアドバイスをして「条件分岐」の探求を促してみましょう。

親からのアドバイスのヒント 「今のままだと、1回触った後、ずっと笑ったり怒ったりしたままになっちゃうね。触られている間だけ喜んで、手を離したら普通の顔に戻るようにできないかな?」

これを実現するには、「論理」カテゴリにある「もし[真]なら〜でなければ」というブロックを使います。「もし『ロゴがタッチされている』なら(喜ぶ)、でなければ(普通の顔)」という条件分岐を「ずっと」ブロックの中で繰り返すことで、より高度なプログラムに進化します。

ステップ5:本体に書き込んで遊んでみよう!

プログラムが完成したら、第1回と同じようにパソコンとmicro:bitをUSBケーブルで繋いでデータを書き込みます。 書き込みが終わったら、実際に基板上の金色のロゴマークを指で撫でてみてください。また、手で持ってブンブンと揺さぶってみましょう。本物のペットのように反応してくれたら大成功です!

動画で解説

第2回の作業風景を動画にまとめました。

夜のデモンストレーションに向けて

親が帰宅したら、完成したデジタルペットを触らせてもらいましょう。 「どうやって触ったことや揺さぶったことを判断しているの?」と質問してみてください。「ロゴがタッチされたときブロックを使ったんだよ」「揺さぶられたときブロックを使ったんだよ」と、人間のアクション(入力)をきっかけにしてプログラムが動く仕組みをお子様自身が説明できれば完璧です。

今回は条件分岐というちょっと高度なプログラミングではよく使うロジックが出てきました。これが使えるようになるとマイコンに対していろいろな指示ができるようになります。

次回は第3回、「イカサマできないサイコロ」の作り方を解説します。ゲーム作りには欠かせない「乱数」と「変数」という少し本格的な概念に挑戦します!

関連リンク