以前作ったLEDマトリックス基板「LED64Stack」
www.ichigojaman.jp
を4個連結して、名札にしてみました。
動画はこちら。
www.youtube.com
LED64Stackを横に4個連結。全体を名札形状に収めるために、専用コントローラーIchigoJam基板を新規に作りました。
首にかけるとこんな感じ。
ボタンを押すとダッシュゲームが遊べます。
今回はLEDマトリックスに、100均で買った「暗記したじき」の緑色をはさみで切って、接着剤で貼り付けています。これで緑色のLEDがかなり見やすくなります。
ただ、最近IC・LPC1114が品薄で入手困難になっています。LEDマトリックス1個に付きLPC1114を1個使う今回の方式は、あまり他の方には勧められません。LEDマトリックスを光らせる別の方式を現在検討中です。
コントローラー基板データ
電源のレギュレータは、LEDマトリックス4個を動かすということで、800mA出力のTO-252パッケージ品を使いました。コンデンサは、電解コンデンサ10μFとセラミックコンデンサ0.1μFを使っています。
- Fusion PCB用ガーバーデータ(ZIP)(74×53mm)
*この基板データは、CC BYライセンスとします。どうぞご利用ください。
(C) 2020 Shiro Saito (https://www.ichigojaman.jp)
プログラム
ファイル0:名前表示
IchigoJamの文字フォントデータを配列変数にコピーして表示しています。40行の文字列データを変更すると、表示する文字が変えられます。
ボタンを押すと、ファイル1のプログラムを実行します。
10 @ARUN:'*LED64Stack Saito 20 VIDEO 0:UART 1:CLS:? 30 GSB @PRTCLR 40 P="サイトウ":L=3 50 FOR X=0 TO L 60 C=PEEK(P+X) 70 GSB @PRTC 80 NEXT 90 IF !BTN() CONT 100 IF BTN() CONT 110 GSB @PRTCLR 120 SRND TICK() 130 LRUN 1 140 @PRTCLR 150 FOR I=1 TO 4 160 ?"MATLED SHOW 0000000000000000" 170 NEXT:RTN 180 @PRTC 190 A=C*8 200 FOR B=0 TO 7 210 [B]=PEEK(A+B) 220 NEXT 230 M=128 240 FOR I=0 TO 7 250 D=0 260 FOR B=7 TO 0 STEP -1 270 D=D<<1 280 D=D+([B]&M>0) 290 NEXT 300 ?"MATLED PUSH ";D 310 M=M>>1 320 NEXT 330 RTN
ファイル1:ダッシュゲーム
ボタンを連打して、ランナーを右端→左端へ走らせてください。ゴールするとタイムが表示されます。ボタンを押すとリプレイします。
数字・ランナーとも独自のデータを用意してPUSHして表示しています。が、文字フォントデータを使っても良かったかもしれません。
10 '*DASH64 20 UART 1:CLS:? 30 GSB @PRTCLR 40 LET [0],#3E,#41,#3E,0,#42,#7F,#40,0 50 LET [8],#62,#51,#4E,0,#22,#49,#36,0 60 LET [16],#4F,#49,#31,0,#3E,#49,#31,0 70 LET [24],#3E,#49,#31,0,#03,#71,#0F,0 80 LET [32],#36,#49,#36,0,#26,#49,#3E,0 90 FOR N=3 TO 1 STEP -1 100 GSB @PRTN 110 BEEP:WAIT 60 120 NEXT 130 GSB @PRTCLR 140 LET [90],#8C,#C8,#2E,#7E,#48,#D8 150 FOR L=0 TO 5 160 ?"MATLED PUSH ";[90+L] 170 NEXT 180 CLT 190 FOR R=1 TO 26 200 IF !BTN() CONT 210 IF BTN() CONT 220 ?"MATLED PUSH 0" 230 NEXT 240 T=TICK() 250 BEEP 10,60 260 WAIT 60 270 N=T/600:IF N>9 N=9 280 IF N>0 GSB @PRTN 290 T=T-N*600 300 N=T/60 310 GSB @PRTN 320 T=T-N*60 330 ?"MATLED PUSH 128" 340 ?"MATLED PUSH 0" 350 N=T/6 360 GSB @PRTN 370 IF !BTN() CONT 380 IF BTN() CONT 390 RUN 400 @PRTCLR 410 FOR I=1 TO 4 420 ?"MATLED SHOW 0000000000000000" 430 NEXT:RTN 440 @PRTN 450 FOR I=0 TO 3 460 ?"MATLED PUSH ";[N*4+I] 470 NEXT 480 RTN