SHIROのIchigoJam日記

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

フルカラーバーサライタ

IchigoJam Rのファームウェア1.5β2でWS.LEDコマンドが使えるようになったので、フルカラーLED・WS2812Bのバーサライタを作りました。
IchigoJam Sまでは基本的に単色LEDで、フルカラーLEDで見せるには裏技が必要だったのですが、Rのスピードで簡単にフルカラーが表現できます。
動画はこちら。

【IchigoJam】フルカラーバーサライタ

f:id:shiro0922:20210127221010j:plain

プログラム

30~110行の文字データから、配列変数にLED用のデータをセットして、WS.LEDコマンドで光らせています。
横に振るとハート形が見えます。

10 @ARUN:'*POV Heart WS_R
20 CLV
30 [90]=`01110000
40 [91]=`11111000
50 [92]=`11111100
60 [93]=`01111110
70 [94]=`00111111
80 [95]=`01111110
90 [96]=`11111100
100 [97]=`11111000
110 [98]=`01110000
120 FOR I=90 TO 99
130 D=[I]
140 FOR B=0 TO 21 STEP 3
150 E=D&1
160 [B]=E*5
170 [B+1]=E*100
180 [B+2]=E*10
190 D=D>>1
200 NEXT
210 WS.LED 8
220 NEXT
230 GOTO 120

140~200行のループでLED用データをセットしていますが、当初作ったプログラムは

140 FOR B=0 TO 21 STEP 3
150 E=D%2
160 [B]=E*5
170 [B+1]=E*100
180 [B+2]=E*10
190 D=D/2
200 NEXT

でした。が、実際に動かしてみるとループが遅く、ハートが横に伸びて見えてしまいました。
「D%2」「D/2」の割り算で時間がかかっているのだろうと目星を付けて、「D&1」「D>>1」と論理演算とビットシフトに変えた所、いい形のハートになりました。
マイコンの計算速度がリアルに目で見える感じで面白かったです。