Bildbox 1 (klick hier)

Ich stelle hier eine kleine Bildershow
auf dem Raspberry Pi Pico mit Pimoroni-Display dar.
Verwendet wird dieses Projekt als Werbetafel auf der Modelleisenbahn.

Hardware / Software

- Raspberry Pi Pico
- Raspberry Pi Pico Display Rack von Pimoroni
- Micro USB Kabel
- Micropython
- Thonny IDE auf Windows PC

Falls Sie schon das vorangegangene Projekt kennen, dort wurden einige Grundlagen zum Umgang mit dem Pi Pico erklärt, können Sie sofort loslegen. Wenn Sie durch vorherige Tests mit dem Pico die Firmware flashen wollen und somit den Pico komplett zurücksetzen, emphiehlt sich die Datei flash_nuke.uf2 . Die laden Sie herunter, speichen sie auf der Festplatte und übertragen Sie genau wie bei der Erstinbetriebnahme auf den Pico. Nach dem Flashen muss dann natürlich die MicroPython Firmware erneut aufgespielt werden.

Grundlagen

Es gibt eine Reihe von Herausforderungen beim Lesen, Betrachten und Anzeigen von Bildern auf dem Pico mit dem Pimoroni-Display. Dazu gehören die Leistung (da der Pico ein Mikrocontroller ist, hat er viel weniger Rechenleistung als ein PC) und die geringe Speicherkapazität. Deshalb ist es nicht möglich, die standardmäßigen Python-PNG-Bibliotheken zu verwenden. Infolgedessen werde ich benutzerdefinierte Bilddateien außerhalb des Pico auf einem Linuxrechner (geht auch mit einem Raspberry Pi) erstellen.

Wenn Sie den Vorgang selbst nachvollziehen wollen, brauchen Sie zunächst entsprechende Bilddateien im PNG-Format mit der exakten Größe 240x135 Pixel. Die kann man mit einem geeigneten Bildbearbeitungsprogramm (wie z.B. Gimp) erzeugen. Nun müssen die RGB Werte jedes Bildes in eine RGB565-Zwei-Byte Liste konvertiert werden. Anschließend sind die Bilder mit der Extension *.raw auf den Pico zu kopieren. Dazu braucht es zwingend einen Linux-Rechner (z.B. Raspberry Pi) , auf dem 'rshell' in der Konsole ausgeführt wird. Um die PNG-Bilddateien zu konvertieren hier das leicht anzupassende Python Script zum Download. Wer sich das nicht selber zutraut, hier vier Beispieldateien , die schon konvertiert sind. Auch die müssen allerdings unter 'Linux' auf den Pico kopiert werden. Speichern Sie die Bilder auf einem USB-Stick und stecken ihn am Raspberry an. Jetzt wird der Pi Pico ebenfalls über einen USB-Anschluss mit dem Raspberry verbunden. Dann geben Sie folgende Kommandos ein:


Wenn Sie den Namen ihres USB-Sticks nicht kennen, geben Sie evtl. vor Zeile 3 folgenden Befehl ein:
ls -l /media/pi/
Dort wird der USB-Stick als Ordner angezeigt und den setzen Sie dann in Zeile 3 anstelle von 'USB_Stick' ein.
Wenn alle vier Bilddateien fehlerfrei kopiert wurden, beenden Sie rshell mit 'exit'.

Pythonscript

Nun folgt das Pythonscript zur Darstellung der Bilder. Zunächst wollen wir nur ein Bild darstellen, um das Prinzip zu verstehen.


Damit ist das Display initialisiert, die Hintergrundbeleuchtung auf 1.0 (volle Helligkeit) gestellt und der Hinweis, dass ein Bild geladen wird an das Display übertragen. Es folgen nun zwei Funktionen, welche die Bytes in den Displaypuffer speichern.


Achten Sie bei der Eingabe wieder auf die Einrückungen um jeweils 4 Leerzeichen, wie sie die Python Syntax verlangt. Fehlt jetzt nur noch die Schleife, welche die obigen Funktionen aufruft und das Bild darstellt.


Die drei Sekunden Warteschleife wären hier nicht notwendig und könnten durch ein 'break' ersetzt werden, damit das Programm beendet wird, denn es passiert ja nach dem einen Bild eh nichts mehr.

Um alle vier Bilder der Reihe nach anzuzeigen, fügen Sie in der 'while'-Schleife analog zu den Zeilen 33, 34 und 35 die entsprechenden Dateinamen und 'Setup'-Aufrufe ein. Die Funktionen 'Setup2', 'Setup3' und 'Setup4' müssen natürlich ebenfalls entsprechend der Zeilen 16, 17, und 18 ergänzt werden.

Sie finden hier noch den Link, um das Pythonscript zur Darstellung der vier PNG-Bilder herunter zu laden. Entpacken Sie es und legen es auf dem Pico oder ihrem Rechner ab, der mit dem Pico verbunden ist. Die Bilddateien müssen sich auf dem Pi Pico befinden!!


Viel Spass und Erfolg beim Ausprobieren.


Zurück