今回は、出力ポートを使ってみましょう。
IchigoLatteには、OUT1〜6までの出力ポートがあります。出力は0か1のデジタル出力と、PWM(パルス)があります。
まず簡単なところで、OUT6から出力しIN1で入力値を確認してみましょう。
0のキーが入力されたら0を出力し、1のキーが入力されたら1を、OUT6から出力するようにします。プログラムを作る前に、ジャンパーピンでOUT6とIN1をつないでおきましょう。
IchigoLatteはポートへの出力は、out()でまとめて行うようになっています。ポートの指定はビット単位です。ビットと出力ポートの対応は、以下のようになります。
また、多少把握しやすくするため、2進数での表現も示します(IchigoLatteは2進数を表記する方法がないので、out()で指定する場合は16進数か10進数になります)
ポート名:ビット:10進数値:2進数 :16進数
OUT1 : 0: 1:000001 :0x1
OUT2 : 1: 2:000010 :0x2
OUT3 : 2: 4:000100 :0x4
OUT4 : 3: 8:001000 :0x8
OUT5 : 4: 16:010000 :0x10
OUT6 : 5: 32:100000 :0x20
OUT6で1を出力するには32を指定します。つまり、out(32)とすると1が出力されます。out(0)なら0が出力されます。
では、OUT2とOUT6に1を出力するには、どう指定したらよいでしょうか。この場合OUT2は2、OUT6は32なので、これらの合計を指定します。つまり、2+32で34をout()に指定します。
OUT1とOUT4とOUT6なら1+8+32=41なので、out(41)を指定すると1が出力されます。ここでOUT1だけ0にし、OUT4とOUT6に1を出力する場合は、8+32=40でout(40)とします。
OUT1〜6に1を出力する場合はout(63)とします。これは1+2+4+8+16+32=63になるので63をout()に指定すればよいわけです。
いちいち計算するのが面倒な場合は、以下のように式を指定しても大丈夫です。
out(8+32);
out(1+8+32);
out(1+2+4+8+16+32);
それでは、実際のプログラムを作成してみましょう。
キーが押されたらinkey()にはキーコードが入ります。数字の0なら48、1なら49になります。これはメインキーボードでも、テンキーの数字を押しても同じ値になります。
0のキーが押されたらOUT6には0を出力し、1のキーが押されたら1を出力します。条件によって処理を分ける場合はif()を使います。if()の()の中に条件式を書きます。
条件を満たした場合は、if()の後に続く処理を実行します。実行する処理が複数行なら、{}で囲む必要があります。
プログラムを入力したらシェルから実行してみてください。IN1の値が画面に表示され続けます。0のキーと1のキーを押すと、入力値が変化するのがわかります。
while(1){
var k=inkey();
if(k==49){
out(0x20);
}
if(k==48){
out(0);
}
log(gpin(1));
}
入力値にあわせてLEDを点滅させることもできます。LEDの点灯・消灯はled()です。キーを押すと1ならLEDが点灯、0なら消灯するのが分かります。
while(1){
var k=inkey();
if(k==49){
out(0x20);
led(1);
}
if(k==48){
out(0);
led(0);
}
log(gpin(1));
}
次回は、もうひとつのデジタル出力であるPWMを使ってみます。
【古籏一浩】openspc@alpha.ocn.ne.jp
http://www.openspc2.org/
来週のネタにと、ビットコインとっておいたのに、コインチェックで仮想通貨XEM(ネム)が盗まれるという事態が発生。そこで、一生懸命いいキャッチフレーズがないか思案していたけど、思い浮かばず。
そんな時にどこかのサイトが「億り人からくくり人へ」という題名をつけたものが……。不謹慎だけど感心してしまった。自分には全然思いつきませんでした。私にはコピーライティングの才能はまったくないというのが判明した、コインチェック事件でした。
1GOX=100億円(の赤字)ということらしいので、今回の事件は5GOX盗まれたということみたいで、過去最大の巨額盗難事件のようです。
さらに面白い(?)ことに、女子高生ハッカーが登場したりと、漫画みたいなことが展開されてます。
https://matomedane.jp/page/3169
結局、盗まれたNEMを日本円に換算して返すようですが(それも安値で)、筋としてはコインチェックがNEMを購入し、それを盗まれた人に返すというのがいいんじゃないかなあ。
盗まれたWindows 10マシンの代わりにWindows XPで代償します、と言われても納得する人は少ない気が。
・みんなのIchigoLatte入門 JavaScriptで楽しむゲーム作りと電子工作
https://www.amazon.co.jp/dp/4865940936
[正誤表]
http://www.openspc2.org/book/error/ichigoLatte/
・After Effects自動化サンプルプログラム 上巻、下巻
https://www.amazon.co.jp/dp/4844397591
https://www.amazon.co.jp/dp/4844397605
・IchigoLatteでIoT体験
https://www.amazon.co.jp/dp/B06X3X1CHP
http://digiconcart.com/dccartstore/cart/info/2561/218591
・みんなのIchigoJam入門 BASICで楽しむゲーム作りと電子工作
http://www.amazon.co.jp/dp/4865940332/
・Photoshop自動化基本編
http://www.amazon.co.jp/dp/B00W952JQW/
・Illustrator自動化基本編
http://www.amazon.co.jp/dp/B00R5MZ1PA/
・4K/ハイビジョン映像素材集
http://www.openspc2.org/HDTV/
・クリエイター手抜きプロジェクト
http://www.openspc2.org/projectX/