Tutorial ESP32 31/55 - Progetto Striscia LED con Evitamento Ostacoli | Kit di Apprendimento IoT ESP32 di SunFounder

Tutorial ESP32 31/55 - Progetto Striscia LED con Evitamento Ostacoli | Kit di Apprendimento IoT ESP32 di SunFounder

In questo tutorial, creeremo un progetto utilizzando un microcontrollore ESP32 e una striscia LED WS2812 che può cambiare direzione in base alla rilevazione di ostacoli. Quando la striscia LED si muove in avanti, mostrerà colori casuali e, quando rileva un ostacolo, passerà a un colore predefinito e invertirà la direzione. Questo progetto dimostra le capacità dell'ESP32 in combinazione con un sensore infrarosso per l'evitamento degli ostacoli.

ESP32-31-luce-fluente-main2

In tutto questo tutorial, tratteremo i necessari componenti hardware, le istruzioni per il cablaggio e il codice necessario per dare vita a questo progetto. Per una spiegazione più visiva, assicurati di controllare il video linkato qui sotto (nel video a :00).

Hardware spiegato

Questo progetto richiede diversi componenti, tra cui il microcontrollore ESP32, una striscia LED WS2812 e un sensore a infrarossi per l'evitamento degli ostacoli. L'ESP32 è un potente microcontrollore che presenta Wi-Fi e Bluetooth integrati, rendendolo perfetto per applicazioni IoT. La striscia LED WS2812 è una striscia LED RGB programmabile che consente il controllo individuale di ciascun LED, permettendoci di creare effetti di illuminazione dinamici.

Il sensore di evitamento degli ostacoli a infrarossi funziona emettendo luce infrarossa e rilevando le riflessioni da oggetti vicini. Quando viene rilevato un ostacolo, il sensore cambia il suo stato di uscita, consentendo all'ESP32 di rispondere di conseguenza modificando il comportamento della striscia LED.

Dettagli della scheda tecnica

Produttore WS2812B
Numero di parte WS2812B
Tensione logica/IO 3,3 V (tip.)
Tensione di alimentazione 5 V (tip.)
Corrente di uscita (per canale) 20 mA (max)
Corrente di picco (per canale) 60 mA (max)
Guida sulla frequenza PWM 400 Hz (tip.)
Soglie di logica di ingresso 0,3 Vcc (alto), 0,1 Vcc (basso)
Caduta di tensione / RDS(on)/ saturazione 1,2 V (max)
Limiti termici 85 °C (max)
Pacchetto Montaggio su superficie
Note / varianti Disponibile in varie lunghezze e densità

  • Assicurati che la striscia LED sia alimentata con 5 V per prestazioni ottimali.
  • Utilizza una resistenza adatta per il pin dei dati per prevenire problemi di integrità del segnale.
  • Fai attenzione ai limiti di corrente in uscita per evitare surriscaldamenti.
  • Disaccoppiare correttamente l'alimentazione per prevenire picchi di tensione.
  • Regola attentamente il sensore infrarosso per ottenere la gamma di rilevamento desiderata.

Istruzioni di cablaggio

ESP32-31-flowing-light-wiring

Per cablare i componenti, inizia con il sensore di evitamento ostacoli a infrarossi. Collega il pin di uscita del sensore al pin25sull'ESP32. Il pin centrale dovrebbe essere collegato a terra, e l'ultimo pin (VCC) dovrebbe essere collegato a una fonte di alimentazione a 3,3 V.

ESP32-31-schema-luce-fluente

Successivamente, per la striscia LED WS2812, collega il pin dati (di solito il filo giallo) al pin14sull'ESP32. Il filo rosso dovrebbe essere collegato a una fonte di alimentazione da 5 V, e il filo nero dovrebbe essere collegato a terra. Assicurati di fissare correttamente tutte le connessioni per prevenire fili allentati.

Esempi di codice e guida passo passo

Ecco una breve panoramica del codice che esegue questo progetto. Prima, definiamo il numero di pixel nella striscia LED e il pin dati utilizzato per la comunicazione:

#define NUM_PIXELS 8
#define DATA_PIN 14

Nellasetup()funzione, inizializziamo la striscia LED e il sensore infrarosso:

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()Funzione, verifichiamo se un ostacolo è rilevato e controlliamo di conseguenza la striscia 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);
    }
  }

Questo codice consente al nastro LED di visualizzare colori casuali durante il movimento in avanti e di cambiare direzione quando viene rilevato un ostacolo. Il codice completo è disponibile sotto l'articolo, quindi assicurati di controllarlo per tutti i dettagli.

Dimostrazione / Cosa Aspettarsi

Quando la configurazione è completata e il codice è caricato, il nastro LED dovrebbe iniziare a mostrare colori casuali mentre si muove in avanti. Quando viene rilevato un ostacolo, il nastro passerà a un colore predeterminato (come il verde) e invertirà la direzione. Se l'ostacolo viene rimosso, il nastro riprenderà a muoversi in avanti con colori casuali. Tieni presente che la portata del sensore a infrarossi può variare in base all'alimentazione utilizzata (nel video alle 10:30).

Timestamp video

  • 00:00 Inizio
  • 2:14 Introduzione al progetto
  • 4:58 Spiegazione del cablaggio
  • 7:41 Regolazione del sensore di evitamento ostacoli
  • 10:03 Spiegazione del codice Arduino
  • 15:40 Selezionare la scheda ESP32 e la porta COM nell'IDE Arduino
  • 17:22 Progetto 1: Dimostrazione
  • 18:17 Channing il colore di ritorno

Immagini

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
Lingua: C++
Copia!

Risorse e riferimenti

File📁

Nessun file disponibile.