Home Made Garbage

MakePython ESP32 Color LCD で LovyanGFXを堪能

ホーム
電子工作
Raspberry Pi
IOT
WEB

Makerfabs 様よりいただいたMakePython ESP32 Color LCDの
ディスプレイにLovyanGFXライブラリをもちいてアニメーションを表示してみました。

Makerfabs製品を提供いただきました

 

 

MakePython ESP32 Color LCD

240×240サイズのカラーLCD (ST7789)が搭載されたESP32マイコンです。
はじめからマイコン向けのPython環境であるMicroPythonでコーディングできるようになっています。

しかし、私はPythonよりArduino IDEのほうが親しみが深いので
ここではArduinoでコーディングいたします。

一度Arduinoで書き込むとMicroPythonで書き込みできなくなってしまいます。

再度 MicroPythonを使用する場合には、以下の手法でMicro Pythonのファームを
MakePython ESP32 Color LCDにアップロードしてください。
 FlashUpload MicroPython Firmware to ESP32

Party Parrot

MakePython ESP32 Color LCDに表示する画像はParty Parrotにいたしました。

 参考:Party Parrot とは 〜イカれたオウムの歴史を紐解く〜

 

以下の動画にインスパイアされましたw カワイイ♪

 
Party ParrotのGIFは10枚の絵で構成されており、
MakePython ESP32 Color LCDに表示するために240×240の10枚のjpegにして
バイナリの配列にして書き込みました。

バイナリエディタには FavBinEdit というソフトを使用しました。
 

LovyanGFX

LovyanGFX は、@lovyan03さんによって開発された高機能・高速動作グラフィックライブラリです。

Wio Terminal にひきつづきまして、今回もありがたく使用させていただきました!

Arduino IDEのライブラリマネージャより簡単に導入できます。

LovyanGFX SPI設定

LovyanGFXのSPI LCD向けサンプルコードを MakePython ESP32 Color LCD の構成、ピン接続に従って修正します。

 
LCD ST7789周りの構成

Arduino コード

 

pic.hは10枚の画像の配列です。

 

動作

なかなか激しく動いておりますww

実はここまでのスピードで表示させるまでに色々ございましたので以下に記します。
 

表示高速化への道

当初は動きがカクカクでしたが、LovyanGFXライブラリの開発者の @lovyan03さんに手取り足取り教えていただき
かなりのスピードアップが実現できました!

初期状態

setColorDepth(24) 追加

SPIクロックを80MHZへ

panel.freq_write = 20000000 → 80000000
panel.freq_fill = 27000000 → 80000000
に変更

どんどん早くなります!

画像圧縮

jpeg画像を更に圧縮してファイルサイズを1/3ほどにしてみました。

以下のサイトで画像の画質を落としてサイズダウンしました。
 https://resizer.myct.jp/index.php

絵は汚くなってしまいますが、高速動作は実現できました。

表示速度

10枚の画像を表示するまでの時間をまとめました。

  表示速度 [msec / 10フレーム]
初期状態 930
setColorDepth(24) 追加 676
SPIクロックを80MHZへ 492
画像圧縮 443

最終的には倍以上のスピードになったことになります。

奥深すぎる。。。助けがなければ絶対実現できなかったです。

 lovyanさん本当にありがとうございます!!

おわりに

さて これで MakePython ESP32 Color LCD に所望の画像を表示できるようになりました。

せっかくESP32が載っているのですから、次回は無線で画像を送って表示させてみたいです。

果たしてできるのであろうか。。。
次回を待て!

追記

LovyanGFX v0.1.9 更新 (20/5/22)

LovyanGFXライブラリがアップデートされ、examplesにPartyParrotが追加もされました。


 

PartyParrotサンプルをMakePython ESP32 Color LCDにも導入してみました。

信じられないくらい早くなりましたwww
8bit 128×96のビットマップをsprite描画なるものを施して
拡大表示しているとのことです。

Jpegデコード表示にくらべてこんなに差があるんですね。
笑えるレベルで早い!!!

 

Related Posts

「MakePython ESP32 Color LCD で LovyanGFXを堪能」への1件のフィードバック

コメントはこちらから

メールアドレスが公開されることはありません。コメントのみでもOKです。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください