4限目がなかった、2、3年生の部員さんが迎えてくれました。
遊んでくれてありがとう!
黒木さんの部屋、入ってすぐ目に入った、カッチャマン(勝屋さん)の絵!
佐世保高専でのIoTプログラミングの様子をご紹介。
「高専生から中学生へ「はじめてのプログラミング、はじめてのIoT」 / 佐世保高専での学び」
PCN久留米、爆誕!?
PCN三重代表の岡村さんの出身地のすぐそば、待望の久留米拠点!
鯖江から来たので、電脳メガネも布教。
comiceye - Macがあれば、Swift3で自由に開発可能ですよ!
LED1からはじめるプログラミング、ゲームもこうしてこうすると、あっという間に楽しいゲーム。
ブラウザ上で動くチュートリアル付き「IchigoJam web」で、ぜひ楽しいプログラミング体験を!
sakura.ioモジュール搭載、IchigoSodaなので、1行足すだけでネットランキング対応に!
60 IOT.OUT S
もう1行足せば、スマホからスタート信号を送ることが可能に!
5 IF IOT.IN()=0 CONT
IOT.IN()コマンドは、何もデータがないときには0を即座に返します。(1.2b64ファームを使用)
一瞬でIoT化し、望むままに即座に仕様が変わる「かわくだりゲーム」を体験
IoTはこどもでも使えて当たり前の時代、どう使うかの勝負!
高専生にも人気な光るイチゴ帽子をIoT化しちゃいましょう。
テープ状のマイコン搭載フルカラーLED、WS2812Bを調達し、30コ分切ります。
(30コ980円、60コ1,580円、300コ3,280円 WS2812B on Amazon)
ジャンパー線を3本用意して・・・
はんだづけ!
これをIchigoJamのVCC/GND/OUT1に挿しこみ、次のプログラムで光る!
10 POKE#700,240,181,68,24,90,32,12,73,114,182,128,37,35,120,1,52,255,34,74,96,3,39,10,38,43,66,1,208,10,39,3,38,1,63,253,209,0,34,74,96,1,62,253,209,109,8,239,209,1,56,234,209,98,182,240,189,0,0,1,80 20 U=USR(#700,#800) SAVE0 Saved 220byte OK POKE#800,9,5,2 OK RUN OK
メモリの16進数#800から緑、赤、青の順に明るさを設定して、マシン語呼び出しでWS2812Bを発光させています!
光らず、固まってしまったら、マシン語の入力をどこか間違えているので、LOAD0して、確認しましょう。
キーボード入力で、30コ全部光らせるには・・・(952と入力すると赤9緑5青2で発光!)
20 INPUT N 30 FOR I=0 TO 29:POKE#800+I*3,N/10%10,N/100,N%10:NEXT 40 U=USR(#700,#800) 50 GOTO20 RUN ?952
IoT.IN()コマンドで光らせるように改造するには・・・
20 N=IoT.IN():IF N=0 CONT
と、超簡単、でしょ!?
WebSocketでつながったwebアプリをスマホで表示して、RGB値を10進数3桁で送ればその色に光る!
生徒の意のままに変わる、先生の帽子の色!
天気や、外の混雑具合に合わせて変わる帽子もオシャレですねっ
何を光らせると目立つか?
そんな時は、ギャル電を参考にすべし「電子工作でパリピな夏を独り占め!サイバーパンク大五郎!! | dotstudio」
色相を使って美しく「WS2812B x IchigoJamでエモいウェアラブル「イチゴ帽子」プログラミング入門とマシン語、舞鶴x鯖江コラボに向けて」
またね!
ちらっと紹介した全国から集った高専生16名で、がっつり開発する3週間、jigインターン、来年もやりますよ!
インターンブログをのぞいてみよう → 「jigintern2018’s diary」
(おまけ)
WS2812Bを制御するマシン語プログラムが気になる人へ (asm15のソースです)
' OUT1 WS2812B DOUT [R1+`0001]を変更でOUTnに変更可能 ' R0 - data count 30コ固定 ' R1 - base address (初期はRAM offset) ' R2 - OUT value 0/#FF ' R3 - data value ' R4 - data address G1,R1,B1,G2,R2,B2 .... ' R5 - bit count ' R6 - wait count buf ' R7 - wait count @WS2812B PUSH {LR,R4,R5,R6,R7} R4=R0+R1 R0=30*3 R1=[@GPIO1]L CPSID @LOOP_DATA R5=#80 R3=[R4] R4+=1 @LOOP_BIT R2=#FF [R1+`0001]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 [R1+`0001]L=R2 R6-=1 'wait R6*4+1 clock IF !0 GOTO -1 R5=R5>>1 IF !0 GOTO @LOOP_BIT R0-=1 '+6clock IF !0 GOTO @LOOP_DATA CPSIE POP {PC,R4,R5,R6,R7} 'RET @GPIO1 DATA L #50010000
個数を変える場合は R0=30*3 を変更でOK!asm15の出力では2行になりますが、200字で収まるので1行化しました。
マシン語なんて知らないよという人も安心。入門があります!
「はじめてのマシン語 - IchigoJamではじめるArmマシン語その1」
マイコン、クラウド、FPGA、自在にコンピューター使いこなそう!