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

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



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