今回は、マルチメディアボードである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/