日本のオープンデータ発祥の地、鯖江の思いとこれからの話
ご来鯖、ありがとうございました!新潟経済同友会の会長、ハードオフ社長、山本善政さん!
新潟と福井はコシヒカリつながり、そして、鯖江のお殿様、間部家のルーツは新潟にあるそうです。
縁の始まりは、NPO法人エル・コミュニティ代表の竹部さんによる新潟講演&内容気になるパネルディスカッション!
オープンデータが日本全県制覇の次の活用、多様なアプリケーション開発のために必須な子供IT力!
レゴのロボット世界大会への進出など、新発田市の子供IT環境はいい感じ!(大会競技結果 - WRO Japan2017)
ぜひ裾野を広げて、地方発のオープンイノベーションを加速しましょう!(Hana道場連携も!)
大人にも人気な、ギャル電、直伝「光るカセットテープ」のIchigoJamエディション
もっと手軽に扱いやすく、マシン語部分を改造してみました!
10 POKE#700,102,32,240,181,114,182,8,36,36,2,9,25,11,76,128,37,11,120,255,34,34,96,3,39,10,38,43,66,1,208,10,39,3,38,1,63,253,209,0,34 20 POKE#728,34,96,1,62,253,209,109,8,239,209,2,49,1,56,234,209,98,182,240,189,4,0,1,80 30 [0]=30:U=USR(#700,0)
102コあるIchigoJamの配列を全部使って、34コのLED用信号を送出します。
[0]が一つ目の緑、[1]が一つ目の赤、[2]が一つ目の青(RGBではなくGRBの順なので注意!)
その後、[3]が二つ目の緑、[4]が二つ目の赤、、、と続き、[101]が34コ目の青となります。
LET[0], 0,30,0, 30,30,0, 30,0,0 U=USR(#700,0)
これで赤、黄、緑の信号のできあがり!
下記は今回の簡単バージョン用に書き直した「光るカセットテープ」用デモプログラムです。
自分なりに改造して、オリジナルなピカピカ光るアクセづくりに挑戦しましょう!
1 'WS2812B - OUT1 10 POKE#700,102,32,240,181,114,182,8,36,36,2,9,25,11,76,128,37,11,120,255,34,34,96,3,39,10,38,43,66,1,208,10,39,3,38,1,63,253,209,0,34 20 POKE#728,34,96,1,62,253,209,109,8,239,209,2,49,1,56,234,209,98,182,240,189,4,0,1,80 30 V=100:A=#700 40 FORJ=0TO7 50 FORI=0TO9:LET[I*3],RND(V),RND(V),RND(V):NEXT:U=USR(A,0):WAIT10 80 NEXT 100 FORJ=0TO3 105 FORI=0TO29:[I]=0:NEXT:LET[0],RND(V),RND(V),RND(V):U=USR(A,0) 115 FORI=1TO9:LET[I*3],[0],[1],[2]:WAIT2:U=USR(A,0):NEXT 150 NEXT 200 FORI=0TO3 205 R=RND(V):G=RND(V):B=RND(V) 210 FORJ=0TO10:LET[0],G*J/10,R*J/10,B*J/10:COPY#806,#800,54:U=USR(A,0):WAIT2:NEXT 220 FORJ=9TO1STEP-1:LET[0],G*J/10,R*J/10,B*J/10:COPY#806,#800,54:U=USR(A,0):WAIT2:NEXT 230 NEXT 240 GOTO 30
OUT2〜4で使いたい場合は次の中から25行をピックアップして加えてください
'for OUT2 25 POKE#73C,8 'for OUT3 25 POKE#73C,16 'for OUT4 25 POKE#73C,32
IchigoDakeで使うと便利な、SND(SOUND)端子を使って出力する技は、IchigoJam-FANで公開している1.2b53以降と合わせて、次の行を追加でOK!
25 POKE#73C,16,0,0,80,2,73,8,104,4,34,16,67,8,96,112,71,0,128,0,80:U=USR(#740,0)
おまけ(asm15 assembler 用、マシン語のプログラム)
' OUT1用 WS2812B @OUTを変更でOUT1-4で変更可能 ' R0 - data count ' R1 - data address (G1,R1,B1,G2,R2,B2 ....) #800から3byteずつ ' R2 - OUT value 0/#FF ' R3 - data value ' R4 - GPIO address ' R5 - bit count ' R6 - wait count buf ' R7 - wait count @WS2812B R0=102 PUSH {LR,R4,R5,R6,R7} CPSID R4=8 R4=R4<<8 R1=R1+R4 R4=[@OUT]L @LOOP_DATA R5=#80 R3=[R1] @LOOP_BIT R2=#FF [R4]L=R2 R7=3 '(3*4+1)=13 <- 16.8+-7.2 R6=10 '(10*4+1)=41 <- 43.2+-7.2 R3&R5 IF 0 GOTO @SKIP R7=10 '(10*4+1)=41 <- 43.2+-7.2 R6=3 '(3*4+1)=13 <- 16.8+-7.2 @SKIP R7-=1 'wait R7*4+1 clock IF !0 GOTO -1 R2=0 [R4]L=R2 R6-=1 'wait R6*4+1 clock IF !0 GOTO -1 R5=R5>>1 IF !0 GOTO @LOOP_BIT R1+=2 R0-=1 '+6clock IF !0 GOTO @LOOP_DATA CPSIE POP {PC,R4,R5,R6,R7} @OUT DATA L #50010004
コンピューターの真の力を引き出すマシン語。
学びたくなったら「IchigoJamではじめるArmマシン語」をどうぞ!
links
- 新潟経済同友会の皆さまが!!!|『さばえ.jp』百さんのブログです(鯖江市長ブログ)
- 新潟経済同友会 百年後委員会で講演&パネルディスカッション登壇|きらきら星のつぶやき☆