Raspberry Pi Bibliothek für mehrzeilige m x n MAX7219 LED Matrizen

In diesem Tutorial zeige ich die Benutzung und eine Demo des Treibers für mehrzeilige MAX7219 Matrizen, welchen ich geschrieben habe.Mit dieser Bibliothek lassen sich verschiedene aneinander gesteckte quadratische Matrizen als ein ganzes Modul steuern und u.a. Texte und sogar Bilder darauf projezieren.

Meine Bibliothek ist eine erweiterte und verbesserte Version von JonA1961’s MAX7219array (https://github.com/JonA1961/MAX7219array)

 

Übersicht

 

Zubehör

Beim Kauf von MAX7219 Matrizen, solltest du darauf achten, dass diese quadratisch sein müssen.

In diesem Artikel zeige ich wie man eine MAX7219 LED Matrix zusammenlötet.

 

Vorbereitung

Um die LED Matrizen einwandfrei nutzen zu können, muss die python spi Bibliothek installiert sein. Falls dies bereits geschehen ist, kannst du diesen Schritt überspringen.

Falls nicht, empfehle ich den ersten Teil dieses Artikels, in dem die Installation beschrieben ist:
http://www.100randomtasks.com/simple-spi-on-raspberry-pi

 

Aufbau der Raspberry Pi LED Matrizen

Nachdem du alle Matrizen zusammengelötet hast, müssen sie noch verbunden werden. Damit die Darstellung mittels des Treibers korrekt ist, ist es wichtig sie wie auf den Bildern unten zu verkabeln. Die erste Matrix ist von vorne gesehen unten links, die folgenden darüber. Wenn die Spalte gefüllt ist, kommt die nächste Matrix in die Spalte rechts daneben nach unten, die folgenden wieder darüber usw. Die Enden der Spalten kannst du mit Jumperkabeln verbinden, die aneinander liegenden mittels kleinen Jumpern.

 

20140801_145824
Vorderseite (Matrizen sind nummeriert)
 

back
Rückseite (Jumper Kabel von Matrix 1 geht zum RaspberryPi)
 

Jede Matrix hat folgende Pins:

Rechts: CLK – CS – DIN – GND – VCC

Links: CLK – CS – DOUT – GND – VCC

Der DOUT Pin der vorherigen Matrix wird mit dem DIN der folgenden Matrix verbunden.  Die anderen Pins werden entsprechend ihres Namen miteinander verbunden.

Die Pins der ersten Matrix gehen wie folgt mit dem Pi verbunden:

board
 

LED Matrix Bibliothek installieren

Zum einfachen download meiner Bibliothek habe ich ein GitHub Repo angelegt, was das installieren sehr einfach macht (der github client sollte natürlich installiert sein):

git clone https://github.com/tutRPi/multilineMAX7219.git && cd multilineMAX7219

In diesem Ordner sind nun zwei wichtige Dateien:

multilineMAX7219.py – Die eigentliche Hauptdatei, welche alle Funktionen enthält

multilineMAX7219_fonts.py – Diese Datei enthält die Buchstaben und Zeichen der Schriften. Falls du eine neue Schriftart hinzufügen willst, füge sie in dieser Datei hinzu.

 

Es ist wichtig die multilineMAX7219.py Datei (Zeile 113/114) zu bearbeiten und deine Größe in MATRIX_WIDTH und MATRIX_HEIGHT einzutragen.

 

Demo Code – 8×8 LED Matrix

Um eine Demo laufen zu lassen, gib folgendes ein:

python multilineMAX7219_demo.py

Hier sind einige Effekte und Funktionen demonstriert.

 

Ich habe vor allem einen Schwerpunkt auf die Graphikfunktionen gelegt und daher auch einen Editor zum „Bilder zeichnen“ erstellt, welche du sehr einfach mit der Bibliothek visualisieren kannst.

Die Seite mit dem Editor gibt’s hier.

Wie du siehst ist der Code des Raspberry Pi Logos bereits vorgegeben (auf 3×3 Matrizen). Mit Python kann es auch eingefügt werden:

logo = [[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,1,1,1,0],[0,0,0,1,1,1,1,1,0,0,0,0,1,1,1,0,0,0,0,1,0,0,1,0],[0,0,1,1,0,0,1,0,0,0,0,0,1,0,0,1,1,1,1,0,0,0,0,1],[0,0,1,0,0,0,0,1,1,1,1,1,1,1,0,0,1,1,0,0,0,1,0,1],[0,1,0,0,0,0,1,1,1,1,0,0,1,1,1,0,0,1,0,0,0,1,0,1],[0,1,1,1,1,1,1,1,1,0,0,0,0,1,1,0,0,1,0,0,1,0,0,1],[0,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,0,0,1,0,1,0],[1,1,0,1,1,0,0,1,1,0,0,0,0,1,0,0,1,1,0,1,0,0,1,0],[1,0,0,1,0,0,0,1,1,1,0,0,1,1,0,0,1,1,1,0,0,0,1,0],[1,0,0,1,0,0,0,0,1,1,1,1,1,1,0,0,0,1,1,1,1,1,0,0],[1,0,0,1,0,0,0,0,1,1,1,1,1,1,0,0,0,1,1,1,1,1,0,0],[1,0,0,1,0,0,0,1,1,1,0,0,1,1,0,0,1,1,1,0,0,0,1,0],[1,1,0,1,1,0,0,1,1,0,0,0,0,1,0,0,1,1,0,1,0,0,1,0],[0,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,0,0,1,0,1,0],[0,1,1,1,1,1,1,1,1,0,0,0,0,1,1,0,0,1,0,0,1,0,0,1],[0,1,0,0,0,0,1,1,1,1,0,0,1,1,1,0,0,1,0,0,0,1,0,1],[0,0,1,0,0,0,0,1,1,1,1,1,1,1,0,0,1,1,0,0,0,1,0,1],[0,0,1,1,0,0,1,0,0,0,0,0,1,0,0,1,1,1,1,0,0,0,0,1],[0,0,0,1,1,1,1,1,0,0,0,0,1,1,1,0,0,0,0,1,0,0,1,0],[0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,1,1,1,0],[0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]]

Und nun kann es gezeichnet werden.

LEDMatrix.gfx_sprite_array(logo)
LEDMatrix.gfx_render()

Für mehr Details schau am besten in die  multilineMAX7219_demo.py Datei und in multilineMAX7219.py wo alle Funktionen beschrieben sind.

 

Hier noch ein Beispiel Video (nur eine verkleinerte Version der Demo Datei):

191 Kommentare

  1. Frage: Wie viele von den LED-Matrizen kann man problemlos direkt an den RPI anschließen?
    P.S. Ein wirklich klasse Tutorial! Danke

    Antworten
    • Ich hatte 15 Module (3×5) getestet, was kein Problem darstellte. Im Prinzip sind unendlich viele möglich, wobei der Spannungsabfall natürlich beachtet werden muss.

      Antworten
      • Vielen Dank. Ich dachte nur, weil in irgendeinem anderen Artikel von einer notwendigen externen Spannungsquelle die Rede ist.

      • Die von mir verwendeten Module brauchen 5V Eingangsspannung, sind also problemlos ohne externe Spannungsquelle betreibbar. Ab einer gewissen Anzahl (konnte ich leider noch nicht testen, wie viele genau) ist eine zusätzliche Spannungsquelle nötig. Größere Module (z.B. 32x16LEDs) werden i.d.R. nicht direkt vom Pi versorgt.

      • Also sollten meine 1×4 Module funktionieren 😀
        Noch eine andere Frage: Geht Ihr Editor für Matrix-Graphiken noch (bei mir geht er nicht; vielleicht falscher Browser)

      • Ok hat sich schon erledigt, bei Chrome funktioniert es nicht, dafür aber bei Firefox 🙂

  2. So, ich habe jetzt ein weiteres Problem:
    Nach dem Zusammenlöten wird jetzt beim Programmstart nur wirres Zeug angezeigt. Woran könnte das liegen?

    Antworten