display

2. LED-DISPLAY

 

 

DU LERNST HIER...

 

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 calliope_mini import *

for x in range(5):
    display.set_pixel(x, 2, 9)
    sleep(400)
    display.set_pixel(x, 2, 0)
► In Zwischenablage kopieren

Damit du mit Zufallszahlen programmieren lernst, soll in diesem Beispiel wiederholt eine zufällig ausgewählte LED 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 calliope_mini 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)  
► In Zwischenablage kopieren

 

Images anzeigen

Im Modul calliope_mini 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 calliope_mini 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)
► In Zwischenablage kopieren

 

Eigene Images erstellen

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 calliope_mini import *

img = Image('99999:90009:90009:90009:99999:')
display.show(img)
► In Zwischenablage kopieren

 

 

MERKE DIR...

 

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ü Menü von unter Hilfe | APLU-Dokumentation | Calliope | 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 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.

 
2-1
Fachliche Hinweise:

Bilder, die in der Klasse Image definiert sind:

HEART, HEART_SMALL, HAPPY, SMILE, SAD, CONFUSED, ANGRY, ASLEEP, SURPRISED,
SILLY, FABULOUS, MEH, YES, NO, CLOCK12, CLOCK11, CLOCK10, CLOCK9, CLOCK8,
CLOCK7, CLOCK6, CLOCK5, CLOCK4, CLOCK3, CLOCK2, CLOCK1, ARROW_N,
ARROW_NE, ARROW_E, ARROW_SE, ARROW_S, ARROW_SW, ARROW_W, ARROW_NW,
TRIANGLE, TRIANGLE_LEFT, CHESSBOARD, DIAMOND, DIAMOND_SMALL, SQUARE,
SQUARE_SMALL, RABBIT, COW, MUSIC_CROTCHET, MUSIC_QUAVER, MUSIC_QUAVERS,
PITCHFORK, XMAS, PACMAN, TARGET, TSHIRT, ROLLERSKATE, DUCK, HOUSE,
TORTOISE, BUTTERFLY, STICKFIGURE, GHOST, SWORD, GIRAFFE, SKULL, SNAKE