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

小学1年生でもOK、ボードゲーム「CoderBunnyz」とロボット「Ichigoチョコ」で体感プログラミング at Hana道場

2017/08/18 23:55:00
#IchigoJam #KidsIT #movie 

子供ものづくり天国「Hana道場」(具体的には、20歳未満はIchigoJam、3Dプリンター、レーザーカッターの利用が無料!)
夏休み、また新たに子供たちにプログラミングのきっかけを提供する、イベント&新グッズ導入!


夏休み企画、IchigoJamはんだづけ&プログラミング!


IchigoJamづくりに集まった小学生、はんだづけに、プログラミング指導に徳橋さん大活躍!


はんだづけ、失敗しても大丈夫!はんだ吸い取り線に初挑戦する小学生。ちょっと火傷するくらいがちょうどいい。


見学していた小学1年生を誘ってCoderBunnyzで一緒に遊びました。
いち早く人参を食べてゴールへ導くプログラミングゲーム。最初は、前進、右向く、左向く、ジャンプの4種類だけで練習。
次のゲームでは、くりかえしカードも駆使して、見事子供が勝利!


CoderBunnyzは、アメリカの小学生の女の子が創ったプログラミングが学べるボードゲーム!
シンプルな動きの逐次実行、くりかえし、関数カードで抽象化、カードの並びでスタックとキューなど、プログラミングで使う基礎が遊びながら習得できちゃう!


写真:作者のサマイラちゃんと!Maker Faire Bayareaにて


PCN三重から届いたIchigoチョコ
コンパクトに手軽にロボットプログラミングを始められ、本格的な自律ロボットづくりまで幅広く使える!


CoderBunnyzで遊んだ「順番に実行(逐次処理)」を、ロボットに応用しよう!


CoderBunnyzも導入、鯖江駅から徒歩でもいけるHana道場。プログラミングの自習はいつでも無料です。
8/21(月)の17時〜、越前がにロボコンに向けた、小学生向けIchigoチョコのミニ講座も開催します!

links
- Ichigoチョコ / PCN三重 - IchigoJamとつなぐコンパクトで使い勝手いいロボット
- CoderBunnyz - プログラミングが学べるボードゲーム(shipito経由で日本発送も可)

IchigoJamで読むRFID、300円で買える非接触ICカードリーダー「RFID-RC522」でNFC実験

2017/08/17 23:55:00
#IchigoJam #maker 

かざすだけでピッと読み取る、NFC(近距離無線通信)を使った、日本の非接触ICカード。
日本の代表格は、Suicaで有名なソニーのFeliCa
ただ、残念ながら世界の標準はNXPのMIFAREが押さえてます。(シェア7割)

MIFAREは特徴は安さ!
なんと、数百円でカードとチップのテストRFID付きで買えちゃいます。
AmazonでRC522で検索すると200円台も!」

接続方法は、温湿度計ADT7310FM音源YMF825スーファミコントローラーでもお馴染みSPI
ということで、IchigoJamにつないでみました。


RC522にかざすと反応して、カード固有のIDの4byteだけを取得して表示するデモ動画(BASICでゆっくり読み取り版)

IchigoJam x RC522 接続方法

RC522 - IchigoJam
SDA - OUT1 *SDA=SS chip select的なピン
SCK - OUT2 *クロックはMasterが担当
MOSI - OUT3 *MOSI = Master Out Slave In
MISO - IN1 *MISO = Master In Slave Out
IRQ NC
GND - GND
RST - OUT4
3.3V - VCC

データシートを読むのが筋ではありますが、GitHubにある「Arduino RFID Library for MFRC522」を基にIchigoJam BASICでひとまず作ってみました。 2ファイル、2KBくらいのプログラムになりました。

1 'RFID-RC522 1/2 10 OUT4,0:WAIT4:OUT1,1:OUT4,1 20 LET[0],#2400,#2600,#4826,#5480,#56A9,#5803,#5AE8,#2A40,#223D 30 FORJ=0TO8:N=[J]:GSB@SPIW:NEXT 40 N=#28:GSB@SPIR:IF N&3!=3 N=#2800|N|3:GSB@SPIW 50 @LOOP:?"."; 55 LET[0],#2400,#2600,#4826 60 FORJ=0TO2:N=[J]:GSB@SPIW:NEXT 70 N=#1C:GSB@SPIR:N=#1C00|N&#7F:GSB@SPIW 90 LET[0],#200,#87F,#1480,#1226,#1A07,#20C 100 FORJ=0TO5:N=[J]:GSB@SPIW:NEXT 110 N=#1A:GSB@SPIR:N=#1A00|N|#80:GSB@SPIW 120 N=#8:GSB@SPIR:IF N&1 GOTO@LOOP 130 IF N&#30=0 GOTO120 140 N=#C:GSB@SPIR:IF N&#13 ?"ERR1:";N:GOTO@LOOP 150 N=#14:GSB@SPIR:IF N!=2 ?"ERR2":GOTO@LOOP 160 N=#12:GSB@SPI2R 170 N=#18:GSB@SPIR 190 ?"!":LRUN FILE()+1 500 @SPIW:OUT1,0:FORI=15TO0STEP-1:OUT2,0:OUT3,N>>I&1:OUT2,1:NEXT:OUT1,1:RTN 510 @SPIR:OUT1,0:N=N|#80:FORI=7TO0STEP-1:OUT2,0:OUT3,N>>I&1:OUT2,1:NEXT:N=0:FORI=7TO0STEP-1:OUT2,0:N=IN(1)<<I|N:OUT2,1:NEXT:OUT1,1:RTN 520 @SPI2R:OUT1,0:N=N|#80:FORI=7TO0STEP-1:OUT2,0:OUT3,M>>I&1:OUT2,1:NEXT:M=N<<8:N=0:FORI=15TO0STEP-1:OUT2,0:OUT3,M>>I&1:N=IN(1)<<I|N:OUT2,1:NEXT:OUT1,1:RTN

ファイル1つ目では、リーダーの初期化とカードを認識するまでを担当。190行でUUID読み出しファイル(次の番号を想定)へLRUN!

10 N=#1C:GSB@SPIR:N=#1C00|N&~#80:GSB@SPIW:N=#1A00:GSB@SPIW 30 LET[0],#200,#87F,#1480:FORJ=0TO2:N=[J]:GSB@SPIW:NEXT 50 N=#1293:M=2<<4:GSB@SPI2W:N=#1A00:GSB@SPIW:N=#20C:GSB@SPIW 110 N=#1A:GSB@SPIR:N=#1A00|N|#80:GSB@SPIW 120 N=#8:GSB@SPIR:IFN&1GOTO@END 130 IFN&#30=0GOTO120 140 N=#C:GSB@SPIR:E=N:IFE&#13GOTO@END 150 N=#14:GSB@SPIR:IF N!=5 GOTO@END 160 M=N:N=#12:GSB@SPIAR:FORI=0TOM-1:?HEX$([I],2);:NEXT:? 170 N=#18:GSB@SPIR 190 @END:LRUNFILE()-1 500 @SPIW:OUT1,0:FORI=15TO0STEP-1:OUT2,0:OUT3,N>>I&1:OUT2,1:NEXT:OUT1,1:RTN 505 @SPI2W:OUT1,0:FORI=15TO0STEP-1:OUT2,0:OUT3,N>>I&1:OUT2,1:NEXT:FORI=7TO0STEP-1:OUT2,0:OUT3,M>>I&1:OUT2,1:NEXT:OUT1,1:RTN 510 @SPIR:OUT1,0:N=N|#80:FORI=7TO0STEP-1:OUT2,0:OUT3,N>>I&1:OUT2,1:NEXT:N=0:FORI=7TO0STEP-1:OUT2,0:N=IN(1)<<I|N:OUT2,1:NEXT:OUT1,1:RTN 530 @SPIAR:OUT1,0:N=N|#80:FORI=7TO0STEP-1:OUT2,0:OUT3,N>>I&1:OUT2,1:NEXT 540 FORJ=0TOM-1:[J]=0:FORI=7TO0STEP-1:OUT2,0:OUT3,N>>I&1:[J]=IN(1)<<I|[J]:OUT2,1:NEXT:NEXT 550 J=J+1:[J]=0:FORI=7TO0STEP-1:OUT2,0:OUT3,0:[J]=IN(1)<<I|[J]:OUT2,1:NEXT:OUT1,1:RTN

本体はそんな長くないですが、SPIの読み書きにいくつかパターンがあるので、長くなってしまって、ちょうど制限いっぱいの1024byte。 1つ目をファイル1に書き込んだら、こちらはファイル2と、次の番号に保存して使います。190行のLRUN FILE()-1 で、カード待ちに戻しています。

この戻る部分を改造すると、カードによって、いろいろなことをさせることができますね!
IchigoJam本体の保存容量だけでもまだ2ファイル分、2KB使えます!MixJuicesakura.ioでネットにつなぐのも楽しそう。
MIFAREでAmazonを検索するとカード1枚あたり100円台から買えます」
(少量だとリーダー買うほうが安い不思議w)

今回表示しているのはUUIDのたぶん先頭4byteのみ。後ろの1byteはデータ化け対策のCRCです。
本当のUUIDはもうちょっと長いと思いますが、お気軽実装ということで省略しました。
必要がでてくれば、データシートを読んで、ちゃんとした読み取りにも対応することにします。

BASICで読み取っているので、結構ゆっくりですが動作の確認ができたので、実用化する際はマシン語化ですね!
参考「マシン語で高速SPI、IchigoJamでまなぶ ARMマシン語入門その9」「マシン語SPIでコントローラ信号読み出し

54byteのスーファミコントローラドライバ、IchigoJam BASICとマシン語でつなぐ極上のコントローラ

2017/08/16 23:55:00
#IchigoJam #asm #game 

IchigoJamにスーファミコントローラがつながりました!
個人的コントローラランキング、ナンバーワンのスーファミコントローラ、konashiでiPhoneにつないだこともありました。

接続に便利だった、Raspberry Piのスーパーファミコン化プロジェクトのコントローラ変換器!(official site)

こちら先日のコミケC92で入手! (スーファミコスプレな @ichigonosaatan さぁたん)

配線は本の記述とはちょっと違っていて、CLKの上にある3.3V、P/Sの下にあるGNDを使っていました。
スーファミのコントローラ3.3Vでも動くようです!

ファミコンもスーファミも、コントローラとの通信はYMF825と同じ、おなじみSPI。
ファミコンは8bit、スーファミはボタンが増えた分、上位8bitが追加されて16bitでの通信となります。

ひとまず、下記のようにつないで、IchigoJam BASICで動作確認。
OUT1 P/S(LATCH)
OUT2 CLK
IN1 1PAD

10 OUT1,1:OUT2,1 20 GSB@SPIR:?BIN$(N,16):CONT 100 @SPIR:OUT1,0:N=0:FORI=0TO15:OUT2,0:N=IN(1)<<I|N:OUT2,1:NEXT:OUT1,1:RTN

これだけで動きました!感動!

ただ、ゲームなどに使うには動作が遅すぎるので、マシン語でSPIテクニックを使って、高速化します。

@SPIR PUSH {LR,R4} R3=#50 ' R3=#50010000 GPIO1 R3=R3<<8 R4=R3 ' R4=#50000000 + (1<<(10+2)) IN(1) R4=R4<<16 R3=R3+1 R3=R3<<16 R2=1 R2=R2<<12 R4=R4+R2 R2=0 [R3+`0001]L=R2 ' OUT1,0 R1=0 @LOOP R2=0 [R3+`0010]L=R2 ' OUT2,0 R2=[R4]L ' IN(1) R2=R2>>10 R2<<=R1 R0=R0+R2 R2=2 [R3+`0010]L=R2 ' OUT2,1 R1+=1 R1-16 IF !0 goto @LOOP @END R2=1 [R3+`0001]L=R2 ' OUT1,1 POP {LR,R4}

マシン語入門その4を参考にIN1を調べるとピンの名前はPIO0_10、GPIO0のベースアドレスが#50000000と分かります。

できあがった、マシン語のスーファミコントローラドライバ(ファミコンにも使えます)を組み合わせたテストプログラムがこちら

1 POKE#700,16,181,80,35,27,2,28,70,36,4,91,28,27,4,1,34,18,3,164,24,0,34,90,96,0,33,0,34,154,96,34,104,146,10,138,64,128,24,2,34 2 POKE#728,154,96,1,49,16,41,244,209,1,34,90,96,16,189 10 OUT1,1:OUT2,1 20 N=USR(#700,0):?BIN$(N,16):CONT

マシン語は一度メモリに書き込んでおけばOKなので、メインプログラムを広々使っていろいろつくれますね!

BASICとマシン語の動作速度の違いが分かる動画がこちら!

IchigoJamでスーファミコントローラを読む(BASICとマシン語でSPI)

スーファミコントローラ接続、真の狙いは、FM音源モジュールYMF825Boardと合わせた楽器づくり!

YMF825で楽器づくり「FM音源キーボード」マシン語で高速SPI、IchigoJamでまなぶ ARMマシン語入門その9

2017/08/15 23:55:00
#IchigoJam #music #asm 

FM音源チップ、YMF825、IchigoJam BASICで鳴ったので、次は楽器づくり!
問題は、BASICでは遅いこと。音を鳴らすための2byteのSPI送信5回に、0.73秒もかかっているので、ゆっくりチャイムを鳴らすくらいしか使えません。
* SPIとは、クロックに合わせて信号を送受信するシンプルな通信方式 (SPI on Wikipedia)


FM音源キーボード on IchigoJam デモ動画

おや!?小気味よく鳴ってますね!これがマシン語パワーです!
復習を兼ねて、OUTポートをマシン語で使う実験をしてみます。(参考、マシン語でLEDを光らせよう

LEDが接続されている端子は、PIO1_5、アドレスとしてはPIO1のベースアドレス#50010000に、2進数の`10000000(= 1&<&<(5+2))を加えた場所に書き込めばOK!

@LED1 R3=#50 ' R3=#50010000 R3=R3<<8 R3=R3+1 R3=R3<<16 R2=`10000000 R3=R3+R2 R2=R2>>2 [R3]L=R2 ' GPIO1_5 <- 1 RET

asm15アセンブラを使うか、ハンドアセンブルして、できたマシン語コードを動かしてマシン語でLED1!

POKE#700,80,35,27,2,91,28,27,4,128,34,155,24,146,8,26,96,112,71 ?USR(#700,0)

次はBASICでつくったSPI送信をマシン語化します。

@SPIW:OUT4,0:FORI=0TO15:OUT2,0:OUT3,N>>(15-I)&1:OUT2,1:NEXT:OUT4,1:RTN

まずは分解!

OUT4,0 FORI=0TO15 F=N>>(15-I)&1 OUT2,0:OUT3,F OUT2,1 NEXT OUT4,1 RTN

ひとつずつマシン語化すれば、できあがり!

@SPIW R3=#50 ' R3=#50010000 R3=R3<<8 R3=R3+1 R3=R3<<16 R2=0 [R3+`1000]L=R2 ' OUT4,0 R1=1 R1=R1<<15 @LOOP R2=0 R0&R1 'F=N>>(15-I)&1 IF 0 goto @SKIP R2+=4 @SKIP [R3+`110]L=R2 ' OUT2,0:OUT3,F R2+=2 [R3+`110]L=R2 ' OUT2,1 R1=R1>>1 IF !0 goto @LOOP @END R2=8 [R3+`1000]L=R2 ' OUT4,1 RET

アセンブラasm15を使って2byte送信SPIマシン語バイナリができました!
送信したい16bitの数値を、USRコマンドの第二パラメータにいれるだけ!(マシン語にはレジスタR0として渡される)

POKE#700,80,35,27,2,91,28,27,4,0,34,26,98,1,33,201,3,0,34,8,66,0,208,4,50,154,97,2,50,154,97,73,8,246,209,8,34,26,98,112,71

準備ができたので、早速楽器づくり、まずはIchigoJamのボタンを使った単音楽器で実験!
前回のYMF825の初期化プログラムを動かし、音がなる状態にしてからNEW、次のプログラムを入力。
*マシン語化した初期化プログラム、後述します

1 'FM BTN 10 A=#700:POKEA,80,35,27,2,91,28,27,4,0,34,26,98,1,33,201,3,0,34,8,66,0,208,4,50,154,97,2,50,154,97,73,8,246,209,8,34,26,98,112,71 20 T=#1465 30 IF !BTN() CONT 40 U=USR(A,#0B00):U=USR(A,#0C54):U=USR(A,#0D00+T>>8):U=USR(A,#0E00+T&#FF):U=USR(A,#0F40) 50 IF BTN() CONT 60 U=USR(A,#0F00) 70 GOTO 30

ボタンを押したら鳴り始め、離したたらキーオフ!
反応速度もいい感じ!いろんなボタンをつなげて遊べそうですね!
*時間を測ってみると、1回の送信でTICKで1、約1/60秒、100倍速い!

次は、キーボードで楽器キーボードをつくってみます。
キーボードのZXCがドレミ、SDなどで半音にも対応します。

1 'FM KEYBOARD 10 A=#700:POKEA,80,35,27,2,91,28,27,4,0,34,26,98,1,33,201,3,0,34,8,66,0,208,4,50,154,97,2,50,154,97,73,8,246,209,8,34,26,98,112,71 100 FORI=0TO15:U=USR(A,#0B00+I):U=USR(A,#0F30):U=USR(A,#1071):U=USR(A,#1101):U=USR(A,#1208):U=USR(A,#1300):U=USR(A,#0C54):NEXT 200 LET[0],357,378,401,425,450,477,505,535,567,601,637,674 210 M="ZSXDCVGBHNJM,L." 220 K=INKEY():IF!KCONT 230 N=0 240 IF PEEK(M+N)=K GOTO300 250 N=N+1:IF N=15 GOTO 220 260 GOTO240 300 ?N:T=[N%12]:B=4+N/12:T=T&#7F+T>>7<<11+B<<8 310 U=USR(A,#0B00+N):U=USR(A,#0F00): 320 U=USR(A,#0D00+T>>8):U=USR(A,#0E00+T&#FF):U=USR(A,#0F40) 330 GOTO 220

キーは離されたタイミングが取得できないので、キーが押された時に、キーオフ(310行)してから、キーオン(320行)するようにしています。

ついでに、初期化コードもマシン語で高速化!

1 'FM INIT 10 OUT1,0:WAIT1:OUT4,1:OUT1,1 13 A=#700:POKEA,80,35,27,2,91,28,27,4,0,34,26,98,1,33,201,3,0,34,8,66,0,208,4,50,154,97,2,50,154,97,73,8,246,209,8,34,26,98,112,71 14 S=#728:POKES,80,35,27,2,91,28,27,4,128,33,0,34,8,66,0,208,4,50,154,97,2,50,154,97,73,8,246,209,112,71 15 'INIT 20 LET[0],#1D01,#020E,-1,#0001,#0100,#1AA3,-1,#1A00,-30,#0204,-1,#0204,-1,#0200,#197C,#1B3F,#1400,#0301,#08F6,-21,#0800,#09FB,#0A00,#01740,#1800,0 22 FORJ=0TO99:N=[J]:IF!N J=99:GOTO26 24 IF N<0 WAIT -N ELSE U=USR(A,N) 26 NEXT 30 'SETCH 31 LET[0],#0F30,#1071,#1101,#1208,#1300 32 FORJ=0TO4:U=USR(A,[J]):NEXT 40 'SETTONE 41 U=USR(A,#08F6):WAIT1:U=USR(A,#0800) 42 LET[0],7,#81,1,#43,0,#E7,#FF,#9D,0,#10,#40,#20,#33,#E2,#73,0,#50,#40,#10,#41,#D3,#5B,0,#10,#41,#20,#63,#D4,2,1,#10,#40,#80,3,#81,#80 43 M=36 50 @SPIAW:OUT4,0:FORK=0TOM-1:U=USR(S,[K]):NEXT:OUT4,1

配列をSPIで送信する @SPIAW の内部、8bitのSPI送信もマシン語化しました(アドレス#728=S)

@SPI1W R3=#50 ' R3=#50010000 R3=R3<<8 R3=R3+1 R3=R3<16 R1=#80 @LOOP R2=0 R0&R1 'F=N>>(7-I)&1 IF 0 goto @SKIP R2+=4 @SKIP [R3+`110]L=R2 ' OUT2,0:OUT3,F R2+=2 [R3+`110]L=R2 ' OUT2,1 R1=R1>>1 IF !0 goto @LOOP @END RET

FM音源音色エディタもマシン語化!

1 'FM EDITOR 5 CLS 10 ?" 1 BO 3:";[40] 20 ?" 2 LFO 3:";[41] 30 ?" 3 ALG 7:";[42] 40 LET[80],"SR 15","XOF 1","KSR 1","RR 15","DR 15","AR 15","SL 15","TL 63","KSL 3","EAM 1","DAM 3","EVB 1","DVB 3","MUL15","DT 7","WS 31","FB 7" 50 FORJ=0TO1:FORI=0TO16:LCJ*15,3+I:?DEC$(4+I+J*17,2);" ";STR$([80+I]);":";[43+I+J*17]:NEXT:NEXT 60 INPUT"ID :",I 70 INPUT"VAL:",V:[39+I]=V 75 GSB@TESTTONE 80 GOTO 5 100 @TESTTONE 110 LET[0],7,#81,[40],[41]<<6+[42] 120 FORJ=0TO1:P=43+J*17 130 LET[4+J*7],[P]<<4+[P+1]<<3+[P+2],[P+3]<<4+[P+4],[P+5]<<4+[P+6],[P+7]<<2+[P+8],[P+9]<<4+[P+10]<<5+[P+11]+[P+12]<<1,[P+13]<<4+[P+14],[P+15]<<3+[P+16] 132 NEXT 141 U=USR(A,#08F6):WAIT1:U=USR(A,#0800) 143 M=36:GSB@SPIAW 150 T=#1465 160 U=USR(A,#0F00):U=USR(A,#0B00):U=USR(A,#0C54):U=USR(A,#0D00+T>>8):U=USR(A,#0E00+T&#FF):U=USR(A,#0F40) 180 RTN 1010 @SPIAW:OUT4,0:FORK=0TOM-1:U=USR(S,[K]):NEXT:OUT4,1:RTN

YMF825初期化コード実行後に動かし、いい音色ができたら、ボタン楽器や、キーボード楽器で演奏しよう!

Enjoy to create original musical instruments with FM!
オリジナル楽器作りを楽しもう!

links
- YMF825 x IchigoJamで鳴らすFM音源チャイム、BASICでつくるYMF825Board用FM音源エディタ (ハードウェア準備、接続方法)
- YMF825Board GitHubPage へようこそ!
- ヤマハ製YMF825使用FM音源LSIモジュール: 組立キット 秋月電子通商 電子部品 ネット通販
- ヤマハFM音源LSI YMF825搭載モジュール YMF825Board - SWITCH-SCIENCE

- 連載、IchigoJamではじめる、ARMマシン語入門
1. はじめてのマシン語
2. ハンドアセンブルで超速計算!
3. マシン語メモリアクセスで画面超速表示!
4. マシン語でLEDを光らせよう!
5. 楽しさ広がるマルチバイトメモリアクセスとスタック
6. マシン語使いこなしTIPS
7. カジュアルに使うインラインマシン語
8. アセンブラを使って楽しよう
9. マシン語で高速SPI

YMF825 x IchigoJamで鳴らすFM音源チャイム、BASICでつくるYMF825Board用FM音源エディタ

2017/08/14 23:55:00
#IchigoJam #music 

三島で見た謎FM音源MFTで入手したYAMAHAYMF825Board、IchigoJam BASICで鳴らすことに成功! 標準装備のPSG音源、シリアル2本ケーブルで制御するMIDI音源に加え、FM音源もOK!FM音源といえば、MSX2+を買ってもらって音楽の教科書からいろいろ打ち込んで遊んでました。PLAY#2!


FM音源で鳴らす、学校のチャイム風!

YMF825Boardの使い方
※3.3Vで使うために基板にちょっと工作が必要です(YMF825Board Rev.Aを見て、8/15追記)

小さな抵抗 R0 を外し、S1にあるパッド3つをはんだでつなぐ(はんだブリッジ)ことで、SPIの信号が3.3Vで使えるようになります。


R0 は、はんだ吸い取り線を重ねて上から熱しながらピンセットで取りました。


難関だったS1のはんだブリッジ、3つのパッドが全部つながるようにはんだが乗ればOK!
今回はなかなかうまくつかないので諦めて、回路図からICの8ピンVDDと9ピンIO/VDDに3.3VがつながればOKとわかったのでLEDなどの線の切れ端を使ってS1の大きいパッドからIC8ピン9ピンの間とをはんだづけ。
(パッド間がもっと近いと楽になりそう)


SPIで制御するYMF825Boardとの接続はジャンパーワイヤー7本。
電源で3本、5V/3.3V/GND
RST_N (リセット) - OUT1
SCK (クロック) - OUT2
MOSI (データ送信) - OUT3
SSN (チップセレクト) - OUT4
ステレオジャックに、イヤホンかスピーカーに接続すればOK!

こちらドレミファソと鳴るテストプログラム

10 OUT1,0:WAIT1:OUT4,1:OUT1,1 15 'INIT 20 LET[0],#1D01,#020E,-1,#0001,#0100,#1AA3,-1,#1A00,-30,#0204,-1,#0204,-1,#0200,#197C,#1B3F,#1400,#0301,#08F6,-21,#0800,#09FB,#0A00,#01740,#1800,0 22 FORJ=0TO99:N=[J]:IF!N J=99:GOTO26 24 IF N<0 WAIT -N ELSE GSB@SPIW 26 NEXT 30 'SETCH 31 LET[0],#0F30,#1071,#1100,#1208,#1300 32 FORJ=0TO4:N=[J]:GSB@SPIW:NEXT 40 'SETTONE 41 N=#08F6:GSB@SPIW:WAIT1:N=#0800:GSB@SPIW 42 LET[0],7,#81,1,#43,0,#E7,#FF,#9D,0,#10,#40,#20,#33,#E2,#73,0,#50,#40,#10,#41,#D3,#5B,0,#10,#41,#20,#63,#D4,2,1,#10,#40,#80,3,#81,#80 43 M=36:GSB@SPIAW 60 'KEYON 65 LET[50],#1465,#1C11,#1C42,#1C5D,#2417 70 FORM=0TO4:N=[50+M] 75 ?N 80 LET[0],#0B00,#0C54,#0D00+N>>8,#0E00+N&#FF,#0F40 90 FORJ=0TO4:N=[J]:GSB@SPIW:NEXT 100 WAIT30 110 N=#0F00:GSB@SPIW 125 NEXT 130 GOTO70 1000 @SPIW:OUT4,0:FORI=0TO15:OUT2,0:OUT3,N>>(15-I)&1:OUT2,1:NEXT:OUT4,1:RTN 1010 @SPIAW:OUT4,0:FORK=0TOM-1:N=[K]:FORI=0TO7:OUT2,0:OUT3,N>>(7-I)&1:OUT2,1:NEXT:NEXT:OUT4,1:RTN

ArduinoのサンプルをIchigoJam BASICに移植)

YMF825にはプリセット音源はないため、音色パラメータを最初に書き込んであげる必要があります(42行)。
FM音源攻略のため、2オペレータのパラメータを編集できるFM音源エディタをつくってみました。

YMF825 FM音源エディタ on IchigoJam

まずはYMF825の初期化コード

1 'FM INIT 10 OUT1,0:WAIT1:OUT4,1:OUT1,1 15 'INIT 20 LET[0],#1D01,#020E,-1,#0001,#0100,#1AA3,-1,#1A00,-30,#0204,-1,#0204,-1,#0200,#197C,#1B3F,#1400,#0301,#08F6,-21,#0800,#09FB,#0A00,#01740,#1800,0 22 FORJ=0TO99:N=[J]:IF!N J=99:GOTO26 24 IF N<0 WAIT -N ELSE GSB@SPIW 26 NEXT 30 'SETCH 31 LET[0],#0F30,#1071,#1100,#1208,#1300 32 FORJ=0TO4:N=[J]:GSB@SPIW:NEXT 33 FORI=0TO37:[I+40]=0:NEXT 35 LRUN2 1000 @SPIW:OUT4,0:FORI=0TO15:OUT2,0:OUT3,N>>(15-I)&1:OUT2,1:NEXT:OUT4,1:RTN SAVE0

2番ファイルに保存するメインのエディタプログラム(初期化プログラムの35行で呼び出し)
最初のINPUTで番号を指定して、次のINPUTで値を設定(各パラメータに書いてある最大値を超えないように注意)

1 'FM EDITOR 5 CLS 10 ?" 1 BO 3:";[40] 20 ?" 2 LFO 3:";[41] 30 ?" 3 ALG 7:";[42] 40 LET[80],"SR 15","XOF 1","KSR 1","RR 15","DR 15","AR 15","SL 15","TL 63","KSL 3","EAM 1","DAM 3","EVB 1","DVB 3","MUL15","DT 7","WS 31","FB 7" 50 FORJ=0TO1:FORI=0TO16:LCJ*15,3+I:?DEC$(4+I+J*17,2);" ";STR$([80+I]);":";[43+I+J*17]:NEXT:NEXT 60 INPUT"ID :",I:IF I=0 LRUN3 70 INPUT"VAL:",V:[39+I]=V 80 GOTO 5 SAVE2

何も入力せずエンター(または0入力)で、テストで鳴らす音プログラム3番に

1 'FM TEST TONE 10 LET[0],7,#81,[40],[41]<<6+[42] 20 FORJ=0TO1:A=43+J*17 30 LET[4+J*7],[A]<<4+[A+1]<<3+[A+2],[A+3]<<4+[A+4],[A+5]<<4+[A+6],[A+7]<<2+[A+8],[A+9]<<4+[A+10]<<5+[A+11]+[A+12]<<1,[A+13]<<4+[A+14],[A+15]<<3+[A+16] 32 NEXT 41 N=#08F6:GSB@SPIW:WAIT1:N=#0800:GSB@SPIW 43 M=36:GSB@SPIAW 60 'TEST TONE 66 W=30:B=4 70 A=357:GSB@KON:WAITW:GSB@KOFF 130 LRUN2 300 @KON:N=A&#7F+A>>7<<11+B<<8:LET[0],#0B00,#0C54,#0D00+N>>8,#0E00+N&#FF,#0F40 310 FORJ=0TO4:N=[J]:GSB@SPIW:NEXT:RTN 400 @KOFF:N=#0F00:GSB@SPIW:RTN 1000 @SPIW:OUT4,0:FORI=0TO15:OUT2,0:OUT3,N>>(15-I)&1:OUT2,1:NEXT:OUT4,1:RTN 1010 @SPIAW:OUT4,0:FORK=0TOM-1:N=[K]:FORI=0TO7:OUT2,0:OUT3,N>>(7-I)&1:OUT2,1:NEXT:NEXT:OUT4,1:RTN SAVE3


パラメータを設定して、エンターでテストトーン!

YMF825のFM音源の音色づくりの基本

4つの発振器(オペレータ)のつながりを選ぶ、アルゴリズム。第一オペレータを鳴らすアルゴリズム1を選択(ALG:1)

(ymf825board manual / Tone Parameterより)

かつて(MSX時代)は正弦波だけだった発振器、YMF825では29種類から選べます!
音が大きて確認しやすい、ファミコンで有名、三角波を選んでみます(Wave Shape, WS:16)

(ymf825board manual / Tone Parameterより)

次にエンベロープをADSR(アタックAR、ディケイDR、サステインSR/SL、リリースRR)をそれぞれ0-15の値で指定します。
AR: アタックレート、立ち上がりの速さ 15で最速、0で立ち上がらない(鳴らない)
DR: ディケイレート、立ち上がり後の減衰の速さ 15で最速、0で減衰しない
SL: サステインレベル、ディケイ後の音量 15で消える、0で減衰しない
SR: サステインレート、ディケイ後の減衰の速さ 15で最速、0で減衰しない
RR: リリースレート、キーオフ後の減衰の速さ 15で最速、0で減衰しない(鳴り続ける)

まずARを15、RRを15にして鳴らしてみましょう。
ポーっとファミコンっぽい音が鳴ります。

アタックとリリース
ARを5にすると、ふわっと音が鳴り始めます。
RRを5にすると、ふわっと音が消えるようになります。
いろいろ変えてみましょう。

ディケイ
AR、RRを15に戻して、SLを7、DRを10にしてみましょう。
最初音が大きくて、その後小さい音が続きます。
後半の小さな音の音量をSLで調整(0で変化なし、15で消える)し、その音量になるまでの速さをDR(15で即変わる)で指定します。

サステイン
SRを7とすると、後半の小さな音が徐々に減衰するようになります。
キーオフした後の減衰はリリースRRで調整します。

アルゴリズム1は、2番目のオペレータを使って変調(モジュレート)できます。
右側(第二オペレータ)のARとRRを15にして、みると音が変化します。
モジュレーターの効き具合は、TLで調整します(0で最大、63で無効化)。

このように発振器をいろいろつなぎ合わせて音を創る、それがFM音源!
2つのオペレータで慣れたら、4オペレータをフルに使った音作りに挑戦です!

冒頭の動画は、ファイル3の鳴らす部分をこのようにチャイムに書き換えました!
オクターブ(B)が4、音階(A)で指定する数値は、YMF825のマニュアル内のExcelファイルに一覧もあります。

60 'CHIME 66 W=30:B=4 70 A=674:GSB@KON:WAITW:GSB@KOFF 71 A=535:GSB@KON:WAITW:GSB@KOFF 72 A=601:GSB@KON:WAITW:GSB@KOFF 73 A=401:GSB@KON:WAITW*2:GSB@KOFF 80 A=401:GSB@KON:WAITW:GSB@KOFF 81 A=601:GSB@KON:WAITW:GSB@KOFF 82 A=674:GSB@KON:WAITW:GSB@KOFF 83 A=535:GSB@KON:WAITW*2:GSB@KOFF

BASICによるソフトウェアSPIだと遅くてリアルタイムな演奏には向かないので、次は一部マシン語化した楽器プログラムに挑戦してみたいと思います。(参考、マシン語入門
→ マシン語編「YMF825で楽器づくり「FM音源キーボード」マシン語で高速SPI、IchigoJamでまなぶ ARMマシン語入門その9

links
- YMF825Board紹介 - Yamaha (公式サイト、マニュアル、サンプルプログラムあり)
- YMF825 SD-1 universal Sound Designer 1 - YAMAHA
- YMF825Board Rev.A (YMF825Board 製造元のウダデンシさんサイト)
- YMF825 FM音源モジュールを使ってみた - きょうのかんぱぱ (Arduinoで音色変更例)
- YMF825(SD-1)ざっくりまとめ(スペック編) - Lost Technology
- アナログシンセとはまったく違う、“誰でもわかるFM音源”講座 : 藤本健の“DTMステーション” (かつて240万円したFM音源シンセサイザー)
- ボードで復活!! 生方剛考のFM音源講座
- 今夜わかるFM音源 - aikeの日記
- FM音源の音作りをアナログな感覚で覚えよう① : SynthSonic
- YAMAHAのFM音源チップ、YMF825がMAKE市場向けに登場。Maker Faireで先行発売が決定だ! : 藤本健の“DTMステーション”

逐次処理がパソコンなしで学べるTAMIYAカムロボ!プログラムバーとカム機構が見事、拡張性抜群!組み立て失敗例を紹介

2017/08/13 23:55:00
#KidsIT #maker 

パンチカードやオルゴールの要領で、プログラムバーに長さの異なるカムを差し込みロボットを物理プログラミングするカムロボ登場! 「カムプログラムロボット工作セット - Tamiya


カムロボが動く姿!
前進、左右、停止するAタイプと、前進後退、転回、停止するBタイプに組み換えが可能!


Bタイプ、カムをとりつけ、前進、回転、後退、ばんざい!とプログラミングしたプログラムバー(左下)


AタイプからBタイプへの切り替えも簡単、モーターの配線の黄色と青色を入れ替えて、


ブーツを取り外せば、できあがり!


箱の絵がCGじゃなく手描き!? 精密で機構を透けさせて見せる技がにくい!
取説にはIchigoJam Uらしき絵が描いてあるっ
マイコンボード搭載例として、パンフレットに Raspberry Pi、Arduino、IchigoJam と並んでます!

カムロボの組み立て方と失敗例

工作セットなので、組み立てから楽しみましょう!


物理プログラミングの肝、カム機構からの組み立てです
タイヤのひとつを使って、カム機構を駆動する仕組み。3本タイヤには訳がある!


最初の難関、ギアボックス。手で回して減速する様子を楽しもう。


配線は、はんだごて不要なよじってゴムパイプで固定するタイプ!


間違いポイント、ワッシャーは2mmと3mmと2種類あって、無造作に使うと後で3mmが足りなくなる


焦るポイント、カムを戻すためのバネが1コしかないと焦りましたが、重なってました。


間違いポイント、説明書をみずにプログラムバーにカムを逆に差し込んで詰まらせました。
ギア面の裏から差し込むのが正しいプログラムバーの使い方です。


カム機構を横から見ると分かります。間違って詰まらせてしまったら、カム機構をとめるタッピングネジをゆるめればとれるので大丈夫!
自分で作れたものは、自分で直せる!


パーツをニッパーで切り離した際に残る「バリ」
これがあるといろいろ不具合の原因になります。上の写真は、バリでプログラムバーが引っかかる様子。


デザインナイフを使ってきれいにバリを落とすと気持ちいい!(時間はかかるけど)


単三電池一本で動き、プログラムバーでコントロールできるひみつはカムにあり。
カムによって押し出された青い足が、ベルトによる駆動機構を持ち上げます。
Aタイプはブーツというブレーキによって上げた足を軸に回転。
Bタイプは空転するタイヤによって前進または後退。

まさに、自分で作れる芸術品!
改造用の穴もたくさんあって、ベースロボにもぴったり!


越前がにロボコン、本大会は2017.11.26(日曜日)@福井、参加車募集中!

links
- カムプログラムロボット工作セット 楽しい工作シリーズ No.227
- 第56回 静岡ホビーショーに「カムプログラムロボット工作セット」を参考出品
- カムロボ部 | Natural Style Co. Ltd.

小学生ロボコン「越前がにロボコン」ルールとベースカニロボづくり at Hana道場

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

小学生を対象とした、福井ご当地ロボコン、越前がにロボコン
「宇宙に飛び出そう、越前がに!」
小学生が自分で作ったカニロボットで宇宙探索するロボコンです!

事前講習に向けて、準備している「Hana道場生発のカニ型ロボット」!(前回、タミヤの昆虫ロボがベース

つくりかたマニュアルを見ながら、実際につくってみました

IchigoJamに接続するモーターコントロール用のオリジナル基板へのフォトリフレクトなどをはんだづけ
フォトリフレクタは、光の反射でコースを見る「目」の役割をします。
1つ40円〜(LBR-127HLDTPR-105F at 秋月電子)

モーターと基板と結ぶジャンパー線、モーター側へはんだづけ

レーザーカッターで切り出した足のパーツをねじとダブルナットで留め、本体と組み合わせて完成!
作りごたえあって楽しい!

あとはプログラム!越前がにロボコンのルールを確認しましょう。


地球ゾーンをでた 1点 - スタートできればOK!
ミルキーウェイをこえた 1点 - 半分のところまで走ればOK!
惑星ゾーンにはいった(かたみちゴール) 1点 - 奥まで到達できたらOK!
惑星ゾーンにたまごをおいた 1点
地球ゾーンにもどってきた 1点
あいてよりさきに「フィニッシュ」といった1点 - 早い者勝ち!
激レアメタルをもちかえった 激レアメタルの数 x 1点 (※高学年の部のみ)
歩行タイプロボットボーナス 最終得点 x 1.5
越前がにロボコン「ルールについて」より)

白で囲まれた黒地の道、はやぶさロードをライントレースし、白地の惑星ゾーンまで行って帰ってくるのが基本。
左右の目の色をプログラムで確認しながら、モーターを動かし、進めましょう。
両方の目が白を認識したら、惑星ゾーンへの到達と判断し、たまごをおとし、Uターンして帰ってきましょう。

とりあえず、進むだけのロボットを作ったとしても、惑星ゾーンまで到達してフィニッシュ宣言で4点ゲット!
歩行タイプなら、1.5倍で6点になります。

高学年なら、激レアメタルのゲットに挑戦することで高得点が狙えます!


こちらタミヤから本日新発売のロボット「カムプログラムロボット工作セット」税抜3,200円!
惑星ゾーンへ行って帰ってくるプログラムをプログラムバーだけでつくることもできるので、越前がにロボコンへの参加にも良さそうです!
(このままでは歩行型ロボットではないので、1.5倍ボーナスはつきません)


なかなか作りごたえのありそうなキット!夏休み、ぜひ挑戦してみてください!


越前がにロボコン、本大会は2017.11.26(日曜日)@福井、参加車募集中!

コミケC92、世界最大のマルシェ、作り手と会える幸せ、早速便利なB-ART x IchigoJam

2017/08/11 23:55:00
#maker #IchigoJam #codefor 

出展数3万、来場者50万人が参加する世界最大のマルシェ、コミケ
初回はなんと42年前の1975年と生まれる前!92回目を数える、C92に行ってきました(初!)。
東京ビッグサイトの東1〜8まで全部使った広大な会場!


中学生MSX時代からの憧れのTPM.COさん!
MSX-FAN掲載の名作「ネイティガの悪魔」のFIRST VERSIONと共に!
ゲームのおもしろさはスペックにあらず、MSX1に詰め込む技術解説本も熱かった。
作り手と直接話せるのが魅力のマルシェですが、コミケはその規模と幅がすごい!


10時に着くと長蛇の列・・・と思いきや、このくらいだと40分くらいで入れますよスタッフの人。
幸い天気も曇りと過ごしやすく、電話帳のような厚さのカタログを見ていたらあっという間。


2,000円で販売されている紙カタログ!1.5kgありました
(有料のWebカタログ、連携しているアプリが便利です)


Code for 同人誌、シビックテックなオープンイノベーションはコミケにも!
ぎばさちゃんの髪は秋田県で「ギバサ」と呼ばれるメカブっぽい海藻アカモク、復興支援にも活躍!


ラズパイをファミコン化、スーファミ化するプロジェクト!
ウェアラブルのモニターは、IchigoJamのワークショップでお馴染みオンダッシュモニター!
と思ったら、冊子本文にも IchigoJam-FAN の文字。意図せず広がりがオープンものづくりの楽しさですね。
購入したスーファミコントローラーをラズパイに接続できるキット、IchigoJamにもつなげてみる予定。(8/17 つなげました!


膨大な数のはんだづけを楽しめるキット!マゾ時計3 15,000円!


CPUの創りかた」のTD4のキット!


教育用4bitCPU、ZCU4


TD4を実用的に改良する新4bitCPU、ブレッドボードでの実装がきれい!
あんたCPUなんか創ってどうするのよ?!」 IchigoJamで学研のGMC-4はエミュレートしてましたが、TD4はまだでした。
自分でつくるCPU、楽しいですねっ


スマホで制御できる光るアクセサリー販売していた、香港からの出展「プロジェクト・ルン」(動画)
マクロスΔ内で登場するアクセサリーの再現!


カタカナをアルファベット風に使う感じが海外勢ならでは!
デジタルとファッションの融合、電子パーツの低価格化で広まりそうっ


ロボコン30周年を祝うと言えば!?やはり高専生だった
豊橋技科大コンピュータクラブ「とよぎぃそふと」
バーサライタ基板、500円、買いました!IchigoJamも回そう


スーファミの音源を使ったFF1〜3のリメイク!同人音楽コーナー、かなりの広さ!


ファミコンをまとったサカモトキョウジュ簡易コスプレ


MSX-FAN風テイスト!
プログラムの写経する文化、電子工作マガジンで復活してます。
「わかる!動かせる!プログラムが組める雑誌 マイコン BASICMagazine 10」電波新聞社から好評発売中!


日本語BASICで有名、タカラトミーのぴゅう太、愛あふれすぎて、カセットテープの新作まで!


FM音源を蘇らせる、G.I.M.I.C
こだわりのDVD、買いました。


Arduinoで鳴らすFM音源の曲集、Circle S&G
FM音源の世界、入門にも良さそうな新FM音源モジュール「YMF825Board」で広がりそう!


UARTを無線化するモジュール B-ART (src on GitHub)


早速つないでみました!
B-ARTを使って、PCからIchigoJamを簡単に無線コントロール!
ロボットや展示、野外設置時のメンテナンスにも便利そう


上から3.3V、GND、RXをIchigoJamのTXDに、TXをIchigoJamのRXDに、ちょうどつながる!


名作パネポン、3DSのどうぶつの森に隠されていることをパネポンコーナーで知る
自分の「好き」を堂々と展示できるコミケ、いいですねっ


そこでばったり会った、高専インターンOB


見せてもらった、瀬戸際 お蔵入り、オクライリー、ナイスで硬派な技術書。


残念、売り切れだった米作りボードゲーム、Rice is Money
手作り品、良いものはすぐ売り切れてしまうので、目当てのものには早く行く、大事。
逆に、混雑避けるには12時過ぎが楽!
人はたくさんいますが、会場も広大なのでそこそこ快適に動けます(東7/8は新しいので冷房の効きもよい)

つながり、強まり続ける個のものづくり力。
何か創っている方、コミケ、おすすめです!

PCN木更津キックオフ!相性抜群の高専生と小学生、新自学教材IchigoJamプリント「オリジナルキャラをつくるPCG」と組み込みの里訪問

2017/08/10 23:55:00
#IchigoJam #KidsIT #kosen #doc #chiba 

福井高専に続き、今度は千葉県、木更津高専企画!


PCN木更津代表、米村先生によるイントロ!
「IchigoJam自分でつくるパソコンとゲーム」初めてみる道具を前に、みんなドキドキワクワク。


木更津高専の教室で開催された「こどもプログラミング教室、高学年&低学年」


はじめてのはんだづけ!(はんだごての小手先は太め、1mほどはんだ太さ0.8mmがおすすめ)


ニッパーによる事故は火傷より怖いよ!(ニッパーは100均の小型ニッパーがおすすめ)


低学年の部は、IchigoJam完成版を使った組み込みプログラミング体験と、ゲームづくり体験。
LEDコマンドとWAITコマンドを組み合わせて、みんな2回光らせる難関を突破!
自分で作ったゲームで上がる歓声!
SAVE/LOADの使い方も覚えたし、キーボードも持ち帰ってもらったので、お家でも続きができちゃいますね!


木更津高専生の直接教えずヒントで促す、絶妙なサポート。好評でした!


自分のパソコンをゲットしてうれしそう!(低学年)


高学年の部ははんだづけから自習中心のプログラミング体験。疲れを見せずのめり込む様子が頼もしい、羨ましいとサポート高専生からの声。

人気の自習教材「IchigoJamプリント」に「オリジナルキャラをつくる PCG」を追加!

PCGで「アイスくん」登場! (RUN on IchigoJam web)

キャラを4つ組み合わせると、大きなオリジナルキャラクターだってつくれちゃう!?

ご質問はFacebookグループ「IchigoJam-FAN」までお気軽にどうぞ!
科学とともだちになる夏、木更津高専キッズサイエンスフェスティバル、毎年すごい競争率とのこと!


賑わっていた破壊コーナー、分解、楽しいよねっ(小学生の頃、ワクワクした粗大ゴミ置き場)

木更津高専応援!組み込みの里 電子工作オープンラボ
木更津高専から自転車で15分、自然の中に、電子工作!?


木更津高専第5期OB、西山さんによる「組み込みの里 電子工作オープンラボ」念願の初訪問!
最初の起業、シャフト時代の福井高専の先輩で、千葉県在住大蔵さんと!


楽しそうなおもちゃがたくさん!(期間限定インターン中のペッパーくん)


パソコンがホビーだったころの思い出もたくさん!
(マイクロソフトがBASICを移植したことで有名、Altair8800 の互換機、Legacy8080IMSAI 8080


パーツ使い放題、購入も可!


MSXでC言語を覚えた、懐かしのMSX-C入門!


サポートしてくれた高専生と眼鏡堅麭(堅パン)


堅パンは、堅いから注意と言い忘れる


注意書き(説明の大切さと、説明を読まない楽しさが味わえました)


モンゴル高専の西山さん、電波新聞の大橋さん、仙台高専の矢島さんにも会えました!

高専生もつくってみたいと言ってくれたのでいくつかプレゼント!
子供と高専をつなぐIchigoJam、PCN木更津の今後の展開をお楽しみに!

links
- JavaScriptはじめのいっぽ「はじめてのJS」つくるひとをつくる@木更津高専 - first step of JS
- はじまりはゲーム、ソフトウェアビジネスとDANMAKUオープンデータ - 木更津高専見学旅行 at めがね会館
- かわいい作品続々!こどもIoTハッカソン using さくらのIoT x FaBo x IchigoJam at Yahoo!新オフィス
- 木更津高専講演の訂正、IoT=モノゴトのインターネット、まず手を動かそう!

小学生、ゲームのためなら英語もキーボードもプログラミングも怖くない!荏原第六中学校で出張実験教室!

2017/08/09 23:55:00
#IchigoJam #KidsIT #doc 

荏原第六中学校でのチャレンジ講座・小学生実験教室「プログラミングに挑戦しよう!」
小中学生20名にはじめてのゲームづくり!(キーボードを初めて触る小学生も!)


最後に改造したゲームを披露する小学生!


モンゴル高専つながりの品川区立、荏原第六中学校!
去年は中学2年生全員にプログラミング体験してもらいました!


初めてキーボード触る小学生もサクサク覚えて、ゲームづくり完遂!


難関はシフトキーと、よく似た記号。教材にキーボード位置を加えてみました。


アプリづくり、プログラミングの要素がコンパクトに楽しく学べるゲームづくり、盛り上がりました。

LED WAIT GOTO RUN LIST SAVE LOAD IF Syntax error OK

たくさんの英語、楽しく使うことができましたねっ。
みなさんの覚えている漢字と比べたらプログラミング言語なんて簡単です!


この夏、プログラミングに挑戦しよう!「こどもプロコン」に応募しよう!

保護者の方からの質問コーナー
1. IchigoJamはどこで買えますか?
東京近くの方ならオススメは「PCN フラッグシップ秋葉原 BY ASSEMBLAGE
JR秋葉原 電気街口から徒歩1分!(アクセス
その場ではんだづけすることもでき、周辺機器、拡張キットも盛り沢山!
PCNAmazon他、通販もいろいろ(詳細:公式サイト IchigoJam.net購入する

2. キーボードはどこで買えますか?
オススメはこちら「サンワサプライ USBキーボード SKB-L1UBK」664円!
USBキーボードと書いてありますが、PS/2にも対応しているのでIchigoJamで使えています!(保証がありませんが)

IchigoJam 自分でつくるパソコンとゲーム(USキーボード版)
キーボード配置ガイド付き!

ぜひご家庭でもチャレンジしてみてくださいっ

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