SHIROのIchigoJam日記

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

危機一髪ゲーム2026(両用・単体基板)

樽に剣を刺す、お馴染みの「危機一髪ゲーム」が遊べる基板です。
IchigoJam用の拡張基板とベース基板、単体基板バージョンがあります。

樽形基板


IchigoJamのソケットに差す、樽形の拡張基板です。
8個のスライドスイッチがあり、どれかが当たりになります。
スイッチを内側にずらしてONにしていって、当たるとLEDが光り、ブザーが鳴ります。

回路図


マルチプレクサIC・4051を使っています。
IchigoJamのOUT1~3で、0番~7番のスライドスイッチのどれが当たりになるか設定します。
プログラム例としては、

OUT RND(8)

で、8個のスイッチのどれかがランダムに当たりになります。
当たった時は、LEDが光ってブザーが鳴り、同時にIN1入力が「0」→「1」に変わります。
(あらかじめ「OUT 8,-1」でIN1をプルダウンにしておいてください)

基板データ

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

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

材料

以下の順番でハンダ付けすると作りやすいです。

IchigoJamプログラム

実行すると、8個のスイッチのうちどれかが当たりになります。
スイッチをONにしていって、当たると基板のLED・ブザーのほか、IchigoJamのLEDも光り、ブザーがなります。
もう一度RUNするとリセットされ、当たりが変わります。

10 '*KIKI IPPATSU
20 FOR P=1 TO 8:OUT P,0:NEXT
30 OUT 8,-1
40 SRND TICK()+ANA(2)
50 OUT RND(8)
60 IF !IN(1) CONT
70 BEEP 10,60:LED 1

ベース基板


上記の樽基板を差すと、危機一髪ゲームが遊べるベース基板です。
8個のスイッチのうちどれかが当たりになり、LEDが光ってブザーが鳴ります。
このベース基板を使うと、IchigoJamを持っていない人でもゲームが遊べます。

遊び方

  • ベース基板のソケットに樽基板を差します。
  • ベース基板の電源スイッチを入れて、SETボタンを押します。
  • 樽基板の8個のスライドスイッチのどれかが当たりです。スイッチを内側にずらしてONしていって、当たるとLEDが光ってブザーが鳴ります。
  • 8個のスライドスイッチをOFFに戻して、ベース基板のSETボタンを押すと、当たりのスイッチが変わります。リプレイしてください。

回路図


SETボタンを押すと、コンデンサC2に充電された電力でトランジスタ2石の発振回路を動かしてクロック信号を生成。
バイナリカウンタIC・4520を動かして、0~7の3ビットの出力をランダムにセットします。

基板データ

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

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

単体基板


上記の樽基板とベース基板の機能を1枚に合わせた基板です。
単体で危機一髪ゲームが遊べます。

遊び方

  • 電源スイッチを入れて、SETボタンを押します。
  • 8個のスライドスイッチのどれかが当たりです。スイッチを内側にずらしてONしていって、当たるとLEDが光ってブザーが鳴ります。
  • 8個のスライドスイッチをOFFに戻して、SETボタンを押すと、当たりのスイッチが変わります。リプレイしてください。

回路図


上記の樽基板とベース基板の回路を1つに合わせています。

基板データ

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

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

以前に作った危機一髪ゲーム

ステンレスたわしとソレノイドで作った危機一髪ゲームはこちら。
www.ichigojaman.jp

プラグイン方式の危機一髪ゲームはこちら。
プラグを刺す方が本物のゲームに近いですが、材料費と工作の手間が増えます。
www.ichigojaman.jp

時計シールド2026

7セグメントLEDで時:分の時計を表示する、IchigoJam用の拡張基板です。
なるべく部品数を少なく、かつ簡単なプログラムで表示することを目指しました。

回路図

分表示

2桁の分表示は、IchigoJamのOUT1~OUT7で出力します。

ポート 表示
OUT1~OUT4 分の1の位
OUT5~OUT7 分の10の位

プログラム例としては

OUT (M/10)<<4+M%10

で、M分が表示されます。
7セグメントデコーダーIC・4511にビットデータを送って、数字を表示します。
なお、10の位は0~5まで表示できればいいので、3ビットにしています。

時表示

2桁の時表示は、分と同様に表示しようとするとIchigoJamのポート数が足りないので、OUT8とOUT9でパルスを送る方式にしています。

ポート 表示
OUT8(IN1) 時を+1
OUT9(IN2) 時を0にリセット

具体的には

OUT 8,1:OUT 8,0

で、時を+1。

OUT 9,1:OUT 9,0

で、時を0にリセットします。
プログラム例としては

OUT 9,1:OUT 9,0
FOR J=1 TO H:OUT 8,1:OUT 8,0:NEXT

で、H時が表示されます。
バイナリBCDカウンタIC・4518に、クロック信号とリセット信号を送ります。
なお、1時~9時までは、10の位は表示しません。
(よくあるデジタル時計と同じ表示にするのと、回路を簡単にするため)
また、10の位は「1」しか表示できないので、12時制表示です。

基板データ

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

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

材料

以下の順番でハンダ付けすると作りやすいです。

プログラム

テストプログラム

12:00からスタートして、時:分を高速で動かしてテスト表示します。

10 CLV
20 FOR P=1 TO 9:OUT P,0:NEXT
30 OUT 9,1:OUT 9,0
40 FOR H=1 TO 12:OUT 8,1:OUT 8,0:NEXT
50 FOR M=0 TO 59
60 OUT (M/10)<<4+M%10
70 WAIT 12
80 NEXT
90 H=H+1
100 IF H>12 H=1:OUT 9,1:OUT 9,0
110 OUT 8,1:OUT 8,0
120 GOTO 50

時計プログラム

12:00からスタートして、時計が動きます。
カーソルキー左右で分の調整、上下で時の調整ができます。

10 '*DIGITAL CLOCK
20 CLV:CLT:H=12
30 FOR P=1 TO 9:OUT P,0:NEXT
40 @MLOOP
50 IF TICK()>3599 CLT:M=M+1
60 M=M-BTN(28)+BTN(29)
70 IF M<0 M=59
80 IF M>59 M=0:H=H+1
90 H=H-BTN(31)+BTN(30)
100 IF H<1 H=12
110 IF H>12 H=1
120 OUT (M/10)<<4+M%10
130 WAIT 6
140 IF G=H GOTO @MLOOP
150 OUT 9,1:OUT 9,0
160 FOR J=1 TO H:OUT 8,1:OUT 8,0:NEXT
170 G=H:GOTO @MLOOP

デジタル時計(ロジックIC)


ロジックICで組んだデジタル時計です。

  • 7セグメントLED×4個で、時:分を表示します。
  • 「SET-M」「SET-H」の2つのボタンで、時刻合わせができます。

なるべく部品数を減らして、子ども向け工作教室でも作れるネタを目指しました。

回路図



ロジックICのデジタル時計は、ネット上にいろいろな作例が出ているので参考にしました。ちなみに今回の回路は、こちらの回路を元に、一部を改造しています。

原クロック信号

32.768KHzのクリスタルの信号を、14ステージカウンタ・74HC4060で16,384分周して、2Hz(1秒に2回)の原クロック信号を生成しています。よくあるデジタル時計のクロック回路です。

秒カウント

参照元の回路では秒も表示しているのですが、部品数を減らすために秒表示は省略。
その代わりにバイナリカウンタ・4520を使って、2Hzの原クロックを120カウントして60秒=1分を計っています。
抵抗とダイオードで組んだANDゲートを通して、64+32+16+8=120カウントした時に4520をリセットして、分表示の4026へ桁上がり信号を送ります。

分表示・時表示

1分ごとの桁上がり信号を、7セグメント出力カウンタ・4026へ入力して、分と時を表示しています。
分表示では、やはり抵抗とダイオードで組んだANDゲートを通して、60分になった瞬間に分表示の4026×2個をリセットして00分にして、時表示の4026へ桁上がり信号を送ります。
時表示では、24時になった瞬間に4026×2個をリセットして00時に戻しています。

基板データ

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

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

材料

以下の順番でハンダ付けすると作りやすいです。

以下のICをソケットにはめます。

IchigoJamプログラム版


IchigoJam BASICのプログラムでもデジタル時計を作ってみました。
普通に数字を表示するだけでは面白くないので、8倍角で表示しています。
IchigoJamも今日で祝!12周年ですが、これからもプログラミングに、電子工作に、楽しませていただきたいと思います。

10 '*CLOCK
20 CLV:CLS:CLT
30 H=12:M=0
40 @LOOP
50 GSB @PRTHM
60 WAIT 15
70 IF TICK()>=3600 CLT:M=M+1
80 M=M-BTN(31)+BTN(30)
90 IF M<0 M=59
100 IF M>59 M=0:H=H+1
110 H=H-BTN(28)+BTN(29)
120 IF H<0 H=23
130 IF H>23 H=0
140 GOTO @LOOP
150 @PRTHM
160 N=H/10:X=0
170 GSB @PRTN
180 N=H%10:X=7
190 GSB @PRTN
200 X=15
210 P=TICK()%60
220 LC X,9:?CHR$(P<30)
230 LC X,13:?CHR$(P<30)
240 N=M/10:X=17
250 GSB @PRTN
260 N=M%10:X=24
270 GSB @PRTN
280 RTN
290 @PRTN
300 A=48+N
310 FOR I=0 TO 6
320 D=PEEK(A*8+I):V=#A00+X+I*32:B=128
330 FOR J=0 TO 5
340 POKE V+J,D&B>0
350 B=B>>1
360 NEXT
370 NEXT
380 RTN

30行目のHとMの値を変えると、最初の時:分が変わります。
上下左右のカーソルキーで、時:分合わせができます。