IchigoJamと赤外線センサーを組み合わせて、昔懐かしい「だるまさんがころんだ」を作ってみました。
遊び方は以下のとおりです。
- (1)ボタンを押して自動起動させると「ピッ、ピッ、…」と10秒カウントするので、その間にIchigoJamから5mほど離れて立ってください。
- (2)IchigoJamが「だるまさんがころんだ」とメロディでしゃべります。その間に動いてIchigoJamへ近づいてください。たまに早口でしゃべりますので注意してください。
- (3)言い終わったらチェックタイムです(ランダムで長かったり短かったりします)。赤外線センサーで動きをチェックされるので、この時間はピクリとも動いてはいけません。動いてしまうと「プー」とエラー音が鳴ってゲームオーバーです。
- (4)(2)へ戻ってくり返します。「だるまさんが…」と言っている間にIchigoJamへ辿りついてボタンを押すと、「ピピピピー」と終了音が鳴り、人間の勝ちです。
- (5)ゲーム終了後にボタンを押すと、(1)に戻ってリプレイします。
センサーの接続回路図はこちらです。
プログラムは以下のとおりです。簡単な短いプログラムなので、参考にラベルを残しています。
画面に状況を表示していますが、画面が無くても音とLEDの点滅だけでも十分遊べます。
※(7/18修正)乱数の出し方、ブザー音を若干修正。
※(2019/10/7修正)サウンド処理修正。ファームウェア1.4の自動起動対応。
10 @ARUN:'*Darumasan ga koronda 20 CLV:SRND ANA(2):LED 0:WAIT 60 30 FOR T=1 TO 10:LED 1:?T:BEEP:LED 0:WAIT 60:NEXT 40 @GLOOP 50 ' 60 ?"*Darumasan ga koronda!" 70 LED 1:L=2:IF RND(3) L=4 80 IF L=4 GSB @PLAYL ELSE GSB @PLAYS 90 @BLOOP 100 IF BTN() GOTO @GWIN 110 IF SOUND() GOTO @BLOOP 120 WAIT 30:LED 0 130 ' 140 ?"-Checking..." 150 C=3+RND(3):CLT 160 @CLOOP 170 IF IN(2) GOTO @GEND 180 IF TICK()<C*60 GOTO @CLOOP 190 GOTO @GLOOP 200 ' 210 @GWIN 220 LED 1:?"===You WIN!===" 230 FOR I=1 TO 4 240 BEEP 10,3:WAIT 6 250 NEXT 260 BEEP 10,100 270 @REPLAY 280 WAIT 60 290 IF !BTN() CONT 300 RUN 310 ' 320 @GEND 330 LED 1:?"===You Move!===" 340 BEEP 10,100 350 GOTO @REPLAY 360 ' 370 @PLAYL 380 PLAY "T150L8CFFFFFCFFF":RTN 390 @PLAYS 400 PLAY "T150L16CFFFFFCFFF":RTN
材料
赤外線センサー
PanasonicのAMN31111(標準検出タイプ・検知範囲5m・デジタル出力)を使っています。
人間や動物など動いているもの(=赤外線量が変化するもの)を検知します。逆に止まっているものは検知できないので、今回はこの性質を利用してゲームにしています。
なお、検知範囲10mの「AMN34111」を使った方が、遊びとしては面白いかもしれません。いずれ試してみたいです。
また、用途によってはアナログ出力タイプの「AMN21111」を使うといいかもしれません。
スピーカー
音を大きく出すために、共立電子の「IchigoJamエイリアンスピーカー」を使っています。
その後(7/18)
赤外線センサーをAMN34111(検知範囲10m)に変えてみました。
が、実際にプレイしてみると「多少検知範囲が広くなったかな?」という程度です。
アナログタイプのセンサーにして、しきい値を調整した方がいいかもしれません。