LBotics.at

Das Display auf dem CyberPi hat eine Größe von 128x128 Pixel. Auf diesem können in 7 Zeilen je 15 Zeichen ausgegeben werden. Speziell bei der Erstellung von komplexeren Skripts für den Roboter ist es praktisch, sich verschiedene Werte am Display anzeigen zu lassen, um diese mitzuverfolgen oder besser nachvollziehen zu können, welcher Teil des Codes gerade ausgeführt wird.

Zur Ausgabe von Text verwendet man die Funktion cyberpi.display.show_label(text, size, x, y), der man den auszugebenden Text, die Schriftgröße und die x- und y-Koordinate übergibt, an der die Ausgabe des Textes beginnen soll. Der Text muss dabei in Form eines sogenannten Strings, einer Zeichenkette, vorliegen. Ein String wird mit zweifachen Anführungszeichen maskiert - z. B. "Beispieltext".

Mit der Funktion cyberpi.display.clear() kann das gesamte Display gelöscht werden.

Möchte man Text in mehreren Zeilen ausgeben, so muss man innerhalb des Strings Zeilenumbrüche einfügen. Dies macht man in Python, indem man die Zeichenkombination \n in den String einbaut. Alles was danach steht, wird dann in der nächsten Zeile ausgegeben. Man muss also zunächst einen String zusammenstellen, der die Ausgaben aller Zeilen mit den Zeilenumbrüchen an den jeweiligen Stellen beinhaltet und diesen dann zum Display schicken.

Lautet der String, den man zum Display schickt "Zeile 1\nZeile 2", dann sieht die Ausgabe am Display wie in der folgenden Abbildung aus:

Beispiel - Ausgabe von Text am Display

Im folgenden Beispiel erfolgen drei unterschiedliche Ausgaben am Display. Zunächst wird genau in der Mitte das Wort mBot2 mit Schriftgröße 32 ausgegeben. Nach zwei Sekunden in der ersten und zweiten Zeile jeweils Zeile 1 und Zeile 2 und wiederum nach zwei Sekunden werden alle 7 Zeilen mit Zahlen befüllt.

import cyberpi, time

cyberpi.display.show_label("mbot2",32,16,40)
time.sleep(2)
cyberpi.display.show_label("Zeile 1\nZeile 2", 16, 0, 0)
time.sleep(2)
cyberpi.display.show_label("111111111111111\n222222222222222\n333333333333333\n444444444444444\n555555555555555\n666666666666666\n777777777777777",16,0,0)
Erklärungen zu diesem Skript

1: import cyberpi, time

Import der beiden Module cyberpi und time.

3: cyberpi.display.show_label("mbot2", 32, 16, 40)

Die Funktion cyberpi.display.show_label(text, size, x, y) dient zum Ausgeben von Text am Display. Der Text wird als String übergeben, in dem Zeilenumbrüche mit der Zeichenkombination \n eingefügt werden können. Beginnt die Ausgabe an den Koordinaten x=0 und y=0, dann können mit Schriftgröße 16 maximal 7 Zeilen mit je 15 Zeichen ausgegeben werden.

Mit dieser Funktion ist es leider nicht möglich, an verschiedenen Positionen hintereinander unterschiedlichen Text anzuzeigen. Beim Aufruf dieser Funktion wird vor der Ausgabe immer das gesamte Display gelöscht.

text: z. B. "Zeile 1\nZeile 2" (ein String mit einer Länge von 7*15=105 auszugebenden Zeichen, mit bis zu 6 Zeilenumbrüchen \n)

size: 12, 24, 32 (Schriftgröße in Pixel)

x: 0, ..., 127

y: 0, ..., 127

4: time.sleep(2)

Mit der Funkton sleep(2) des time-Moduls wird die weitere Ausführung des Codes für zwei Sekunden angehalten. Damit wird erreicht, dass der gerade angezeigte Inhalt des Displays für zwei Sekunden zu sehen bleibt, bis die nächste Ausgabe erfolgt.

7: cyberpi.display.show_label("111111111111111\n222 ... 6\n777777777777777",16,0,0)

Hier wird ein sehr langer String übergeben, der an jeder möglichen Stelle des Displays eine Zahl ausgibt. In jeder Zeile wird 15 mal die gleiche Zahl angezeigt. In dem String, der der Funktion cyberpi.display.show_label(text, size, x, y) übergeben wird, wird an der Stelle des gewünschten Zeilenumbruchs \n eingefügt. Die Ausgabe erfolgt mit Schriftgröße 16 und die Ausgabe beginnt beim Nullpunkt des Koordinatensystems links oben, wo x = 0 und y = 0 sind.

Zusammenfassung - Was wurde in diesem Abschnitt gelernt?
  • Auf dem Display kann man Text mit je 15 Zeichen in 7 Zeilen ausgeben.
  • Bei einem String handelt es sich um eine Zeichenkette, deren Zeichen mit zweifachen Anführungszeichen maskiert sind.
  • Die Ausgabe von Text erfolgt mit der Funktion cyberpi.display.show_label(text, size, x, y). Neben dem String, der den auszugebenden Text beinhaltet, werden die Schriftgröße und die Startposition mit x,y-Koordinaten in Pixel übergeben.
  • Zum Löschen des Displays ruft man die Funktion cyberpi.display.clear() auf.
  • Möchte man Text mehrzeilig ausgeben, so muss man in dem String, der der Funktion cyberpi.display.show_label(text, size, x, y) übergeben wird, Zeilenumbrüche mit der Zeichenkombination \n einfügen.