2014年12月3日水曜日

簡易アニメーション表示


12月になりました。12月といえばクリスマス、”ひかりもの”の季節ですね。私の住む田舎でもクリスマスのイルミネーションが目立ってきました。VFDも一応ひかりもの、派手さはないですが優しい光で心を癒してくれます。
上の写真は知り合いの方から送っていただいたものです。ドット数は280x16より大きい製品のようですが、280x16ドットでも工夫しだいで楽しいクリスマスイルミネーションができると思います。

ということで、今回はクリスマスにも応用できそうな「簡易アニメーション」を表示してみます。
アニメーションといっても、前回紹介した画像表示:リアタイムビットイメージ表示を繰り返すだけの「パラパラマンガ」というほうがわかりやすいかと思います。


画面の右側に128x32ドットの犬のアニメーションを表示しています。
今回の画像素材は、このGIFアニメーションです。
これも上の写真と同じ方からの提供画像で、息子さんの作品とのことです。オリジナルは128x32ドットで森の中を走る雰囲気がよく出ている画像でしたが、今回はVFD表示用に中央の128x16ドットだけ使わせてもらいました。(ドットサイズは変わっていますが著作権は製作者にあります)

このGIFファイルをweb上で複数の静止画に展開してくれるサイトを利用して、49枚のgifファイルに展開。その各ファイルを前回紹介の画像データ変換ツールでひたすら変換処理を繰り返します。
(ツールはBMP画像のみ対応のように見えますが、実はgifやjpgでも読み込めます。読み込み時に[すべてのファイル]を表示して画像を選んでください。)

    展開した画像ファイル : dog_frames_gif.zip

プログラムとしては前回より特に新しい機能は使っていません。リアルタイムビットイメージ表示を繰り返しているだけですが、表示周期の調整をしやすいように、リアルタイムビットイメージ表示のあとにdelay時間を組み合わせた関数を作って利用しています。

最初の1周期49画像は表示間隔160msec、次は110msec、次は60msecと動きが早くなります。3周期表示したところで徐々に停止、その後疲れて座り込む、というイメージです。最後の2画像だけは私が作りました・・・

     サンプルコード : GU280X16_ArdinoUno_sample4.txt

     Arduino IDE 1.6x系のバージョンではPROGMEMのところでコンパイルエラーになります。
     PROGMEMのデータ型を次のように変更して下さい。(2016/10追記)
      prog_int16_t → const uint8_t

Arduinoのプログラムとしては、もっと効率よくきれいにまとめることもできると思いますが、動作の流れは分かっていただけると思います。

さあ、クリスマスイルミネーションに挑戦!という気持ちになってきましたか??
配布中のVFDサンプル、まだ少し余裕がありますので、ご希望の方はご連絡ください。

0 件のコメント:

コメントを投稿