クリエイター手抜きプロジェクト[525]IoT IchigoLatte編 乱数を使ってLEDを点滅させる/古籏一浩

投稿:  著者:  読了時間:5分(本文:約2,400文字)



今回は、乱数を使ってLEDを点滅させてみます。

一般的なJavaScriptでは、Mathオブジェクトのrandom()メソッドを使いますが、IchigoLatteではrnd()メソッドを使います。というのも、IchigoLatteに用意されているオブジェクトは、以下の二つしかないからです。

latte
Array

IchigoLatteでのrnd()やその他のメソッドは、latteオブジェクト内にあります。Arrayは配列オブジェクトです。配列オブジェクトは一般的なJavaScriptと同じ配列です。

Math.random()は0以上1未満の小数値の乱数を発生させますが、IchigoLatteのrnd()は0からパラメーターに指定した、値未満の乱数になります。この乱数は整数になります。





これまで説明していませんでしたが、IchigoLatteでは小数値を扱うことができません。演算はすべて整数で行われます。小数を扱う場合は、10倍したり100倍するなどして、計算した後に調整することになります。

さて、それでは乱数を使ってLEDを点滅させてみましょう。前回のプログラムを少し修正し、以下のようにします。乱数は0か1なので、そのままled()のパラメーターに変数を指定します。

while(1){
var i=rnd(2);
led(i);
sleep(500);
if(inkey()>0){exit();}
}

シェルからプログラムを実行すると、LEDが点灯したり消灯したりします。ランダムなので、いつ点滅するかはわかりません。乱数値が0なのか1なのか分からないからです。

そこで、乱数値を表示して確認するようにしてみましょう。数値や文字、変数の内容を表示するにはlog()メソッドを使います。一般的なJavaScriptでも、デバッグコンソールに出力するconsole.log()がありますが、だいたい同じように使えます。

プログラムを以下のようにすると、乱数の値が画面に表示されていきます。

while(1){
var i=rnd(2);
led(i);
log(i);
sleep(500);
if(inkey()>0){exit();}
}

ただし、このプログラムでは乱数値が改行されず、表示されていきます。乱数値を表示したら、改行する場合は"\n"の文字をlog()のパラメーターとして指定します。パラメーターは , で区切って複数書くことができます。

以下のプログラムでは、乱数値(変数iの値)を表示した後に改行します。

while(1){
var i=rnd(2);
led(i);
log(i,"\n");
sleep(500);
if(inkey()>0){exit();}
}

画面を消去した後に乱数値を表示したい場合は、cls()を使います。以下のようにすると、画面を消去してから乱数値が表示されていきます。

cls();
while(1){
var i=rnd(2);
led(i);
log(i,"\n");
sleep(500);
if(inkey()>0){exit();}
}

それにしても、キーの反応があまりよくないので、改良していきましょう。次回は関数について説明します。


【古籏一浩】openspc@alpha.ocn.ne.jp
http://www.openspc2.org/

教育用のコンピューター「Micro:bit(マイクロビット)」を買ってみました。
http://microbit.org/ja/

機種を問わず、USB接続すればドライブとして認識されるとのことですが、うちのMacは三台とも認識せず。Micro:bitが駄目なのかと思って、三つあるうち二つで試したけど、なぜか駄目。

検索しても、そういう事例が出てこなくてさっぱり分かりません。Windows 7でも駄目だったので、ますます分からず。USB接続での使用は、あきらめた方がいいのかも。

・InDesign CS6 JavaScript Reference
http://www.openspc2.org/reibun/InDesignCS6/ref/

・Photoshop CS6 JavaScript Reference
http://www.openspc2.org/reibun/PhotoshopCS6/ref/

・Illustrator CS6 JavaScript Reference
http://www.openspc2.org/reibun/IllustratorCS6/ref/

・みんなの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/