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

鯖江のものづくり友達、きものサロンまるよさんからスズムシがうるさすぎると相談あり。 一定間隔でスズムシの鳴き声が聞こえる、スズムシボックスを秋の店内にあると風流でいいのだけれど、ちょっと鳴く間隔が短すぎて、鬱陶しい、と。

9V電池を電源に、鳴き声電子回路が入っていることがわかったので、できるだけ非破壊による改造を試みる。 電源ケーブルを延長する形にして、トランジスタによる電子スイッチと、マイコンによる時間制御、マイコン用の3.3V生成が必要。


ブレッドボードで定期的に電源がONになる動作を確かめて、何秒間隔がいいか実験する
IchigoJam BASICなら、確認簡単!

10 OUT 1 20 WAIT 22*60 30 OUT 0 40 WAIT 180*60 50 GOTO 10

ONにしてから鳴くまでに間があるので、22秒間ONにすることで、ちょうど1ループ鳴く。そのままONにしておくと10秒たらずで何度も鳴くのは確かに鳴きすぎ。 ひとまず、3分間待って、再度鳴くようにしてみると、風流さが出た。


このままでは、箱に納まらないので、回路図を書いて、ユニバーサル基板にはんだづけする。 トランジスタを2段、3.3Vレギュレーター1つとIC3つ。どのようにつなぐかがパズルのようで楽しい。 Upverterなどで基板を起こしてもいいが、時間とお金が少々かかる。


IchigoJamよりコンパクトな、IchigoDakeでも、まだ納まらなかったのと、ちょっとオーバースペックなのも気になるので、LPC810へ移植する。 22秒間 ON にして、180秒は低電力モード(deep power down)で OFF にするプログラムを、IchigoJamからLPC810へ書き込む。

10 POKE#700,0,4,0,16,33,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,223,251,255,239,22,72,23,73,1,96,23,72,1,104,3,34,210,67,17,64,1,96,21,72,21,73,1,96,21,72,12,33,1,96,21,77,4,38,46,96,25,72 20 POKE#746,23,74,1,58,253,209,1,56,250,209,17,72,3,33,1,96,20,48,12,33,1,96,15,72,1,104,4,34,17,67,1,96,14,72,1,104,1,34,17,67,1,96,12,48,13,73,14,74,81,67,1,96,48,191,128,128,4,64,217,2,0,0,16,0 30 POKE#786,4,64,192,193,0,64,191,255,255,255,0,32,0,160,0,35,0,160,0,0,2,64,16,237,0,224,0,128,0,64,0,9,61,0,16,39,0,0,22,0,0,0,180,0,0,0 50 A=#700:L=180 100 UART3,2:OUT2,0:OUT1,0:WAIT9:OUT1,1:CLS:?"?":GSB@R 110 ?"Synchronized":GSB@R:?12000:?:GSB@R:GSB@R:?"A 0":GSB@R:GSB@R 120 ?"U 23130":GSB@R:?"W 268436096 ";L:GSB@R:UART1,2:LC0,-1:FORI=0TOL-1:?CHR$(PEEK(A+I));:NEXT:UART3,2:LC0,6:? 130 ?"P 0 0":GSB@R:?"E 0 0":GSB@R:?"P 0 0":GSB@R 140 ?"C 0 268436096 256":GSB@R:OUT2,1:OUT1,0:OUT1,1:END 150 @R:K=INKEY():IF K=13 K=INKEY():WAIT9:RTN ELSE CONT

180byteのArmマシン語をLPC810へ、書き込む(接続方法は、IchigoJamプリント参照)。30行の末尾、22と180の部分は、ONとOFFの秒数、好きな値に変えられる。(Armマシン語のソースプログラムは本記事末尾)


LPC810をIchigoDakeとピン配置をあわせるボードをはんだづけしてつくる。(LPC810の2番ピンWAKEUPをプルアップしないと、低電力モードが動作しないので注意!)


納まった!


元の箱に戻って、3分おきに鳴るように改造されたスズムシボックスのできあがり!

(LPC810を定期実行させる、Armマシン語 in asm15

DATA L #10000400 ' stack top DATA L #21 ' entry point DATA L 0,0,0,0,0 DATA L #EFFFFBDF ' VALID_CODE = 0x100000000-0x10000400-0x21 @ENTRY R0=[@SYSAHBCLKCTRL]L R1=[@USE_DEVICE]L [R0]L=R1 R0=[@FLASHCFG]L R1=[R0]L R2=3 ' flash no wait: set 0b00 R2=~R2 R1&=R2 [R0]L=R1 R0=[@PINENABLE0]L R1=[@PINENABLE0_DATA]L [R0]L=R1 R0=[@GPIO_DIR0]L R1=`1100 ' PIO0_2 and PIO0_3 [R0]L=R1 ' LED R5=[@GPIO_NOT0]L R6=`0100 [R5]L=R6 ' WAIT (WAIT_CNT * ON_SEC) R0=[@ON_SEC]L R2=[@WAIT_CNT]L R2-=1 IF !0 GOTO -1 R0-=1 IF !0 GOTO -4 ' init deep power down R0=[@PMU_PCON]L R1=3 ' PM = deep powerdown [R0]L=R1 R0+=#14 'PMU_DPDCTRL R1=`1100 ' enable 10kHz [R0]L=R1 ' deep power down R0=[@SCB_SCR]L R1=[R0]L R2=4 ' deep sleep R1|=R2 [R0]L=R1 ' wake up timer R0=[@WKT_CTRL]L R1=[R0]L R2=1 ' use 10kHz R1|=R2 [R0]L=R1 R0+=#C ' WKT_COUNT (SLEEP_CNT * OFF_SEC) R1=[@SLEEP_CNT]L R2=[@OFF_SEC]L R1*=R2 [R0]L=R1 WFI @SYSAHBCLKCTRL DATA L #40048080 @USE_DEVICE 'WKT, SCT:off, SWT, GPIO, I2C:off, FLASH, FLASHREG, RAM:off, ROM:off, SYS DATA L `1011011001 @FLASHCFG DATA L #40040010 @PINENABLE0 DATA L #4000C1C0 @PINENABLE0_DATA DATA L #FFFFFFBF @GPIO_DIR0 DATA L #A0002000 @GPIO_NOT0 DATA L #A0002300 @PMU_PCON DATA L #40020000 @SCB_SCR DATA L #E000ED10 @WKT_CTRL DATA L #40008000 @WAIT_CNT DATA L 4000000 ' 1sec (12MHz) @SLEEP_CNT DATA L 10000 ' 1sec (10kHz) @ON_SEC DATA L 22 ' (sec) @OFF_SEC DATA L 180 ' (sec)

2017年のクリスマス時に作ったものをベースに小変更。
@ON_SEC、@OFF_SEC 部分が、ONにする時間と、OFFにする時間。IchigoJam BASICからPOKE文でも簡単に変更可能。

jig.jp 2019年度入社予定な内定者さんとの鯖江合宿。

集合は鯖江駅!


まずは、鯖江駅構内の階段を登った駅2Fライブラリーカフェ「te to te」で作戦会議


サバエシュー」で栄養補給。


つつじバスに乗ってみます。


乗降数をリアルタイムにオープンデータ化しているシステムは、IchigoJam x sakura.io 製!
福井県鯖江市における「バス乗客リアルタイムオープンデータシステム」の事例紹介


ちょっと乗るつもりが図書館まで


図書館から徒歩15分ほどで到着、水落駅


身近なG空間データ、消火栓を発見!


福井鉄道、見える景色がスリリング


商店街メインストリートのバス停


商店街内、タケベ無線にて、美しいパソコン、MSXの動作品!カナ配列が50音順です。


ここタケベ無線は、鯖江産パソコン、IchigoJam店頭販売の1号店!


夜食に福井の冬の名物、つるっとおいしい、水ようかん!


さくらインターネット高火力サーバーを初契約!80万円ものGPUを搭載した、マシンがなんと1時間357円でレンタル可能!
CPU(Xeon E5-2623 v3 4コア ×2)に、9.3TFLOPSを誇る、GPU(NVIDIA Tesla P100 x1、時価80万円!)というスペックは、まさに、高級ゲーミングPCの計算毎秒10兆回クラス!

nVidiaのGPU、CUDA対応のffmpegを使った動画変換をコンパイルして、比較してみましたが手元の Mac Book Proの倍ちょっととそこまで高速化しませんでした(うまくいってなかったかも?)
CUDAを使ったプログラムの拡張子は、.cu 、100万個の並列計算するサンプルプログラムはサクッと動作。また時間を見つけて、超並列プログラミングにも挑戦しなくては!
CUDA 7.5 をWindows10にインストールし、Sampleコードを実行するまで - Qiita


鯖江といえば電脳メガネ!
高火力サーバーを使って、機械学習スタート!普通のパソコンでは1日がかりなところ45分で終了!


一晩使った高火力、切り上げとなって7時間分、2,499円ナリ


こちら巡った鯖江を題材に、 Vue.js を使って、webアプリ開発


サクっとつながる、Node.js を使ってつくったwebサーバープログラムとjsのwebアプリとIchigoJam!
jsアプリから小型WS2812Bの8x8マトリクスを自在に表示!
JavaScriptを使って、PCからフィジカルになにか表示するのに便利です。
IchigoJamでパソコンとUSBシリアル通信。Node.jsを使うとキーボードとモニタいらず – しずかなかずし


動いている様子!JavaScriptから使うかんたんフィジカル端末としてもどうぞ!
こちらWS2812B 8x8制御用のIchigoJam BASICのドライバです。

10 N=64 20 POKE#700,240,181,68,24,N*3,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 30 v=10 40 D=#900 50 LET[0],0,0,0 60 FORH=0TO64-1 80 IF PEEK(C*8+H/8)>>(7-H%8)&1 POKED+H*3,L/10%10,L/100%10,L%10 ELSE POKED+H*3,0,0,0 90 NEXT 100 U=USR(#700,D)

「C=ASC("A"):L=800:RUN」と改行をコマンドとしてシリアルで送ることで、その文字を指定色で表示します。


ラポーゼかわだ、宿泊者は無償で使えるステキルーム!

2020年度の新卒採用もエントリー受付してます!
2019新卒エンジニア募集! 無いものを創ろう - asm15 supported SREC format!

こどものプログラミングはじめに、Amazon最安値のキーボードと、ご家庭のテレビにビデオケーブル1本でつないで、microUSB電源を用意するだけでプログラミング環境が整う、こどもパソコンIchigoJam。

パソコンをすでに持っている大人やプログラミングに興味を持った子供にオススメは、ブラウザで動くエミュレーター IchigoJam web か、USBシリアルケーブル!

ちょうど、こんな記事も発見、Node.js x IchigoJam!
IchigoJamでパソコンとUSBシリアル通信。Node.jsを使うとキーボードとモニタいらず – しずかなかずし


USBシリアルはTXD/RXDの端子がある14ピンソケットCN3に接続して使います。
先日誤ってCN4に挿して煙がでて壊れてしまったUSBシリアルに替わるものを作ってみました。


PCからコントロールするだけなら、TXD/GNDを接続するだけでOK!
IchigoJamからのレスポンス(お返事)を受け取る場合は、RXDも追加。
IchigoJam側の電源もPCからとるなら、VCCも接続!

1本1本毎回確認しながら挿すのは面倒なので、長ピンソケットに挿しておけばまとめて挿すだけでOK!

更に、IchigoJamのハードウェアリセットやファームウェアの書き込みもする場合は、DTR/RTSも接続します。


CTSにつながっていたので、配線パターンをカッターでカットして、無理やりジャンパーしてみました。

ソフトウェアと違って、間違うと焼けてしまうのがハードウェアの面白さ。
昔よりだいぶパーツが安くなっているので、ちょっとずつ失敗しながらいろいろできるようになっていくほどに楽しさ増します!

何かできてもできなくてもメイカーフェアやNTへ、足を運んでみましょう!
シンガポールx日本 STEM教育トーク、創造力を磨く3ステップ、Wowを体験、自分で作って、自分で展示! NT加賀2018にて

石川県、加賀温泉駅すぐそば、ショッピングセンター内で開催されたNT加賀2018にて登壇!
「創造性と実現力を養うために今必要なこと~STEAM教育トークセッション~」


ものづくりは笑顔づくり!
なぜ、STEM(科学、技術、工学、数学)教育が重要か?
それは、世界中の大小さまざまな課題を解決し、人々を笑顔を生み出す力になるから。


シンガポールにて、中学校向けSTEM教育の開発普及を担当する STEM Inc のカリキュラムスペシャリスト、タン博士!

成長続けるシンガポールでも課題は多く、それを解決するエンジニアになる人材が不足中。
子供にとって大事なのは科学でWowと思わせる体験!
なんと理科室がない学校も多いというシンガポール。
サイエンスセンターはその体験ときっかけづくりの場。
理科室完備の日本、実は恵まれてました。

人間の5000万倍も速いのに、小さくてかわいいコンピューターが、たった100円!?
私自身のWowから生まれたIchigoJam。
日本中のこどもたちのWowをお届け中。

シンガポールの中学校でのSTEMは週に1時間半程度、既存の理科や数学を置き換えたりと教師負担を減らす工夫を聞けました。
まずは先生はじめ、おとなも楽しく科学でWowを広めましょう!
大鵬薬品、大塚グループで開催、IchigoJamでIoTプログラミングはじめのいっぽ / 人間に必要な栄養素アプリ
火災報知器IoT「火守くん」を生んだ、IchigoSodaを使ったIoT研修、人気です!
火災報知器のIoT化!|大阪市|消防設備 - 青木防災(株)

世界中で取り組み進むSTEM教育、背景はいろいろ違えど楽しむ子供はみんな同じ。
2020年にはシンガポールでイベントもあるとのこと、日本からのステキ事例、もっていけるいいかも!?

詳しくまとめていただいてました!
#NT加賀 STEAM教育トークセッション『創造性と実現力を養うために今必要なこと』 - Togetter


(追記、動画アップされました!)


加賀市における総務省、地域ICTクラブの取り組み発表、こどもたちがつくった作品展示。


micro:bitを使った電子工作、手作り感ある手描きの作品カード。
行ったときには残念ながら作った子たちには会えませんでしたが、自分の作品展示、くせになりますよ!
シンガポールでも、こどもたちが自分たちの作品を、自分自身で展示し、自分の言葉で話すことが大人を動かしているとのこと。


3Dプリンターでつくった光るメガネ!裏面のはんだづけにがんばりがでてた!
つくった子、ぜひ会って一緒に写真撮りたかった!


micro:bitをつかったロボットカーを子供は得意な紙工作などでデコレーション!


光るふうせん、100円!買ってくればよかった!
小さい工作、販売するのもいいですねっ。(ただ、大人には知ってほしい、ボタン電池リスク。)
自分で稼ぐ体験、貴重!
自分で創ったモノを売ってみよう!はじめてのしょうばい - 高性能温湿度計のつくりかた(SHT31編)


思わず購入、小さいFPGA、MAX10のボード CERASITE、3,800円!
作った人が目の前にいるイベントでのお買い物は楽しい!


多量のWS2812Bで光るドレスもFPGAボードで制御!


Robot Band ++ のかわいい演奏が響いていた、会場!


興味深そうに見るこどもたち!
次は、出展する側なっちゃおうっということをプロモーションするコーナーを作ると良さそう。
即席、出展できるフリースペースもありかも。


MAKE部さん、かわいい太鼓くまをタイマーに!


IchigoJamでLEDで赤くなったり、うごいたりするイチゴつくったIchigoLAND!


触ったら動く様子


鯖江から出展、電子機巧さんのセンサーとLEDで伝搬するブレッドボード電子工作をたくさんつなげげてつくったアナログ時計!
基板を起こさず、あえての子供でも簡単に分解、組み立てできるブレッドボード!
これは、NT鯖江、やらないと!


鎌倉、鳩サブレーのステキ缶をそのままPCケースに加工した、鳩サブレーパソコン!
なんとなく保存しちゃういい感じのケース、電子工作するのはおすすめです!


手の形によって、色が合成される「手づくり 色 作成機」
たった3つの色の合成で、どんな色でも作れちゃう、絵の具は大変だけど、電子工作なら自由自在!


表面実装の部品たっぷり、上級者向けはんだづけでつくるLEDキット!購入!


micro:bitで輝く、LEDバーが仕込めるビーチボール!(Amazonで発見、667円


模型がいい感じ、トイレ使用状況をインターネットでチェック!


手のひらで暗くすると光るホタル型のおもちゃ!光センサーとLEDの組み合わせ、子供向け実験にも良さそう!


目に穴があくメガネ、ハーフミラー、楽しい!


かな文字も打てるタイプライターで、オシャレ工作体験!


電子工作はじめのいっぽは、LED!初心者用ワークショップもやっているのがステキ。
同人誌、Arduion工作10選、買いました!


スタッフももちろん電飾装備!


お買い物中の一般のお客さんが集まる、デジタル大道芸!
電子工作を使ったマジックショーや、光り物を加えた何かの技など、クロステックで差をつけよう!


NT加賀、会場は、ショッピングセンター内、吹き抜けのスペース。


巨大観音像も望めるアビオシティ!


やっぱり電飾、メイカー系イベントの定番、WS2812B!
NコつながったWS2812Bを、最大輝度V(1-255まで)で光らせるIchigoJamのプログラム。
IchigoJamのOUT1にDINをつないで、5VをVCCに、GNDをGNDにつないで、つぎのプログラムでお手軽色相環!

10 N=64 20 POKE#700,240,181,68,24,N*3,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 30 V=20 40 D=#740 50 POKED,0:COPYD+1,D,N*3-1 60 @LOOP 70 POKED+H/V%3,ABS(H/V%2*(V-1)-H%V) 80 H=(H+1)%(6*V) 90 IF H%3=0 COPYD+N*3-1,D+N*3-4,-N*3+3 100 U=USR(#700,D) 110 GOTO @LOOP

まずは写経(そのまま打つだけ)して作って、楽しめば、OK!
自分なりの光らせ方したくなったら、レッツ、プログラミング!(20行の数列はマシン語だよ!)


メイカーフェア世界最多参加者かも!? 高須さん(@tks)と!
鯖江はシンガポールより近い!

links
- NT加賀2018
- NT加賀2018 (出展者向け)
- NT加賀2018ツイートまとめ #NT加賀 - Togetter

東京忘年会で活躍、エモメガネ!

暗いところでも大丈夫!LEDはすべて外側を向いているので、かけてる本人の眩しさはありません。


材料:ミニオンのメガネ、円形WS2812B外形60mm 2つ、線材少々
道具:はんだごて、ホットボンド
作り方
1. 円形WS2812Bの1つのDOUT/VCC/GNDをもうひとつのDIN/VCC/GNDに線材でつなぐ
2. メガネにホットボンドでつける
3. IchigoJamにつないでプログラムする


PCN秋葉原、木下さんに仕上げを手伝ってもらって、できあがり!


これはスゴイ!PCN秋葉原Assemblage開発、1行色相環!!
4本足のフルカラーLEDをIchigoJamのCN4、GNDとOUT2/3/4につないで、このプログラムを動かせば、7色に変化する色相環のできあがり!

10 T=100:PWM3,T,T:FORI=0TO5:FORH=0TOT:PWMI%3+2,ABS(I%2*T-H),T:WAIT1:NEXT:NEXT:CONT

2重のFORループを展開して、もうちょっと短くしてみたものがこちら

10 V=100:PWMH/V%3+2,ABS(H/V%2*(V-1)-H%V),V:WAIT1:H=(H+1)%(6*V):CONT

原理が気になる人は、こちらのテストプログラムも合わせてご覧ください

10 V=10:H=0 20 ?H/V%3,ABS(H/V%2*(V-1)-H%V) 30 H=(H+1)%(6*V) 40 WAIT10:GOTO 20

WS2812B用ドライバ(OUT1用)と合わせて、2行でサクッと色相環!(Vが最大輝度、1-255)

10 POKE#700,240,181,68,24,1*3,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 100 V=20:POKE#800+H/V%3,ABS(H/V%2*(V-1)-H%V):U=USR(#700,#800):H=(H+1)%(6*V):CONT

この短さなら、こどもたちでもチャレンジしやすい!


ふわっちくんもエモメガネ!


オリジナルパターンをプログラムして、パリピからエレガントまで自由自在!
センサー装備によるパワーアップなど、オリジナルなチャレンジをしたら、ぜひ別冊復刊ベーマガへ投稿しましょう!
子供はもちろん、かつてのマイコン少年も、最近はじめた大人やシニアの方でも大丈夫!

links
- 円形WS2812Bx2でお手軽工作エモメガネペンダント! IoTプログラミングで明日を創ろう - 福井市美山中学校会社訪問&IoT体験
- あの「ベーマガ」が15年ぶり“再創刊”! 「電子工作マガジン」12月19日号の別冊付録として - ねとらぼ

福井市美山中学校の1年生全員24名が、株式会社jig.jpの本店所在地、めがね会館訪問してくれました!
一億総プログラミング必修化時代、中学生にも楽しく体験してもらいたいですね!


はじめての電子工作は、LEDの差し込みから!


パソコン(IchigoJam)に、入力(キーボード)、出力(ディスプレイ)、電源(microUSB)を接続してスイッチオン!


たっぷり2時間、はじめてのプログラミングから、ネットワークの基本、ゲームづくり、IoT化まで!楽しんでもらえたようで、何より! 学校に戻って、いろいろアイデアを出すとのこと。実現に向けてぜひ協力しますよ!

今日の装備、エモペンダントをアップグレード!

ミニエモメガネペンダント!


円形WS2812Bをもうひとつ、L時ピンヘッダーの1ピンをペンチで曲げます。


作ってあった左側の円形LEDのDOUT端子から、右側円形LEDのDIN端子に線材をはんだづけ!


24コのWS2812Bをぐるぐると回す制御の実験!


プログラムはこんな感じ!

10 POKE#700,240,181,68,24,24*3,32,13,73,0,34,114,182,128,37,35,120,1,52,210,67,10,96,3,39,10,38,43,66,1,208,10,39,3,38,1,63,253,209,210,67,10,96,1,62,253,209,109,8,239,209,1,56,234,209,98,182,240,189 11 POKE#73A,0,0,0,1,0,80 15 OUT11,0:D=#800:W=2:CLT:F=0 16 IF BTN() R=RND(1):CONT 20 FORI=0TO2:C=RND(1000):GSB@PUTC:U=USR(#700,D):GSB@ROTM:GSB@ROTM:GSB@ROTM:GSB@ROTM:NEXT 30 GSB@ROTM 40 IF BTN() F=1:C=RND(1000):GSB@PUTC:CLT 42 IF F && TICK()>5*60 F=0:GOTO 20 44 IF TICK()>180*60 C=0:FORI=0TO11:GSB@PUTC:GSB@ROTM:U=USR(#700,D):WAITW:NEXT:SLEEP 50 GOTO 30 80 @ROTL:A=PEEK(D):B=PEEK(D+1):C=PEEK(D+2):COPYD,D+3,11*3:POKED+11*3,A,B,C:RTN 90 @ROTR:A=PEEK(D+33):B=PEEK(D+34):C=PEEK(D+35):COPYD+12*3-1,D+11*3-1,-11*3:POKED,A,B,C:RTN 100 @ROTM:GSB@ROTL:D=D+12*3:GSB@ROTR:D=D-12*3:WAITW:U=USR(#700,D):RTN 110 @PUTC:POKED+3,0,0,0,C/100,C/10%10,C%10:POKED+12*3,C/100,C/10%10,C%10,0,0,0:RTN

80-90行 COPYコマンドを使って、左右の円形LEDを、右回転と左回転する @ROTR、@ROTL がポイント!
16行 ボタンが押されている間ランダムを回すことで、起動時のパターンを変更
10-11行 WS2812B制御用ドライバ、Armマシン語プログラム

links
- 円形WS2812B x IchigoDake x DakeCap = エモペンダント
- はじめてのマシン語 - IchigoJamではじめるArmマシン語その1(もっと深く知りたい人へ)

まちがキラキラしがちな12月、電飾も身近なコンピューター制御。
エモグラスに触発され、手軽に装備できて、映えてエモい、ペンダントタイプを作りました。

ぐるぐる回る発光パターンを、ランダムに3秒置きに切り替えます。ボタンを押したら強制切り替え!


WS2812Bが12コ、円形にはんだづけされたモノ「waves WS2812B 12個 5V 円形 リング
L字ピンヘッダーを3ピン使ってDIN/VCC/GNDにはんだづけ、そのまま挿すだけ!
もうひとつを反対側にさせば、メガネ型にもできそう!

IchigoJam BASICのプログラム

10 POKE#700,240,181,68,24,12*3,32,13,73,0,34,114,182,128,37,35,120,1,52,210,67,10,96,3,39,10,38,43,66,1,208,10,39,3,38,1,63,253,209,210,67,10,96,1,62,253,209,109,8,239,209,1,56,234,209,98,182,240,189 11 POKE#73A,0,0,0,1,0,80 15 OUT11,0 20 CLT:H=0:V=10:S=100:X=RND(2):Y=RND(2):Z=RND(2):W=RND(10) 30 COPY#800,#803,11*3 40 GSB@HSV2RGB:POKE#800+11*3,X*G,Y*R,Z*B:H=(H+30)%360 50 WAIT W 60 U=USR(#700,#800) 70 IF TICK()>5*60 OR BTN() GOTO 20 ELSE GOTO30 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

10-15行 準備:左側CN4のVCCとGNDの隣、IN4が使えると都合がよかったので、OUT11,0 でIN4をOUTに切り替えて、マシン語でアドレス #50000100 を制御しています。(参考、LPC1114 GPIOアドレス
20-70行 メインループ:発光パターン生成
100-180行 サブルーチン:色相H、彩度S、明度Vを光の三原色赤R、緑G、青Bに変換


DakeCap(販売準備中)に、単4電池2本の電池ケースをはんだづけ。


電源を切って置く時は、DakeCapに裏刺し!

links
- 企業の枠を超えたプログラミングと電子工作を広める「KidsVenture」 in 大阪(エモグラス活躍)
- 光るネクタイ IoTie 小型化 ver1.1
- WS2812B x IchigoJamでエモいウェアラブル「イチゴ帽子」プログラミング入門とマシン語、舞鶴x鯖江コラボに向けて

おまけ、asm15 Armマシン語プログラム WS2812B IN4用ドライバ

' DOUT WS2812B DOUT [R1]を変更で他のピンにも変更可能 ' R0 - data count 30コ固定 ' R1 - GPIO address ' 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=[@DOUT]L R2=0 CPSID @LOOP_DATA R5=#80 R3=[R4] R4+=1 @LOOP_BIT R2=~R2 [R1]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=~R2 [R1]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 @DOUT DATA L #50000100 'IN4

ポケベル、おつかれさま! 記念に、IchigoJamでポケベル風を作りました。(通信料は月額64円/1万回受信
ポケベル、来年9月終了へ(共同通信) - Yahoo!ニュース

開始はなんと、50年前の1968年(無線呼び出し - Wikipedia)、1996年、高専内でも普及、公衆電話から数字で送るメッセージ、やりました! その後すぐにPHSへと移り変わりつつも、ポケベル入力(ベル打ち)は最強でした。


スマホや、パソコンから8文字メッセージを入れて、送信ボタン、ビープ音がなってディスプレイに表示。なかなかのポケベル感。

sakura.ioからの受信コマンドはこんな感じ!(正常受信でF=1となる)

LET[0],48,48:?I2CR(79,#800,3,#820,22):F=[16]!=5

こちらがポケベルプログラム for IchigoJam x sakura.io。
バイナリを受け取ったとして、受け取った最大8文字を画面に大きく表示(VIDEO 5)し、ビープ音を鳴らす

10 VIDEO 5 20 LET[0],48,48:?I2CR(79,#800,3,#820,22):F=[16]!=5:S=#824:POKE S+8,0 30 IF !F WAIT 10:GOTO 20 40 LC 0,2:?STR$(S) 50 PLAY"O5 A8R64A2R A8R64A2" 60 GOTO 20

送信は国野亘さんによる「Message IoT - sakura.io」を使ってみました! TokenやModuleの保存ができて便利です。とても丁寧な解説があるので、合わせてご覧ください!「ボクにもわかる IchigoJam用 IchigoSoda / sakura.io の接続方法

IoT時代のポケベルは応答もできます。
ボタンが押されていたら「了解」の意味で「1」を返してみましょう。(for βファーム)

25 IF BTN() IOT.OUT 1:WAIT 60:GOTO 20

用途に合わせていろいろ改造ください!

links
- ボクにもわかる IchigoJam用 IchigoSoda / sakura.io の接続方法
- IchigoJam x sakura.io でつくる格安IoTチャットデバイス
- Making of IoP = Internet of Pager(ポケベル@ja) / jig hackathon 2017

こども起業家創出目指す「KidsVenture
2018年、大阪最終イベントははんだづけ、キラキラ、ロボット、自動運転まで活動の集大成!

KidsVenture加盟企業、さくらインターネット、ビットスター、共立電子産業、アイティプロジェクト、ナチュラルスタイル、jig.jp、大阪、東京、札幌、仙台、福井から大集合!


IchigoJamのはんだづけからスタート


自分でつくったパソコンで、早速プログラミングに挑戦です!


電気の流れと合わせて、LEDを接続する電子工作はじめのいっぽ!


接続したLEDをコントロールするのはプログラム!


飾り付け!お家でも飾ってね!


共立電子産業、長者原さんからの激励、なんとかしようとする心がすべての原点!
限界は低いけど意外と奥が深いIchigoJamは、修行にぴったり!


裏では、大人向けのプログラミング講座、人気かつとっても熱心!
自宅でぜひ、こどもたちには紹介しなかったゲームづくりをご披露くださいー


一緒についてきたお子様、休憩時間用に展示も充実!
IchigoJamゲームコーナーには、8方向、縦横無尽に飛び回る!SPACE ATTACK、物理ボタンとレジンLEDがかわいいもぐらたたき!


その場でハイスコア付き、横スクロールアクションゲームに魔改造したかわくだりゲーム
若干おかしなゲームバランスがまた中毒性を持ったようで、ハマってました!


大人も楽しいミニコンテスト、かわくだりゲーム魔改造コンテストや、ライブコーディングなどの余興にも、ぜひどうぞ!


ミニオンズのコスプレメガネ 880円」をベースに「WS2812B 12個 円形 679円」を2コ付け制御!


自動運転、大人が乗っても大丈夫!


アイロンビーズは、大人にも大人気!


アイロンビーズでお手軽立体作品!iPadを裏にひいて設計図化するのも良さそう。
配置データの標準化と、5つ星オープンデータ化もしたいですねっ!


自分たちで作ったキラキラ電飾をバックに記念撮影!


高専狙う中学3年生!再開、楽しみにしてますっ


忘年会スタート!おでん!


エモグラスをかけると、誰でも自然と笑顔に!


IchigoJam育ての親、ナチュラルスタイルとPCNの代表、松田さん到着!


大阪発のエモグラス!メガネの国、鯖江も負けてられないですね!


とーとつにスタート、第一回 SAKURA.Jam 表面実装はんだづけ大会!
大人も子供も楽しい、はんだづけ!(さくらさんからのギフトバージョンは、表面実装はんだづけは不要なのでご安心ください)


優勝は、共立電子産業の岩田さん!さすが!(福野は3位)


さくらインターネットのロゴバリエーション!
コーポレートロゴへ込めた想い | 20周年記念 | さくらインターネット


上下、さくらの花びら揃いました!(両方白もOK!


始まる、表面実装レクチャー


そして、第二回大会!


共立さんのエモグラス試作基板!LPC1114添付モデルもぜひっ


KidsVentureの軌跡。
ルワンダ、フィリピン、宇宙(?)まで、いろいろあったKidsVenture。
きっとこれから、もっといろいろあります!

links
- 噂のSAKURA.Jamを高火力に魔改造!KidsVentureは挑戦意欲溢れる次世代の創出に貢献中! – about yrm
- KidsVenture

沖縄高専で初活躍、IchigoJamスピードパック
ただ、一部モバイルバッテリーがすぐに切れてしまうトラブル発生。
プログラムが動いている間、保存し続けるIchigoJam BASICのプログラムを使って、バッテリーの持ちを検証した。

15秒で起動完了、IchigoJamスピードパック

10 N=0 20 WAIT60*60 30 N=N+1:?N 40 POKE#FFE,N,N/256 50 SAVE 60 GOTO20 100 N=PEEK(#FFE)+PEEK(#FFF)*256:?N

バッテリーチェックプログラム
10-40行 1分ごとにプログラム領域の最後(#FFEと#FFF)に動いていた分数を書き込む
50-60行 そのプログラムを保存することで止まるまでの時間を記録し、くりかえし
100行 電源が切れたあと、電源を入れ直しLOADして、GOTO100でチェックできる

40行の /256 は >>8 、100行の *256 は <<8 へと置き換え可能。
BASICの場合、ビット演算を使っても使わなくても速度に大差ないけど、使えるとかっこいい。

DAISOの500円3,000mAhモバイルバッテリーを8つチェックした結果
130分前後3つ、90分前後3つ、154分持つもの、47分しかもたないものとばらつきがあり。
90分もってくれれば、45分授業2コマで使える計算。・・・でも、もうちょっと余裕がほしいところ。

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