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になります。
このL出力で、クロック発振回路を停止させてなわの動きを止めると共に、74HC123の1CLR入力もLにしてワンショット動作を停止します。(ワンショット動作を止めないと、JUMPボタンを押すとさっちゃんがジャンプしてなわとびを続行できてしまいます)
- 止まったゲームをリプレイするにはSTARTボタンを押して、2つの4017のRESET端子へH信号を送ります。なわがQ0へリセットされて再び回転して、回数カウントのバーLEDも0に戻ります。
これだけのロジックIC回路をオリジナルで作ったのは初めてで、作りながらいろいろ勉強になりました。
基板データ
- Fusion PCB用ガーバーデータ(ZIP)(95×72mm)
*いわゆる「B基板」のサイズで設計しています。B基板用のケースやパネルが使えます。
*この基板データは、CC BYライセンスとします。どうぞご利用ください。
(C) 2022 Shiro Saito (https://www.ichigoaman.jp)
材料
だいたい以下の順番ではんだ付けすると作りやすいです。
- カーボン抵抗(炭素皮膜抵抗) 1/4W15kΩ (100本入) R1,R2,R3
- この3本の抵抗の値を大きくするとゲームスピードがゆっくりに、小さくすると速くなります。
- カーボン抵抗(炭素皮膜抵抗) 1/4W100kΩ (100本入) R4,R5
- カーボン抵抗(炭素皮膜抵抗) 1/4W220Ω (100本入) R6
- カーボン抵抗(炭素皮膜抵抗) 1/4W470Ω (100本入) R7
- ブザーの音量を調整する抵抗です。抵抗値を小さくすると音が大きく、抵抗値を大きくすると音が小さくなります。
- スライドスイッチ 1回路2接点 基板用 横向き
- 4回路2入力NAND U74HC00L-D14-T
- 互換品のTC74HC00APは、うまく発振しないようなので使わないでください。
- 2回路入単安定マルチバイブレータ TC74HC123AP
- 10進カウンタ TC4017BP ×2個
- 汎用整流用ダイオード 1000V1A 1N4007(20本入) D1
- リード型積層セラミックコンデンサー 0.1μF50V F 2.54mm (10個入) C3
- 積層セラミックコンデンサー 1μF50V X7R 5mmピッチ (10個入) C2
- 絶縁ラジアルリード型積層セラミックコンデンサー 10μF25V5mmピッチ (10個入) C4
- 電解コンデンサー 100μF16V105℃ ルビコンMH7 C1
- タクトスイッチ(黄色) JUMP
- タクトスイッチ(白色) START
- スイッチの色はお好みで。
- 10ポイント黄色バーLEDアレイOSX10201-Y
- 抵抗入トランジスタ DTC143EL
- 電子ブザー 12mm UGCM1205XP
- 抵抗内蔵3mmLED 5V 赤色 OSR5JA3134A-5V (10個入) ×10本
- 抵抗内蔵5mmLED 5V 黄色 590nm OSY5LU5B64A-5V(10個入) ×2本
- LEDの色はお好みで換えて構いません。
- 電池ボックス 単4×3本 リード線
- リード線をはんだ付けして、電池を入れて動作が確認できたら、電池ケースを両面テープで基板裏へ貼り付けると全体がコンパクトになります。
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数行のプログラムで実現できてしまいます。コンピュータは偉大ですね(^_^)