
バーサライタに映像を無線転送
前回、ESP32で割り込みやマルチタスクを駆使してバーザライタの高分解能化に成功いたしました。
今回は画像や動画をWiFiで転送して表示に成功いたしましたのでご報告します。
目次
UDPで静止画送信
UDP通信でWiFi介して静止画をバーサライタ装置に転送します。
Node-REDのDashboardノードで画像選択のボタンをこしらえて、Pythonで選択された画像の縮小とバーサライタ用にデータ変換を実施してUDP送信しています。
Node-RED設定
Node-REDでボタンなどのUI表示と選択した画像の名前をPythonに送ります。
①ダッシュボード ボタン表示
node-red-dashboardのbutton nodeでボタンUIを表示します。
3画像用意してバーサライタに表示させます。
Group:ダッシュボードノードを表示させるグループ名を決めて選択します。
Icon:ボタンに表示させる画像を選択します。
Label:ボタンの表記
Payload:ここでは画像名を次段に送ります。
②ファンクションノード
3つのボタンのノードをまとめるためにファンクションノードを配置
③ダッシュボード テキスト表示
node-red-dashboardのtext nodeで選択されたボタンのPayloadをダッシュボードに表示させます。
Group:ダッシュボードノードを表示させるグループ名を決めて選択します。
Label:テキスト欄に表示させる画像を選択します。
Value format:表示させるテキストを選択。ここではボタンノードからのPayloadを指定。
Dashboardタグを選択して表示ボタンでダッシュボード画面が表示されます。
ダッシュボード
④Python実行
exec nodeでPythonコードを起動させます。
Command:Pythonコード実行させるバッチファイルを指定。(Windows PC使用)
Append:引数にPayloadをチェック入れて画像名を送っています。
以下がバッチファイルの内容です。引数1個をもってpythonコードを起動します。
Pythonコード
ダッシュボードボタンで選択された画像ファイル名を受けて、その画像を変換してUDPでバーサライタに映像情報を送信します。
Arduinoコード
pythonから送られた画像データを受けてバーサライタに表示させます。
動作
静止画転送できた! pythonで画像縮小、座標変換してUDP送信。パソコンのUIはNode-REDで作成。画像選択ボタンクリックでUDP送信開始。転送漏れがたまにある。目標の動画転送の実現は近い 気がする。#ESP32 #バーサライタ #python #nodeRED pic.twitter.com/eIKM40FbSp
— HomeMadeGarbage (@H0meMadeGarbage) 2019年3月10日
たまに取りこぼしあるけど画像伝送実現できました!わーい
ダッシュボードノードのボタンで画像が切り替わります。
動画転送
動画転送も試してみました。PythonでGIFファイルをフレームごとに変換してバーサライタに転送します。
動作
バーサライタにUDPでGIF転送実験。1周の分解能200→100にしたけどスロー。なかなか難しいな#ESP32 #ザコシGIF #バーサライタ pic.twitter.com/4gobxeobWy
— HomeMadeGarbage (@H0meMadeGarbage) 2019年3月11日
バーサライタの1周の分解能を200から100に減らして転送しているのですが、遅い。。。
転送量をギリギリまで増やして送信漏れもないようにうまいことできるように引き続き勉強します!