「Lovyan」タグアーカイブ

MakePython ESP32 Color LCD で ESP32 ScreenShotReceiver を楽しむ

すき 0
0

以前、ESP32_ScreenShotReceiverを用いてMakePython ESP32 Color LCD に動画をWiFiを介して転送を楽しみました。

MakePython ESP32 Color LCD で 動画をWiFi受信 ー ScreenShotReceiver ー

この度、開発者のらびやんさんよりESP32_ScreenShotReceiverの更新がアナウンスされましたので
変更点の確認をするとともに動画転送を楽しみました。

 
 

ESP32_ScreenShotReceiver更新内容

以前はLCDのSPI設定をTFT_eSPIライブラリに依存していたとのことですが
らびやんさんのグラフィックライブラリ LovyanGFXで設定できるようになりました。

また前回は高速化のためにESP32の設定バイナリファイル改造など実施しましたが、TFT_eSPI依存からの開放によって無改造で高速表示(80MHz)が可能となったとのことです。

ESP32_ScreenShotReceiverの使用方法

前回同様にMakePython ESP32 Color LCD でESP32_ScreenShotReceiverを試してみます。

以下のArduinoコードをダウンロードしてMakePython ESP32 Color LCDに書き込みます。
 https://github.com/lovyan03/ESP32_ScreenShotReceiver/tree/master/ScreenShotReceiver

 
グラフィックライブラリLovyanGFXも必要となりますので導入しておきます。
  https://github.com/lovyan03/LovyanGFX/    (ver. 0.1.14)

LCDディスプレイSPI設定

LCDディスプレイの設定はLovyanGFXのコンフィグで設定いたします。

M5StackやM5StickC、TTGO T-Watchなどはコンフィグファイルが既に用意されておりArduino IDEのボードマネージャで指定することにより自動でSPI設定されます。
 https://github.com/lovyan03/LovyanGFX/tree/master/src/config

 

MakePython ESP32 Color LCD用のコンフィグファイルはないので用意する必要があります。
ちなみにArduino IDEでのボードはESP32 Dev Moduleを指定しています。

 

LGFX_Config_Custom.hppをコピーしてESP32_ScreenShotReceiverスケッチ(ScreenShotReceiver.ino)のあるフォルダ内に保存してMakePython ESP32 Color LCD向けに編集します。

ScreenShotReceiver.inoで#include “LGFX_Config_Custom.hpp”追加で設定終了です。

動作

SmartConfigアプリでのESP32のWiFi設定や
Windows用 送信アプリScreenShotSenderの使用方法は前回記事を参照ください。

 

PCのyoutube動画画面 600×600を240×240にしてQuality60%で転送いたしました。
40fps以上達成できています。はやい!!

送信速度調査

ScreenShotSenderで送信元の画像サイズとQualityを変えて送信速度[fps]がどのように変化するか確認してみました。

送信元の画像サイズはYouTubeの画像サイズも変えておりますので送信先の画はほとんど変わらないようにしております。

元画\Quality 1 % 20 % 40 % 60 % 80 % 100 %
300×300 55 fps 50 fps 45 fps 40 fps 30 fps 15 fps
600×600 55 fps 50 fps 45 fps 40 fps 30 fps 15 fps
1000×1000 55 fps 50 fps 45 fps 40 fps 30 fps 15 fps

送信元の画像サイズの影響は小さいようでした。
Quality = 1 %ですと画が荒いので 60 %以上にはしたほうがよさそうです。

Wio Terminal でカメラ画像を表示2 ー LovyanGFX 編 ー

0
0

前回はAIカメラのUnitVの撮影画像をビットマップで Wio Terminalに送信して表示しました。

UnitV で画像シリアル転送の味見 ーエッジAI活用への道 12ー

メモリ不足のためビットアップでは160×120サイズでの表示にとどまりましたが、
今回LovyanGFXライブラリを使用させていただきJPEGでの画像取得・表示が可能となり、
全画面表示(320×240)できましたのでご報告します。

 

 

UnitV用 MaixPy IDEコード

UnitVでの撮影画像(QVGA: 320×240)をJPEGに圧縮(圧縮率 50%)してUART送信します。

転送ボーレートは1152000にしました。
35ピンから画像ビットマップデータを送信しています。

Wio Terminal接続

前回と同様に、UnitVをWio Terminalの裏面40ピンヘッダの5Vとシリアル受信ピン(Serial1)に接続しました。

 

 

LovyanGFX ライブラリ

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

JPEG表示機能 も兼ね備えており、今回ありがたく使用させていただきました。
 

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

Wio Terminal Arduinoコード

裏面のシリアルピン(Serial1)でUnitVからのJPEG画像データを受信します。

LovyanGFXのdrawJpg()でJPEG画像をWio TerminalのLCDに表示しています。

 

参考

 

動作

 

JPEG送受信&表示でカメラ画像をWio TerminalのLCDディスプレイ前面に表示することができました!!