Projeto de Matriz de LED RGB ESP32-S3 2 - Texto Rolante

Projeto de Matriz de LED RGB ESP32-S3 2 - Texto Rolante

Projeto 2 - Rolagem de Texto na Matriz de LED RGB ESP32-S3

Neste projeto, transformamos a matriz de LEDs RGB ESP32-S3 em um pequeno banner de texto. Uma mensagem curta (por exemploRobojax) rola pelo display RGB 8×8, e você pode facilmente mudar o texto, a cor, o brilho e a velocidade de rolagem diretamente no código. Isso é muito útil para notificações simples, etiquetas de nome ou pequenas mensagens de status.

Todos os seis projetos desta série são demonstrados e explicados em um único vídeo no YouTube. O mesmo vídeo está incorporado nesta página, para que você possa ver exatamente como o efeito de rolagem de texto fica em tempo real e como cada configuração afeta a animação. O código completo para este projeto é carregado automaticamente abaixo do artigo, e você pode adquirir o módulo de matriz LED RGB ESP32-S3 em lojas afiliadas listadas na seção de código.

Este projeto baseia-se nos fundamentos do Projeto 1 (movimento de ponto e controle de cor) e adiciona renderização de texto e rolagem usando a biblioteca NeoMatrix.

Visão geral do Módulo de Matriz LED RGB ESP32-S3

O hardware é o mesmo em todos os seis projetos: um microcontrolador ESP32-S3 com Wi-Fi e Bluetooth, uma matriz de LED RGB 8×8 (64 LEDs RGB endereçáveis), um acelerômetro QMI8658C, porta USB e pinos de E/S acessíveis.:contentReference[oaicite:0]{index=0}

  • ESP32-S3- CPU principal com Wi-Fi/BLE para projetos avançados.
  • Matriz RGB 8×8- 64 LEDs RGB para ícones, texto e animações.
  • acelerômetro QMI8658C- usado em projetos posteriores para inclinação e orientação.
  • Porta USB- utilizado para alimentação e programação via Arduino IDE.
  • Pinos expostos- deixe você usar a placa como um ESP32 normal para outras entradas e saídas.
  • Botão de inicialização / Botão de redefinição- para upload de firmware e reinicialização de sketches.

No Projeto 2, focamos principalmente nas funções de matriz e de texto do NeoMatrix. O acelerômetro ainda não está em uso, mas a mesma placa irá gerenciar toda a interação e os projetos de jogos posteriores.

Projetos Cobertos no Vídeo (Marcos de Tempo)

O vídeo que acompanha este artigo cobre todos os seis projetos. Os horários aproximados são:

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

Você é encorajado a assistir ao vídeo enquanto lê este artigo. Ele mostra o texto rolando ao vivo na matriz de LED e passa por todos os passos no Arduino IDE.

Instalando Placas ESP32 no Arduino IDE

Antes de executar o código de rolagem de texto, certifique-se de que o suporte a ESP32 está instalado em sua IDE Arduino:

  1. AbrirFile > Preferencese adicione a URL das placas ESP32 em "URLs Adicionais do Gerenciador de Placas".
  2. Vá paraTools > Board > Boards Manager…, procure porESP32, e instale o pacote oficial do ESP32.
  3. Selecione sua placa de matriz RGB ESP32-S3 deTools > Board.
  4. Conecte o módulo via USB e escolha a porta COM/serial correta emTools > Port.

Se o tipo de placa ou a porta não estiverem corretos, o sketch não será carregado.

Instalação do NeoMatrix e Bibliotecas Necessárias

O rolo de texto é implementado usando Adafruit NeoMatrix e suas dependências. No vídeo, eles são instalados através do Gerenciador de Bibliotecas.

Você precisará de:

  • Adafruit NeoMatrix
  • Adafruit NeoPixel
  • Adafruit GFX Library
  1. AbrirSketch > Include Library > Manage Libraries….
  2. Pesquisar porAdafruit NeoMatrixe cliqueInstalar.
  3. Quando solicitado, permita que ele instale.Adafruit GFXeAdafruit NeoPixelcomo dependências.

Se a instalação for bem-sucedida, você deverá ver exemplos de esboços emFile > Examples > Adafruit NeoMatrixeFile > Examples > Adafruit NeoPixel.

Projeto 2 - Configurações de Código (Deslocamento de Texto)

O esboço do texto completo do rolo é carregado automaticamente abaixo deste artigo no site. Aqui focamos apenas nos valores de configuração que você provavelmente desejará editar: pino, tamanho da matriz, brilho, string de texto, cor, velocidade de rolagem e direção opcional.

Todas as amostras abaixo são retiradas da seção de configuração no topo do esboço, para que você possa ajustar rapidamente o comportamento sem mexer na lógica principal.

Pino e Tamanho da Matriz

Assim como o Projeto 1, a matriz RGB está conectada ao GPIO 14 e contém 64 LEDs (8×8). Certifique-se de que estas duas linhas correspondem ao seu módulo:


 // Pin connected to 8×8 RGB matrix 
const int MATRIX_PIN = 14; // must be 14 on this module // Matrix size (width and height)
 const int MATRIX_WIDTH = 8; 
const int MATRIX_HEIGHT = 8; 

Se você copiar um exemplo da biblioteca NeoMatrix, pode usar um pino ou tamanho diferente; sempre altere-os para corresponder a esta placa.

Brilho do Texto

O brilho é geralmente controlado com um valor entre 0 e 255, onde 0 é desligado e 255 é o brilho máximo. Um valor moderado geralmente é suficiente:


// Overall matrix brightness (0–255) 
uint8_t matrixBrightness = 40; // comfortable indoor brightness // In 
setup(): 
matrix.setBrightness(matrixBrightness); 

Se você usar o painel em um ambiente iluminado ou por um curto período, pode aumentar esse valor, mas evite subir muito se estiver perto do display.

Texto para Rolagem

A mensagem real é armazenada como uma string. No vídeo, o texto de exemplo éRobojax. Você pode alterar para qualquer rótulo ou mensagem curta que desejar:


 // Text to scroll on the 8×8 matrix const char scrollText[] = "Robojax";
 // change this to your message 

Tenha em mente que esta é apenas uma matriz 8×8, portanto mensagens muito longas levarão mais tempo para rolar e podem se tornar difíceis de ler.

Cor do Texto (Valores RGB)

A cor do texto em rolagem é definida pelos componentes vermelho, verde e azul (0-255). Por exemplo, o vermelho puro é(255, 0, 0), verde puro é(0, 255, 0), e azul puro é(0, 0, 255). No esboço você verá algo como:


 // Text color (R, G, B) uint8_t textRed = 255; // red component uint8_t textGreen = 0; // green component uint8_t textBlue = 0; // blue component 

Para mudar a cor:

  • Amarelo:textRed = 255; textGreen = 255; textBlue = 0;
  • Ciano:textRed = 0; textGreen = 255; textBlue = 255;
  • Branco:textRed = 255; textGreen = 255; textBlue = 255;

O vídeo também demonstra o uso de um seletor de cores online para encontrar os valores RGB e, em seguida, inseri-los no código.:contentReference[oaicite:1]{index=1}

Velocidade de Rolagem (Atraso Entre Quadros)

A velocidade de rolagem é controlada por um valor de atraso em milissegundos entre cada etapa de atualização. Um valor menor faz o texto se mover mais rápido; um valor maior o desacelera. No esboço, você deve encontrar uma variável como:


// Delay between scroll steps (in milliseconds) int scrollDelayMs = 50; 
// smaller = faster, larger = slower 

Exemplos:

  • scrollDelayMs = 20;→ rolagem rápida.
  • scrollDelayMs = 50;→ velocidade média (similar ao vídeo).
  • scrollDelayMs = 100;ou mais → rolagem lenta e de fácil leitura.

Dentro doloop(), este valor é usado em umdelay(scrollDelayMs);chame após cada redesenho da posição do texto.

Direção de Rolagem (Opcional)

No projeto "scroll de texto básico", geralmente rolamos para a esquerda, mas é útil definir uma variável de direção simbólica para que você possa experimentar outras direções depois (esquerda, direita, para cima, para baixo).

Um padrão comum é:


 // Scroll direction selector // 0 = left, 1 = right, 2 = up, 3 = down 
int scrollDirection = 0; // default: scroll to the left 

O loop principal então verificascrollDirectione move o texto na direção escolhida. Para o Projeto 2, você pode deixá-lo em0(a esquerda), mas se você estender o esboço mais tarde, pode adicionar condições como:


 if (scrollDirection == 0) { 
// move text left 
} else if (scrollDirection == 1) { 
// move text right 
} else if (scrollDirection == 2) { 
// move text up
 } else if (scrollDirection == 3) { 
// move text down 
}
 

Para este artigo, documentamos apenas a configuração. A implementação completa faz parte do código carregado abaixo do artigo.

Resumo

O Projeto 2 transforma o seu Matriz de LED RGB ESP32-S3 em um display de texto simples, mas chamativo. Editando apenas algumas variáveis no topo do código, você pode mudar rapidamente:

  • Qual mensagem é exibida (scrollText).
  • A cor do textotextRed,textGreen,textBlue).
  • A luminosidade da matriz (matrixBrightness).
  • A velocidade de rolagemscrollDelayMs).
  • A direção da rolagemscrollDirection, se você optar por usá-lo).

O esboço completo deste projeto está disponível abaixo deste artigo (carregado automaticamente pelo site). Para uma configuração detalhada passo a passo e uma demonstração ao vivo do texto rolante em ação, certifique-se de assistir à seção correspondente do vídeo. Se você gostou do projeto e deseja construí-lo você mesmo, também pode comprar o módulo de matriz de LED RGB ESP32-S3 através dos links afiliados listados abaixo do código.

Imagens

ESP32 S3 Matrix
ESP32 S3 Matrix
ESP32 S3 Matrix  pin out
ESP32 S3 Matrix pin out
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
800-ESP32-S3 RGB LED Matrix Project 2 - Scrolling Text
Idioma: C++
Copiado!

Coisas que você pode precisar

Recursos e referências

Arquivos📁

Arquivo Fritzing