Proyecto de Matriz LED RGB ESP32-S3 5 - Flecha siempre arriba

Proyecto de Matriz LED RGB ESP32-S3 5 - Flecha siempre arriba

Proyecto 5 - Flecha Siempre Arriba (Indicador de Orientación usando QMI8658C)

El Proyecto 5 utiliza el sensor de movimiento QMI8658C para detectar la orientación de la matriz de LED RGB ESP32-S3 y siempre mostrar una flecha apuntando hacia ARRIBA en relación con la gravedad. No importa cómo gires la placa: con el lado USB hacia arriba, el lado OUSB hacia arriba, el lado "15" o el lado "34", la flecha automáticamente gira y apunta hacia la dirección físicamente hacia arriba.

Esta es una poderosa demostración de detección de orientación en tiempo real utilizando el acelerómetro a bordo. Los seis proyectos de este módulo se demuestran en un video de YouTube, que también está incrustado en esta página. El código completo del Proyecto 5 se carga automáticamente debajo del artículo, y los enlaces de afiliados aparecen debajo de la sección de código.

Descripción general del Módulo de Matriz LED RGB ESP32-S3

El módulo de matriz LED RGB ESP32-S3 incluye varios componentes que hacen posible este proyecto:

  • microcontrolador ESP32-S3- proporciona Wi-Fi, BLE y ejecuta la lógica de LED/IMU.
  • Matriz LED RGB 8×8- muestra la flecha en cualquiera de las cuatro orientaciones.
  • acelerómetro QMI8658C- detecta inclinación, movimiento y orientación.:contentReference[oaicite:0]{index=0}
  • puerto USB-Cpara la potencia y programación en Arduino IDE.
  • Botones de Reinicio y Arranquepara subir bocetos.
  • pines GPIOdisponible en toda la junta para proyectos adicionales.

La dirección de la flecha se determina completamente por las lecturas del acelerómetro. Cuando se rota la placa, el QMI8658C detecta los nuevos valores X/Y/Z, y el boceto elige qué patrón de flecha (↑, ↓, ←, →) debe dibujarse.

Proyectos Cubiertos en el Video (Tiempos)

  • 00:00- Introducción
  • 02:01- Instalando placas ESP32
  • 03:32- Instalando bibliotecas
  • 05:32- Proyecto 1: Punto en Movimiento
  • 11:11- Proyecto 2: Desplazamiento de Texto
  • 12:59- Proyecto 3: Texto HTTP
  • 16:41- Proyecto 4: Tilt Dot
  • 18:55-Proyecto 5: Flecha Siempre Arriba (este proyecto)
  • 20:02- Proyecto 6: Juego de Objetivos

El video muestra claramente cómo la flecha cambia de dirección instantáneamente según cómo se gire el módulo. Se recomienda encarecidamente ver este segmento.:contentReference[oaicite:1]{index=1}

Instalando placas ESP32 en el IDE de Arduino

Si completaste algún proyecto anterior, la configuración de la placa ya está hecha. De lo contrario:

  1. File > Preferences→ Agregar URL de la placa ESP32
  2. Tools > Board > Boards Manager…→ Instalar "ESP32"
  3. Seleccione la placa ESP32-S3 bajoTools > Board
  4. Seleccione el puerto COM USB correcto bajoTools > Port

Instalando bibliotecas requeridas

El Proyecto 5 utiliza:

  • Adafruit NeoMatrix
  • Adafruit NeoPixel
  • Adafruit GFX
  • QMI8658(sensor de movimiento)
  1. Sketch > Include Library > Manage Libraries…
  2. Buscar:NeoMatrix→ Instalar
  3. Instalar dependencias:NeoPixel+GFX
  4. Buscar e instalarQMI8658por su autor

Cómo funciona el Proyecto 5

El QMI8658C mide la gravedad en los ejes X, Y y Z. Al comparar estos valores, el boceto determina qué lado físico de la placa está orientado hacia arriba:

  • USB hacia arriba
  • Lado OUSB hacia arriba(opuesto USB)
  • Lado "15" hacia arriba
  • Lado "34" hacia arriba

Cada orientación corresponde a un patrón de flechas diferente en la matriz de 8×8. El mapeo sigue tu lógica de orientación confirmada de sesiones de depuración anteriores. La rotación del tablero se lee continuamente, y la flecha se actualiza tan pronto como cambia el lado superior.

Proyecto 5 - Configuración de Código (Flecha Siempre Arriba)

A continuación se presentan los valores ajustables por el usuario en el área de configuración. El código completo del proyecto aparece automáticamente debajo del artículo.

Configuración de la matriz


// 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)

Este proyecto utilizaNEO_MATRIZ_PROGRESIVOdiseño para asegurar que la flecha apunte correctamente según el movimiento real.

Brillo


uint8_t matrixBrightness = 40;   // 0–255

Puedes aumentar este valor para ambientes más luminosos. Para uso en interiores, 30-60 es cómodo.

Color de la flecha


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

Cambia estos valores para modificar el color de la flecha. Por ejemplo:

  • Flecha verde:(0, 255, 0)
  • Flecha azul:(0, 0, 255)
  • Flecha blanca:(255, 255, 255)

Sensibilidad y Suavizado

Para evitar el jitter, el código incluye lógica de suavizado y umbral. En la configuración, puedes encontrar algo como:


// Sensitivity / smoothing adjustment
float tiltThreshold = 0.30f;   // adjust if arrow changes too easily
  • Si tu flecha se da vuelta demasiado fácilmente →aumentarumbral.
  • Si la flecha es demasiado lenta para cambiar →disminuirumbral.

Patrones de flechas

El boceto incluye patrones de bitmap de flechas para:

  • ↑ arriba
  • ↓ abajo
  • ← izquierda
  • → derecha

No necesitas modificar estos, pero puedes cambiar las formas dentro del código si deseas un estilo diferente.

Resumen

El Proyecto 5 demuestra cómo la Matriz de LEDs RGB ESP32-S3 y el acelerómetro QMI8658C trabajan juntos para detectar la orientación y mostrar una flecha que siempre apunta hacia arriba. Este proyecto se basa en el Tilt Dot (Proyecto 4) y te prepara para el juego interactivo final en el Proyecto 6.

El boceto completo de "Arrow Always Up" está disponible debajo de este artículo (cargado automáticamente). Se recomienda encarecidamente ver la parte correspondiente del video para observar cómo responde instantáneamente la flecha a la rotación de la placa. Si deseas realizar este proyecto en casa, los enlaces de afiliados para el módulo de matriz LED RGB ESP32-S3 aparecen en la sección de código.

Imágenes

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
Idioma: C++
¡Copiado!

Cosas que podrías necesitar

Recursos y referencias

Archivos📁

Archivo de Fritzing