8×8のLEDマトリックスを光らせる基板です。
IchigoJam/IchigoDakeに差してプログラムで光らせることもできますし、ベース基板に差してマイコン無しで光らせることもできます。
紹介動画はこちら。
www.youtube.com
LEDマトリックス基板
IchigoJam/IchigoDakeに差して、プログラムで光らせることができます。
回路図
IchigoJam/IchigoDakeのOUT1~8で横8列のデータ出力、OUT9~11で3to8デコーダーIC・74138を制御して行方向のスキャンをしています。
この基板は以前作った「LEDマトリックススキャン」とほぼ同じです。
基板データ
- Fusion PCB用ガーバーデータ(ZIP)(79×82mm)
*同じ基板を2枚配置しています。
*この基板データは、CC BYライセンスとします。どうぞご利用ください。
(C) 2023 Shiro Saito (https://www.ichigoaman.jp)
材料
だいたい以下の順番ではんだ付けすると作りやすいです。
- カーボン抵抗(炭素皮膜抵抗) 1/4W100Ω (100本入) R1~R8
- カーボン抵抗(炭素皮膜抵抗) 1/4W2.4kΩ (100本入) R9
- ICソケット (16P) (10個入)
- 積層セラミックコンデンサー 0.1μF50V X7R 2.54mm (10個入)
- ピンヘッダ 1×40 (40P) ※14ピン×2個にカット
- 緑色ドットマトリクスLED 8×8ドット OSL641501-AG
- LEDの色は好みで替えてもいいですが、緑色が一番明るくて見やすいです。
- 3to8 ラインデコーダ TC74HC138AP
- ICソケットにはめます。向きを間違えないようにしてください。丸い凹みが「74HC138」と文字が書いてある方に向きます。
プログラム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にリセットがかかり、最初の状態に戻ります。
基板データ
- Fusion PCB用ガーバーデータ(ZIP)(72×80mm)
*この基板データは、CC BYライセンスとします。どうぞご利用ください。
(C) 2023 Shiro Saito (https://www.ichigoaman.jp)
材料
だいたい以下の順番ではんだ付けすると作りやすいです。
- カーボン抵抗(炭素皮膜抵抗) 1/4W10kΩ (100本入) R1、R2
- カーボン抵抗(炭素皮膜抵抗) 1/4W470Ω (100本入) R3
- 汎用整流用ダイオード 1000V1A 1N4007-B(20本入) D1
- スライドスイッチ 1回路2接点 基板用 横向き
- ICソケット (16P) (10個入) ×2個
- 絶縁ラジアルリード型積層セラミックコンデンサー 10μF16V5mmピッチ (10個入) C1
- 積層セラミックコンデンサー 0.1μF50V X7R 2.54mm (10個入) C2
- タクトスイッチ(白色) RESETボタン
- タクトスイッチ 12mm TVGP01-G73BB ACTIONボタン
- 抵抗入トランジスタ DTC143EL
- 分割ロングピンソケット 1×42 (42P) ※14ピン×2本にカット
- 電子ブザー 12mm UGCM1205XP
- 電池ボックス 単4×1本 ピン ×2個
はんだ付けが終わったら、ICソケットにICをはめます。向きを間違えないようにしてください。
文字ベース基板
DIPスイッチでLEDを点灯させて、文字やパターンを表示させるベース基板です。
回路図
- バイナリカウンタIC・4520で行方向をスキャンするのは連打ベース基板と同じです。CLOCK信号はトランジスタ2個の弛張発振回路から入力していて、数10Hzの高速スキャンです。
- 行方向のスキャン信号は、ピンソケットを介してLEDマトリックス基板へ送るのと同時に、マルチプレクサIC・4051へも送っています。4051の出力X0~X7のうち、指定したどれか1つの行の出力がHになります。
- 指定した行の8個のDIPスイッチの内、ONになっている列だけが、トランジスタアレイを通してH出力になり、LEDを点灯させます。DIPスイッチの所にダイオードアレイが入っているのは、電流が他の行のDIPスイッチへ回り込んでしまうのを防ぐためです。
基板データ
- Fusion PCB用ガーバーデータ(ZIP)(80×100mm)
*この基板データは、CC BYライセンスとします。どうぞご利用ください。
(C) 2023 Shiro Saito (https://www.ichigoaman.jp)
材料
だいたい以下の順番ではんだ付けすると作りやすいです。
- カーボン抵抗(炭素皮膜抵抗) 1/4W30kΩ (100本入) R1
- カーボン抵抗(炭素皮膜抵抗) 1/4W10Ω (100本入) R2
- スライドスイッチ 1回路2接点 基板用 横向き
- ICソケット (16P) (10個入) ×2個
- ICソケット (18P) (10個入)
- DIPスイッチ 8P ×8個
- ダイオードアレイ アノードコモン AE880 ×8個
- 絶縁ラジアルリード型積層セラミックコンデンサー 10μF16V5mmピッチ (10個入) C1
- 積層セラミックコンデンサー 0.1μF50V X7R 2.54mm (10個入) C2
- トランジスタ 2SA1015L-GR-T92-K 50V150mA (20個入)
- トランジスタ 2SC1815L-GR-T92-K 60V150mA (20個入)
- 分割ロングピンソケット 1×42 (42P) ※14ピン×2本にカット
- 電池ボックス 単4×4本 リード線]
はんだ付けが終わったら、ICソケットにICをはめます。向きを間違えないようにしてください。