[No.16]ワニワニゲームで運だめし!

総合・探究

さぁ夏休み! 遊びをもりあげる楽しいゲームを作ってみましょう! ワニの口に手を入れると……パクッとかまれるかもしれないちょっとドキドキのゲームです。夏休みのプログラミング工作にもどうぞ!

小学校~ 中級 80分
ワニワニゲームはこんな感じ!他の動物やモンスターなどにアレンジするのもおすすめ

必要なもの&準備

上段左から:SPACEBLOCK通常パッケージ、8×8 RGB LEDマトリックスパネル、ジャンパーワイヤ、下段左から: 180°マイクロサーボモーター、赤外線モーションセンサモジュール

SPACEBLOCKに拡張パーツを接続する

まずは、今回使用するLEDパネルと赤外線モーションセンサ、サーボモーターをSPACEBLOCKに接続してみましょう。
接続の全体像

接続の細かい部分は次の図で確認してください。

手を入れるとワニの口が閉じる仕組みを考える!

今回作りたいのは、ワニの口に手を入れると口がパクッと閉じる仕組みです。入力装置として、動きを検知できる赤外線モーションセンサを使用し、出力装置として0°から180°の回転の動きができるサーボモーターを使用します。ワニの口に手が入ったことを赤外線モーションセンサで検知して、サーボモーターの動きでワニの口を開閉します。

ワニの体部分には牛乳パックを使用し、厚紙でワニの口部分を作成。上あごは体に割ピンでとめ、重みで自然に閉まる構造にします。サーボモーターはストローをつけて上あごを押し上げられる程度の長さにします。

牛乳パックと厚紙で基本の形を作る

緑色の色画用紙を貼り付けて見た目を整え、牛乳パックの体部分に電池ボックスとSPACEBLOCK本体を入れます。

緑色に装飾。牛乳パックの体に電池ボックスと本体を収納

さらに、歯と目、尾、手足をつけます。上あごに赤外線モーションセンサ、下あごにサーボモーターを固定します。

目や歯などをつけるとワニらしくなる

上あごを割ピンでとめたら工作部分は完成です。

サーボの角度で上あごが閉じたり開いたりする。ワイヤー類はサーボや上あごの動きを妨げないように体の中にしっかりしまう
完成。赤外線モーションセンサが、ワニの口の中に手が置かれたかどうかをチェックする。電池ボックスのスイッチに触れる位置に穴を開けておくと便利

閉じるか閉じないかわからないプログラムを作ろう!

今回作りたいプログラムは、「ワニの口が閉じるときもあるし閉じないときもある」というもの。あらかじめ、口が閉じるか閉じないかどちらになるかわからないというプログラムを作っておく必要があります。

乱数ってなに?

サイコロを転がすときのように、何が出るかわからない値をプログラムで扱うときには「乱数」を使います。どれが出るかわからないことをランダムといいます。

[《0》から《10》までのランダムな整数]ブロックを使うと、指定した数値の範囲からランダムな整数が発生します。サイコロを振ると1から6のどれかの数字が出るのと同じように、ランダムな数値は指定した範囲の数値が同じ確率で出るようになっています。

「数字」カテゴリーに「乱数」のブロックがある

変数を作る

乱数を入れておくために、変数「random」を作ります。

変数「random」を作る

サーボの最初の位置を決めるプログラム

まず、次の図の通り、プログラム開始と同時にサーボの位置を0°にするプログラムを作成します。

最初にサーボの位置を決め、プログラムを動かし続けておく

動きを検知したら実行されるプログラム

ワニの口に手をいれたら実行されるプログラムを作ります。まず、大きな流れを作りましょう。

次の図の通り、[《A0》の電圧が《上がった》]ブロックで赤外線モーションセンサの値をチェックし続けます。手をワニの口に入れるとセンサが動きを検知して電圧が上がり、プログラムの実行が始まります。まず、乱数が発生し1〜10のいずれかの整数が変数「random」に入ります。そして、値が3以下ならワニの口が閉じて、そうでなければ口は開いたままになります。

ワニの口に手を入れると実行されるプログラムの大きな流れ

このプログラムに、LEDの演出を足します。次の図の通り、ワニの口に手を入れたことを検知したらカウントダウン表示をし、ワニに食べられるときは「×」、食べられずにすんだ場合は「○」の表示をします。また、判定が終わってワニの口が開いたり手を抜いたりする動きを赤外線モーションセンサーが検知しないように5秒の待機時間を入れます。

LEDの演出を追加してプログラム完成

これでプログラムは完成です。SPACEBLOCKにプログラムをスタンドアローンモードで転送して、もう一度ワニの中に入れて早速遊んでみましょう。

ポイント:食べられる確率は?
このプログラムでは、1〜10の整数の乱数を発生させて、3以下の場合はワニに食べられるようにしました。乱数が1〜3の場合ならワニに食べられて、4〜10の場合は食べられずにすみます。食べられる確率が30%で、食べられない確率が70%です。
では、ワニに食べられる確率をもっと上げて50%にするにはどうしたら良いでしょうか?[もし《 》なら]ブロックの条件を変更して、変数「ramdom」の値を5以下にしてみましょう。そうすると、1〜5の場合はワニに食べられますから50%の確率になります。
ワニに食べられる確率を50%にする場合、1〜2の整数の乱数を発生させて、1の場合はワニに食べられるというプログラムにすることもできます。

ワニワニゲーム完成!

ワニの口に手をいれると……
カウントダウンが始まって……
セーフかな? パクッと食べられてしまうかな?
動画でご覧ください!
ワニワニゲームは、じゃんけんがわりに遊びやおやつを選ぶ順番を決めたりするのに使ってもいいですし、今日の運勢を占うために毎朝やってみるのも楽しいですね! こっそりプログラムを変えておけば、ワニに食べられる確率を上げたり下げたりできますよ!!