Home Made Garbage

ESP32 でPOVディスプレイ作製

お父ちゃん お父ちゃん  2019.2.8 
ホーム
電子工作
Raspberry Pi
IOT
WEB

以前つくったPOV(Persistent Of Vision=残像)表示装置のマイコンをESP32にしてみました。高速で優秀なESP32で更に無線も使えるので、表示画像をBluetoothで切り替えなども試してみました。

“キング・オブ・ダークネス” EVIL の魔法陣を自作

動作

スマホで画像を切り替えるとPOVの表示が切り替わります。無線搭載のESP32ならではです。

 

 

構成

基本構成は前回とほぼ同じです。回転部にLEDテープDotstarとマイコン、フォトリフレクタを搭載し、ワイヤレスチャージモジュールを使って回転部への給電します。

今回はLEDテープを2列にして表示の高分解能化をはかりました。

またスマホアプリBlynkでBluetooth介して信号を送って表示する画像を切り替えます。

部品

POV装置

ESP32の高速動作(CPUクロック周波数 240MHz )をいいことにSPIを2個出力してLEDテープを2列にしました。29セルの間に28セルが配置されるように設置しました。

光を拡散させるために切ったクリアファイルでコートして さらに包帯などをとめるテープを貼ってみました。

 

Blynk設定

スマホとESP32をスマホアプリのBlynkを用いてBluetooth通信させてPOV表示させる画像を切り替えます。Blynkアプリのバージョンは2.27.1。
 

新規プロジェクトを作成します。HARDWRE MODELはESP32 Dev Boardを選択。CONNECTION TYPEはBluetoothを選択。AUTH TOKENはArduinoコード生成時に使用します(アカウントに登録したメアドに送信されます)。
 

Bluetoothウィジェット、Vertical Sliderウィジェット、Image Galleryウィジェットを配置します。
 

Vertical SliderウィジェットでヴァーチャルピンV0に最小値 1、最大値 2を設定できるようにします。
 

Image Galleryウィジェットで入力をヴァーチャルピンV0として、2個の画像のあるURLを指定します。V0 = 1でロックマン、V0 = 2でレナが選択されます。

Arduino IDEコード

ArduinoでESP32のコードを作成しました。環境設定は以下の通りです。ライブラリのバージョンは1.0.1。
 https://github.com/espressif/arduino-esp32/blob/master/docs/arduino-ide/boards_manager.md

以下のDotstar用ライブラリを使用しています。
 https://github.com/adafruit/Adafruit_DotStar

フォトリフレクタ QTR-1A用のライブラリは以下を使用しました。
 https://github.com/pololu/qtr-sensors-arduino

更にBlynk用ライブラリも使用します。バージョンは0.6.0。
 https://github.com/blynkkk/blynk-library

[スケッチの例] -> [Blynk] -> [Boards_Bluetooth]-> [ESP32_BT]を参考にコード生成しました。

LEDテープ Dotstarを2列使用しているのでSPIを2個出力しています。
 stripH:DATA-GPIO13 、CLK-GPIO14
 stripV:DATA-GPIO23 、CLK-GPIO18

フォトリフレクタ QTR-1Aで1周する時間を測定して表示する発光パターンを切り替えています。1周を100分割して画像を表示します。

ヴァーチャルピンV0の値を受信して表示する画像の配列を切り替えます。配列はgraphics.hファイルに記載しています。

57(LED数) × 100(1周の分割数)の配列を2画像分(rock[], rena [])記載しています。
画像配列の生成方法は次の節で説明します。