ESP-WROOM-32 で ST7735s を使うのは結論だけ言うとめちゃくちゃ簡単です(皆目見当もつかない状態だったので心理的に数か月かかった気持ち)。ライブラリ ST7735*.h を次のように改変します。
コピペしてリネーム。たったこれだけです。
<170327> プログラムが理解できる人は論理和でどうぞ。お恥ずかしながら。こんな方法でも動きます程度で…
では。サンプルを動かしてみましょう。こちら のコードをお借りさせていただきます。
サンプルコードをそのまま実行すると表示はされます。ただし今目の前にある ST7735s は初期化を BLACKTAB で行わなければならないことを忘れてはなりません。次のようにスケッチを編集します。
これにて ESP-WROOM-32 で TFT ST7735 を動かすことができました。
これで少なくとも「表示ができる」事はわかりました。
そうだ、ベンチマーク試してみよっと
ESP-WROOM-02 でベンチマークをしたスケッチがあります。これをそのまま動かしてみましょう(もちろん ESP8266 最適化版は使えないのであまり速度は出ないと思います)
接続は SPI(3 ピン自由で 2 ピン固定)方式が最速。SDA (SPI MOSI) と SPI SCLK は この 画像を参考にすると GPIO23、GPIO18 です。
他の三つは DC= 25、RST= 32、CS= 33 と指定したピンへ接続します。ESP32 には読み取り専用ピンがあるのであんまり無作為には選べないことを頭の隅に…。
正常に表示されたら、シリアルモニタでベンチマークの結果を見てみましょう。
FPS: 7641 @boxSize= 1
FPS: 7007 @boxSize= 2
FPS: 5247 @boxSize= 4FPS: 2620 @boxSize= 8
FPS: 873 @boxSize= 16
FPS: 238 @boxSize= 32
FPS: 61 @boxSize= 64
ふぇええ?!!?!? 一部は ESP-WROOM-02 のデフォルト状態より遅いですよ?!!?
※ ESP-WROOM-02 の非最適化版 ST7735 ライブラリでの場合:
FPS: 13729 @boxSize= 1
FPS: 11278 @boxSize= 2
FPS: 6583 @boxSize= 4FPS: 2472 @boxSize= 8
FPS: 707 @boxSize= 16
FPS: 184 @boxSize= 32
FPS: 47 @boxSize= 64
パソコンでは熱問題のためにマルチコアといえば低速コアの組み合わせという先入観から、シングルコアあたりの性能で比べると ESP-WROOM-02 より遅いのかなぁとか思いましたが理由はわかりませんね。でも 8 ピクセル四方からは ESP-WROOM-32 のほうが速いみたいで、なんとも不思議な図になりましたねー…。
でもまぁ、とりあえずちゃんと動くみたいです。方法を手に入れられてよかったです~
<170327> 思うに。TFT からの処理を待つブロッキング方式ではないと思うので、これでは CPU が空回りのような状態になってしまえばこれは正確なフレームレートではないですね。分かんないのでファッションベンチマークです。
0コメント