Progetto Matrice LED RGB ESP32-S3 5 - Freccia sempre verso l'alto

Progetto Matrice LED RGB ESP32-S3 5 - Freccia sempre verso l'alto

Progetto 5 - Freccia Sempre Su (Indicatore di Orientamento utilizzando QMI8658C)

Il Progetto 5 utilizza il sensore di movimento QMI8658C per rilevare l'orientamento della matrice LED RGB ESP32-S3 e visualizzare sempre una freccia che punta verso l'alto rispetto alla gravità. Non importa come ruoti la scheda - lato USB in alto, lato OUSB in alto, lato "15" o lato "34" - la freccia si gira automaticamente e punta verso la direzione fisicamente superiore.

Questa è una potente dimostrazione di rilevamento dell'orientamento in tempo reale utilizzando l'accelerometro integrato. Tutti e sei i progetti per questo modulo sono dimostrati in un video di YouTube, che è anche incorporato in questa pagina. Il codice completo per il Progetto 5 si carica automaticamente sotto l'articolo, e i link affiliati appaiono sotto la sezione del codice.

Panoramica del modulo matrice LED RGB ESP32-S3

Il modulo matrice LED RGB ESP32-S3 include diversi componenti che rendono possibile questo progetto:

  • microcontrollore ESP32-S3- fornisce Wi-Fi, BLE e gestisce la logica LED/IMU.
  • matrice LED RGB 8×8- visualizza la freccia in una delle quattro orientamenti.
  • accelerometro QMI8658C- rileva inclinazione, movimento e orientamento.:contentReference[oaicite:0]{index=0}
  • porta USB-Cper la potenza e la programmazione in Arduino IDE.
  • Pulsanti di Reset e Avvioper caricare schizzi.
  • Pini GPIOdisponibile per tutta la commissione per progetti aggiuntivi.

La direzione della freccia è determinata interamente dalle letture dell'accelerometro. Quando la scheda viene ruotata, il QMI8658C rileva i nuovi valori X/Y/Z e lo sketch sceglie quale modello di freccia (↑, ↓, ←, →) dovrebbe essere disegnato.

Progetti Coperti nel Video (Timestamp)

  • 00:00- Introduzione
  • 02:01- Installazione delle schede ESP32
  • 03:32- Installazione delle librerie
  • 05:32- Progetto 1: Punto in movimento
  • 11:11- Progetto 2: Scorrimento Testo
  • 12:59- Progetto 3: Testo HTTP
  • 16:41- Progetto 4: Tilt Dot
  • 18:55-Progetto 5: Freccia Sempre Su (questo progetto)
  • 20:02- Progetto 6: Gioco di Mira

Il video mostra chiaramente come la freccia cambi direzione istantaneamente in base a come viene girato il modulo. Si consiglia vivamente di guardare questo segmento.:contentReference[oaicite:1]{index=1}

Installazione delle schede ESP32 nell'IDE Arduino

Se hai completato un progetto precedente, la configurazione della scheda è già stata completata. Altrimenti:

  1. File > Preferences→ Aggiungi URL della scheda ESP32
  2. Tools > Board > Boards Manager…→ Installa "ESP32"
  3. Seleziona la scheda ESP32-S3 sottoTools > Board
  4. Seleziona la porta USB COM corretta sottoTools > Port

Installazione delle librerie necessarie

Il Progetto 5 utilizza:

  • Adafruit NeoMatrix
  • Adafruit NeoPixel
  • Adafruit GFX
  • QMI8658(sensore di movimento)
  1. Sketch > Include Library > Manage Libraries…
  2. Cerca:NeoMatrix→ Installa
  3. Installa le dipendenze:NeoPixel+GFX
  4. Cerca e installaQMI8658dal suo autore

Come funziona il Progetto 5

Il QMI8658C misura la gravità sugli assi X, Y e Z. Confrontando questi valori, il circuito determina quale lato fisico della scheda è rivolto verso l'alto:

  • USB rivolto verso l'alto
  • Lato OUSB rivolto verso l'alto(opposto USB)
  • Lato "15" in su
  • Lato "34" in su

Ogni orientamento corrisponde a un diverso schema di frecce nella matrice 8×8. La mappatura segue la logica di orientamento confermata nelle precedenti sessioni di debug. La rotazione della scheda viene letta continuamente e la freccia si aggiorna non appena il lato superiore cambia.

Progetto 5 - Impostazioni Codice (Freccia Sempre Su)

Di seguito ci sono i valori regolabili dall'utente nell'area di configurazione. Il codice completo del progetto appare automaticamente sotto l'articolo.

Configurazione della matrice


// Matrix configuration
const int MATRIX_PIN    = 14;   // fixed for this module
const int MATRIX_WIDTH  = 8;
const int MATRIX_HEIGHT = 8;

// Recommended orientation: Top-Left origin, progressive mode
// (actual constructor is inside the code loaded below)

Questo progetto utilizzaNEO_MATRIX_PROGRESSIVElayout per assicurarsi che la freccia punti correttamente in base al movimento reale.

Luminosità


uint8_t matrixBrightness = 40;   // 0–255

Puoi aumentare questo valore per ambienti più luminosi. Per l'uso interno, 30-60 è confortevole.

Colore della freccia


// Arrow color
uint8_t arrowRed   = 255;
uint8_t arrowGreen = 0;
uint8_t arrowBlue  = 0;

Cambia questi valori per modificare il colore della freccia. Ad esempio:

  • Freccia verde:(0, 255, 0)
  • Freccia blu:(0, 0, 255)
  • Freccia bianca:(255, 255, 255)

Sensibilità e Lisciatura

Per evitare il jitter, il codice include logica di smoothing e soglia. Nelle impostazioni potresti trovare qualcosa come:


// Sensitivity / smoothing adjustment
float tiltThreshold = 0.30f;   // adjust if arrow changes too easily
  • Se la tua freccia si capovolge troppo facilmente →aumentosoglia.
  • Se la freccia è troppo lenta a cambiare →diminuiresoglia.

Modelli di Frecce

Il disegno include modelli di bitmap con frecce per:

  • su
  • giù
  • ← sinistra
  • → destra

Non è necessario modificare questi, ma puoi cambiare le forme all'interno del codice se desideri uno stile diverso.

Riepilogo

Il Progetto 5 dimostra come il Matrix LED RGB ESP32-S3 e l'accelerometro QMI8658C lavorino insieme per rilevare l'orientamento e visualizzare una freccia che punta sempre verso l'alto. Questo progetto si basa sul Tilt Dot (Progetto 4) e ti prepara per il gioco interattivo finale nel Progetto 6.

Il disegno completo "Arrow Always Up" è disponibile sotto questo articolo (caricato automaticamente). Si consiglia vivamente di guardare la parte corrispondente del video per vedere come l'arrow risponde istantaneamente alla rotazione della scheda. Se desideri realizzare questo progetto a casa, i link affiliati per il modulo ESP32-S3 RGB LED Matrix appaiono sotto la sezione del codice.

Immagini

ESP32 S3 Matrix
ESP32 S3 Matrix
ESP32 S3 Matrix  pin out
ESP32 S3 Matrix pin out
ESP32-S3_RGB_8x8_matrix-3
ESP32-S3_RGB_8x8_matrix-3
ESP32 S3 Matrix attached with buzzer to pin6 and GND
ESP32 S3 Matrix attached with buzzer to pin6 and GND
ESP32 S3 Matrix displaying red heart
ESP32 S3 Matrix displaying red heart
ESP32 S3 Matrix displaying green heart
ESP32 S3 Matrix displaying green heart
ESP32 S3 Matrix displaying rainbow heart 3
ESP32 S3 Matrix displaying rainbow heart 3
ESP32-S3_RGB_8x8_matrix1
ESP32-S3_RGB_8x8_matrix1
ESP32-S3_RGB_8x8_matrix-2
ESP32-S3_RGB_8x8_matrix-2
ESP32-S3-Mtrix - Alway Up
ESP32-S3-Mtrix - Alway Up
803-ESP32-S3 RGB LED Matrix Project 5 - Arrow always up
Lingua: C++
Copia!

Cose di cui potresti avere bisogno

Risorse e riferimenti

File📁

File Fritzing