ESP32-S3 RGB-LED-Matrix-Projekt 2 - Lauftext

ESP32-S3 RGB-LED-Matrix-Projekt 2 - Lauftext

Projekt 2 - Textlauf auf ESP32-S3 RGB-LED-Matrix

In diesem Projekt verwandeln wir die ESP32-S3 RGB-LED-Matrix in ein kleines Textbanner. Eine kurze Nachricht (zum BeispielRobojax) scrollt über das 8×8 RGB-Display, und Sie können den Text, die Farbe, die Helligkeit und die Scrollgeschwindigkeit direkt im Code ganz einfach ändern. Dies ist sehr nützlich für einfache Benachrichtigungen, Namensschilder oder kleine Statusmeldungen.

Alle sechs Projekte dieser Reihe werden in einem einzigen YouTube-Video demonstriert und erklärt. Dasselbe Video ist auf dieser Seite eingebettet, sodass Sie genau sehen können, wie der Textlauf in Echtzeit aussieht und wie jede Einstellung die Animation beeinflusst. Der komplette Code für dieses Projekt wird automatisch unter dem Artikel geladen, und Sie können das ESP32-S3 RGB LED Matrix-Modul in den unter dem Codesektor aufgeführten Affiliate-Shops kaufen.

Dieses Projekt basiert auf den Grundlagen von Projekt 1 (bewegender Punkt und Farbsteuerung) und fügt die Textdarstellung und das Scrollen mit der NeoMatrix-Bibliothek hinzu.

ESP32-S3 RGB-LED-Matrixmodul Übersicht

Die Hardware ist in allen sechs Projekten gleich: ein ESP32-S3-Mikrocontroller mit Wi-Fi und Bluetooth, eine 8×8 RGB-LED-Matrix (64 adressierbare RGB-LEDs), ein QMI8658C-Beschleunigungsmesser, USB-Port und zugängliche IO-Pins.:contentReference[oaicite:0]{index=0}

  • ESP32-S3- Haupt-CPU mit Wi-Fi/BLE für fortgeschrittene Projekte.
  • 8×8 RGB-Matrix- 64 RGB-LEDs für Symbole, Text und Animationen.
  • QMI8658C Beschleunigungsmesser- in späteren Projekten für Neigung und Ausrichtung verwendet.
  • USB-Anschluss- verwendet für Stromversorgung und Programmierung über die Arduino IDE.
  • Freiliegende Stifte- Lassen Sie das Board wie ein normales ESP32 für andere IO verwenden.
  • Boot- / Reset-Tasten- für das Hochladen von Firmware und das Neustarten von Skizzen.

In Projekt 2 konzentrieren wir uns hauptsächlich auf die Matrix- und NeoMatrix-Textfunktionen. Der Beschleunigungssensor wird noch nicht verwendet, aber dasselbe Board wird alle späteren Interaktionen und Spielprojekte ebenfalls verwalten.

Im Video behandelte Projekte (Zeitstempel)

Das Video, das zu diesem Artikel gehört, deckt alle sechs Projekte ab. Die ungefähren Zeitstempel sind:

  • 00:00- Einleitung
  • 02:01- ESP32-Boards installieren
  • 03:32- Bibliotheken installieren
  • 05:32- Projekt 1: Bewegender Punkt
  • 11:11- Projekt 2: Textlauf
  • 12:59- Projekt 3: HTTP-Text
  • 16:41- Projekt 4: Tilt Dot
  • 18:55- Projekt 5: Nach oben zeigend
  • 20:02- Projekt 6: Zielspiel

Es wird empfohlen, das Video anzusehen, während Sie diesen Artikel lesen. Es zeigt den Text, der live auf der LED-Matrix scrollt, und führt durch alle Schritte in der Arduino IDE.

ESP32-Boards im Arduino IDE installieren

Bevor Sie den Textlaufcode ausführen, stellen Sie sicher, dass die ESP32-Unterstützung in Ihrer Arduino IDE installiert ist:

  1. ÖffnenFile > Preferencesund füge die URL der ESP32-Boards zu "Zusätzliche Board-Manager-URLs" hinzu.
  2. Gehe zuTools > Board > Boards Manager…, suche nachESP32und installieren Sie das offizielle ESP32-Paket.
  3. Wählen Sie Ihr ESP32-S3 RGB Matrix-Board ausTools > Board.
  4. Schließen Sie das Modul über USB an und wählen Sie den richtigen COM-/Seriellport aus unterTools > Port.

Wenn der Boardtyp oder der Port nicht korrekt ist, wird der Sketch nicht hochgeladen.

Installation von NeoMatrix und erforderlichen Bibliotheken

Der Textlauf wird mit Adafruit NeoMatrix und seinen Abhängigkeiten implementiert. Im Video werden sie über den Bibliotheksmanager installiert.

Du wirst brauchen:

  • Adafruit NeoMatrix
  • Adafruit NeoPixel
  • Adafruit GFX Library
  1. ÖffnenSketch > Include Library > Manage Libraries….
  2. Suche nachAdafruit NeoMatrixund klickenInstallieren.
  3. Wenn Sie dazu aufgefordert werden, erlauben Sie die Installation.Adafruit GFXundAdafruit NeoPixelals Abhängigkeiten.

Wenn die Installation erfolgreich ist, sollten Sie Beispiel-Skizzen unter sehenFile > Examples > Adafruit NeoMatrixundFile > Examples > Adafruit NeoPixel.

Projekt 2 - Code-Einstellungen (Textlauf)

Der vollständige Text-Scroll-Sketch wird automatisch unter diesem Artikel auf der Website geladen. Hier konzentrieren wir uns nur auf die Konfigurationswerte, die Sie wahrscheinlich bearbeiten möchten: Pin, Matrixgröße, Helligkeit, Textzeichenfolge, Farbe, Scrollgeschwindigkeit und optionale Richtung.

Alle nachfolgenden Snippets stammen aus dem Konfigurationsbereich am Anfang des Sketches, sodass Sie das Verhalten schnell anpassen können, ohne die Hauptlogik zu berühren.

Matrix-Pin und Größe

Genau wie Projekt 1 ist die RGB-Matrix mit GPIO 14 verbunden und enthält 64 LEDs (8×8). Stellen Sie sicher, dass diese beiden Zeilen mit Ihrem Modul übereinstimmen:


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

Wenn Sie ein Beispiel aus der NeoMatrix-Bibliothek kopieren, könnte es einen anderen Pin oder eine andere Größe verwenden; ändern Sie sie immer, um mit diesem Board übereinzustimmen.

Helligkeit des Textes

Die Helligkeit wird typischerweise mit einem Wert zwischen 0 und 255 gesteuert, wobei 0 aus und 255 maximale Helligkeit bedeutet. Ein moderater Wert ist normalerweise ausreichend:


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

Wenn Sie das Panel in einem hellen Umfeld oder nur für kurze Zeit verwenden, können Sie diesen Wert erhöhen, sollten jedoch vermeiden, ihn zu hoch zu setzen, wenn Sie sich in der Nähe des Displays befinden.

Text zum Scrollen

Die eigentliche Nachricht wird als Zeichenfolge gespeichert. Im Video ist der BeispieltextRobojax. Sie können es in jedes beliebige kurze Label oder Nachricht ändern, die Sie möchten:


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

Beachten Sie, dass dies nur eine 8×8-Matrix ist, sodass sehr lange Nachrichten länger zum Scrollen benötigen und möglicherweise schwer zu lesen sind.

Textfarbe (RGB-Werte)

Die Farbe des scrollenden Textes wird durch die roten, grünen und blauen Komponenten (0-255) festgelegt. Zum Beispiel ist reines Rot(255, 0, 0), reines Grün ist(0, 255, 0), und reines Blau ist(0, 0, 255). In der Skizze werden Sie etwas sehen wie:


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

Um die Farbe zu ändern:

  • Gelb:textRed = 255; textGreen = 255; textBlue = 0;
  • Cyan:textRed = 0; textGreen = 255; textBlue = 255;
  • Weiß:textRed = 255; textGreen = 255; textBlue = 255;

Das Video zeigt auch, wie man einen Online-Farbwähler verwendet, um die RGB-Werte zu finden und sie dann in den Code einzugeben.:contentReference[oaicite:1]{index=1}

Scrollgeschwindigkeit (Verzögerung zwischen den Frames)

Die Scrollgeschwindigkeit wird durch einen Verzögerungswert in Millisekunden zwischen jedem Aktualisierungsschritt gesteuert. Ein kleinerer Wert lässt den Text schneller bewegen; ein größerer Wert verlangsamt ihn. Im Sketch solltest du eine Variable finden wie:


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

Beispiele:

  • scrollDelayMs = 20;→ schnelles Scrollen.
  • scrollDelayMs = 50;→ mittlere Geschwindigkeit (ähnlich wie im Video).
  • scrollDelayMs = 100;oder mehr → langsamer, leicht lesbarer Bildlauf.

Innerhalb desloop(), dieser Wert wird in einemdelay(scrollDelayMs);Nach jedem Neuzeichnen der Textposition aufrufen.

Scrollrichtung (Optional)

Im Projekt "Basistextlauf" scrollen wir normalerweise nach links, aber es ist nützlich, eine symbolische Richtungsvariable zu definieren, damit Sie später mit anderen Richtungen experimentieren können (links, rechts, oben, unten).

Ein häufiges Muster ist:


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

Die Hauptschleife überprüft dannscrollDirectionund bewegt den Text in die gewählte Richtung. Für Projekt 2 kannst du es so belassen.0(links), aber wenn Sie die Skizze später erweitern, können Sie Bedingungen hinzufügen wie:


 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 
}
 

Für diesen Artikel dokumentieren wir nur die Einstellung. Die vollständige Implementierung ist Teil des Codes, der unter dem Artikel geladen wird.

Zusammenfassung

Projekt 2 verwandelt Ihre ESP32-S3 RGB-LED-Matrix in eine einfache, aber auffällige Textanzeige. Durch das Bearbeiten von nur wenigen Variablen am Anfang des Codes können Sie schnell ändern:

  • Welche Nachricht wird angezeigt (scrollText).
  • Die Farbe des TextestextRed,textGreen,textBlue).
  • Die Helligkeit der MatrixmatrixBrightness).
  • Die ScrollgeschwindigkeitscrollDelayMs).
  • Die Richtung des ScrollensscrollDirection, wenn Sie sich entscheiden, es zu verwenden).

Der vollständige Entwurf für dieses Projekt ist unter diesem Artikel verfügbar (wird automatisch von der Website geladen). Für eine detaillierte Schritt-für-Schritt-Konfiguration und eine Live-Demonstration des scrollenden Textes in Aktion sollten Sie den entsprechenden Abschnitt des Videos ansehen. Wenn Ihnen das Projekt gefällt und Sie es selbst aufbauen möchten, können Sie auch das ESP32-S3 RGB LED-Matrixmodul über die untenstehenden Affiliate-Links erwerben.

Bilder

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
Sprache: C++
Kopiert!

Dinge, die Sie vielleicht brauchen

Ressourcen & Referenzen

Dateien📁

Fritzing-Datei