ESP32 チュートリアル 31/55 - 障害物回避機能付き LED ストリッププロジェクト | SunFounderのESP32 IoT 学習キット

ESP32 チュートリアル 31/55 - 障害物回避機能付き LED ストリッププロジェクト | SunFounderのESP32 IoT 学習キット

このチュートリアルでは、ESP32マイクロコントローラーとWS2812 LEDストリップを使用して、障害物検知に基づいて方向を変更できるプロジェクトを作成します。LEDストリップが前進しているときはランダムな色を表示し、障害物を検知すると所定の色に切り替わり、方向を逆転します。このプロジェクトは、赤外線障害物回避センサーと組み合わせたESP32の能力を示しています。

ESP32-31-流れる光-main2

このチュートリアルでは、必要なハードウェアコンポーネント、配線手順、およびこのプロジェクトを実現するために必要なコードについて説明します。より視覚的な説明については、下記のリンクにある動画(動画の00:00で)をぜひご覧ください。

ハードウェアの説明

このプロジェクトには、ESP32マイクロコントローラー、WS2812 LEDストリップ、赤外線障害物回避センサーなど、いくつかのコンポーネントが必要です。ESP32は、内蔵のWi-FiとBluetoothを備えた強力なマイクロコントローラーで、IoTアプリケーションに最適です。WS2812 LEDストリップは、各LEDを個別に制御できるプログラム可能なRGB LEDストリップであり、動的な照明効果を作成することができます。

赤外線障害物回避センサーは、赤外線を発信し、近くの物体からの反射を検知することで機能します。障害物が検知されると、センサーは出力状態を変更し、ESP32がLEDストリップの動作を変更してそれに応じて反応できるようになります。

データシートの詳細

メーカー WS2812B
部品番号 WS2812B
ロジック/IO電圧 3.3 V(典型的)
供給電圧 5 V (典型的)
出力電流(チャネルごと) 20 mA(最大)
ピーク電流(チャネルごと) 60 mA(最大)
PWM周波数ガイダンス 400 Hz(典型)
入力ロジック閾値 0.3 Vcc(高)、0.1 Vcc(低)
電圧降下 / RDS(on)/ 飽和 1.2 V (最大)
熱的制限 85 °C(最大)
パッケージ サーフェスマウント
ノート / バリアント さまざまな長さと密度で利用可能です。

  • LEDストリップが最適なパフォーマンスを発揮するために5 Vの電源を供給してください。
  • データピンの信号の完全性の問題を防ぐために、適切な抵抗器を使用してください。
  • 出力電流の制限に注意して、過熱を避けてください。
  • 適切に電源を切り離して、電圧スパイクを防ぐ。
  • 赤外線センサーを慎重に調整して、望ましい検知範囲を達成してください。

配線指示

ESP32-31-flowing-light-wiring

コンポーネントを配線するには、まず赤外線障害物回避センサーから始めます。センサーの出力ピンをピンに接続します。25ESP32の中間ピンはグラウンドに接続し、最後のピン(VCC)は3.3Vの電源に接続する必要があります。

ESP32-31-流れる光の回路図

次に、WS2812 LEDストリップのデータピン(通常は黄色のワイヤー)をピンに接続します。14ESP32上で。赤いワイヤーは5Vの電源に接続し、黒いワイヤーはグラウンドに接続する必要があります。すべての接続を適切に固定し、緩い配線がないようにしてください。

コード例とウォークスルー

このプロジェクトを実行するコードの簡単な概要です。まず、LEDストリップのピクセル数と通信に使用されるデータピンを定義します:

#define NUM_PIXELS 8
#define DATA_PIN 14

In thesetup()関数では、LEDストリップと赤外線センサーを初期化します:

void setup() {
  pixels.begin();
  pinMode(AVOID_PIN, INPUT_PULLUP);
  uint32_t color = pixels.Color(random(256), random(256), random(256));
  pixels.fill(color);
  pixels.show();
}

In theloop()障害物が検出されたかどうかを確認し、それに応じてLEDストリップを制御する機能:

if (avoid_value) {
    for (int i = 0; i < NUM_PIXELS; i++) {
      pixels.setPixelColor(i, color);
      pixels.show();
      pixels.setPixelColor(i, 0);
      delay(100);
    }
  } else {
    for (int i = NUM_PIXELS - 1; i >= 0; i--) {
      pixels.setPixelColor(i, color);
      pixels.show();
      pixels.setPixelColor(i, 0);
      delay(100);
    }
  }

このコードは、LEDストリップが前進しているときにランダムな色を表示し、障害物が検出されると方向を変更することを可能にします。完全なコードは記事の下に読み込まれますので、すべての詳細を確認するためにぜひチェックしてください。

デモンストレーション / 期待すること

セットアップが完了し、コードがアップロードされると、LEDストリップは前進しながらランダムな色を表示し始めるはずです。障害物が検出されると、ストリップはあらかじめ決められた色(例えば緑色)に切り替わり、方向を逆にします。障害物が取り除かれると、ストリップはランダムな色で前進を再開します。赤外線センサーの検出範囲は、使用する電源によって異なる場合があることに注意してください(ビデオの10:30)。

動画のタイムスタンプ

  • 00:00 開始
  • 2:14 プロジェクトの紹介
  • 4:58 配線の説明
  • 7:41 障害物回避センサーの調整
  • 10:03 Arduino コードの説明
  • 15:40 Arduino IDEでESP32ボードとCOMポートを選択する
  • 17:22 プロジェクト1: デモンストレーション
  • 18:17 カニングの戻る色

画像

ESP32-31-flowing-light-main2
ESP32-31-flowing-light-main2
ESP32-31-flowing-light-main
ESP32-31-flowing-light-main
ESP32-31-flowing-light-schematic
ESP32-31-flowing-light-schematic
ESP32-31-flowing-light-wiring
ESP32-31-flowing-light-wiring
832-ESP32 Tutorial 31/55- Arduino code flowing light
言語: C++
コピーしました!

リソースと参考文献

ファイル📁

ファイルは利用できません。