モノクロのLCDでグラフィックを表示するというのは、1年近く前に「PIC24FJ64GA002 + Nokia 5110 Graphic LCD (PCD8544) – グラフィック表示 –」でやっている。
Arduinoのサンプル・スケッチを参考にして自分でやったはずなのだが、途中経過が何も書いてないのでちょっと覚書きしておく。
簡単な文字データの場合で見ると、例えば「G」のデータはこう書いてある。
,{0x3e, 0x41, 0x49, 0x49, 0x7a} // 47 G
これを2進数に直すとこうなる。
00111110
01000001
01001001
01001001
01111010
1を黒い四角、0を白い四角にして並べるとこうなる。
左に回転させれば「G」になる。
グラフィックもサイズが大きいだけで要領は変わらないので、8つのドットを並べた短冊に切り刻んで、その短冊の白黒を2進数に見立ててデータ化すればいい。
今回作ったこんなロゴでも、
結局はこういう感じに刻んでデータ化してある。
仕組みについては以上だが、さて実際にデータをどう作るかというと、Rinky-Dink Electronicsという便利なサイトがある。
いろんなフォーマットに対応したコンバータがあるようだが、ここでは白黒なのでImageConverter (Mono)を利用させてもらった。
下のように「参照」で用意した2値化した画像データ(ここではwaiting.png)を選んでから「Make File」をクリックし、
完成したデータをダウンロードするだけだ。
そのままソース・ファイルとしてプロジェクトのフォルダにでも保存してしまえばいい。
画像のファイル名がそのままファイル名になって、ここではwaiting.cとして保存された。
ちなみに、以前やったコードを見たら以下のように書き直してあり、
プログラムには以下の行が追加してあった。
この方が分かり易くて便利だし、画像の差し替えも簡単にできる。
プログラムの実行分部はこうなっている。
これもたぶんArduinoのスケッチからの移植だろう。
この関数を以下のように呼ぶ。
最初の0,0は描画開始位置で、最後の84,24は画像のサイズだ。
決まり切った表示しかしないのであれば、文字でも以上の方法で画像化してしまった方が融通が利いて良い。
ちょっと変わったフォントでも、サイズでも自由自在だ。