今回は、IchigoLatteでLEDを点灯と消灯を繰り返すプログラムを作ります。まずは、少しおさらいをしましょう。IchigoLatteでLEDを点灯させるには、以下のように led(1) とします。
led(1)
JavaScriptでは行末にセミコロンがなくても、自動的に行末だと判別してくれます。ただ、これがトラブルの原因になることがあります。
特にIchigoLatteでは、セミコロンがないと、うまく解釈できずにエラーになったり、ハードウェアリセットされてしまうことがあります。
ハードウェアリセットというのは、IchigoLatteで構文解析ができなかったり、重大なエラーが発生した場合、電源を投入した状態になってしまうということです。
要するに、再起動してしまうわけです。IchigoLatteは1秒かからず起動するので、再起動しても苦にはなりませんが、できれば防ぐことができる不具合は、あらかじめ手当しておくのがベストです。
ということで、以下のように行末には;(セミコロン)を入れておきましょう。
led(1);
点灯したLEDを消灯するにはパラメーターに0を指定します。
led(0);
点灯と消灯を繰り返せば、LEDが点滅することになります。ここでは無限に繰り返しLEDを点滅させてみましょう。無限に繰り返す場合は、while()を使います。以下のようにすると無限にLEDが点滅します。
以下のプログラムを入力するには、シェルで vi と入力し、リターンキーを押します。(■はカーソルです)
lash>vi■
するとエディタ画面になるのでプログラムを入力します。
while(1){
led(1);
led(0);
}
プログラムを入力したら、escキーを押します。するとプログラムが保存され、シェルに戻ります。シェルに戻ったら、ms .と入力しリターンキーを押してみましょう。
(msの後には半角空白を入れてから . を入力してください。ms. とすると期待する動作になりません)
lash>ms .
すると、基板上のLEDが点滅します。ところが、点滅しているようには見えません。これはIchigoLatteのJavaScriptの処理速度が速すぎて、人間の目には点滅しているように見えないからです。
そこで、少しウェイト(待ち時間)を入れます。0.5秒ごとに点滅するようにプログラムを修正します。ウェイトは sleep() メソッドを使います。
() の中にミリ秒を指定すると、その時間だけ次の処理に移るのを待ってくれます。エディタを起動してプログラムを以下のように修正してください。
while(1){
led(1);
sleep(500);
led(0);
sleep(500);
}
プログラムを入力したら、escキーを押してシェルに戻ります。あとは ms .と入力し、リターンキーを押せばプログラムが実行されます。今度はLEDが0.5秒ごとに点滅するようになります。
うまく動作したら、sleep()の時間を変更して点滅間隔を変えてみてください。なお、実行しているプログラムを止めるには、escキーを押してください。
最後に while() で1を指定しているのはなぜか? という点について説明します。一般的なJavaScriptでは while(1) よりも while(true) のようにtrueを指定します。trueはあらかじめJavaScriptで決められている定数(リテラル)です。
しかし、IchigoLatteのJavaScriptには定数(リテラル)がありません。true、false、nullなどがありません。undefinedもありません。単純に真(true)は1(というか0以外)、偽(false)は0となっています。
余計なものがないので覚えることも多くありません。また、IchigoLatteで作れるプログラムサイズは2KB(2048バイト)未満ですから、作ったプログラムも把握しやすいでしょう。
【古籏一浩】openspc@alpha.ocn.ne.jp
http://www.openspc2.org/
先週土曜日に、IchigoJamを使った電子工作の講座があり、お手伝いをしてきました。小学校5年生と5年生が対象の講座で全3回です。
初回はハンダ付けがメインです。コツをつかめば小学生でも無理なくできます。見ていると、最初の抵抗一つをハンダ付けすれば、あっという間に学習してしまうようです。
・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/