福野泰介の一日一創 - create every day

IchigoJamでカラフル電飾! WS2812Bマトリクス x IchigoJam 64色パレット対応ドライバでつくるオリジナル電光掲示板 16x16/32x8/8x32

2018/02/16
#IchigoJam #KidsIT 

デブサミでの展示で活躍したカラフル電光掲示板でしたが、お絵かき感覚でもっと簡単に電飾づくりできるようなプログラム(ドライバプログラム、Armマシン語)をつくりました。

「レッツ、カラフルお絵かき!」
Insertキー(または、Ctrl+Alt)を押して上書きモードにすると自由にカーソルが動かせます!

16x16のマトリクス状になったWS2812Bの 5V/DIN/GND を、IchigoJamの VCC/OUT1/GND に接続して、次のプログラムを実行!

1 'WS2812B 16x16 palette driver 10 POKE#700,8,34,18,2,10,68,244,181,114,182,0,32,9,36,36,2,9,25,1,36,164,70,30,76,11,120,48,59,63,34,19,64,91,0,2,180,1,153,201,24,11,120,27,9,0,240,29,248,11,136,27,10,0,240,25,248,11,120,15,34 20 POKE#73C,19,64,0,240,20,248,2,188,97,68,1,48,15,34,16,66,228,209,2,9,16,42,8,208,31,49,1,35,93,66,172,70,26,66,219,209,2,49,156,70,216,231,98,182,242,189,128,37,255,34,34,96,3,39,9,38,43,66,1,208 30 POKE#778,9,39,3,38,1,63,253,209,0,34,34,96,1,62,253,209,109,8,239,209,112,71,0,0,4,0,1,80 40 LET[0],#FFF,#F00,#0F0,#00F,#FF0,#0FF,#F0F,#F30,#03F,#F03 50 U=USR(#700,0)

画面左上16x16の領域に0〜9を使って描いた絵が RUN(=F5)で、電飾に変換します!
40行目がRGBを24bit、16進数3文字で表す色パレット。例えば0は#FFFで白、1は#F00赤にしています。
プログラムを作って、アニメーションさせたり、ゲームを作ったりもできます。
パレットを値をくるくる変えてもおもしろいですね!

ワークショップなどで打ち込みが大変な場合、EEPROMなどにいれておくのが便利です。

こちらIchigoJamロゴのスクロールデモ(ドライバを書き込んでから実行)。64色パレットに配列の0〜63まで使うので、表示文字保存には配列の70以降を使っています。(#700の内容を見てドライバがなければマシン語呼び出ししない安全設計)

1 'IchigoJam LOGO 100 [70]="0 2 3 6" 110 [71]="0 2 6" 120 [72]="0 111 222 3 444 555 6 777 888888" 130 [73]="0 1 2 2 3 4 4 5 5 6 7 7 8 8 8" 140 [74]="0 111 2 2 3 444 555 666 7777 8 8 8" 150 [75]=" 4" 160 [76]="99999999999 444 999999999999999999" 170 LET[0],#E64,#E69,#69C,#A8C,#5AE,#8C3,#BC2,#EC1,#FA4,#E86,#FFF 200 L=40:P=0:CLS 210 FORI=0TO7:IF P<LEN([70+I]):LC31,I:?STR$([70+I]+P,1); 220 NEXT 230 IF PEEK(#700)=8:U=USR(#700,0) 240 SCROLL LEFT:P=(P+1)%L:GOTO 210

32x8のマトリクスWS2812B用ドライバはこちら。

1 'WS2812B 32x8 palette driver 10 POKE#700,8,34,18,2,10,68,244,181,114,182,0,32,9,36,36,2,9,25,1,36,164,70,30,76,11,120,48,59,63,34,19,64,2,180,1,153,91,0,201,24,11,120,27,9,0,240,29,248,11,136,27,10,0,240,25,248,11,120,15,34 20 POKE#73C,19,64,0,240,20,248,2,188,97,68,1,48,31,34,16,66,228,209,66,9,8,42,8,208,31,49,1,35,93,66,172,70,26,66,219,209,2,49,156,70,216,231,98,182,242,189,128,37,255,34,34,96,3,39,9,38,43,66,1,208 30 POKE#778,9,39,3,38,1,63,253,209,0,34,34,96,1,62,253,209,109,8,239,209,112,71,0,0,4,0,1,80

同じ32x8の256コのWS2812Bですが、8コずつ連なっている8x32バージョンもあったので、対応ドライバを用意。(WS2812B互換?仕様が異なるものがあるようで、発色や、光り始める値も違いました)

1 'WS2812B 8x32 palette driver 10 POKE#700,8,34,18,2,10,68,244,181,114,182,0,32,9,36,36,2,9,25,32,36,164,70,30,76,11,120,48,59,63,34,19,64,91,0,2,180,1,153,25,68,11,120,27,9,0,240,30,248,11,136,27,10,0,240,26,248,11,120,15,34 20 POKE#73C,19,64,0,240,21,248,2,188,97,68,1,48,7,34,16,66,228,209,194,8,32,42,9,208,31,57,32,35,93,66,172,70,1,37,42,66,218,209,64,49,156,70,215,231,98,182,244,189,128,37,255,34,34,96,3,39,9,38 30 POKE#776,43,66,1,208,9,39,3,38,1,63,253,209,0,34,34,96,1,62,253,209,109,8,239,209,112,71,4,0,1,80

16x16も縦つながりバージョン対応ドライバはこちら(左右反転していたらこちらをご利用ください)

1 'WS2812B 16x16V palette driver 10 POKE#700,8,34,18,2,10,68,244,181,114,182,0,32,9,36,36,2,9,25,32,36,164,70,30,76,11,120,48,59,63,34,19,64,91,0,2,180,1,153,25,68,11,120,27,9,0,240,30,248,11,136,27,10,0,240,26,248,11,120,15,34 20 POKE#73C,19,64,0,240,21,248,2,188,97,68,1,48,15,34,16,66,228,209,2,9,16,42,9,208,31,57,32,35,93,66,172,70,1,37,42,66,218,209,64,49,156,70,215,231,98,182,244,189,128,37,255,34,34,96,3,39,9,38 30 POKE#776,43,66,1,208,9,39,3,38,1,63,253,209,0,34,34,96,1,62,253,209,109,8,239,209,112,71,4,0,1,80

IchigoJam x WS2812B、オリジナルな電飾を楽しんでください!
ドライバのマシン語解説

links
- IchigoJamに日本語漢字を表示させる方法 powered by 8x8日本語フリーフォント「美咲フォント」
- IchigoJamで格安電光掲示板 - 日本語10x10 M+ BITMAP FONTSを8x8にコンバート

Tweet
クリエイティブ・コモンズ・ライセンス
この作品は「Creative Commons — CC BY 4.0」の下に提供されています。
CC BY 福野泰介 - Taisuke Fukuno / @taisukef / アイコン画像 / プロフィール画像