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

IchigoJam x OLED、横向きサブディスプレイとして使う方法

2018/01/17 23:55:00
#KidsIT #IchigoJam #maker 

小さくてかわいい、IchigoJamで簡単に使える0.96インチOLED
文字が縦向き表示が簡単ですが、ちょっと工夫すると横向き表示もできます。

HELP #000 CHAR #700 PCG #800 VAR #900 VRAM #C00 LIST

こちら、HELPコマンドで出てくる、IchigoJamのメモリマップ。フォントパターンが1文字あたり8byte、メモリの0番地から入っています(CHAR)。

前回は1文字分8byteをそのままをPCGの#700(16進数で700、10進数では1792番地)にコピーし、OLEDに送信していましたが、どちらかに90度回転させたデータにすることで横向き表示が可能です。

200 @LPUTC 210 FOR X=0 TO 7 220 N=0 230 FOR Y=0 TO 7 240 N=N+PEEK(C*8+Y)>>X&1<<(7-Y) 250 NEXT 260 POKE#700+X,N 270 NEXT 280 ?I2CW(60,64,#700,8) 290 RETURN

90度回転させるプログラムができました。前回のプログラムに加えてみましょう。

C=ASC("A"):GSB@LPUTC

Aと横向きにでました。

GSB@CLS:S="IchigoJam":FORI=0TOLEN(S)-1:X=3:Y=12-I:GSB@LC:C=ASC(S+I):GSB@LPUTC:NEXT

IchigoJamと表示されます!


下ように短くかいておくと、プログラム容量が節約できます。(200〜290行は消してOK)

150 @LPUTC:FORX=0TO7:N=0:FORY=0TO7:N=N+PEEK(C*8+Y)>>X&1<<(7-Y):NEXT:POKE#700+X,N:NEXT:?I2CW(60,64,#700,8):RTN

ひとつの文字を表示するために、8x8、64回ループしているので、ちょっとゆっくりな表示ですね。
マシン語で高速化してみましょう。

1 LET[0],#B5F0,#2307,#021B,#18C9,#2308,#4358,#1812,#2500,#2701,#2600,#2407,#2000,#5D93,#40EB,#403B,#40A3,#18C0,#3C01,#3601,#2E08,#D1F6,#5548,#3501,#2D08,#D1EF,#BDF0 150 @LPUTC:?USR(#800,C):?I2CW(60,64,#700,8):RTN

配列の領域を使ってマシン語をいれておき、これを使ったサブルーチン@LPUTCに置き換えています。

asm15 assembly表記のArmマシン語はこんな感じです。

PUSH {LR,R4,R5,R6,R7} R3=7 R3=R3<<8 R1=R1+R3 R3=8 R0*=R3 R2=R2+R0 R5=0 'X R7=1 '1 @LOOP1 R6=0 'Y R4=7 '7-Y R0=0 'N @LOOP2 R3=[R2+R6] R3>>=R5 R3&=R7 R3<<=R4 R0=R0+R3 R4-=1 R6+=1 R6-8 IF !0 GOTO @LOOP2 [R1+R5]=R0 R5+=1 R5-8 IF !0 GOTO @LOOP1 POP {PC,R4,R5,R6,R7}

asm15、配列への代入形式、"bas (array hex)" を追加しました。

ボクにもわかる IchigoJam用 I2C 有機ELディスプレイ OLED の接続方法
こちらにまとめて転送することでもっと高速化する方法や、楽しいサンプルが紹介されていますので、合わせてどうぞ!

0.96インチOLEDをIchigoJamのサブディスプレイとして使おう

2018/01/16 23:55:00
#KidsIT #IchigoJam #maker 

温度や、動作状態をちょっと表示させたい時に便利な、128x64の有機ELディスプレイ(OLED)。
秋月電子通商からIchigoJam Tにぴったりの商品が登場!
0.96インチ 128×64ドット有機ELディスプレイ(OLED): ディスプレイ・表示器 秋月電子通商 電子部品 ネット通販

ピン配置が、GND,VCC,SCL,SDAの順は、IchigoJam TのCN5とぴったり。
(IchigoJam Uでもブレッドボードなどで配線すればOK!)

このモジュールはI2Cを使って制御します。差し込んだらまず次の初期化コードで表示しましょう。

POKE#700,0,141,20,32,0,175:?I2CW(60,#700,6)

つぶつぶ模様が表示されます。
イチゴのキャラクターを表示してみましょう。

COPY#700,255*8,8:?I2CW(60,64,#700,8)

次のように好きな文字を表示できます。

C=ASC("5"):COPY#700,C*8,8:?I2CW(60,64,#700,8)

表示する位置を変更するコマンドはこちら(X:左0〜7右、Y:上0〜15下)

POKE#700,0,#21,Y*8,127,#22,7-X,7:?I2CW(60,#700,7)

まんなかあたりに真っ白の四角を表示する例

X=3:Y=7:C=1 POKE#700,0,#21,Y*8,127,#22,7-X,7:?I2CW(60,#700,7) COPY#700,C*8,8:?I2CW(60,64,#700,8)

* 画面を全部消す時は、表示位置を右上にもっていて、16x8の128コ、真っ白を表示します。

わかりやすく、つくったプログラムがこちら

10 GSB@INIT:GSB@CLS 20 X=RND(8):Y=RND(16):GSB@LC 30 C=RND(256):GSB@PUTC 40 GOTO20 100 @INIT:POKE#700,0,141,20,32,0,175:?I2CW(60,#700,6):RTN 110 @LC:POKE#700,0,33,Y*8,127,34,7-X,7:?I2CW(60,#700,7):RTN 120 @PUTC:COPY#700,C*8,8:?I2CW(60,#40,#700,8):RTN 130 @CLS:X=7:Y=0:GSB@LC:C=0:FORI=0TO127:GSB@PUTC:NEXT:RTN

10行で初期化して、20から40行をぐるぐるまわって、ランダム表示。

ESCで止めて、次のようにやってみましょう。

GSB@CLS X=3:Y=7:C=255:GSB@PUTC

いろいろ遊んでみてください!

links
- 0.96インチ 128×64ドット有機ELディスプレイ(OLED): ディスプレイ・表示器 秋月電子通商 電子部品 ネット通販
- IchigoJam x OLED、横向きサブディスプレイとして使う方法
- ボクにもわかる IchigoJam用 I2C 有機ELディスプレイ OLED の接続方法

旭川高専出身、Viscuit開発者の原田さん開発、3次元版タートルグラフィック、トンボグラフィックがおもしろそう!ラインアートの3次元版(立体視用)

2018/01/15 23:55:00
#KidsIT #art #kosen #js 

北海道の離島、天売島生まれ旭川高専出身でこどもプログラミングアプリ「Viscuit」を開発・提供する原田さん、来福。 PC-8001をモニターなしでBASICを打ち込み、音でデバッグの話、おもしろい!

コンピューター、電子工作、粘土など、ものづくり話に花咲きます!

「右へ10、前へ20」などと亀を動かし軌跡で絵を描く、タートルグラフィックIchigoJamでの実装例)。これを3次元に拡張した亀ならぬ空間を飛び回るトンボグラフィックを旭川高専5年生の時に開発していたとのこと。 ダイヤモンドや、分子を短いプログラミングでさくっと表現できるとのことで、楽しそう!(実装かも、T3
過去に発明した変な言語1 - ビスケットのあれこれ」 - 原田さんのブログ

平行法や、交差法で手軽に(?)見られる3D(例、点で作った球)を、2012年一日一創のラインアートに適応。

LineArt3D」 - JavaScriptで作った、Webアプリ(オープンデータなオープンソース)

コンピューターの計算速度が上がり、部品が安くなって手軽になってきた Windows MRなどのVR。 先日、7歳以上向けのガイドラインが発表され、こども x VR の可能性もでてきたので、プログラミングで空間を自在に操るWOWなアプリもできちゃいますね!
「7歳未満には利用させない」など,施設型VRコンテンツの利用年齢に関するガイドラインをロケーションベースVR協会がリリース - 4Gamer.net

安いパソコンで、テキスト、2次元グラフィック、3次元グラフィックへと一気にステップアップできてしまう現代の子供達がうらやましい!
「jig.jp」福野泰介社長 ゲーム作りに夢中になった1冊|暮らし|ライフ|日刊ゲンダイDIGITAL

ベーマガイベント大盛況だっととのこと!コンピューターの楽しさは不変!

マイコンベーシックマガジン - Facebook

何事も実質プログラミング! 高専カンファレンスえぶりわん in 大阪

2018/01/13 23:55:00
#kosen #maker #KidsIT #kosenconf #kosenconf_113everyone 

ものづくり好きな高専生による高専生じゃなくても大歓迎なイベント、高専カンファレンスえぶりわん in 大阪
コスプレ衣装づくりは、実質プログラミングだ!と発表する女子高専生、やましーさん。

そう、ものづくりの極意は分解にあり。

何でできているかアタリをつけ、各個撃破、仮組み、うまくいけば完成。いけなければ、リトライ。あきらめたらそこで試合終了。 うまくいかないことで見える、新たな知見が楽しめるなら、そのジャンルは天職かもしれない。


新年らしくめでたい紅白リアルタイム投票戦!主催者、高専生による自作システム。

こちらも新年らしい、自作、あたまのわるいふくわらい。
若干偏り気味な、やわらかさある高専生による仕業 → #kosenconf 想像力豊かな高専生
3Dプリンターで量産したい逸品。

電車通学して目につくモノは、とりあえずつくってみたくなる病。
あるある。実際に作れちゃうからやめられない。

かっこいいスライドに憧れる人、必見!カラー、フォント、スタイル、イメージがポイント!

LTで話した「犬だって歩けば棒にあたるのだから」で、創ってシェアする楽しさをシェア。

プログラミングは楽しいよ!高専2年生達にIchigoJamを題材に、ミニプログラミング講座。

鯖江で人気、Hana道場で学生がこどもにプログラミングとものづくりを伝授してますよっ。

今回お土産にもっていった、かわいいNXP/Armのコンピューター、LPC810ちゃん!
IchigoJamでマシン語でプログラミングできちゃいます。
(ちょっと長いので、まずは、はじめのいっぽ&ミニゲームズで慣れてからどうぞ〜)

RESETLPC810RXD- IchigoJamのTXD
IchigoJamのRXD -TXDGND- IchigoJamのGND
PIO0_33.3V- IchigoJamのOUT1
WS2812B DIN -PIO0_2ISP- IchigoJamのOUT2

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,33,72,223,33,1,96,33,72 20 POKE#728,1,104,3,34,210,67,17,64,1,96,31,72,31,73,1,96,31,72,12,33,1,96,31,76,4,34,30,32,32,161,30,75,14,120,30,112,1,49,1,51 30 POKE#750,1,56,249,209,30,32,26,73,128,37,11,120,34,96,43,66,8,208,0,0,0,0,0,0,0,0,0,0,0,0,0,0,34,96,7,224,0,0,34,96 40 POKE#778,0,0,0,0,0,0,0,0,0,0,0,0,109,8,233,209,1,49,1,56,228,209,13,79,1,63,253,209,10,73,14,120,29,32,79,120,15,112,1,49 50 POKE#7A0,1,56,250,209,14,112,213,231,128,128,4,64,16,0,4,64,192,193,0,64,191,255,255,255,0,32,0,160,0,35,0,160,0,0,0,16,128,26,6,0 60 POKE#7C8,20,0,0,20,20,0,20,0,20,20,20,0,0,20,0,10,0,0,7,0,0,5,0,0,3,0,0,2,0,0 70 A=#700:L=216:LRUN1 SAVE0 NEW 100 'LPC810 Writer 256byte from ADR:A 110 UART3,2:OUT2,0:OUT1,0:WAIT9:OUT1,1 120 CLS:?"?";:GSB@R 130 ?"Synchronized":GSB@R 140 ?12000:?:GSB@R:GSB@R 150 ?"A 0":GSB@R:GSB@R 160 ?"U 23130":GSB@R 170 ?"W 268436096 ";256:GSB@R:UART1,2:LC0,-1:FORI=0TO255:?CHR$(PEEK(A+I));:NEXT:UART3,2:LC0,6 180 ?"P 0 0":GSB@R 190 ?"E 0 0":GSB@R 200 ?"P 0 0":GSB@R 210 ?"C 0 268436096 256":GSB@R 215 '?"G 268436128 T":GSB@R:END 220 OUT2,1:OUT1,0:OUT1,1:END 500 @R:K=INKEY():IF K=13 K=INKEY():WAIT9:RTN ELSE CONT SAVE1 LRUN0

普通のパソコンから扱う人向けの本もどうぞ!(ボクのLPC810工作ノート

書き込み終わったらこのようにスッキリ配線もコンパクト!
3Vの電源を右側まんなかに、左下からWS2812B用の信号がでるので、DINに接続するだけで、チカチカ完成!
ふんわり、さりげなく、キラリと光らせて、かわいいをアップグレードしちゃいましょう!

なんと実行副委員長賞として、えぶりわんオリジナルフラッグをもらったので、一緒に記念撮影!

楽しいは創れる!

【おまけ】
高専生のためのWS2812B x 10 を、LPC810でチカチカさせるArmマシン語 asm15 assembly 表記版、紹介。

DATA L #10000400 ' stack 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=#DF 'SWT, GPIO, I2C:off, FLASH, FLASHREG, RAM, ROM, SYS [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 R4=[@GPIO_NOT0]L R2=`100 ' PIO0_2 @COPYTORAM R0=30 R1=@DATA_LED R3=[@RAM]L @COPYTORAM_LOOP R6=[R1] [R3]=R6 R1+=1 R3+=1 R0-=1 IF !0 GOTO @COPYTORAM_LOOP ' WS2812B driver ' R0 - data count ' R1 - data address (G1,R1,B1,G2,R2,B2 ....) ' R2 - OUT value ' R3 - data value ' R4 - GPIO address ' R5 - bit count ' R7 - wait count @WS2812B R0=30 ' R1=@DATA_LED R1=[@RAM]L @LOOP_DATA R5=#80 R3=[R1] @LOOP_BIT [R4]L=R2 R3&R5 IF 0 GOTO @ZERO NOP NOP NOP NOP NOP NOP NOP [R4]L=R2 GOTO @JOIN @ZERO NOP [R4]L=R2 NOP NOP NOP NOP NOP NOP @JOIN R5=R5>>1 IF !0 GOTO @LOOP_BIT R1+=1 '+6clock R0-=1 IF !0 GOTO @LOOP_DATA @WAIT R7=[@WAIT_N]L R7-=1 'wait R7*3+1 clock IF !0 GOTO -1 R1=[@RAM]L R6=[R1] R0=29 @SLIDE R7=[R1+1] [R1]=R7 R1+=1 R0-=1 IF !0 GOTO @SLIDE [R1]=R6 GOTO @WS2812B ' init @SYSAHBCLKCTRL DATA L #40048080 @FLASHCFG DATA L #40040010 @PINENABLE0 DATA L #4000C1C0 @PINENABLE0_DATA DATA L #FFFFFFBF @GPIO_DIR0 DATA L #A0002000 @GPIO_NOT0 DATA L #A0002300 ' WS2812B @RAM DATA L #10000000 @WAIT_N DATA L 400000 @DATA_LED DATA B 20, 0, 0, 20, 20, 0, 20, 0, 20, 20, 20, 0, 0, 20, 0, 10, 0, 0, 7, 0, 0, 5, 0, 0, 3, 0, 0, 2, 0, 0

一番最後の行、DATA_LEDがG,R,B(緑赤青)の順にLEDの明るさ設定が10コ分の並んでいます。とりあえず、ここを書き換えることからはじめてみよう。

上下区別なく使えるスマホが欲しい - あったらいいなをカタチにしよう!PCNこどもプロコン締め切り間近!

2018/01/06 23:55:00
#web #KidsIT #megane 

iPhone X で困ること。
1/2の確率で上下逆に持ってしまってロック解除ができないストレス。
せっかくのベゼルレス、上下逆さまでも使えるようにiOSが対応してくれることを強く希望!

上にだけある切り欠きを下にもつければ違和感ないのでは?
という話になって、実際やってみました。


additional black edge SVG for iPhone X - iPhone X用、追加縁取りSVG
ベースは、2017年9月のサイト内アクセスランキング1位だった「気分は iPhone X!? 縁取りSVGをつくってみた」です。しばらく、本ブログにCSSを適応して使ってみます。

これはこれで違和感ないかも。

ついでに裏表もなくして、理想の電脳メガネへ近づきたい。

使い慣れた文字入力や、繊細なポインティングデバイスとして上下裏表対応のタッチパネルだけのデバイスをポケットに入れることになりそう。
(過渡期は、電脳メガネをディスプレイ、スマホを補助コントローラーが現実的)

すべてのこどもたちに持ってほしい、あったらいいなをとりあえずカタチにできる力!

PCNこどもプロコン2017冬の締め切り間近です!

links
- SVG / 図形の描画方法まとめ - Qiita
- SVGを上下左右に反転させる方法【SVG】 | sakura*sakura
- [CSS] z-index の最大値について調べた – 零弐壱蜂
- 電脳メガネサミット2018 - 福井県鯖江市
- PCNこどもプロコン

15才によるフィボナッチ数列と2進数の研究! フィボナッチすうれつ - IchigoJamプリント

2017/12/28 23:55:00
#IchigoJam #KidsIT 

高専生なら、サイコロにするほど大好きフィボナッチ
15歳女子が「フィボナッチ数列は2進数でも美しいのか」を考察 算数・数学の自由研究作品コンクール「MATHコン」で日本数学検定協会賞を受賞 | プレスリリース | 公益財団法人 日本数学検定協会

使用言語は、Python3。2進数にしてみようという発想がナイス!
受賞作品リストには、フィボナッチ数列をテーマにした作品がなんと4つ!

数列好きなこどもを増やすために、IchigoJamプリントでもフィボナッチ!


フィボナッチすうれつ」 - IchigoJamプリント (PDF)

上級者には、スタックと再帰を使ったフィボナッチもどうぞ!
フラクタルな世界も楽しいですよ!

こどもが自分の作品を発表できる場所、ネット以外の手段も効果的に使いましょう!

IchigoJam Cafe やりましょう! ラズパイカフェ好調! 教材は定期配信、あっちむいてほい - IchigoJamプリント

2017/12/27 23:55:00
#IchigoJam #KidsIT 

こどもプログラミングは世界的ムーブメント!
イギリスで学校内でコンピューターを学ぶ「ラズパイカフェ」を1500万円かけ、5箇所増!
英「Raspberry Pi」カフェが好調、5店舗を増設へ - CNET Japan

イギリスの11才〜16才が通う中等教育「Broadoak School」に、クラウドホスティング会社UKFastの支援で2015年10月オープン!
Raspberry Pi cafe grand opening - Broadoak School

学校内のコンピューターコーナーとは、いいアイデア!
鯖江市では2014年からIchigoJamでプログラミングクラブがスタートして、もう3年目。
小学6年生にもなると約半数がプログラミング体験しているまでになっている。
遊具のように、自由な環境をつくることで、学年や組を超えた教え合い、学び合いが起きそう!

IchigoJam Cafe やりましょう!

必要機材、コスト1セット8,000円
- IchigoJamセット(本体、電源、モニター、キーボード) 約6,000円
- 教材(電子工作マガジン(季刊誌)、IchigoJamプリントなどフリー教材) 約2,000円

生徒の数に応じて、3〜5セット置いて様子みるくらいなら、1学校あたり約3万円でスタートできる!
5校で15万円、ラズパイカフェのコスト1/100!

定期的に印刷してあげてほしい、IchigoJamプリントを1枚追加しました!

"あっちむいてほい - IchigoJamプリント" (PDF)

ノートをおいておいて、子供たちがつくったプログラムなどをどんどんメモしてもらって、時々学校を越えて共有してあげられるとおもしろそう!
sakura.ioをつないで直接ネットワークへアップロードや、ダウンロードも熱い!
IchigoDake を生徒に配布して、IchigoIgai を置いておくのもあり!
生徒の興味に合わせて、ロボットや、電子工作セット(LED、センサー、サーボモーターなど)を揃えてあげると盛り上がる!

夢ひろがる、IchigoJam Cafe!

Unlearn! Kids Programming Summit in Fukui the Second. Janken game IchigoJam print for Rwanda

2017/12/26 23:55:00
#IchigoJam #KidsIT #africa #doc 

We learn eternally. Learning to create is my whole life.
人は永遠に学び続ける。創るための学びは人生そのもの。

Unlearning is the most difficult learing.
一番難しい勉強は、今持っている常識を捨てることアンラーン(Unlearn)。

The most impressive thing for me is there are no games like Janken in Rwanda, paperless culture.
ペーパーレス文化のルワンダ、ジャンケンがないことにびっくり。

We have to learn our Japanese knowleges from schools are very small and old.
日本の学校で習った知識は古くて小さいものと知ろう。

We have to decide teach how to learn, not what to know at schools.
決めるべきは、学校で何を教えるかではなく、学び方を教えること。

Disrupting is the more difficult than Creating, but Japan has to do and we can do.
破壊は創造より難しいけど、日本はやる必要があるし、やれるはず。


Janken style photo with Rwandan friends at Megane-Kaikan in Sabae, Fukui, JAPAN!
ルワンダの友とじゃんけんスタイルで記念写真 at めがね会館。


"Janken Game" - IchigoJam print@en
Japanese the simplest fighting game: Janken for Rwanda.
日本発!? 限界まで抽象化した対戦ゲーム「じゃんけん」をIchigoJamプリントにして、ルワンダへ!
* "Rock, Paper, Scissors: Japan's Most Dangerous Game" about Janken


Kids Programming Summit 2017 in Fukui the Second
第二回こどもプログラミングサミット2017 in Fukui


Try to make the "LONG" using LEGO blocks. What is your "LONG"? Uniformity is Japan's weakness.
レゴで"長い"ものをつくるミニワークショップでスタート!あなたの"長い"ものは何?画一は日本の弱み。


Presentations from special guests! (Mr. Matsuda Takashi, Ms. Rieko Komiyama, Mr. Hyakuo Makino, Mr. Shusaku Indo)
特別ゲストからの発表! (松田考さん、小宮山理恵子さん、牧野百男さん、犬童周作さん)


This summit is closed event to disscuss freely.
自由な発言促す、オフレコルール!


Thank you to join!
ご参加、ありがとうございました!


Let's connect dojos Rwanda, Mongolia and Sabae! at Hana dojo
道場でつなごう、ルワンダ、モンゴル、鯖江をつなごう! Hana道場にて


Our kids programming summit members met Rwanda friends!
こぷサミ実行委員会メンバーとルワンダがつながった!

Let's go forward to create futures!
進もう、未来づくり!

ともにつくろう!Fw:東北、家族で挑戦プログラミングとオリジナルXmasツリーづくり

2017/12/25 23:55:00
#IchigoJam #KidsIT #doc 

復興庁主催、Fw:東北初の子供共創企画
Fw:東北Weekly 家族でプログラミングしてみよう! 東北発のほやアートをつくってみよう!~次世代へ繋ぐ東北との共創のバトン | Peatix

みんなでつくった、ツリー&光るほやアートで記念写真!


石巻、イトナブから参戦、UK!みんなで東北、応援しよう!


ロボットと音楽とチアの共演、チアプログラミング!


LED1:LED0 光るの見えた?


お父さんも真剣!お父さんお母さんも一緒に体験できるよう、1組2台準備しました


真剣!1時間目はまずは1つのLEDをプログラミングでモノにする!


ほやクッキーで休憩タイム!


2時間目いよいよツリーづくり!
WS2812BからIchigoJamへ配線! 5VをVCC(+)、VINをOUT1、GNDをGNDへ!


事前に書き込んでおいたマシン語を LOAD1 で読み込んで、早速フルカラーLEDに挑戦!
緑、赤、青のちっちゃい光の点、見えましたね!


キラキラできたら、クリスマスツリーへ飾り付け!子供それぞれの個性炸裂してて楽しい


「共に創る」は最高のコミュニケーションですねっ


Fw:東北のテーマ「共創(きょうそう)」みんなでみんなの想いを実現!


楽しい時間を、ありがとうございました!

今日の、オリジナルツリーづくりのスライド(補足あり)です。お家でもやってみてください!
クリスマスが終わったら、次はギャル門松に挑戦だ!


会場はいつもステキな Yahoo! LODGE でした!

links
- 復興庁「Fw:東北」で、子どもたちとクリスマスツリープログラミング! | 新宿区議会議員最年少の伊藤陽平
- 子ども版Fw:東北イベント♪|日々のあゆみ

IchigoJamとLPC810でつくるLED点滅クリスマスアクセサリー

2017/12/23 23:55:00
#IchigoJam #KidsIT #lpc810 

クリスマスのかわいいアクセサリー、マイコン制御でピカピカ光らせてみましょう!

材料
- 光らせたいかわいいアクセサリー
- LPC810 Armマイコン秋月電子通商
- IchigoJam
- ブレッドボード
- ジャンパーワイヤー5本
- LED(ボタン電池で光らせるので、赤か黄色あたりがオススメ)
- CR2032 ボタン電池
- CR2032 ボタン電池ケース
- 線材少々、はんだ少々

一番大きいボタン電池ケースが裏に隠れるくらいな大きさならOK!


1. IchigoJamでArmマイコンLPC810に点滅プログラムを書き込みます

RESETLPC810RXD- IchigoJamのTXD
IchigoJamのRXD -TXDGND- IchigoJamのGND
LEDみじかいほう -PIO0_33.3V- IchigoJamのOUT1
LEDながいほう -PIO0_2ISP- IchigoJamのOUT2
ブレッドボードとジャンパーワイヤー5本で、LPC810とIchigoJamをつなぎ、次のように点滅プログラムを書き込んで動かします。
(RESETの代わりにOUT1をLPC810の電源につなぐことで、ジャンパーワイヤー6本を5本に削減!)

100 'LPC810 WRITER A:ADR L:LEN 110 UART3,2:OUT2,0:OUT1,0:WAIT9:OUT1,1 120 CLS:?"?":GSB@R 130 ?"Synchronized":GSB@R 140 ?12000:?:GSB@R 150 ?"A 0":GSB@R 160 ?"U 23130":GSB@R 170 L=L+L%4:?"W 268435456 ";L:GSB@R:UART1,2:LC0,-1:FORI=0TOL-1:?CHR$(PEEK(A+I));:NEXT:UART3,2:LC0,6:? 180 ?"P 0 0":GSB@R:WAIT9 190 ?"E 0 0":GSB@R:WAIT9 200 ?"P 0 0":GSB@R:WAIT9 210 ?"C 0 268435456 256":GSB@R 220 OUT2,1:OUT1,0:OUT1,1:END 500 @R:K=INKEY():IF K=13 K=INKEY():RTN ELSE CONT SAVE1 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,20,72,21,73,1,96,21,72 20 POKE#728,1,104,3,34,210,67,17,64,1,96,19,72,19,73,1,96,19,72,12,33,1,96,19,77,4,38,46,96,21,74,1,58,253,209,17,72,3,33,1,96 30 POKE#750,20,48,12,33,1,96,15,72,1,104,4,34,17,67,1,96,13,72,1,104,1,34,17,67,1,96,12,48,12,73,1,96,48,191,0,0,128,128,4,64 40 POKE#778,217,2,0,0,16,0,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,64,156,0,0 50 POKE#7A0,16,39,0,0 60 A=#700:L=164:LRUN1 SAVE0 RUN

1秒間隔に点滅しましたか?
点滅間隔は簡単に変えられます。

POKE#7A1,13 RUN

3倍速くなります!


2. 書き込み終わったマイコンLPC810とLED、電池ケースをアクセサリーにはんだづけ!


できあがり!
IchigoJamでつくる!LPC810マイコン点滅クリスマスアクセサリー - YouTube

(おまけ)LPC810 Armマシン語プログラムと解説

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 R2=[@WAIT_CNT]L R2-=1 IF !0 GOTO -1 ' init deep power down R0=[@PMU_PCON]L R1=3 [R0]L=R1 ' PM = deep powerdown R0+=#14 'PMU_DPDCTRL R1=`1100 [R0]L=R1 ' enable 10kHz ' deep power down R0=[@SCB_SCR]L R1=[R0]L R2=4 R1|=R2 [R0]L=R1 ' deep sleep ' wake up timer R0=[@WKT_CTRL]L R1=[R0]L R2=1 R1|=R2 [R0]L=R1 ' use 10kHz R0+=#C ' WKT_COUNT R1=[@SLEEP_CNT]L [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 40000 ' 0.01sec (12MHz) @SLEEP_CNT DATA L 10000 ' 1sec (10kHz)

SYSAHBCLKCTRLの設定で使う部分だけに絞って省電力化
FLASHCFGでFlashアクセスのウェイトをなくす
PINENABLE0でGPIOを使える状態にする
GPIO_DIR0でGPIOを出力設定にし、GPIO_NOT0で点灯
WAIT_CNT分だけ待って、消灯(1ループ3clock、12MHz動作なので40000で0.01秒)
消費電流が0.17uA(=0.00017mA)まで下がる低電力モード(deep power down)設定
10kHzのWKT(wake up timer)にSLEEP_CNTを設定(10000で1秒)
SLEEP_CNTのアドレスが、IchigoJamで書き込む際 #7A0からの4byteなので、POKE文で設定できる

links
- はじめてのマシン語 - IchigoJamではじめるARMマシン語その1
- LPC810をあやつろう - IchigoJamプリント
- 時間を創出するツール、80円マイコンLPC810で夜の快適な自転車探し

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