SHIROのIchigoJam日記

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

フルカラーLEDマトリックスで連打ゲーム

★この記事は「IchigoJam Advent Calendar 2020」にエントリーしています。

フルカラーLED・WS2812Bの5×5=25個マトリックスを入手したので、先日やったmicro:bit v2と同じように連打ゲームを作ってみました。
動画はこちら。

f:id:shiro0922:20201216221012j:plain

LEDマトリックスamazonで入手しました。

裏面に単芯線(0.65mm)をはんだ付けして、IchigoJamのソケットにつなぎます。
f:id:shiro0922:20201216204310j:plain

WS2812B IchigoJam
VCC VCC
GND GND
IN LED

プログラム

10 @ARUN:'*Renda25
20 CLV:VIDEO 0:W=30
30 WS.LED 25
40 LET [80],#3F,#7E,#1F,#00,#B7,#76,#BF,#56,#9F,#1C
50 LET [90],#BD,#5E,#BD,#7E,#1F,#1E,#BF,#7E,#BF,#5E
60 FOR N=3 TO 1 STEP -1
70 GSB @PRTN
80 BEEP
90 WAIT 58
100 NEXT
110 [0]=0
120 COPY #801,#800,149
130 WS.LED 25
140 FOR L=0 TO 24
150 [L*3+L/10]=W
160 NEXT
170 WS.LED 25
180 CLT
190 FOR L=0 TO 24
200 IF !BTN() CONT
210 IF BTN() CONT
220 BEEP
230 [L*3+L/10]=0
240 WS.LED 25
250 NEXT
260 BEEP 10,30
270 WAIT 30
280 T=TICK()
290 N=(T/60)%10
300 [12]=W
310 GSB @PRTN
320 WAIT 60
330 N=T%60/6
340 [12]=0
350 GSB @PRTN
360 IF BTN() RUN ELSE CONT
370 @PRTN
380 D=[80+N*2]:E=[81+N*2]
390 FOR B=0 TO 7
400 [30+B*3]=D%2*W
410 [54+B*3]=E%2*W
420 D=D/2:E=E/2
430 NEXT
440 WS.LED 25
450 RTN

フルカラーLEDが25個あるので、配列変数[0]~[74]はその点灯用。せっかくフルカラーなので、25個のドットもRGBで表示してみました(140~160行)。
配列変数[80]~[99]は、40~50行で数字フォントデータ(5行3列=15ビット→2バイト、「0」~「9」で10文字分)を設定しています。
数字表示は表示サブルーチン(370~450行)で、フォントデータ配列を1ビットずつ読み出しながら表示用配列に値を設定して、WS.LEDコマンドで表示しています。小数点は別に処理しています(300行、340行)

その後

emerge+さんのアクリルパネルが手持ちにあったので、IchigoJamをTに変えて配線を固定して、電池も付けて携帯できるようにしてみました。