さぁ夏休み! 遊びをもりあげる楽しいゲームを作ってみましょう! ワニの口に手を入れると……パクッとかまれるかもしれないちょっとドキドキのゲームです。夏休みのプログラミング工作にもどうぞ!
必要なもの&準備
- SPACEBLOCK通常パッケージ[SPACEBLOCK本体、USBケーブル、電池ボックス]
- 赤外線モーションセンサモジュール(赤外線モーションセンサ)
- 8×8 RGB LEDマトリックスパネル(LEDパネル)
- 180°マイクロサーボモーター(サーボモーター)
- ジャンパーワイヤ[ピンヘッダ-ピンソケット3本×延長したい数]
- プログラミングをするパソコン
プログラミング画面の開き方など基本の作業の流れは、「SPACEBLOCKのプログラミング手順をチェック!」で確認してくださいね。
SPACEBLOCKに拡張パーツを接続する
まずは、今回使用するLEDパネルと赤外線モーションセンサ、サーボモーターをSPACEBLOCKに接続してみましょう。
接続の細かい部分は次の図で確認してください。
手を入れるとワニの口が閉じる仕組みを考える!
今回作りたいのは、ワニの口に手を入れると口がパクッと閉じる仕組みです。入力装置として、動きを検知できる赤外線モーションセンサを使用し、出力装置として0°から180°の回転の動きができるサーボモーターを使用します。ワニの口に手が入ったことを赤外線モーションセンサで検知して、サーボモーターの動きでワニの口を開閉します。
ワニの体部分には牛乳パックを使用し、厚紙でワニの口部分を作成。上あごは体に割ピンでとめ、重みで自然に閉まる構造にします。サーボモーターはストローをつけて上あごを押し上げられる程度の長さにします(こちらの記事を参照)。
緑色の色画用紙を貼り付けて見た目を整え、牛乳パックの体部分に電池ボックスとSPACEBLOCK本体を入れます。
さらに、歯と目、尾、手足をつけます。上あごに赤外線モーションセンサ、下あごにサーボモーターを固定します。
上あごを割ピンでとめたら工作部分は完成です。
なお、赤外線モーションセンサは「[7]人が通ったら反応する『オカエリ』装置」、サーボモーターは「[10]自動で開くゴミ箱を発明! 」で使用していますので、それぞれ使い方を細かく確認したいときは参考にしてください。
閉じるか閉じないかわからないプログラムを作ろう!
今回作りたいプログラムは、「ワニの口が閉じるときもあるし閉じないときもある」というもの。あらかじめ、口が閉じるか閉じないかどちらになるかわからないというプログラムを作っておく必要があります。
乱数ってなに?
サイコロを転がすときのように、何が出るかわからない値をプログラムで扱うときには「乱数」を使います。どれが出るかわからないことをランダムといいます。
[《0》から《10》までのランダムな整数]ブロックを使うと、指定した数値の範囲からランダムな整数が発生します。サイコロを振ると1から6のどれかの数字が出るのと同じように、ランダムな数値は指定した範囲の数値が同じ確率で出るようになっています。
変数を作る
乱数を入れておくために、変数「random」を作ります。
サーボの最初の位置を決めるプログラム
まず、次の図の通り、プログラム開始と同時にサーボの位置を0°にするプログラムを作成します。
動きを検知したら実行されるプログラム
ワニの口に手をいれたら実行されるプログラムを作ります。まず、大きな流れを作りましょう。
次の図の通り、[《A0》の電圧が《上がった》]ブロックで赤外線モーションセンサの値をチェックし続けます。手をワニの口に入れるとセンサが動きを検知して電圧が上がり、プログラムの実行が始まります。まず、乱数が発生し1〜10のいずれかの整数が変数「random」に入ります。そして、値が3以下ならワニの口が閉じて、そうでなければ口は開いたままになります。
このプログラムに、LEDの演出を足します。次の図の通り、ワニの口に手を入れたことを検知したらカウントダウン表示をし、ワニに食べられるときは「×」、食べられずにすんだ場合は「○」の表示をします。また、判定が終わってワニの口が開いたり手を抜いたりする動きを赤外線モーションセンサーが検知しないように5秒の待機時間を入れます。
これでプログラムは完成です。SPACEBLOCKにプログラムをスタンドアローンモードで転送して、もう一度ワニの中に入れて早速遊んでみましょう。
このプログラムでは、1〜10の整数の乱数を発生させて、3以下の場合はワニに食べられるようにしました。乱数が1〜3の場合ならワニに食べられて、4〜10の場合は食べられずにすみます。食べられる確率が30%で、食べられない確率が70%です。
では、ワニに食べられる確率をもっと上げて50%にするにはどうしたら良いでしょうか?[もし《 》なら]ブロックの条件を変更して、変数「ramdom」の値を5以下にしてみましょう。そうすると、1〜5の場合はワニに食べられますから50%の確率になります。
ワニに食べられる確率を50%にする場合、1〜2の整数の乱数を発生させて、1の場合はワニに食べられるというプログラムにすることもできます。
ワニワニゲーム完成!
ワニの口に手をいれると……
カウントダウンが始まって……
セーフかな? パクッと食べられてしまうかな?
動画でご覧ください!
ワニワニゲームは、じゃんけんがわりに遊びやおやつを選ぶ順番を決めたりするのに使ってもいいですし、今日の運勢を占うために毎朝やってみるのも楽しいですね! こっそりプログラムを変えておけば、ワニに食べられる確率を上げたり下げたりできますよ!!
狩野 さやか
Studio947のデザイナー・ライター。デザイン・ウェブ制作全般を担当する一方、技術書籍の執筆や、教育のICT活用・子ども向けプログラミングについての取材・執筆をしている。著書に『ひらめき!プログラミングワールド』『見た目にこだわるJimdo入門』『ふたりは同時に親になる 産後の「ずれ」の処方箋』。
コメント