MAX7219 8x32 4 in 1 Dot Matrix LED Anzeigemodul

Diese Sektion dient den von AZDelivery vertriebenen Zubehörteilen, die sich auch am Raspberry Pi verwenden lassen.
Antworten

Themenstarter
Outi
Administrator
Administrator
Beiträge: 471
Registriert: 13.02.2015, 22:24
RasPis: 10+
Kontaktdaten:

MAX7219 8x32 4 in 1 Dot Matrix LED Anzeigemodul

Beitrag von Outi »

History:
08.02.2021 - Erste Fertigstellung


Hinweis:
Diese Anleitung/Information erhebt keinen Anspruch auf Vollständigkeit und kann Fehler enthalten und die Benutzung erfolgt auf eigene Gefahr.
Es wird keinerlei Haftung für Schäden und/oder Datenverluste übernommen.

Info:
Diese Anleitung setzt ein fertig konfiguriertes Raspberry Pi OS (hier reicht die Lite Version) und das Matrix Anzeigemodul voraus.
Zudem muss der SPI Bus aktiviert sein.

Bild

Das Matrix Modul ist u.a. bei Amazon erhältlich: <= hier Klicken für weitere Infos ....

Auf dem obigen Bild ist auch der komplette Lieferumfang zu sehen: Modul, 5pol. Verbindungskabel, 5pol. 90 Grad Pinleiste

Da bei dem gelieferten Modul normalerweise bereits eine Pinleiste angelötet wurde, muss die einzeln beiliegende nicht angelötet werden.
Diese macht im Prinzip nur dann Sinn, wenn am letzten Modulteil weitere Module anhängen will und die Kopplung über eine Platine oder Kabel realisieren will.

Hier die Rückseite des Moduls:

Bild

Es wurden also 4x einzelne 64 LED Matrixmodule auf einer Platine aneinandergekoppelt.

Von der Rückseite aus gesehen, ist die Pinleiste rechts am Modul, bei dem ich (von oben nach unten) das beiliegende Kabel wie folgt angesteckt habe:

Bild

Dabei sind die Kabelfarben bei mir von oben nach unten wie folgt angeschlossen:

PinFarbe
VCCblau
GNDviolett
DINgrau
CSweiß
CLKschwarz
Wer hier ein Kabel mit anderen Farben bekommen hat oder eigene Kabel nutzen möchte, muss dann eben die Verbindung auf die eigenen Farben anpassen und die Farben hier entsprechend ersetzen.

Für den Anschluss am Raspberry Pi kann man prinzipiell jeden Pi nutzen, sofern dieser einen 40pol GPIO Anschluss hat und dieser mit dem passenden Header bestückt wurde.
Ich habe mich hier für einen Raspberry Pi 3B+ entschieden, den ich für Testzwecke rumliegen habe.
Wer will, kann auch einen Zero W(H) nutzen, die Ansprüche an das Display sind nicht sehr hoch.
Ein Pi 4B wäre sicherlich nur wegen dem Display und einfachen Aufgaben oversized, es sei denn, man hat eine Anwendung, die Power und ein Display benötigen.


Bild

Bevor nun der Anschluss und die Einrichtung des Matrix Displays erfolgt, sollte der Pi bereits mit dem Raspberry Pi OS installiert sein.
Wer das noch nicht getan hat, kann dies nach dieser Anleitung nachholen:

Raspberry Pi installieren: Raspberry Pi OS

Meine Wahl fiel also auf die Lite Version vom Raspberry Pi OS Image und dem Zugriff per SSH und WLan.

Wer seinen Pi bereits eingerichtet hat, kann natürlich auf die im Link gezeigte Installation verzichten und gleich zur Aktivierung von SPI gehen.

Wenn der Pi fertig eingerichtet ist, fahren wir ihn zunächst ohne Anschluss des Matrix Displays hoch und überprüfen, ob die SPI Schnittstelle aktiviert wurde und falls nicht, holen wir das nach.

Nach dem Einloggen mit dem User pi führen wir als erstes eine Paketaktualisierung durch.
Wurde der Pi neu eingerichtet, kann man alles problemlos mit

Code: Alles auswählen

sudo apt-get update && sudo apt-get dist-upgrade -y
durchführen (dauert auf dem Zero sicherlich eine ganze Weile, ja nach Aktualität).
Will man jedoch einen noch anderweitig genutzten Pi um das Display erweitern, bei dem jede Menge andere Prozesse laufen, kann ein Dist Upgrade ggf. in die Hose gehen, daher würde ich mich mit dem Befehl

Code: Alles auswählen

sudo apt-get update && sudo apt-get upgrade -y
begnügen aber auch hier geschieht alles auf eigene Gefahr.
Den ersten Teil vor dem && muss man aber auf jeden Fall durchziehen, sonst kann es sein, dass keine Pakete mehr gefunden werden, weil die Paketliste evtl. zu alt ist.

Sobald die Paketliste aktualisiert wurde, prüfen wir, ob die SPI Schnittstelle bereits läuft:

Code: Alles auswählen

lsmod | grep spi
Sollte nach der Eingabe oben nichts angezeigt werden, ist SPI deaktiviert.

Dann aktivieren wir SPI einfach über die Konfigurationsoberfläche.
Dazu starten wir raspi-config:

Code: Alles auswählen

sudo raspi-config
Es erscheint das Hauptmenü:

Bild

Dort gehen wir in den Punkt 3 (Interface Options) und erhalten die folgende Übersicht:

Bild

Hier den Punkt 4 (SPI) auswählen und die folgende Abfrage bestätigen:

Bild

Danach wird die Aktivierung bestätigt:

Bild

Dann noch mit OK bestätigen und raspi-config verlassen.

Zur Sicherheit booten wir den Pi neu

Code: Alles auswählen

sudo reboot
und loggen uns wieder ein.

Nun geben wir den Befehl zum Checken der SPI Schnittstelle wieder ein:

Code: Alles auswählen

lsmod | grep spi
Das Ergebnis sollte dann in etwa so aussehen:

Bild

Somit ist nun erstmal die wichtigste Konfiguration abgeschlossen, nach der wir nun den Pi herunterfahren und dann die Verkabelung vornehmen:

Code: Alles auswählen

sudo poweroff
Die weiteren Installationen und Konfigurationen erfolgen dann mit angeschlossenem Display.

Hinweis:
Während der Verkabelung MUSS die Stromverbindung vom Netzteil zum Pi abgezogen werden !!

Bitte genau schauen, was man wo anklemmt, es können sonst Pi und/oder Display einen irreperablen Schaden nehmen !!

Das Display arbeitet zwar zwischen 3,3V und 5V, der Raspbery Pi jedoch NUR mit 3,3V, daher alles auf 3,3V anschließen !!

Alles auf eigene Gefahr und eigenes Risiko !!

Nun geht es an die Pins vom Pi (GPIO).

Hier die offizelle Belegung: Externer Link Offizielle GPIO Belegung

Das ergibt bei mir folgende Verbindung an meinem Pi mit den passenden Farben des bei mir beiliegenden Kabels:
(Hier am Raspberry Pi gesehen.)

Pi PinPi GPIOFarbeDisplay Pin
173,3VblauVCC
20GroundviolettGND
19GPIO10grauDIN
24GPIO8weißCS
23GPIO11schwarzCLK

Das Ganze sieht dann in etwa so aus (mit den mir vorliegenden Farben):

Bild

Und in Real:

Bild

Nun fahren wir (nach zig mal Prüfen, ob auch wirklich alles richtig angeschlossen ist) den Pi wieder hoch und loggen uns ein.
Sollte dabei eins oder mehrere Teile des Displays bereits leuchten, scheint das normal zu sein.

Jetzt müssen noch diverse Pakete nachinstalliert werden, um das Display mit Python ansprechen zu können.

Python 2 und Python 3 sind im Lite Image bereits installiert und aktiviert, was wir ganz leicht herausfinden können:

Code: Alles auswählen

python2 -V
und

Code: Alles auswählen

python3 -V
ergeben untereinander folgende Ausgaben:

Code: Alles auswählen

pi@raspberrypi:~ $ python2 -V
Python 2.7.16
pi@raspberrypi:~ $ python3 -V
Python 3.7.3
pi@raspberrypi:~ $
Um zu sehen, welche Python Version benutzt wird, wenn wir nur python benutzen, erfahren wir durch den folgenden Befehl:

Code: Alles auswählen

python -V
Nach einer Neuinstallation des Pi Images oder wenn man es mal installiert und nie geändert hat, kommt höchstwahrscheinlich Python 2 raus.

Wir werden hier aber die Python Version 3 nutzen.
Ich habe die Version 2 getestet, jedoch wird diese nicht mehr supportet und es erschienen dementsprechend nur noch Fehlermeldungen.
Es spricht auch nichts gegen Python 3.

Um das Systemweit durchzuführen, müssen wir sogenannte Update Alternatives einrichten.
Die Prüfung auf vorhandene Alternatives per

Code: Alles auswählen

sudo update-alternatives --list python
ergibt höchstwahrscheinlich

Code: Alles auswählen

pi@raspberrypi:~ $ sudo update-alternatives --list python
update-alternatives: Fehler: keine Alternativen für python
sofern noch nie welche angelegt wurden.

Das ändern wir nun für Python 3 wie folgt:

Code: Alles auswählen

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.7 1
ergibt

Code: Alles auswählen

pi@raspberrypi:~ $ sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.7 1
update-alternatives: /usr/bin/python3.7 wird verwendet, um /usr/bin/python (python) im automatischen Modus bereitzustellen
Wenn wir jetzt

Code: Alles auswählen

python -V
eingeben, erscheint automatisch die Version 3:

Code: Alles auswählen

pi@raspberrypi:~ $ python -V
Python 3.7.3
Man könnte jetzt auch noch weitere Python Versionen installieren und hinzufügen und per

Code: Alles auswählen

sudo update-alternatives --config python
hin und her schalten, jedoch konzentrieren wir uns hier nur auf die im Image mitgelieferte Version, die für das Matrix Display ausreichen sollte.

Wer mehrere (u.A. doch auch noch Version 2) Pythons verwendet, kann einzelne nicht mehr benötigte Varianten auch wieder entfernen (z.B. 2.7):

Code: Alles auswählen

update-alternatives --remove python /usr/bin/python2.7
Da wir Python 2.7 aber nicht in die Liste aufgenommen haben, wird obiger Befehl wohl in eine Fehlermeldung laufen, dient aber als Beispiel.

Nun haben wir also als Standard Python 3.x.x und installieren weitere Pakete für das Matrix Display:

Code: Alles auswählen

sudo apt-get install build-essential python-dev python-pip python3-venv python3-pip libfreetype6-dev libjpeg-dev libopenjp2-7 libtiff5 -y
Das dauert nun ein wenig.

Nachdem der vorherige Schritt durchgelaufen ist, wird noch die aktuelle Bibliothek für das Matrix Display benötigt.

Diese wird mit dem folgenden Befehl installiert:

Code: Alles auswählen

sudo -H pip3 install --upgrade luma.led_matrix
Nachdem nun auch diese Bibliothek eingerichtet wurde, kann es schon an die ersten Python Programme gehen, um das Display zu testen.
Dazu holen wir uns da Python Skript aus der originalen AZDelivery Anleitung:

Externer Link luma.led_matrix Demo

Wer diese Datei nicht herunterladen kann, findet sie auch hier auf der Webseite:

Code: Alles auswählen

wget wget https://www.raspifun.de/images/anleitungen/4x64matrix/matrix_demo.py
Und gestartet wird dieses Beispiel per folgendem Befehl:

Code: Alles auswählen

python matrix_demo.py
Hier ein kleiner Ausschnitt:



Ein weiteres Beispiel ist der folgende Code, bei dem man einen beliebigen Text eingeben kann:

Externer Link luma.led_matrix Text

Wer diese Datei nicht herunterladen kann, findet sie auch hier auf der Webseite:

Code: Alles auswählen

wget wget https://www.raspifun.de/images/anleitungen/4x64matrix/view_message.py
Und gestartet wird dieses Beispiel per folgendem Befehl:

Code: Alles auswählen

python view_message.py --block-orientation -90 -n 4 -t "Dies ist ein Test."
Hier das Ergebnis:



Wer weitere Parameter zu den beiden obigen Skripten benötigt, findet sie durch Anhängen von der Option -h und kann damit Einfluss auf die Darstellung nehmen.

Diese beiden Beispiele hier sind nur eine kleine Möglichkeit um darzustellen, wie das hier gezeigte 4x64 Matrix Display verwendet werden kann.
Und die beiden Quellcodes zeigen auch, wie man die Bibliothek einsetzen kann.

Alle Infos zu der hier gezeigten Bibliothek findet man auf Github: Externer Link https://github.com/rm-hull/luma.led_matrix

Wenn man auf der verlinkten Seite nach unten scrollt, sieht man, für welche Art von Displays unterstützt werden.
Der Fantasie sind also keine Grenzen gesetzt.


Fortsetzungen, Korrekturen, Änderungen möglich ....

Copyright © 2024 by RasPiFun.de
;) Gruß Outi :D
Antworten