クリエイター手抜きプロジェクト[566]IoT IchigoLatte編 データを大きな文字で表示する(2)/古籏一浩

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



前回のIchigoLatte編では、数字の0を大きく画面に表示しました。今回はセンサーの値を、定期的に大きな文字で表示するところまで説明します。

前回はOと空白で大きな文字を表現していましたが、あまり見栄えがよくありません。そこで、Oの代わりに■を表示するようにします。

■はキーボードでctrlキーとaltキーを押したまま、Oのキーを押すと表示されます。log("O")となっている部分をlog("■")にするだけです。

ただし、パソコンを使って開発している場合には、このような文字はうまくやりとりできないことがあります。そのような場合はchr()を使います。

chr()は指定した値(0〜255)に対応する文字を表示します。chr()を使った場合のプログラムは、以下のようになります。





var adrs=mem("f");
var c=0x30;
adrs=adrs+c*8;
cls();
var y=0;
while(y<8){
var x=0;
var bit=mem(adrs);
while(x<8){
lc(x,y);
if(bit&0x80){
log(chr(0x8f));
}else{
log(" ");
}
bit=bit<<1;
x=x+1;
}
adrs=adrs+1;
y=y+1;
}

それでは最も重要な部分である、大きな文字を表示する関数を作成します。と言っても、上記のプログラムをfunctionを使って関数にするだけです。

ただし、任意の座標に文字を表示するために、X、Y座標を関数に渡す必要があります。また、どの値を表示するかも関数に渡す必要があります。

これを踏まえて作成したのが、以下のbig関数になります。xxとyyが表示する座標値になります。

function big(xx,yy,c){
c=c+0x30;
var adrs=mem("f");
adrs=adrs+c*8;
var y=0;
while(y<8){
var x=0;
var bit=mem(adrs);
while(x<8){
lc(xx+x,yy+y);
if(bit&0x80){
log(chr(0x8f));
}else{
log(" ");
}
bit=bit<<1;
x=x+1;
}
adrs=adrs+1;
y=y+1;
}
}

関数ができてしまえば、後は簡単です。ana(2)として読み出したセンサーの値を、4桁で表示するだけです。それぞれの桁数に応じて除算、剰余を使い、関数に表示座標と値を渡します。

function big(xx,yy,c){
c=c+0x30;
var adrs=mem("f");
adrs=adrs+c*8;
var y=0;
while(y<8){
var x=0;
var bit=mem(adrs);
while(x<8){
lc(xx+x,yy+y);
if(bit&0x80){
log(chr(0x8f));
}else{
log(" ");
}
bit=bit<<1;
x=x+1;
}
adrs=adrs+1;
y=y+1;
}
}
while(1){
var a=ana(2);
cls();
big(0,0,a/1000);
big(8,0,(a/100)%10);
big(16,0,(a/10)%10);
big(24,0,a%10);
sleep(1000);
}

大きな文字を表示する処理は、あまり速くありません。工夫すると、もう少し速く表示することができます。興味があれば最適化してみるとよいでしょう。

なお、video(0),video(1)を使って画面の非表示・表示での処理はうまくいきませんので、他の方法を考えてみてください。


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

今年のデジクリの連載はこれでおしまい。続きは来年。さすがに、忙しくなったせいか原稿のストックが激減。

前々から用意してあるけど保留になっている農業編というのがあるけど、とりあえず「下町ロケット」が終わってから、また考えることに。

面白そうなのはTyrano VR。これを使えば、手軽にVRゲームを作れるみたい。時間があったら挑戦したいところ。Oculus Goあるし、使わないともったいないような気がする。

・Tyrano VR(ティラノVR)
https://vr.tyrano.jp/

・創って学ぼうプログラミング
https://news.mynavi.jp/series/makeprogram

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