image
電子ペーパー天気予報実験セットで、電子ペーパーを制御するプログラムの作り方のご紹介です。

実験セットは↓こちら↓で購入いただけます

epdexpset04
サンプルプログラムのEpdクラスが、電子ペーパーを制御するクラスとなっています。このクラスのヘッダファイルepd.hをご覧いただくと、どんな機能があるかわかります。

●BMPデータを電子ペーパーに表示する仕組み

BMPファイルの画像データは電子ペーパーに直接データを転送するのではなく、画像メモリーに1画面分のデータを保存してから、画像メモリーの内容を電子ペーパーに送る仕組みになっています。電子ペーパーは一回のデータ転送では薄くしか表示されません。しっかりと濃い表示にするためには、同じ画像データを繰り返し5,6回送る必要があります。SDカードはデータの読み込みが速くないため、一旦画像メモリーに読み込んで、画像メモリーから必要な回数電子ペーパーにデータを送信します。
電子ペーパーの画像データはモノクロデータでも60kBytesになり、ESP-WROOM-02の内蔵メモリーでは足りません。このため画像メモリーは、マイコンに1Mbit SRAMを外付けしてあります。

これらのことから、クラスの機能には、画像メモリーに対する操作と、電子ペーパーに対する操作、その他設定の操作の3つから成っています。

●基本的な使い方
BMPを電子ペーパーに表示するためには最低限以下の3つを記述します
  1. Epd.begin();
  2. Epd.loadBmp( BMPファイル名 );
  3. Epd.show();
1はsetupの中で実行します。loopの中でloadBmp()でbmp画像をメモリーに読み込んで、show()で表示します。

●リファレンス
・初期化
Epd.begin()

 初期化を行います。setupの中で1回実行してください。制御回路のリセットとSDカードのマウントを行っています。SDカードがマウントできないとfalseを返します。


・画像メモリーに対する操作

Epd.loadBmp( String fileName )

 画像メモリーへ指定したファイル名のBMPを読み込みます。BMPの解像度は800x600のみです。モノクロbmpの他、16色、256色、フルカラーbmpに対応しています。カラー画像の場合、白黒に2値化して読み込みます。読み込み速度が遅いので、データサイズの小さいモノクロBMPを推奨します。


Epd.fill( int color )  colorは BLACK か WHITE のどちらかのみを指定する

 画像メモリーを指定した色で塗りつぶします


・電子ペーパーに対する操作

Epd.show()

 画像メモリの画像データを電子ペーパーに出力します。


Epd.white()

 電子ペーパー全体を白で塗りつぶします。画像メモリーには影響しません。


Epd.black()

 電子ペーパー全体を黒で塗りつぶします。画像メモリーには影響しません。


Epd.reflesh()

 同じ画像を繰り返し表示したり、長期間表示していると、過去に表示した画像が薄く残ってしまいます。この症状を軽減するためのリフレッシュ表示を行います。この動作が終わるまで数分かかります。


・設定に関する操作

Epd.setDrawingTimes(int)

 電子ペーパーに繰り返し何回データを送るか設定します。デフォルトは6回です。


Epd.autoPowerOff( bool ) boolはtrue(自動) か false(手動) です。

 電子ペーパーの電源ON,OFF制御を自動で行うか指定します。trueの場合、show()が実行されている時だけ電子ペーパーの電源がONし、転送が終わるとOFFします。falseの場合は、ONのままになります。


Epd.powerOn()

 電子ペーパーの電源を入れます。


Epd.powerOff()

 電子ペーパーの電源を切ります。


●注意点

ESP-WROOM-02(ESP8266)をプログラムする際の注意点ですが、だいたい0.5秒くらいに1回

ESP.wdtFeed();

を入れてください。ESP-WROOM-02はウォッチドッグタイマーが動作していて1秒くらいに1回、ESP.wdtFeed()を行わないと、CPUが暴走していると判断してリセットがかかってしまいます。delay()で待つ場合は大丈夫なのですが、for文で長い時間ループの処理をしているなど、プログラムが

CPUを長時間占有してしまうとリセットしてしまうので、適当なところで、ESP.wdtFeed() を入れてくださいね。


実験セットは↓こちら↓で購入いただけます

epdexpset04

関連リンク


スポンサードリンク