今回は、マルチメディアボードであるPanCakeを使って計測したデータを、棒グラフで表示するために必要なことを説明します。
PanCakeはIchigoLatteで使えるシールドのひとつです。FaBoと併用することもできます。その際、下からIchigoLatte、Pancake、FaBoの順番で重ねます。
PanCakeの基板にあるビデオ出力を、モニタ(またはテレビ)に接続します。IchigoLatteとPanCakeの出力は別々になります。
つまり、モニタが2台必要ということになります。もちろん、無理に2台揃えなくても、切り替え器などを利用すれば1台のモニタでも使うことができます。切り替え器がなく、モニタが1台の場合は、ビデオケーブルを差し替えて使うこともできます。ただし、開発の際には面倒なので、モニタが2台あったほうが便利です。
PanCakeを使用する前に、基本的な仕組みを説明します。PanCakeはグラフィックとサウンドを扱うことができます。ここではサウンドは扱わず、グラフィックだけを扱います。
PanCakeを使ってグラフィック描画を行うには、シリアル(UART)を利用します。PanCakeはシリアルにコマンドを送ることで、グラフィックを描画する仕組みになっています。
そして、コマンドは一方通行で、PanCakeから何かデータを返すことはありません。
PanCakeのコマンドには「テキストコマンド」と「バイナリコマンド」があります。テキストコマンドは見た目にも分かりやすいものですが、変数値を指定したり、高速な処理を行う場合にはむいていません。そういう処理を行うのであれば、バイナリコマンドを使います。
テキストコマンドは、シェルから送ることもできます。PanCakeにコマンドを送るにはechoを使います。以下のようにすると、PanCakeに表示される画像が変わります。
lash>echo PC IMAGE 07>uart
PanCakeに送ったコマンドは「PC IMAGE 07」です。最初のPCはマジックワードで、この文字が送られた場合のみ、PanCakeの処理が行われます。ちなみにPCは、PANCAKEの文字でもマジックワードとして受け付けてくれます。つまり、以下の2つは同じ意味になり、同じように処理されます。
なお、PCをPcとしたり、pcのように小文字にしてしまうと、動作しないので注意してください。
PC IMAGE 07
PANCAKE IMAGE 07
シェルでなくプログラムで、このコマンドを送るにはuart()を使います。
uart("PC IMAGE 07n");
注意しないといけないのは、最後に改行コード(n)を入れなければならないことです。改行コードがないと、コマンドが正しく実行されません。以後に続くコマンドも、正常に動作しなくなります。
PanCakeにはバイナリコマンドがありますが、バイナリコマンドを送る場合もuart()を使います。以下のようにすると、PanCakeに画像が表示されます。
uart(0x80,4,4,7);
バイナリコマンドは必ず0x80(10進数なら128)で始まり、合計バイト数、コマンドID、必要なデータとなります。
バイナリコマンドの場合、手軽に変数値を渡すことができます。以下の例では、ランダムに画像が切り替わります。乱数値を画像番号として、uart()で指定しています。
while(1){
var n=rnd(8);
uart(0x80,4,4,n);
sleep(1000);
}
PanCakeのテキストコマンド、バイナリコマンドについては、以下のページを参考にしてください。
・PanCake(公式)
http://pancake.shizentai.jp/
テキストコマンドはページ内に記載されています。バイナリコマンドに関しては、ダウンロードしたデータ内にあるreadme.txtに記載されています。
・イチゴジャムレシピ(マルチメディアボード PanCake)
https://15jamrecipe.jimdo.com/pancake/
https://github.com/fu-sen/PanCake-COMMAND
コマンド一覧と使用例はGitHubのページに記載されています。
次回はセンサーの値をPanCakeを使ってグラフで表示します。
【古籏一浩】openspc@alpha.ocn.ne.jp
http://www.openspc2.org/
IoT関係/電子工作関係で、届いたものが注文通りではなかったり、同梱されているセンサーが違っていた、ということが結構あります。
まあ、ここらへんは仕方ないかなと思う面もありますが、急に仕様変更でついてるものがなくなってしまったり(BME280の温度・気圧計測センサ-など)して、本の原稿として書くには、なかなかハードルが高い。ピン配置が違うことはよくあることで、いつでも注意書きが必要です。
・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/