クリエイター手抜きプロジェクト[519]IoT IchigoLatte編 LEDを制御する/古籏一浩

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



今回は、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/