Raspberry Pi Picoと電子ペーパーの使い方

投稿者:

みなさんこんにちは佐々木です。

ちょっとRaspberry Pi Picoを使って電子ペーパーで遊んでみたくなったので、スイッチサイエンスウェブショップで販売中の電子ペーパーにビットマップ画像を表示してみました。

スイッチサイエンスロゴを電子ペーパーに表示

今回は弊社で取り扱っている電子ペーパー「e-Paperディスプレイモジュール」をRaspberry Pi Picoで使う方法を解説します。画角・解像度・色数のことなる4種類のe-Paperディスプレイモジュールの使い方を解説します。

1.54インチ e-Paper ディスプレイモジュール(白黒) [GDEH0154D27]
2.13インチ e-Paper ディスプレイモジュール(白黒) [GDEH0213B72]
2.13インチ e-Paper ディスプレイモジュール(白黒黄) [GDEW0213C38]
2.13インチ e-Paper ディスプレイモジュール(白黒赤) [GDEW0213Z16]

Raspberry Pi Picoとの接続

Raspberry Pi Picoとの接続には以下のアダプタ基板を使いました。e-Paper ディスプレイモジュールを動かすのに必要な抵抗やコイルが一通り実装されています。
e-Paper ディスプレイモジュール用アダプタ基板 [DESPI-C02]

Raspberry Pi Picoとアダプタ基板を次のように接続します。

 Raspberry Pi Pico   アダプタ基板 
GP6 BUSY
GP5 RES
GP8 D/C
GP7 CS
GP2 SCK
GP3 SDI
GND GND
3.3V 3.3V
Raspberry Pi Picoとアダプタ基板の接続

アダプタ基板のスライドスイッチRESの位置をe-Paperディスプレイモジュールに合わせて設定します。このスイッチでe-Paperディスプレイモジュールが必要とする内部ゲート駆動用の電源を切り替えるようです。

 e-Paper ディスプレイモジュール   スライドスイッチRESの位置  
1.54インチ e-Paper ディスプレイモジュール(白黒) [GDEH0154D27]
2.13インチ e-Paper ディスプレイモジュール(白黒) [GDEH0213B72]
2.13インチ e-Paper ディスプレイモジュール(白黒黄) [GDEW0213C38] 0.47Ω
2.13インチ e-Paper ディスプレイモジュール(白黒赤) [GDEW0213Z16] 0.47Ω
スライドスイッチRESの位置

CircuitPythonのインストール

Raspberry Pi Pico公式サポートのMicroPythonは使わず、MicroPythonから派生したCircuitPythonを使いました。理由は、

  • マスストレージデバイスと見えるのでコードの編集が用意
  • 電子ペーパー用デバイスドライバが豊富
  • 解説ページ・サンプルコードが豊富

です。のちほど紹介するビットマップを表示するコードもCircuitPythonのサンプルコードを流用しました。

CircuitPythonのページから最新のCircuitPythonをダウンロードします。Raspberry Pi PicoのBOOTSELボタンを押しながらパソコンに接続するとRPI-RP2ドライブがマウントされます。先ほどダウンロードしたCircuitPythonをRPI-RP2ドライブにドラッグして書き込んでください。書き込みが終わってCIRCUITPYという名前のドライブがマウントされたらインストール完了です。

DOWNLOAD .UF2 NOWをクリック

ビットマップを表示する

CIRCUITPYドライブに置いたビットマップをe-Paperディスプレイモジュールに表示するサンプルコードをここからダウンロードし解凍してください。

解凍したディレクトリのlibディレクトリとビットマップをCIRCUITPYドライブにコピーしてください。ビットマップはe-Paperディスプレイモジュールの解像度と色数にあわせてそれぞれ用意しています。表示するビットマップを変更したい場合、e-Paperディスプレイモジュールに対応するビットマップを変更してください(下記表参照)。

次にCIRCUITPYドライブのcode.pyをテキストエディタで開いて、e-Paperディスプレイモジュールに対応するサンプルコードの内容を張り付けてください(下記表参照)。

変更が終わったらcode.pyを保存してください。保存がおわるとcode.pyが実行されe-Paperディスプレイモジュールにビットマップが表示されます。

e-Paper ディスプレイモジュール ビットマップ サンプルコード
1.54インチ e-Paper ディスプレイモジュール(白黒) [GDEH0154D27] ssci200.bmp 1_54_mono.py
2.13インチ e-Paper ディスプレイモジュール(白黒) [GDEH0213B72] ssci250.bmp 2_13_mono.py
2.13インチ e-Paper ディスプレイモジュール(白黒黄) [GDEW0213C38] ssci212y.bmp 2_13_tri_y.py
2.13インチ e-Paper ディスプレイモジュール(白黒赤) [GDEW0213Z16] ssci212r.bmp 2_13_tri_r.py
e-Paperディスプレイモジュールとライブラリ・ビットマップ・サンプルコードの対応表

3色e-Paperディスプレイモジュールの書き換え動作

3色e-Paperディスプレイモジュールはこのように何度も点滅してから表示が書き換わるので頻繁に表示を書き換えることができません。データシートには更新間隔は最低でも180秒と書かれていました。日に数回書き換えるような用途に使うのが良さそうです。

何度も点滅し書き換わる

以上です、ぜひご活用ください!