Die Pixelmatrix Combo von Oxocard ist ein faszinierendes Tool für alle, die gerne mit LEDs arbeiten und kreative Projekte umsetzen möchten. Diese 5×5 RGB LED Matrix lässt sich direkt in den Mikrocontroller stecken und besticht durch ihre einfache Programmierbarkeit über einen leistungsstarken Online-Editor. Ganz gleich, ob du Anfänger oder fortgeschrittener Entwickler bist – die Pixelmatrix bietet dir unzählige Möglichkeiten, um beeindruckende Lichtanimationen und interaktive Projekte zu gestalten.
In diesem Beitrag zeige ich dir, wie diese RGB LED Matrix aufgebaut ist, wie sie mit der Oxocard verbunden wird und wie du sie sowohl mit NanoPy als auch mit Blockly programmieren kannst. So kannst du Schritt für Schritt eigene Projekte entwickeln und das volle Potenzial der Pixelmatrix Combo ausschöpfen.
Hinweis: Dieses Produkt wurde mir vom Entwickler der Oxocard auf der Maker Faire 2024 in Hannover kostenlos zur Verfügung gestellt. Meine Meinung und Bewertung des Produkts basieren jedoch ausschließlich auf meinen eigenen Erfahrungen und sind unabhängig von dieser Bereitstellung.
Inhaltsverzeichnis
- Vorstellung des Oxocard Connect Mikrocontrollers
- Lieferumfang und Aufbau der Pixelmatrix Combo
- Beispielprogramm auf dem Modul
- Programmieren der Pixelmatrix in NanoPy
Vorstellung des Oxocard Connect Mikrocontrollers
Für den Betrieb und die Programmierung der Pixelmatrix Combo benötigst du den Mikrocontroller Oxocard Connect. Dieser kleine ESP32 mit USB-Typ-C Schnittstelle und Farbdisplay dient als Schaltzentrale.
Der Vorteil der Oxocard Connect ist, dass diese in einem fertigen Gehäuse untergebracht ist und durch die seitliche Schnittstelle kannst du verschiedene Module anschließen und programmieren. Der Code wird dabei nicht auf dem Mikrocontroller gespeichert, sondern auf dem eingesteckten Modul. Das hat den Vorteil, dass man mehrere Schaltungen mit dem Mikrocontroller aufbauen und beliebig wechseln kann, ohne dass man zuvor die Pins zurücksetzt.
Wenn du mehr über diesen Mikrocontroller erfahren möchtest, dann empfehle ich dir einen Blick in den Beitrag Oxocard Connect enthüllt: Neue Horizonte für kreative Köpfe welchen ich dir dafür bereits veröffentlicht habe.
Lieferumfang und Aufbau der Pixelmatrix Combo
Zum Lieferumfang der Pixelmatrix Combo gehört neben der Platine mit den 25 RGB NeoPixel welche seriell verbunden sind noch ebenso 25 Kappen, welche als Diffusor dienen, denn diese NeoPixel können sehr hell und grell sein. Die Helligkeit der NeoPixel LEDs lässt sich auch im Code manipulieren.
Auf der Maker Faire wurde gezeigt, wie multifunktional diese Matrix eingesetzt werden kann. Auf dem Bild siehst du einen Ball, welcher mit dieser Matrix aufgebaut wurde und auch das Herz ist recht einfach möglich.
Beispielprogramm auf dem Modul
Wie erwähnt befindet sich der Code nicht auf dem Mikrocontroller, sondern auf dem Modul welches du in den Mikrocontroller steckst. Auf der Pixelmatrix Combo befindet sich ein kleines Beispiel, welches die Zahlen von 9 bis 0 in unterschiedlichen Farben anzeigt.
Programmieren der Pixelmatrix in NanoPy
Der Editor NanoPy ist ein Online-Editor, welcher dir kostenfrei unter https://editor.nanopy.io/ zur Verfügung gestellt wird, der Mikrocontroller Oxocard Connect verfügt über einen ESP32, welchen wir wiederum via WiFi anbinden.
Im oben verlinkten Video erläutere ich dir im Detail, wie du die Pixelmatrix Combo in NanoPy mit der Oxocard Connect in NanoPy programmierst. Nachfolgend möchte ich dir diese Schritte mit Bildern aufzeigen.
Aufbauen der WiFi-Verbindung für die Programmierung über NanoPy
Wenn du den Mikrocontroller über die USB-Typ-C Schnittstelle mit Strom versorgst, startet das System automatisch. Im Hauptmenü kannst du den Menüpunkt ‘WiFi’ auswählen. Von dort aus wählst du dein lokales WLAN-Netzwerk aus der Liste der verfügbaren Netzwerke. Im nächsten Schritt gibst du das Passwort mithilfe des kleinen Joysticks ein, indem du die einzelnen Zeichen auswählst. Um den Vorgang abzuschließen, bestätigst du deine Eingabe, indem du das Feld ‘OK’ unten rechts auswählst. Der Mikrocontroller wird nun eine Verbindung zu deinem WLAN herstellen. Sobald die Verbindung erfolgreich ist, kannst du alle weiteren Schritte, wie die Programmierung über NanoPy, bequem durchführen. Diese stabile WiFi-Verbindung ist entscheidend, um den Mikrocontroller mit dem Online-Editor zu koppeln und Programme drahtlos auf das Gerät zu laden.
Verbinden zu NanoPy
Nachdem die WiFi-Verbindung erfolgreich hergestellt wurde, kannst du den Mikrocontroller mit NanoPy verbinden. Dazu wählst du im Hauptmenü des Mikrocontrollers den Eintrag ‘PAIRING’. Nun öffnest du auf deinem PC den Browser und gehst zur Adresse https://editor.nanopy.io. Dort wirst du aufgefordert, den Pairing-Code einzugeben, der dir auf dem Display des Mikrocontrollers angezeigt wird. Gib diesen Code in das entsprechende Feld auf der Website ein, um die Verbindung herzustellen. Sobald die Verbindung erfolgreich aufgebaut wurde, wird das Display des Mikrocontrollers geleert. Du bist nun bereit, deinen Mikrocontroller direkt über den Browser zu programmieren und kannst auf alle Funktionen von NanoPy zugreifen. Diese einfache und schnelle Verbindungsmethode ermöglicht es dir, Programme drahtlos und in Echtzeit auf deinen Mikrocontroller zu übertragen.
Ansteuern der NeoPixel
Die NeoPixel auf der Pixelmatrix sind wie im folgenden Bild angeordnet. Du beginnst oben rechts mit dem Index 0 und endest unten links mit dem Index 24. Wichtig zu beachten ist, dass die NeoPixel zeilenweise nummeriert sind. Das bedeutet, nach dem letzten Pixel einer Zeile wird der Index in der nächsten Zeile an derselben Seite fortgeführt – es wird also nicht umlaufend nummeriert.
Die Programmiersprache für die Oxocard Connect im NanoPy ist Python, jedoch eine sehr spezielle Version, welche für die Oxocard optimiert wurde, daher findest du zusätzliche Features welche dir die Arbeit deutlich erleichter.
Im nachfolgenden kleinen Beispiel aktiviere ich die Neopixel in allen vier Ecken in unterschiedlichen Farben.
#initialisieren der NeoPixel initDigitalLeds(C_PIN_01, 25, C_LED_TYPE_WS2812) #setzen des Modus für die Farben der NeoPixel setDigitalLedMode(C_LED_MODE_GRB) #aktivieren der NeoPixel mit Index 0 in der Farbe grün setDigitalLed(0, 0, 100, 0) #aktivieren der NeoPixel mit Index 4 in der Farbe blau setDigitalLed(4, 0, 0, 100) #aktivieren der NeoPixel mit Index 24 in der Farbe rot setDigitalLed(24, 100, 0, 0) #aktivieren der NeoPixel mit Index 20 in der Farbe gelb setDigitalLed(20, 100, 100, 0) #setzen der Status & Farben der NeoPixel applyDigitalLeds()
Der Code lässt wie erwähnt die vier NeoPixel in den Ecken in unterschiedlichen Farben aufleuchten. Mit dieser Logik und so wenig Code können wir nun unterschiedliche Formen, Buchstaben und Zahlen darstellen.
Beispiel – Zahlen & Buchstaben auf der Pixelmatrix anzeigen
Du findest im NanoPy Editor viele Beispiele zu den vorhandenen Cartridges, unter anderem auch für die Pixelmatrix. Eines der Beispiele ist die Darstellung von Zahlen (siehe Screenshot rechts).
Aufbau der Anzeige eines Buchstabens
In meinem Fall habe ich die Zeile in ein Bitmuster maskiert, d.h. jede Stelle in dem digitalen Wert repräsentiert einen Status der LED in der Zeile.
Die Pixelmatrix hat 5 Spalten und 5 Zeilen. Daraus resultiert eine Bitmuster wie folgt:
0b01110, 0b01010, 0b01110, 0b01010, 0b01010, #Buchstabe A
Jede Zeile ist hier durch ein Komma getrennt und somit ist es recht einfach Zahlen und Buchstaben mit diesem einfachen Muster zu erstellen.
Das fertige Programm zum Anzeigen von Zahlen und Buchstaben
Nachfolgend das fertige Programm zum Anzeigen von Zahlen und Buchstaben auf der Pixelmatrix von Oxocard.
#initialisieren der NeoPixel initDigitalLeds(C_PIN_01, 25, C_LED_TYPE_WS2812) #setzen des Modus für die Farben der NeoPixel setDigitalLedMode(C_LED_MODE_GRB) digits =[ 0b01110, 0b01010, 0b01010, 0b01010, 0b01110, #Zahl 0 0b00100, 0b00110, 0b00100, 0b00100, 0b01110, #Zahl 1 0b01110, 0b01000, 0b01110, 0b00010, 0b01110, #Zahl 2 0b01110, 0b01000, 0b01110, 0b01000, 0b01110, #Zahl 3 0b01010, 0b01010, 0b01110, 0b01000, 0b00010, #Zahl 4 0b01110, 0b00010, 0b01110, 0b01000, 0b01110, #Zahl 5 0b01110, 0b00010, 0b01110, 0b01010, 0b01110, #Zahl 6 0b01110, 0b01000, 0b00100, 0b00010, 0b01000, #Zahl 7 0b01110, 0b01010, 0b01110, 0b01010, 0b01110, #Zahl 8 0b01110, 0b01010, 0b01110, 0b01000, 0b01110, #Zahl 9 0b01110, 0b01010, 0b01110, 0b01010, 0b01010, #Buchstabe A 0b01110, 0b00010, 0b01000, 0b00010, 0b01110, #Buchstabe C 0b01110, 0b00010, 0b01110, 0b00010, 0b01110, #Buchstabe E 0b01110, 0b00010, 0b01110, 0b00010, 0b01000 #Buchstabe F ] #Alle RGB NeoPixel deaktivieren def clearMatrix(): for index in [0..24] setDigitalLed(index, 0, 0, 0) def checkLed(row, index)->bool: return row & (1 << index) clearMatrix() applyDigitalLeds() count = -1 #anzeigen einer Zahl / eines Buchstabens def displayDigit(row, count)->int: innerCounter = count for index in [0..4]: innerCounter++ if checkLed(row, index): setDigitalLed(innerCounter, 0, 0, 100) else: setDigitalLed(innerCounter, 0, 0, 0) return innerCounter rowCount = -1 count = -1 for row in digits: rowCount++ if rowCount % 5 == 0: count = -1 delay(500); count = displayDigit(row, count) applyDigitalLeds()
1 thought on “Pixelmatrix Combo von Oxocard: So programmierst du die 5×5 LED Matrix”