SHIROのIchigoJam日記

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

危機一髪ゲーム・プラグ式

以前に作った危機一髪ゲームを、プラグを差す方式でリメイクしました。
動画はこちら。

www.youtube.com

IchigoJamの拡張基板としてプログラムで動くバージョンと、単独で動くバージョンがあります。

IchigoJam拡張基板バージョン


IchigoJamのソケットに差して使います。


差すのはオーディオプラグです。


プラグは内部でGNDとL,Rをジャンパー線でつなぎます。
※このプラグを間違ってオーディオ機器に刺さないでください。機器が壊れます。


当たるとブザーが鳴ってLEDが光ります。
プラグを抜いてIchigoJamのボタンを押すと、リセットされて当たりが変わります。


各ジャックに外付け電極用端子「Xn」「Gn」が付いています。
(この端子間が導通すると、剣を刺したのと同じ)
例えば段ボールに樽の絵を描いて、穴を空けてアルミホイルを半分ずつ貼って2個の電極にして、やはりアルミホイルを貼った剣を穴に刺して導通させる…とすると、イベントで使えそうです。


右側にある「Y+」「Y-」は当たった時の出力端子で、+5Vが出力されます。
例えばソレノイドをつないで人形を跳ばしたり、大型LEDを光らせたりできます。

回路図


IchigoJamのOUT1~OUT3の3ビット出力を、マルチプレクサIC・4015へ入力して、X0~X7のジャックのどれかをX端子と接続します。
X端子はIN1ポートにつながっているので、IN1の入力値を見れば当たりかどうかがわかります(通常時=1、当たり=0)。
右下のR2、R3、FET、D1は、外付け機器スイッチング用のオプション回路です。それらを付けない場合ははんだ付け不要です。

プログラム

10 @ARUN:'KIKI IPPATSU
20 P=RND(8)
30 OUT P
40 IF IN(1) CONT
50 LED 1:OUT 5,1
60 BEEP 10,60:WAIT 60
70 IF !BTN() CONT
80 LED 0:OUT 5,0
90 RUN

OUT1~3の3ビットで、ポート0~7からランダムに当たりのポートを指定します。
ポートの入力はIN1につながっていて、通常の入力は「1」、剣が当たりのポートに刺さると「0」になります。
それを検知して、LEDを点灯してブザーを鳴らします。
プラグを抜いてIchigoJamのボタンを押すと、リセットされて当たりのポートが変わります。

基板データ

*同じ基板を2枚割り付けています。
*この基板データは、CC BYライセンスとします。どうぞご利用ください。

(C) 2022 Shiro Saito (https://www.ichigoaman.jp)

単独バージョン


IchigoJam無しで単独で動くバージョンです。いちおう樽っぽい形にしてみました(^_^)
電源を入れてセットボタンを押した後、ジャックにプラグを刺していきます。
当たりのジャックに刺さると、LEDが光ってブザーが鳴ります。
プラグを抜いてセットボタンを押すと、当たりの場所が変わってリプレイできます。

回路図


以前作った電子ルーレットと同じ発振回路で、ボタンを押すと一定時間クロック信号を発生して、バイナリカウンタ4520へ入力します。4520は4ビットで0~15を出力する16進カウンタですが、Q3AとRESETAをつないで8進カウンタ(0~7の3ビットを出力)として動かしています。
その3ビット出力を、拡張基板バージョンと同様に4051へ入力して、0~7のポートの内の1つを当たりにします。
なおポートの入力値は、拡張基板バージョンは「通常時=1、剣が刺さった=0」でしたが、こちらは回路の都合で「通常時=0、剣が刺さった=1」と正論理になっています。

基板データ

*この基板データは、CC BYライセンスとします。どうぞご利用ください。

(C) 2022 Shiro Saito (https://www.ichigoaman.jp)

材料

以下は外付け出力機器をつなげる場合のオプションです。

電子なわとびさっちゃん7セグ

以前作った「電子なわとびさっちゃん」
www.ichigojaman.jp
を、跳んだ回数を7セグメントLEDで数字で表示するようにしました。
動画はこちら。

www.youtube.com


跳んだ回数がわかりやすくなりましたが、部品点数が増えたので大人向けの電子工作です。

回路図


以前の電子なわとびさっちゃんの回数カウント部分を変更しました。他の回路の説明は以前の記事を参照してください。

  • 回数のカウントは、10進BCDバイナリカウンタが2個入った4518が担当しています。10進数の0~9のカウントが2進数0000~1001で出力され、9の次は0に戻ります。1の位のカウンタAはEnableA入力をHに固定してClockA入力の立ち上がり(L→H)でカウント、10の位のカウンタBはClockB入力をLに固定してEnableB入力の立ち下がり(H→L)でカウントしています。EnableB入力はカウンタAのQ3A出力につながっていて、カウンタAが9→0に戻る時の立ち下がりを検知するので、結局カウンタBは10の位をカウントする動きになります。
  • 4518のバイナリ出力は、7セグメントデコーダ・4511で7セグメントLED用の出力へ変換されて、それぞれ1の位と10の位の数字を表示します。

基板データ

*いわゆる「B基板」のサイズで設計しています。B基板用のケースやパネルが使えます。
*この基板データは、CC BYライセンスとします。どうぞご利用ください。

(C) 2022 Shiro Saito (https://www.ichigoaman.jp)

材料

以前の電子なわとびさっちゃんから追加された物だけ上げます。

鶴亀算

小学校で習う鶴亀算連立方程式の入門ですが、IchigoJamで総当たり法で計算するプログラムを作った方がいました。
note.com
懐かしく面白かったので、私もやってみました。

方程式で計算

連立方程式の問題として考えてみます。

いわゆる「加減法」の解き方です。
(もう1つの解き方として「代入法」がありますが、答えは同じです)
ここから以下のようなプログラムにしてみました。

10 INPUT "ゼンブ デ ナンビキ?",A
20 INPUT "アシ ノ ゴウケイ ハ?",B
30 Y=(B-2*A)/2
40 X=A-Y
50 PRINT "ツル ノ カズ=",X
60 PRINT "カメ ノ カズ=",Y

IchigoJam webではこちら。

ゲーム風に総当たり

  • 起動すると、鶴と亀の匹数・足の数・それらの合計数が表示されます
  • カーソルキーの左右←→で鶴の数、上下↓↑で亀の数を変更します(0~30匹)。匹数・足の数・合計数が変化するので、希望する合計数になる答えを見つけてください。
10 '*TSURUKAME
20 CLV:CLS
30 ?"*ツルカメザン*"
40 POKE #780,6,7,6,#FC,#78,#50,#50,#D8
50 POKE #788,#C,#18,#BA,#7C,#7C,#BA,#10,#20
60 LC 0,2:?"@ツル ";CHR$(224,225)
70 LC 0,6:?"@カメ ";CHR$(227,226)
80 LC 0,10:?"*ゴウケイ"
90 LC 0,3:?CHR$(24);
100 IF X>0 FOR I=1 TO X:?CHR$(240);:NEXT
110 LC 0,4:?CHR$(24);X;"ヒキ/";X*2;"ホン"
120 LC 0,7:?CHR$(24);
130 IF Y>0 FOR I=1 TO Y:?CHR$(241);:NEXT
140 LC 0,8:?CHR$(24);Y;"ヒキ/";Y*4;"ホン"
150 LC 0,11:?CHR$(24);X+Y;"ヒキ/";X*2+Y*4;"ホン"
160 K=INKEY():IF !K CONT
170 BEEP
180 X=X-(K=28)*(X>0)+(K=29)*(X<30)
190 Y=Y-(K=31)*(Y>0)+(K=30)*(Y<30)
200 GOTO 90

IchigoJam webではこちら。