Blynk で ESP32 と ESP8266 同時制御 -球体POV製作への道 その9-

Home > 電子工作 > Blynk で ESP32 と ESP8266 同時制御 -球体POV製作への道 その9-
すき 0
うんこ 0

またもや前回から大幅に時間があいてしまった。。。
そういう訳で球体POV(Persistence of Vision) 製作の時間です。
残像で映像を生成する装置です。
回転部と固定部を無線で情報やり取りしてみたいという発想です。はい。

前回は改めて制御マイコンから見直してWiFiBLEを搭載したESP32の検討をしてみました。
ESP32WiFiでスマホと通信、BLEで他のBLE搭載マイコンと通信するPOV装置をと思ったのですが、ESP32Arduino IDE向けBLEライブラリが今のところイケてないので。。。

方針変更!

ESP32ESP8266WiFi介してスマホアプリBlynkで直接制御してマイコン間の直接通信はしない方向に転換しました。
BLEを使用しないのにESP32を採用した理由はESP8266はアナログ入力ピンが1個しかなく、しかも1V以上印加できないため。。。。

Blynkで複数のマイコンを制御する際は以下の記事で紹介したBridge機能を使用します。

Blynkを用いたデバイス間通信 – Bridge Widget –

ここでは基本構成・動作の確認を実施しました!

構成

Blynkアプリで以下を実施

    • ESP32ボードに接続されたLEDの色を制御
    • ESP8266に接続されたデジタルポテンショメータを制御しモータ回転スピードを変える
    • モータに羽をつけてESP32ボードに接続されたフォトリフレクタで回転数計算してBlynk側に送信
フォトリフレクタでモータの羽の通過をセンシング

部品

  • BLE、WiFiマイコンESP32開発ボード ESP32-DevKitC
    ESP32の設定など詳細は以下の記事を参照ください
     https://homemadegarbage.com/pov-sphere08


     
  • LEDテープ Dotstar
    高速リフレッシュレート(PWMの周期)19.2kHzでPOV向き!詳細は以下!
     https://homemadegarbage.com/pov-sphere07

     
  • フォトリフレクタ QTR-1A
    モータに羽をつけてフォトリフレクタで回転数を測定。
    Arduino用ライブラリは以下。
     https://github.com/pololu/qtr-sensors-arduino

     
  • WiFiマイコンESP8266開発ボード ESPr Developer
    ESPr DeveloperをArduino IDEで開発する方法は以下のとおり
     http://trac.switch-science.com/wiki/esp_dev_arduino_ide

     
  • デジタルポテンショメータ MCP4131
    SPI信号で抵抗値(0~10kohm)を制御出来る。Arduinoコードは以下を参考にしました。
     http://www.learningaboutelectronics.com/Articles/MCP4131-digital-potentiometer-circuit.php

     
  • PWMコントローラ
    モータへ供給する電圧を制御する付属の可変抵抗をデジタルポテンショメータに差し替え

Blynk設定

Bridge機能を使用するためBlynkアプリを2つ作成しAUTH TOKENを2個取得します。ESP32用のアプリはウェジットを配置し、ESP8266用のアプリはAUTH TOKEN取得のみで特に何もしません。

以下はESP32用のアプリの設定です。

新規プロジェクトを作成します。HARDWRE MODELはESP32 Dev Boardを選択。CONNECTION TYPEはWiFiを選択。AUTH TOKENはArduinoコード生成時に使用します(メールで送信されます)。

モータスピード設定用のSliderウェジット、モータ回転数表示用のLabeled Valueウェジット、LEDカラー制御用のzeRGBaウィジェットを配置

モータスピード設定用のSliderウェジットです。最小値0、最大値3としました。
SEND ON RELEASEはOFFにして随時データ送信できるようにします。
ここではヴァーチャルピンV1に出力するようにしました。この値をBridge機能でESP8266側に送ります。

モータ回転数表示用のLabeled Valueウェジットです。ヴァーチャルピンV3で値を受けて単位[rpm]をつけて表示します。

zeRGBaウィジットでLEDの色を設定できるようにします。
OUTPUTはMERGEを選択。それぞれ最小値0、最大値255とします。
SEND ON RELEASEはOFFにして随時データ送信できるようにします。
ここではヴァーチャルピンV2に出力するようにしました。

Arduino IDEコード

BlynkのArduino用 最新ライブラリは以下にあります。
 https://github.com/blynkkk/blynk-library

ESP32用コード

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

ESP8266用コード

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

動作

 

#blynk で #esp8266 と #esp32 制御

Home Made Garbageさん(@homemadegarbage)がシェアした投稿 –

これでなんとか基本構成が実現できました。あとは球体POVをどう構築するか。。。。
乞うご期待。。。。

震えて待て!

010010100000010100101111010111101010001
卍卍卍卍卍卍卍卍卍卍卍卍卍卍卍卍卍卍卍卍卍卍卍卍卍卍卍

次の記事

球体POVつくってみた -球体POV製作への道 その10-

コメントはこちらから

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

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