SHIROのIchigoJam日記

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

両用LEDマトリックス基板+ベース基板

8×8のLEDマトリックスを光らせる基板です。
IchigoJam/IchigoDakeに差してプログラムで光らせることもできますし、ベース基板に差してマイコン無しで光らせることもできます。
紹介動画はこちら。

www.youtube.com

LEDマトリックス基板


IchigoJam/IchigoDakeに差して、プログラムで光らせることができます。

回路図


IchigoJam/IchigoDakeのOUT1~8で横8列のデータ出力、OUT9~11で3to8デコーダーIC・74138を制御して行方向のスキャンをしています。
この基板は以前作った「LEDマトリックススキャン」とほぼ同じです。

基板データ

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

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

材料

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

プログラム1:1文字表示

40行で指定した1文字を、LEDマトリックスに表示します。
※120行のコメント「'」を外すと表示にWAITが入るので、スキャンして表示している様子がよくわかります。

10 '*Matrix Chr
20 CLV:VIDEO 0
30 FOR P=1 TO 11:OUT P,0:NEXT
40 C=ASC("A")
50 A=C*8
60 FOR B=0 TO 7
70 [B]=PEEK(A+B)
80 NEXT
90 @LOOP
100 FOR Z=0 TO 7
110 OUT [Z]+Z<<8
120 'WAIT 10
130 NEXT
140 GOTO @LOOP

プログラム2:文字列表示

40行で指定した文字列を、1文字ずつ表示します。

10 '*Matrix String
20 CLV:VIDEO 0
30 FOR P=1 TO 11:OUT P,0:NEXT
40 S="IchigoJam "
50 @LOOP
60 FOR X=0 TO LEN(S)-1
70 A=PEEK(S+X)*8
80 FOR B=0 TO 7
90 [B]=PEEK(A+B)
100 NEXT
110 CLT
120 @CHR
130 FOR Z=0 TO 7
140 OUT [Z]+Z<<8
150 NEXT
160 IF TICK()<30 GOTO @CHR
170 OUT 0
180 NEXT
190 GOTO @LOOP

プログラム3:文字列フロー表示

40行で指定した文字列を、横に流して表示します。

10 @ARUN:'*Matrix String Flow
20 CLV:VIDEO 0
30 FOR P=1 TO 11:OUT P,0:NEXT
40 S="IchigoJam "
50 @LOOP
60 FOR X=0 TO LEN(S)-1
70 A=PEEK(S+X)*8
80 FOR F=0 TO 7
90 M=128>>F
100 FOR B=0 TO 7
110 D=PEEK(A+B)
120 [B]=([B]<<1)+((D&M)>0)
130 [B]=[B]&255
140 NEXT
150 FOR T=1 TO 10
160 FOR Z=0 TO 7
170 OUT [Z]+Z<<8
180 NEXT
190 NEXT
200 NEXT
210 NEXT
220 GOTO @LOOP

プログラム4:連打ゲーム

実行すると、LEDマトリックスの右上のLEDが光ります。
スペースキーを押すと左へ1個ずつ・縦へ1行ずつ進んでいくので、最後まで64回スペースキーを連打してください。
連打し終わると、画面にタイムが表示されます。

10 '*RENDA64
20 FOR P=1 TO 11
30 OUT P,0
40 NEXT
50 CLT
60 FOR Y=0 TO 7
70 FOR X=0 TO 7
80 OUT Y<<8+1<<X
90 IF !BTN(32) CONT
100 IF BTN(32) CONT
110 NEXT
120 NEXT
130 T=TICK()
140 BEEP 10,30
150 ?T/60;".";T%60/6:CLK

プログラム5:イチリス64

いわゆる落ち物パズルゲームです。表示がちらついてちょっと見づらいですが…

  • 上から落ちてくるブロックを、隙間ができないように積んでいってください。スペースキーを押すと、ブロックが上下反転します。
  • 横1行がそろうと、その行は消えて点数になります。
  • 上までブロックが積み上がるとゲームオーバーです。点数(消せた行数)がドットで表示されます。
1 '*ICHIRIS64
2 CLV:VIDEO0:W=15
3 FORP=1TO11:OUTP,0:NEXT
4 M=RND(4):N=RND(3)+1:IF!(M%2+N%2)M=M/2:N=N/2
5 X=3:Y=9:M=M<<X:N=N<<X:GSB24:IFRGOTO14
6 O=0:K=BTN(28)-BTN(29):IFKGSB19:O=1
7 IFBTN(32)&&MGSB22:O=1
8 GSB30
9 IFOGOTO6
10 G=G+1:IFG<WGOTO6
11 G=0:GSB24:IF!RY=Y-1:GOTO6
12 BEEP40,5:GSB33:FORZ=Y-1TOY:IF[Z]=#FFGSB27:Z=Z-1
13 NEXT:GOTO4
14 BEEP30,30:GSB33:WAIT99:IFS>64S=64
15 FORY=0TO7:[Y]=0:NEXT:IF!SGOTO17
16 FORB=0TOS-1:Y=B/8:[Y]=[Y]+(1<<(B%8)):NEXT
17 GSB30
18 IFBTN(32)RUNELSECONT
19 C=24<<(K*4):IF(M|N)&CRTN
20 D=M<<K:E=N<<K:V=Y:GSB25:IFRRTN
21 X=X+K:M=D:N=E:GSB30:RTN
22 D=N:E=M:V=Y:GSB25:IFRRTN
23 M=D:N=E:GSB30:RTN
24 V=Y-1:D=M:E=N:IFY<2R=1:RTN
25 R=0:IF[V]&D||[V-1]&ER=1
26 RTN
27 [Z]=0:GSB30:S=S+1:BEEP9,9:WAIT30:W=W-(W>1)
28 FORV=ZTO7:[V]=[V+1]:NEXT:[7]=0
29 GSB30:RTN
30 FORB=7TO0STEP-1:C=[B]:IFB=YC=C|M
31 IFB=Y-1C=C|N
32 OUTC+(7-B)<<8:NEXT:RTN
33 [Y-1]=[Y-1]|N:[Y]=[Y]|M:N=0:M=0:RTN

連打ベース基板


LEDマトリックス基板を差すと、連打ゲームが遊べるベース基板です。

回路図

  • ACTIONボタンを押すと、10進カウンタIC・4017のCLOCK端子にH信号が入力され、出力Q0→Q1→Q2→…が順にHになります。Q8がHになると、そのままRESET端子につながっているため、ICがリセットされてカウントがQ0に戻ります。つまりQ0~Q7の8進カウンタとして動いて、それによりLEDマトリックスの横方向に1個ずつLEDが進みます。
  • 4017のQ8出力は、バイナリカウンタIC・4520のCLKA端子にもつながっているので、4520のカウントが1つ進み、LEDマトリックスの行方向に1行LEDが進みます。
  • 4520の行カウントが「0」→「1」→「2」→…と進んで「8」になると、Q3AがHになります。そのH信号が4017のCLK_I端子へ行くため、ACTIONボタンを押しても4017のカウントが進まなくなります。同時にデジタルトランジスタDTC143ELのベース入力もHになるのでトランジスタがONになり、ブザーが鳴りっぱなしになります。
  • RESETボタンを押すと、4017と4520のRESET端子がHになるので、ICにリセットがかかり、最初の状態に戻ります。

基板データ

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

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

遊び方

  • ベース基板のピンソケットに、LEDマトリックス基板のピンヘッダを差します。
  • 電源スイッチをONにします。LEDマトリックスのどれか1個が点灯します。
  • RESETボタンを押すと、右上のLEDが点灯します。
  • 何かしらの合図でスタートして、ACTIONボタンを連打します。(2人で「ヨーイドン!」で始めるといいでしょう)
  • 64回連打するとゴールになり、ブザーがなってカウントが止まります。
  • RESETボタンを押すと元に戻ります。

文字ベース基板


DIPスイッチでLEDを点灯させて、文字やパターンを表示させるベース基板です。

回路図

  • バイナリカウンタIC・4520で行方向をスキャンするのは連打ベース基板と同じです。CLOCK信号はトランジスタ2個の弛張発振回路から入力していて、数10Hzの高速スキャンです。
  • 行方向のスキャン信号は、ピンソケットを介してLEDマトリックス基板へ送るのと同時に、マルチプレクサIC・4051へも送っています。4051の出力X0~X7のうち、指定したどれか1つの行の出力がHになります。
  • 指定した行の8個のDIPスイッチの内、ONになっている列だけが、トランジスタアレイを通してH出力になり、LEDを点灯させます。DIPスイッチの所にダイオードアレイが入っているのは、電流が他の行のDIPスイッチへ回り込んでしまうのを防ぐためです。

基板データ

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

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

材料

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

はんだ付けが終わったら、ICソケットにICをはめます。向きを間違えないようにしてください。

使い方

  • 電源スイッチをONにします。
  • DIPスイッチを操作して、LEDマトリックスを点灯させたい場所をONにしてください。