08.02.2021 - Erste Fertigstellung
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.
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.
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:
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:
Dabei sind die Kabelfarben bei mir von oben nach unten wie folgt angeschlossen:
Pin | Farbe |
---|---|
VCC | blau |
GND | violett |
DIN | grau |
CS | weiß |
CLK | schwarz |
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.
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
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
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
Dann aktivieren wir SPI einfach über die Konfigurationsoberfläche.
Dazu starten wir raspi-config:
Code: Alles auswählen
sudo raspi-config
Dort gehen wir in den Punkt 3 (Interface Options) und erhalten die folgende Übersicht:
Hier den Punkt 4 (SPI) auswählen und die folgende Abfrage bestätigen:
Danach wird die Aktivierung bestätigt:
Dann noch mit
OK
bestätigen und raspi-config verlassen.Zur Sicherheit booten wir den Pi neu
Code: Alles auswählen
sudo reboot
Nun geben wir den Befehl zum Checken der SPI Schnittstelle wieder ein:
Code: Alles auswählen
lsmod | grep spi
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
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: 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 Pin | Pi GPIO | Farbe | Display Pin |
---|---|---|---|
17 | 3,3V | blau | VCC |
20 | Ground | violett | GND |
19 | GPIO10 | grau | DIN |
24 | GPIO8 | weiß | CS |
23 | GPIO11 | schwarz | CLK |
Das Ganze sieht dann in etwa so aus (mit den mir vorliegenden Farben):
Und in Real:
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
Code: Alles auswählen
python3 -V
Code: Alles auswählen
pi@raspberrypi:~ $ python2 -V
Python 2.7.16
pi@raspberrypi:~ $ python3 -V
Python 3.7.3
pi@raspberrypi:~ $
python
benutzen, erfahren wir durch den folgenden Befehl:Code: Alles auswählen
python -V
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
Code: Alles auswählen
pi@raspberrypi:~ $ sudo update-alternatives --list python
update-alternatives: Fehler: keine Alternativen für python
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
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
Code: Alles auswählen
python -V
Code: Alles auswählen
pi@raspberrypi:~ $ python -V
Python 3.7.3
Code: Alles auswählen
sudo update-alternatives --config python
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
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
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
Dazu holen wir uns da Python Skript aus der originalen AZDelivery Anleitung:
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
Code: Alles auswählen
python matrix_demo.py
Ein weiteres Beispiel ist der folgende Code, bei dem man einen beliebigen Text eingeben kann:
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
Code: Alles auswählen
python view_message.py --block-orientation -90 -n 4 -t "Dies ist ein Test."
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: 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.