プログラミング教室「プロラボ唐津」では、ロボットを使ったプログラミング教育を行っています。
使用しているプログラミングロボットは、「クムクム」です。
今回は、こちらのロボットを使ったプログラミングの例を紹介します。
こちらは弊社で販売しているプログラミング教材「Qumcum(クムクム)」
scratchでプログラミングすることで動かすことが出来ます。今回は無料で公開しているコンテンツをご紹介します。
「瞬発力ゲーム」#プログラミング教育#scratch https://t.co/FV92gkSFWe pic.twitter.com/0aV4JeQ163— クレタリア@プログラミング教育 (@cretaria_inc) February 7, 2019
こちらの動画では、「クムクムロボットとScratchを使って、瞬発力ゲームで遊ぶ」プログラムと紹介されています。
瞬発力ゲームとは、クムクムロボットの胸についているLEDが光った瞬間に、いかに早く「パンっ」と手を叩いて反応できるかのゲームです。
「瞬発力ゲーム」のプログラムを考える
まず、ゲームの流れを簡単に箇条書きにまとめると以下のような感じです。
- クムクムロボットのLEDがランダムな時間に光る
- 「パンっ」と手を叩いて反応した時間を計測する
- 速く反応できれば成功、反応できなければ失敗
こちらのプログラムは、乱数と条件分岐のif文を使っている簡単なプログラムです。
こちらのブログを読み進めていった方は、すでに乱数と条件分岐のif文については、理解できているかと思います。
乱数とは、指定した数字の範囲で、ランダムに数字を生成するものです。
具体的にScratchでは、このブロックが乱数です。
この「1」「3」の数字を変更するこで、好きな範囲の数字をランダムで生成できます。
瞬発力ゲームは、いつLEDが光るか分からないのが肝ですので、この乱数を使ってランダムにLEDを光らせています。
乱数は、「ロボット×Scratchで記憶力ゲームで遊ぶ」でも利用しています。
次に、条件分岐のif文についてですが、ifには、英語で「もし~ならば」という意味がありますよね。
つまり、「3.速く反応できれば成功、反応できなければ失敗」というのは、条件分岐のif文に直すと、「もし速く反応できたら『成功』という処理を、反応できなければ『失敗』という処理を実行する」ということです。
具体的にScratchでは、「もし~なら●」「もし~なら●でなければ▲」のブロックを使います。
この「反応」をどうチェックするかですが、これは、LEDが光った時間から「パンっ」と手を叩いた時間で判断しています。
「パンっ」と手を叩いた時間で判断しているのは、おそらくクムクムロボットの「高感度コンデンサーマイク」を使っています。
高感度コンデンサーマイクは、周囲の音の大きさを検知するマイクで、手を叩いた音を検知して、反応した時間を割り出しているのでしょう。
実は、Scratchにも「音量」をチェックできるブロックがあります。
ただし、マイクが必要になりますので、「音量」ブロックを使いたい場合は、マイクを用意する必要があります。
少し道がそれましたが、LEDが光った時間から「パンっ」と手を叩いた時間までは、マイクを利用することで簡単に取得できます。
あとは、条件分岐のif文で、設定した時間の範囲内なら「成功」、範囲外なら「失敗」のプログラムを作れば完成です。
これって、実は「ロボット×Scratchで時間当てゲームで遊ぶ」とほとんど同じようなプログラムなんです。
「記憶力ゲーム」も「瞬発力ゲーム」も、ゲームの本質は時間をチェックしているということです。
時間をチェックするプログラムをうまく使って、「記憶力ゲーム」や「瞬発力ゲーム」を生み出していたというわけです。
プログラミング教室「プロラボ唐津」では、そのプログラムの本質がどこにあるのかも教えながら、子供たちの発想力で、楽しい作品を作っていきます。