SHIROのIchigoJam日記

マイコン「IchigoJam」(イチゴジャム)の電子工作とプログラミングをメインに

だるまさんがころんだ

IchigoJamと赤外線センサーを組み合わせて、昔懐かしい「だるまさんがころんだ」を作ってみました。

遊び方は以下のとおりです。

  • (1)ボタンを押して自動起動させると「ピッ、ピッ、…」と10秒カウントするので、その間にIchigoJamから5mほど離れて立ってください。
  • (2)IchigoJamが「だるまさんがころんだ」とメロディでしゃべります。その間に動いてIchigoJamへ近づいてください。たまに早口でしゃべりますので注意してください。
  • (3)言い終わったらチェックタイムです(ランダムで長かったり短かったりします)。赤外線センサーで動きをチェックされるので、この時間はピクリとも動いてはいけません。動いてしまうと「プー」とエラー音が鳴ってゲームオーバーです。
  • (4)(2)へ戻ってくり返します。「だるまさんが…」と言っている間にIchigoJamへ辿りついてボタンを押すと、「ピピピピー」と終了音が鳴り、人間の勝ちです。
  • (5)ゲーム終了後にボタンを押すと、(1)に戻ってリプレイします。

センサーの接続回路図はこちらです。

プログラムは以下のとおりです。簡単な短いプログラムなので、参考にラベルを残しています。
画面に状況を表示していますが、画面が無くても音とLEDの点滅だけでも十分遊べます。

※(7/18修正)乱数の出し方、ブザー音を若干修正。

10 '*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(4) L=4
80 IF L=4 GSB 380 ELSE GSB 400
90 T=0
100 '@BLOOP
110 IF BTN() GOTO 220
120 T=T+1:IF T<L*300 GOTO 100
130 LED 0
140 '
150 ?"-Checking..."
160 T=0:C=5+RND(5)
170 '@CLOOP
180 IF IN(2) GOTO 330
190 T=T+1:IF T<C*200 GOTO 170
200 GOTO 40
210 '
220 '@GWIN
230 LED 1:?"===You WIN!==="
240 FOR I=1 TO 4
250 BEEP 10,3:WAIT 6
260 NEXT
270 BEEP 10,100
280 '@REPLAY
290 WAIT 60
300 IF !BTN() CONT
310 RUN
320 '
330 '@GEND
340 LED 1:?"===You Move!==="
350 BEEP 10,100
360 GOTO 280
370 '
380 '@PLAYL
390 PLAY "L8CFFFFFCFFF":RTN
400 '@PLAYS
410 PLAY "L16CFFFFFCFFF":RTN

材料

赤外線センサー

PanasonicのAMN31111(標準検出タイプ・検知範囲5m・デジタル出力)を使っています。

人間や動物など動いているもの(=赤外線量が変化するもの)を検知します。逆に止まっているものは検知できないので、今回はこの性質を利用してゲームにしています。
なお、検知範囲10mの「AMN34111」を使った方が、遊びとしては面白いかもしれません。いずれ試してみたいです。
また、用途によってはアナログ出力タイプの「AMN21111」を使うといいかもしれません。

スピーカー

音を大きく出すために、共立電子の「IchigoJamエイリアンスピーカー」を使っています。

その後(7/18)

赤外線センサーをAMN34111(検知範囲10m)に変えてみました。
が、実際にプレイしてみると「多少検知範囲が広くなったかな?」という程度です。
アナログタイプのセンサーにして、しきい値を調整した方がいいかもしれません。