📖

ATOM Lite で e-Paper を表示する

2022/02/25に公開

Atom Lite で使用できる PIN 数制限のため、SPIではなくI2Cを使用する。

e-Paper I2C モジュール - スイッチサイエンス
Crescent からの 受託販売商品 at スイッチサイエンス
WAVESHARE の ディスプレイは通常 SPI通信ですが、配線の用意性を実現するために ブリッジを間に置いて、I2C化されたもの。

I2C接続のため、SPI接続に比べて描画速度が遅くなりますが、I2C接続で電源線と信号線2本で簡単に接続が可能です。また、I2CはGroveコネクタを搭載することでラピッドプロトタイピングに対応しています。

使用には下記の repository を利用する。
2022/02/01時点のArduinoIDEに対応していない部分があるので修正が必要(後述)
GitHub - meerstern/e-Paper_I2C_Module

Raspberry Pi や Esp32 また Arduinoの場合

SPI 接続用の部品参考

https://www.switch-science.com/catalog/5465/
https://www.switch-science.com/catalog/5464/

e-Paper_12C_Moduleの修正箇所

PROGREM に使用するパッケージに関して

e-paper_I2C_Module.ino の全体で確認

#include <avr/pgmspace.h>

#include <pgmspace.h>

Atom Lite で使用するにあたって

SC18IS602.cpp

// 追記
#include <M5Atom.h> 

// コメントアウト
//#ifdef __AVR__
// #define WIRE Wire
//#else // Arduino Due
// #define WIRE Wire
//#endif
// 追記
#define WIRE Wire

void SC18IS602::begin(void) 
{
    //追記
    M5.begin(true, false, true);
    delay(10);
    Wire.begin(26, 32); // I2C通信でG26とG32信号を使用
    delay(3000);
    // コメントアウト
    // WIRE.begin();
    // WIRE.setClock(200000);
    // コメントアウト 先に Wire.beginにて I2Cとして接続しているため コメントアウトしないと[既に使用済みという]エラーが出る
    // pinMode(SDA, INPUT);
    // pinMode(SCL, INPUT);
	ResetDevice();
	SSEnable(SC18IS602_SS_0);
	ss_pin = SC18IS602_SS_0;
}

I2Cを使用可能かをSampleで確認するとベター

Arduino/libraries/M5Atom/examples/Advanced/I2C_Tester/I2C_Tester.ino

参考

電子ペーパー
https://dixq.net/forum/viewtopic.php?t=18927
https://qiita.com/kemako/items/04c32d0225b91e26f8f1


.png から PROGREM 形式へ

変換方法

200px X 200px で モノクロの .png を作成し、下記の変換サイトで バイト配列に変換して、ソースコードで利用する。
image2cpp

OLEDマトリクスでも上記のバイト配列を使用できる。


AtomLiteでの begin について

M5StackシリーズはモデルによってM5.begin()の引数が異なる

今回は (true.false,true)
I2CEnableを trueに設定するのは、Groveコネクタ(26,32)以外を使用してI2Cを接続する場合。

M5Stack.h(ATOM用)

void begin(bool SerialEnable = true, bool I2CEnable = true, bool DisplayEnable = false);

参考

M5Stackシリーズ M5.begin()の互換性 - Qiita


Groveコネクタについて

コネクタの役割

pin 1 - Yellow (for example, SCL on I2C Grove Connectors)
pin 2 - White (for example, SDA on I2C Grove Connectors)
pin 3 - Red - VCC on all Grove Connectors
pin 4 - Black - GND on all Grove Connectors

ケーブル色

GROVEケーブルの色は、M5Stack用などだと異なるので注意!

電圧

M5Stack/M5Stick
電源レベル:5V
信号レベル:3.3V
バッテリーで動作しているときも、Grove 端子には DC-DCコンバータで生成した 5V が出ている。(危険注意)

参考

Grove 端子の調査 - Qiita


拡張端子について

重要:G25とG21は Wifi使用時に専有されるため、入出力に使用しないこと

TXとRX

  • Groveポート G32=TX、G26=RX
  • 背面端子 G22=TX、G19=RX
  • 背面端子 G21=TX、G25=RX
  • 背面端子 G23=TX、G33=RX

参考

鳥なき里のマイコン屋(118) M5ATOM Lite、UART、I2C接続 | デバイスビジネス開拓団

Discussion