みなさんこんにちは佐々木です。
ちょっと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 | 
アダプタ基板のスライドスイッチRESの位置をe-Paperディスプレイモジュールに合わせて設定します。このスイッチでe-Paperディスプレイモジュールが必要とする内部ゲート駆動用の電源を切り替えるようです。
| e-Paper ディスプレイモジュール | スライドスイッチRESの位置 | 
|---|---|
| 1.54インチ e-Paper ディスプレイモジュール(白黒) [GDEH0154D27] | 3Ω | 
| 2.13インチ e-Paper ディスプレイモジュール(白黒) [GDEH0213B72] | 3Ω | 
| 2.13インチ e-Paper ディスプレイモジュール(白黒黄) [GDEW0213C38] | 0.47Ω | 
| 2.13インチ e-Paper ディスプレイモジュール(白黒赤) [GDEW0213Z16] | 0.47Ω | 
CircuitPythonのインストール
Raspberry Pi Pico公式サポートのMicroPythonは使わず、MicroPythonから派生したCircuitPythonを使いました。理由は、
- マスストレージデバイスと見えるのでコードの編集が用意
- 電子ペーパー用デバイスドライバが豊富
- 解説ページ・サンプルコードが豊富
です。のちほど紹介するビットマップを表示するコードもCircuitPythonのサンプルコードを流用しました。
CircuitPythonのページから最新のCircuitPythonをダウンロードします。Raspberry Pi PicoのBOOTSELボタンを押しながらパソコンに接続するとRPI-RP2ドライブがマウントされます。先ほどダウンロードしたCircuitPythonをRPI-RP2ドライブにドラッグして書き込んでください。書き込みが終わってCIRCUITPYという名前のドライブがマウントされたらインストール完了です。

ビットマップを表示する
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 | 
3色e-Paperディスプレイモジュールの書き換え動作
3色e-Paperディスプレイモジュールはこのように何度も点滅してから表示が書き換わるので頻繁に表示を書き換えることができません。データシートには更新間隔は最低でも180秒と書かれていました。日に数回書き換えるような用途に使うのが良さそうです。
以上です、ぜひご活用ください!

