クリエイター手抜きプロジェクト[575]IoT IchigoLatte編 PanCakeを使ってデータを表示する(2)/古籏一浩

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



今回は、マルチメディアボードであるPanCakeを使って計測したデータを、棒グラフで表示します。

IchigoLatteの場合は、以下のようにscroll()を利用して、手軽に棒グラフを表示することができました。





cls();
while(1){
var a=ana(2)/50;
while(a<20){
lc(31,a);
log(chr(0x8f));
a=a+1;
}
scroll(3);
sleep(100);
}

しかし、PanCakeには画像をスクロールする機能がありませんが、工夫すればPanCakeでもグラフがスクロールしているように見せることはできます。しかし、ここでは本筋ではないので、より簡単な方法でグラフを表示します。

まず、左から棒グラフを描きます。データを読み出すたびに、棒グラフを表示する座標を1つ右にずらします。右端を越えたら左端から再度表示します。これなら手軽、かつ短いプログラムで実現することができます。

棒グラフの棒にあたる部分の表示は、PanCakeのライン(線)描画を使います。バイナリコマンドの場合、以下のようになります。

uart(0x80, 8, 1, 開始X座標, 開始Y座標, 終了X座標, 終了Y座標, 色コード);

また、PanCakeの座標は横が80ドット、縦が45ドットになります。

描画する線の縦幅をPanCakeの画面内におさめるために、読み出したセンサーの値を24で除算します。

正確には1024÷45=22.75ですが、ここでは何となくまとまりがよさそうな24で除算しました。気になる人は23で除算しても構いませんが、見た目にはほとんど変わりません。

センサーの値をリアルタイムにPanCakeでグラフ表示するプログラムは、以下のようになります。

uart("PC CLEAR 00n");
var x=0;
while(1){
var a=ana(2)/24;
uart(0x80,8,1,x,0,x,a,0);
uart(0x80,8,1,x,a,x,45,1);
x=(x+1)%80;
sleep(100);
}

X座標が画面幅を超えないように、「x=(x+1)%80;」として処理しています。80がPanCakeの画面の横幅になります。80の剰余(割り算のあまり)をX座標とすることで、必ず0~79の範囲になります。

上記のプログラムを実行すると、センサーの値によっては、どこを書き換えているのか分かりにくいという場合があります。

そこで、どこを書き換えているのかを赤い線を表示して、分かりやすくしたのが以下のプログラムです。

uart("PC CLEAR 00n");
var x=0;
while(1){
var a=ana(2)/24;
uart(0x80,8,1,x,0,x,a,0);
uart(0x80,8,1,x,a,x,45,1);
x=(x+1)%80;
uart(0x80,8,1,x,0,x,45,2);
sleep(100);
}

これで、だいぶ分かりやすくなりました。


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

政府は好景気が続いていると言ってるけど、庶民の財布はやせ細る一方みたいな。太平洋戦争の時のような敵を倒したのに、本土空襲受けてるというような感じが。「勝ってるけど本当は負けている」

食品関係なので10%になる前に、新年度から値上げ。秋の10%増税時には上げないとのお達し。でも、実際どうなるかは不明。10年後から見れば、あの時は安かったと、しみじみ思うようなことがあるのかもしれません。

ということで、この文章を読んでいるころには、新たな元号が発表になってるはずですが、さてさて。

・InDesign自動化サンプルプログラム逆引きリファレンス上/下
https://www.amazon.co.jp/dp/4844396846/
https://www.amazon.co.jp/dp/4844396854/

・創って学ぼうプログラミング
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/