SHIROのIchigoJam日記

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

電子なわとびさっちゃん

IchigoJamの入門プログラムとしておなじみの「なわとびさっちゃん」。
hello002.stores.jp
その後IchigoJam 1.4の三角関数を使って円形になわを回す「大なわとびさっちゃん」を作ったのですが、いわゆるロジックICを使った電子回路ゲームとして再現してみました。

動画はこちら。

www.youtube.com

遊び方

  • 電源スイッチをONにして、STARTボタンを押すと、円形に並んだ赤LEDのなわが時計回りに回ります。
  • 中央の黄色い2個のLEDがさっちゃんで、最初は地上にいます。回ってくるなわを踏まないように、JUMPボタンを押して空中へジャンプさせてください。うまくなわを跳び越えると、跳んだ回数がバーLEDでカウントされます。バーLEDは0回~9回の表示で、10回跳ぶと0回表示に戻ります。
  • さっちゃんがなわを踏んでしまうとゲームオーバーで、なわがストップしてブザーが鳴りっぱなしになります。リプレイするにはSTARTボタンを押してください。

回路図

  • NANDゲートが4個入ったIC・74HC00を使い、そのうち2個のゲートでクロック発振回路を組んでいます。発振したクロックを10進カウンタ・4017のCLOCK端子へ入力して、LED×10個のなわを回します。なおLEDは電流制限抵抗入りの品を使って部品点数を減らしています。
  • 跳んだ回数のカウントは、もう1個の10進カウンタ・4017が担当しています。なわ回転4017のCARRY OUT(桁上がり)出力を、回数カウント4017のCLOCK端子へ入力して、なわが1周するごとに1カウントずつ進めて、バーLEDで回数を表示します。
  • さっちゃんのジャンプ動作は、単安定マルチバイブレータ(ワンショット)IC・74HC123で実現しています。
    通常状態では出力が「1Q=L、1Q=H」なので、1QにつながったS0のLED(地上のさっちゃん)が光ります。JUMPボタンを押して入力端子1AへHを入力すると、出力が「1Q=H、1Q=L」に切り替わり、S1(空中)のLEDが光ってさっちゃんがジャンプします。切り替わった出力はR3とC4の値で決まる時間だけ保持された後、元の「1Q=L、1Q=H」に戻ります(ワンショット動作、R3×C4=約0.15秒)。
    このICの働きで、JUMPボタン押しっぱなしでさっちゃんが空中へ跳び続けてしまうのを防いでいます。(0.15秒以内に再びボタンを押せばワンショット時間が延長されてジャンプし続けられるのですが、タクトスイッチをそのスピードで連打するのは困難です)
  • 74HC00のNANDゲート1個を使って、なわとさっちゃんの当たり判定をしています。なわ回転4017のなわ出力Q9と、地上のさっちゃんS0を光らせる74HC123の出力1QをNANDゲートに入力すると、両方ともH(なわがQ9にある、かつ、さっちゃんが地上にいる)の時だけゲート出力がLになります。
NANDゲートの真理値表
BASICプログラムで書けば「Y=NOT(A AND B)」

このL出力で、クロック発振回路を停止させてなわの動きを止めると共に、74HC123の1CLR入力もLにしてワンショット動作を停止します。(ワンショット動作を止めないと、JUMPボタンを押すとさっちゃんがジャンプしてなわとびを続行できてしまいます)

  • 止まったゲームをリプレイするにはSTARTボタンを押して、2つの4017のRESET端子へH信号を送ります。なわがQ0へリセットされて再び回転して、回数カウントのバーLEDも0に戻ります。

これだけのロジックIC回路をオリジナルで作ったのは初めてで、作りながらいろいろ勉強になりました。

基板データ

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

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

材料

だいたい以下の順番ではんだ付けすると作りやすいです。

IchigoJamの大なわとびさっちゃん


こちらの記事にも載っています。
スペースキーでジャンプして、回るなわを跳んでください。
なわを踏んでしまうとゲームオーバーで、跳んだ回数が表示されます。

10 CLV:CLS:Z=20
20 FOR T=-260 TO 90 STEP 10
30 DRAW X,Y,0
40 X=30+COS(T)/12
50 Y=22+SIN(T)/12
60 DRAW X,Y
70 LC 15,Z:?" "
80 IF J Z=Z+V:V=V+1
90 LC 15,Z:?"@"
100 IF V=5 J=0
110 IF !J && INKEY()=32 J=1:V=-4
120 NEXT
130 IF Z!=20 S=S+1:GOTO 20
140 ?S

電子回路だとロジックICを4個組み合わせた複雑な回路になるのですが、IchigoJamだと10数行のプログラムで実現できてしまいます。コンピュータは偉大ですね(^_^)

かんたんすごろく

簡単なすごろくゲームのプログラムです。

本物のさいころで遊んでもいいですし、以前紹介した電子さいころを使っても面白いでしょう。

遊び方

  • 実行すると、プレイヤーの人数を聞かれるので、1~9の人数を入力します。画面左側にプレイヤーの駒、右側にゴールの線が表示されます。
  • プレイヤーごとにさいころの目を聞かれるので、1~6で入力します。プレイヤーの駒が、入力した目の数だけ進みます。
  • プレイヤーの誰かがゴールにたどり着くと終了します。

プログラム

10 '*SUGOROKU
20 CLV
30 INPUT "NINZU=",N
40 CLS
50 FOR P=1 TO N
60 LC 0,P:?P
70 LC 30,P:?"|"
80 NEXT
90 P=0
100 P=P+1:IF P>N P=1
110 LC 0,18:?"PLAYER=";P
120 ?CHR$(24);
130 INPUT "SAIKORO=",S
140 LC [P]+1,P
150 FOR X=1 TO S
160 ?CHR$(8);".";P;
170 NEXT
180 [P]=[P]+S
190 IF [P]<30 GOTO 100
200 LC 0,20:?"GOAL!"
210 BEEP 10,30

15人対応版


プレイヤーの表示を16進数表示(1~F)にしました。15人まで対応します。

10 '*SUGOROKU15
20 CLV
30 INPUT "NINZU=",N
40 CLS
50 FOR P=1 TO N
60 LC 0,P:?HEX$(P)
70 LC 30,P:?"|"
80 NEXT
90 P=0
100 P=P+1:IF P>N P=1
110 LC 0,18:?"PLAYER=";HEX$(P)
120 ?CHR$(24);
130 INPUT "SAIKORO=",S
140 LC [P]+1,P
150 FOR X=1 TO S
160 ?CHR$(8);".";HEX$(P);
170 NEXT
180 [P]=[P]+S
190 IF [P]<30 GOTO 100
200 LC 0,20:?"GOAL!"
210 BEEP 10,30

IchigoJam web版はこちら。

電子ホタル

今の季節っぽいホタル形の基板です。
頭の光センサー(フォトトランジスタ)を暗くすると、お尻のLEDが光ります。
動画はこちら。

www.youtube.com


電源は裏のボタン電池(CR2032)です。

部品点数が少ないので、はんだ付け入門工作にいかがでしょうか。

回路図


中身は簡単なFETスイッチング回路です。
LEDは実際には電流制限抵抗入りの品を使っています。

基板データ

*同じ基板を8枚割り付けています。
*本物のホタルは体が黒くて頭だけ赤いですが、基板のレジスト色を黒にするとGっぽくなるので(笑)、赤にするといいでしょう。
*この基板データは、CC BYライセンスとします。どうぞご利用ください。

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