wie man mit dem LED-Display Textmeldungen und einfache Bilder anzeigen kann.
25 LEDs
Die 25 LEDs des Displays sind in einer 5x5 Matrix angeordnet und über ihre x- und y-Position einzeln ansprechbar. Mit
display.set_pixel(x, y, n)
leuchtet die
LED an der Position x, y mit der Helligkeit n, wobei n eine Zahl von 0 bis 9 ist. Für n = 9 ist die LED am hellsten, für n = 0 ist sie ausgeschaltet.
Du kannst alle LEDs mit
display.clear() ausschalten.
MUSTERBEISPIELE
LEDs ein- und ausschalten
Dein Programm soll die LEDs in der mittleren Reihe der Reihe nach ein- und ausschalten. Der Befehl sleep(400) hält das Programm 400 Millisekunden an. Dadurch bleibt die gerade leuchtende LED während dieser Zeit eingeschaltet.
from microbit import *
for x in range(5):
display.set_pixel(x, 2, 9)
sleep(400)
display.set_pixel(x, 2, 0)
Damit du mit Zufallszahlen programmieren lernst, soll in diesem Beispiel wiederholt eine zufällig ausgewählte LEDs ein- und ausgeschaltet werden. In der Funktion randomLed() werden zuerst alle LEDs gelöscht,und nachher zwei Zahlen zwischen 0 und 4 gewählt und die LED mit diesen Koordinaten mit maximaler Helligkeit eingeschaltet.
Im Hauptprogramm wird die Funktion randomLed() in einer Endlosschleife alle 200 Millisekunden aufgerufen. Das Programm läuft also so lange, bis du ein neues Programm hinunterlädst, den Resetknopf (Button neben dem USB-Anschluss) drückst oder die Stromversorgung unterbrichst.
from microbit import *
from random import randint
def randomLed():
display.clear()
x = randint(0, 4)
y = randint(0, 4)
display.set_pixel(x, y, 9)
while True:
randomLed()
sleep(200)
Im Modul microbit sind mehrere 5x5 Pixelbilder gespeichert, die du auf dem Display anzeigen kannst. Die Bildnamen siehst du hier
oder in der Dokumentation.
Mit dem Befehl display.show() kannst du diese Bilder anzeigen. In diesem Beispiel werden nacheinander Pfeile angezeigt, die nach Norden, Osten, Süden und Westen zeigen.
Jedes Bild wird 1 Sekunde lang angezeigt. Mit einer for-Schleife wiederholst du den Vorgang dreimal.
from microbit import *
for i in range(3):
display.show(Image.ARROW_N)
sleep(1000)
display.show(Image.ARROW_E)
sleep(1000)
display.show(Image.ARROW_S)
sleep(1000)
display.show(Image.ARROW_W)
sleep(1000)
Du kannst auch eigene Images erstellen, indem du als Parameter von Image einen String angibst, der aus 5 Blöcken mit je 5 Zahlen 0 bis 9 besteht. Die Blöcke entsprechen den einzelnen Zeilen. Die Zahlen legen die Helligkeit im Bereich 0 (dunkel) bis 9 (ganz hell) fest.
Das folgende Programm zeigt ein Quadrat mit den Randpixeln in voller Helligkeit.
from microbit import *
img = Image('99999:90009:90009:90009:99999:')
display.show(img)
Zur Ansteuerung des LED-Displays verwendest du das Objekt display mit den Funktionen set_pixel(), show(), scroll() und clear(). Du orientierst dich am besten im Menü von TigerJython unter Hilfe | APLU-Dokumentation | micro:bit | MicroPython API über die erlaubten Parameter.
ZUM SELBST LÖSEN
1.
Schreibe ein Programm, welches nacheinander vier diagonale Pfeile darstellt:
Image.ARROW_NW
Image.ARROW_NE
Image.ARROW_SW
Image.ARROW_SE.
2.
Mit einer doppelten for-Schleife
for y in range(5):
for x in range(5):
display.set_pixel(x, y, 9)
sleep(400)
kannst du alle LEDs der Reihe nach einschalten. Die LEDs sollen danach alle gleichzeitig mit dem Befehl display.clear() ausgeschaltet werden und zwar 1000 Millisekunden, nachdem die letzte LED eingeschaltet wurde.
3.
Schreibe ein Programm, welches zuerst die oberste LED-Reihe, dann die zweite, dritte usw. einschaltet. Lasse den Vorgang in einer Endlosschleife ablaufen.