IchigoJam Rのファームウェア1.5β2でWS.LEDコマンドが使えるようになったので、フルカラーLED・WS2812Bのバーサライタを作りました。
IchigoJam Sまでは基本的に単色LEDで、フルカラーLEDで見せるには裏技が必要だったのですが、Rのスピードで簡単にフルカラーが表現できます。
動画はこちら。
【IchigoJam】フルカラーバーサライタ
プログラム
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」と論理演算とビットシフトに変えた所、いい形のハートになりました。
マイコンの計算速度がリアルに目で見える感じで面白かったです。