クリエイター手抜きプロジェクト[531]IoT IchigoLatte編 出力ポートを使う(1)
── 古籏一浩 ──

投稿:  著者:



今回は、出力ポートを使ってみましょう。

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/