Projeto de Matriz de LED RGB ESP32-S3 5 - Setas sempre para cima

Projeto de Matriz de LED RGB ESP32-S3 5 - Setas sempre para cima

Projeto 5 - Seta Sempre Para Cima (Indicador de Orientação usando QMI8658C)

O Projeto 5 utiliza o sensor de movimento QMI8658C para detectar a orientação da Matriz de LEDs RGB ESP32-S3 e sempre exibir uma seta apontando para CIMA em relação à gravidade. Não importa como você gire a placa - lado USB para cima, lado OUSB para cima, lado "15" ou lado "34" - a seta automaticamente se gira e aponta para a direção fisicamente para cima.

Esta é uma demonstração poderosa de detecção de orientação em tempo real usando o acelerômetro embarcado. Todos os seis projetos deste módulo são demonstrados em um vídeo no YouTube, que também está incorporado nesta página. O código completo do Projeto 5 é carregado automaticamente abaixo do artigo, e os links de afiliados aparecem na seção de código.

Visão Geral do Módulo de Matriz de LEDs RGB ESP32-S3

O módulo de matriz LED RGB ESP32-S3 inclui vários componentes que tornam este projeto possível:

  • Microcontrolador ESP32-S3- fornece Wi-Fi, BLE e executa a lógica LED/IMU.
  • Matriz LED RGB 8×8- exibe a seta em qualquer uma das quatro orientações.
  • acelerômetro QMI8658C- detecta inclinação, movimento e orientação.:contentReference[oaicite:0]{index=0}
  • porta USB-Cpara alimentação e programação no Arduino IDE.
  • Botões de Redefinição e Iníciopara enviar esboços.
  • Pinos GPIOdisponível em toda a empresa para projetos adicionais.

A direção da seta é determinada inteiramente pelas leituras do acelerômetro. Quando a placa é girada, o QMI8658C detecta os novos valores de X/Y/Z, e o sketch escolhe qual padrão de seta (↑, ↓, ←, →) deve ser desenhado.

Projetos Abordados no Vídeo (Marcos de Tempo)

  • 00:00- Introdução
  • 02:01- Instalando placas ESP32
  • 03:32- Instalando bibliotecas
  • 05:32- Projeto 1: Ponto Móvel
  • 11:11- Projeto 2: Rolagem de Texto
  • 12:59- Projeto 3: Texto HTTP
  • 16:41- Projeto 4: Tilt Dot
  • 18:55-Projeto 5: Seta Sempre Para Cima (este projeto)
  • 20:02- Projeto 6: Jogo de Alvo

O vídeo mostra claramente como a seta muda de direção instantaneamente com base em como o módulo é girado. Assistir a este segmento é fortemente recomendado.:contentReference[oaicite:1]{index=1}

Instalando as Placas ESP32 no Arduino IDE

Se você completou algum projeto anterior, a configuração da placa já está feita. Caso contrário:

  1. File > Preferences→ Adicione a URL da placa ESP32
  2. Tools > Board > Boards Manager…→ Instale "ESP32"
  3. Selecione a placa ESP32-S3 emTools > Board
  4. Selecione a porta USB COM correta emTools > Port

Instalando Bibliotecas Necessárias

O Projeto 5 utiliza:

  • Adafruit NeoMatrix
  • Adafruit NeoPixel
  • Adafruit GFX
  • QMI8658(sensor de movimento)
  1. Sketch > Include Library > Manage Libraries…
  2. Pesquisar:NeoMatrix→ Instalar
  3. Instale as dependências:NeoPixel+GFX
  4. Pesquisar e instalarQMI8658por seu autor

Como o Projeto 5 Funciona

O QMI8658C mede a gravidade nos eixos X, Y e Z. Ao comparar esses valores, o esboço determina qual lado físico da placa está voltado para cima:

  • USB para cima
  • Lado OUSB para cima(oposto do USB)
  • Lado "15" para cima
  • Lado "34" para cima

Cada orientação corresponde a um padrão de seta diferente na matriz 8×8. O mapeamento segue sua lógica de orientação confirmada de sessões de depuração anteriores. A rotação do tabuleiro é lida continuamente, e a seta é atualizada assim que o lado voltado para cima muda.

Projeto 5 - Configurações de Código (Seta Sempre Para Cima)

Abaixo estão os valores ajustáveis pelo usuário na área de configuração. O código completo do projeto aparece automaticamente abaixo do artigo.

Configuração da 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 projeto utilizaNEO_MATRIZ_PROGRESSIVAlayout para garantir que a seta aponte corretamente com base no movimento real.

Brilho


uint8_t matrixBrightness = 40;   // 0–255

Você pode aumentar esse valor para ambientes mais claros. Para uso interno, 30-60 é confortável.

Cor da seta


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

Altere esses valores para modificar a cor da seta. Por exemplo:

  • Seta verde:(0, 255, 0)
  • Seta azul:(0, 0, 255)
  • Seta branca:(255, 255, 255)

Sensibilidade e Suavização

Para evitar o tremor, o código inclui lógica de suavização e limiar. Nas configurações, você pode encontrar algo como:


// Sensitivity / smoothing adjustment
float tiltThreshold = 0.30f;   // adjust if arrow changes too easily
  • Se sua seta vira muito facilmente →aumentarlimite.
  • Se a seta estiver muito lenta para mudar →diminuiçãolimite.

Padrões de Flechas

O esboço inclui padrões de bitmap de setas para:

  • ↑ cima
  • baixo
  • ← esquerda
  • → direito

Você não precisa modificar isso, mas pode mudar as formas dentro do código se quiser um estilo diferente.

Resumo

O Projeto 5 demonstra como a Matriz de LED RGB ESP32-S3 e o acelerômetro QMI8658C trabalham juntos para detectar a orientação e exibir uma seta que sempre aponta para cima. Este projeto se baseia no Tilt Dot (Projeto 4) e prepara você para o jogo interativo final no Projeto 6.

O esboço completo "Arrow Always Up" está disponível abaixo deste artigo (carregado automaticamente). É altamente recomendável assistir à parte correspondente do vídeo para ver como a seta responde instantaneamente à rotação do painel. Se você deseja construir este projeto em casa, links de afiliados para o módulo de matriz de LED RGB ESP32-S3 aparecem na seção de código.

Imagens

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!

Coisas que você pode precisar

Recursos e referências

Arquivos📁

Arquivo Fritzing