M5Atom + OLED でESP32_Faces!

M5StickC に、Cozmo 風の顔を表示する ESP32_Faces というプログラムが公開されています。

luisllamasbinaburo / ESP32_Faces
https://github.com/luisllamasbinaburo/ESP32_Faces

これを、M5Atom + I2C 接続 SSD1306 128×64 OLED で動作するように改造してみました。

プログラムはこちらです。

shikarunochi / ESP32_Faces for M5Atom + SSD1306 128×64 OLED
https://github.com/shikarunochi/ESP32_Faces

元プログラムを fork して必要な個所のみ変更しています。

M5StickCで用いている TFT_eSprite  と、今回変更した Adafruit_SSD1306 は、ほぼ同じ関数を実装してあるので、変更箇所は少なくて済んでます。TFT_CYAN を WHITE に変えてるのと、「_buffer.pushSprite(0, 0);」を「 _buffer.display();」 に変えてるところがポイントですね。

I2C接続なので描画速度が心配でしたが、白黒で描画エリアも小さいので、いい感じで動作しましたー。

本体ピンの並びがちょうど M5Atom 本体の並びにピッタリなので、直接差し込んで動作するのが良いですね!Atom Lite はGROVE 含めて、ピンの使用方法が結構自由に決められるので良いです。

Atom Matrix でも動作しました!Atom Matrix の場合、内部 I2C を使う時は、使用Wire/GPIO がぶつからないように気を付けてくださいー。特に、内部の6軸ジャイロを使っている場合、 G25 / G21 の SCL / SDA ピン配置が逆になってしまうので OLEDを直接差し込む方式では動作しないと思いますー。

ちなみに上の接続は、以前に作ったアダプタを使って、Atom Matrix の画面と OLED の画面が同じ方向になるようにしてます。

M5Atom:液晶接続アダプタ
https://shikarunochi.matrix.jp/?p=3929

接続は GND / 3.3V / SCL:G33 / SDA:G23 です。