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

WS2812B x IchigoJamでエモいウェアラブル「イチゴ帽子」プログラミング入門とマシン語、舞鶴x鯖江コラボに向けて

2018/09/14
#maker #IchigoJam 

エモーショナルな装備(エモウェア)に最適、IchigoJamで個別制御可能で1灯当たりなんと11円と格安なフルカラーテープ状LED、WS2812Bを使ったイチゴ帽子でキラキラプログラミング入門。

30ものフルカラーLEDをたった1本でコントロールするヒミツは特殊なシリアル通信。 ひとまず次のプログラムを打ち込み、5VをVCC、GNDをGND、DIをOUT1へつないで、動かしてみましょう!(実行前に保存がオススメ)

10 POKE#700,240,181,114,182,64,24,80,33,9,2,1,49,9,4,4,136,1,48,128,37,1,48,3,120,255,34,74,96,3,39,10,38,43,66,1,208,10,39,3,38 20 POKE#728,1,63,253,209,0,34,74,96,1,62,253,209,109,8,239,209,1,60,234,209,98,182,240,189 30 N=33:POKE#800,N*3,N*3>>8 200 M=200 210 POKE#802+RND(N)*3,RND(M),RND(M),RND(M) 220 POKE#802+RND(N)*3,0,0,0 230 U=USR(#700,#800):GOTO210

10-20行がフルカラーLEDを制御するマシン語プログラム(解説マシン語入門)。
30行で光らせる数を設定(この場合33コ)
200-230行でランダムにランダムな色を設定して光らせたり消したりを繰り返し!

#800と#801に光らせるLEDの個数の3倍を書き込んでおき、色は、メモリ#802から3byteずつ、緑、赤、青の順に最大255でそれぞれの光の強さを指定します。 あとは、USR(#700,#800)でマシン語を呼び出せば、設定した通りに光ります。並べ方を工夫すれば電光掲示板にもなりますね!

例えば、先頭を青に光らせたい時は(上記プログラムを実行した後で)

POKE#802,0,0,100:U=USR(#700,#800)

でOK!


七色に輝く!(プログラムは末尾)


ニット帽なら、LEDテープを帽子のフチに通すだけ!一切の裁縫テクニックがいりません。(写真は、手編みIchigoニット帽(ヘタ)


DAISO、100均の電池式モバイルバッテリーは、中のプラスチックの仕切り板をペンチで折っておくと電池交換が楽です。


ものづくり好きが集まるイベントには、好きな帽子やネクタイをLEDで飾ってお出かけすると1.5倍楽しくなりますよっ。


さくらインターネット田中さんの担任の先生だった、舞鶴高専町田先生がご来鯖!めがね会館にて!


ZigBeeによるリモコン、コントローラーもMDF。素のAVRをC言語で開発しているとのこと。


舞鶴高専の授業でやっているミニロボコンの機体を見せていただきました。レーザーカッターによる筐体は仕上がりがきれい!


レーザーカッター、3Dプリンタといえば、鯖江のものづくりスポット、Hana道場。こどもでも組み立て可能なIchigoJam、秋葉原の電子パーツ屋さんのように、部品ピックアップからの体験も楽しめます! いろいろ体験できるスポット、ぜひ舞鶴にも!


舞鶴高専町田先生イチオシ、回路をプログラミングで自由に作れてしまう、ソフトのような不思議なハードウェア、FPGA、MAX10! 1チップMSXの誕生などでも有名。コンパイル速度や、開発機材の値段などで後回しにしていましたが、いよいよ手を出す時が来ました! それぞれ拠点ごとの得意技を活かしたこどもプログラミング教材交換、楽しみです!

【おまけ、光るイチゴ帽子のプログラム IchigoJam x WS2812B】
七色に輝き、赤いドットが流れ、光のグラデーションの3パターンをランダムに繰り返すプログラムはこちら(10-30行は上記と共通)

10 POKE#700,240,181,114,182,64,24,80,33,9,2,1,49,9,4,4,136,1,48,128,37,1,48,3,120,255,34,74,96,3,39,10,38,43,66,1,208,10,39,3,38 20 POKE#728,1,63,253,209,0,34,74,96,1,62,253,209,109,8,239,209,1,60,234,209,98,182,240,189 30 N=33:POKE#800,N*3,N*3>>8 40 GSB(2+RND(3))*100:CONT 100 @HSV2RGB:R=V:G=V:B=V:IF S=0 RTN 110 D=H/60%6:C=V-(59-H%60)*V/60*S/100:E=V-H%60*V/60*S/100:F=V*(100-S)/100 120 IF!DG=C:B=F 130 IFD=1R=E:B=F 140 IFD=2R=F:B=C 150 IFD=3R=F:G=E 160 IFD=4R=C:G=F 170 IFD=5G=F:B=E 180 RTN 190 @CLR:POKE#802,0:COPY#803,#802,N*3-1:RTN 200 H=RND(360):S=100:V=0:T=39 210 V=V+((T%20>9)*2-1)*5:GSB@HSV2RGB:POKE#802,G,R,B:COPY#805,#802,N*3-3:U=USR(#700,#800):T=T-1:IFTCONTELSERTN 300 S=100:V=150:T=66:GSB@CLR 305 V=150 310 COPY#802+N*3-1,#802+N*3-4,-N*3+3 320 POKE#802,0,V*(T%5=0&&T>33),0 330 U=USR(#700,#800):WAIT4 340 T=T-1:IFTGOTO310ELSERTN 400 GSB@CLR:V=50:T=123:X=4<<RND(4):H=0 410 COPY#802+N*3-1,#802+N*3-4,-N*3+3:IF T<33 V=0 420 GSB@HSV2RGB:POKE#802,G,R,B:H=(H+X)%360 430 U=USR(#700,#800):WAIT3:T=T-1:IFTGOTO410ELSERTN

DMX512や、BASICでも、もっと高速にもコントロールできるAPA102Cなどの例もどうぞ!

links
- 福井県鯖江市の、めがね会館とHANA道場で、IchigoJamの福野さんと楽しい会話 | yet another 舞鶴電脳工作室(2018/5再開)

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