Bildbox 1 (klick hier)

Anzeigetafel auf dem
Raspberry Pi Pico mit Pimoroni-Display.
(Mit eigenem Zeichensatz)

Hardware

- Raspberry Pi Pico
- Pico Display
- Micro USB Kabel

Wenn Ihnen bei dem vorigen Projekt zur Anzeige von PNG Bildern das Konvertieren und Speichern der Bilddateien nicht zugesagt hat, folgt jetzt ein Projekt, dass Ihnen bestimmt gefallen wird.
1. Wird alles, was auf dem Display dargestellt werden soll, von Ihnen selbst eingegeben (und nach Ihren Wünschen angepasst) und
2. Ist der geänderte Zeichensatz für das Pimoroni Display eine Besonderheit.
Ziel ist in diesem Fall eine kleine Anzeigetafel für Abfahrts- und Ankunftzeiten z.B. auf der Modelleisenbahn. Doch zu Beginn wieder ein paar grundlegende Bemerkungen.

Grundlagen

Wer schon mit dem Pimoroni Display gearbeitet hat, wird sicherlich auch festgestellt haben ,dass bei der Wiedergabe von Text nur Großbuchstaben zur Verfügung stehen. Grund ist die Verwendung des "Amerikanischen Standard-Code für den Informationsaustausch", einer 7-Bit-Zeichenkodierung. Sie entspricht der US-Variante von ISO 646 und dient als Grundlage für spätere, auf mehr Bits basierenden Kodierungen für Zeichensätze. Diese Zeichenkodierung definiert 128 Zeichen, bestehend aus 33 nicht druckbaren sowie den folgenden 95 druckbaren Zeichen. Und da hat Pimoroni bei der Darstellbarkeit auf dem Pico Display auch noch die Zeichen 97 bis 122 ausgespart, indem alle Kleinbuchstaben, ähnlich wie bei manchen Officeanwendungen, automatisch in Großbuchstaben umgewandelt werden. Erst recht fehlen im Deutschen die Umlaute ä, ö und ü. Um das Druckbild in dieser Hinsicht angenehmer zu machen, definieren wir unsere eigene Zeichensatz-Map. D.h. eigentlich nehmen wir den vorhandenen, ersetzen drei wenig benötigte Zeichen ( |, {, }) durch ä, ö und ü und lesen die Map durch eine eigene Pythonfunktion zur Textausgabe aus. Im unteren Bild wird ein Teil des Zeichensatzes gezeigt. Um den kompletten Teil nachher in das Pythonscript zu integrieren laden Sie ihn hier als Textdatei herunter, denn die Eingabe im Thonny wäre doch etwas zu aufwendig.



Ich gebe noch eine kurze Erläuterung, wie die Textausgabe damit realisiert wird. Einerseits können wir den 'originalen' Befehl von Micropython display.text("DAS IST TEXT",25,25,240,2) immer noch nutzen oder jetzt mit der angepassten Zeichensatz-Map printstring("Das ist Text",25,25,2) ausgeben. Das erfordert aber die beiden Funtionen printstring(string,xpos,ypos,size) und printchar(string,xpos,ypos,size) mit den übergebenen Parametern. Zur Demonstration probieren Sie doch einmal dieses erste kleine Pythonscript aus.

Pythonscript

Zunächst wird das Display initialisiert und dann der Text ausgegeben. Achten Sie darauf, dass bei Paste&Copy in Zeile 1 und auch später bei den Funktionsdefinitionen keine 'unerlaubten' Einrückungen entstehen.

An dieser Stelle kann schon einmal probiert werden. Es sollte die erste Textzeile auf rotem Hintergrund angezeigt werden. Also noch nicht umwerfend.
Anschließend fügen Sie in Zeile 22 bis 118 die Zeichensatz-Map ein (siehe oben). Die Zeilen 15 bis 21 lassen wir frei, weil hier später die Änderungen für die Anzeigetafel eingetragen werden. Weiter geht es mit der Eingabe der Funktion 'printchar' in Zeile 120 bis 137.
Achten Sie bei der Eingabe wieder auf die 'notwendigen' Einrückungen um jeweils 4 Leerzeichen, wie sie die Python Syntax verlangt. Es folgt jetzt noch die Funktion 'printstring' in den Zeilen 139 bis 146.
Fehlt jetzt nur noch die Schleife, welche die obigen Funktionen aufruft und den Text darstellt. Interessant ist dabei, dass der untere Text nicht in einem 'Stück' erscheint, sondern Zeichen für Zeichen nacheinander. Dafür sorgt der Befehl 'display.update()' in Zeile 137. Dieser Effekt wirkt nachher besonders schön bei der Anzeigetafel. Wenn Sie die Zeile 137 beispielsweise auskommentieren und den Befehl als Zeile 156 eingeben, erscheint der komplette Text in einem Zug.
Wir können unser Script jetzt zur Anzeigetafel erweitern bzw. umgestalten. Zunächst entfernen wir die Zeilen 10 bis 14 und geben die neuen Zeilen 10 bis 20 ein. Den Platz dafür hatten wir ja frei gehalten. Die Zeichensatz-Map beginnt dann wieder in Zeile 22.
Diese Funktion 'clear()' erzeugt den blauen Hintergrund mit den waagerechten Trennlinien der Anzeigetafel und wird gleich zu Beginn der Programmabarbeitung (Zeile 20) einmal aufgerufen. Auf dieser vorbereiteten Tafel wird nun Text angezeigt. In einer Funktion 'Abfahrt()' (Zeilen 148 bis 173) sind die auszugebenden Texte enthalten. Schauen Sie sich die Zeilen 161 und 165 an. Dort werden die Umlaute ö und ü in 'Köln' und 'München' genutzt. Nutzen Sie den Vorschlag so oder probieren gleich noch eine Tafel für die Ankunftzeiten.
Damit das Script wiederholt wird, brauchen wir wieder eine 'while True():' Schleife. Die enthält die Zeilen 175 bis 176. Durch die Zeile 172 wird die Pause von 10 Sekunden bestimmt. Diesen Wert können Sie beliebig ändern.
Fertig. Jetzt läuft unser Programm. Hier finden Sie wieder den Link zum Download des Quelltextes entsprechend der Beschreibung. Außerdem können Sie noch den Quelltext einer Anzeigetafel mit jeweils 3 Abfahrtsseiten und 3 Ankunftseiten herunterladen.


Viel Spass und Erfolg beim Ausprobieren.


Zurück