buttons
Deutsch   English   Français

4. BUTTONS

 

 

DU LERNST HIER...

 

wie man die beiden Tastenschalter (Buttons) verwendet, um interaktive Programme zu entwickeln.

 

 

AUF DRÜCKEN EINES BUTTONS REAGIEREN

 

Der micro:bit verfügt über zwei programmierbare Buttons. Der linke wird mit button_a, der rechte mit button_b angesprochen.

Die Funktion button_a.is_pressed() gibt True zurück, wenn der linke Button im Moment des Aufrufs gedrückt ist (analog button_b.is pressed()).

 

 

 

Dein Programm wartet in einer Endlosschleife, bis du den Button A drückst. Dann beginnt die mittlere LED mit einer Periode von 400 ms zu blinken, und zwar so lange du den Button gedrückt hältst.

Zur besseren Strukturierung definierst du eine Funktion blink(), welche die mittlere LED ein- und wieder ausschaltet.


 



from microbit import *

def blink():
    display.set_pixel(2, 2, 9)
    sleep(400)    
    display.set_pixel(2, 2, 0)
    sleep(400)    

while True:
    if button_a.is_pressed():
        blink()
    sleep(10)    
► In Zwischenablage kopieren

Das überflüssig erscheinende sleep(10) ist wichtig, damit du nicht unnötig viele Rechnerressourcen verschwendest, wenn das Programm nichts anderes machen muss, als zu überprüfen, ob der Button gedrückt ist. In der Fachsprache sagt man auch, dass der Zustand des Buttons in der Endlosschleife "gepollt" wird.

 

 

AUF KLICKEN EINES BUTTONS REAGIEREN

 

So wie du es von den Mausklicks kennst, möchtest du hier mit einem Button-Klick eine Aktion ausführen. Dazu verwendest du die Funktion button_a.was_pressed(). Diese liefert True, wenn du irgendeinmal den Button geklickt hast. Der Klick wird als Event aufgefasst, der vom System registriert wird. Klick auf den Button B löscht alle LEDs.

 

from microbit import *

while True:
    if button_a.was_pressed():
        display.show(Image.SQUARE)       
    if button_b.was_pressed():
        display.clear()     
    sleep(10)
► In Zwischenablage kopieren

 

 

MERKE DIR...

 

Du kannst  interaktive Programme entwickeln, die auf  einen gedrückt gehaltenen Button oder auf einen Button-Klick reagieren. Mit der Funktion is_pressed() muss der Button gedrückt sein, damit sie True zurückgibt, mit der Funktion was_pressed() wird True zurückgegeben, wenn seit dem dem Start des Programms oder seit dem letzten Aufruf der Button irgendwann mal geklickt wurde.

 

 

ZUM SELBST LÖSEN

 

 

1.

Programmiere die Buttons wie folgt:

Wenn du den Button A drückst, so erscheint ein Pfeil, der nach links zeigt (ARROW_W), wenn du den rechten Button drückst, so erscheint ein Pfeil nach rechts (ARROW_E).
 

2.

Programmiere einen Klickzähler: Bei jedem Klick auf den Button A wird die Anzahl n, die zu Beginn 0 ist, um eins vergrössert und zur Kontrolle im Terminalfenster ausgeschrieben. Beim Klick auf den Button B soll die Totalzahl als Lauftext auf dem Display erscheinen.

Bemerkung Der Befehl scroll() kann nur Texte anzeigen. Mit str(n) kannst du eine Zahl in einen Text umwandeln.

3.

Du simulierst mit dem micro:bit das Werfen eines Würfels. Bei jedem Klicken auf den Button A wird auf dem Display das Bild einer zufälligen Würfelseite dargestellt.

Anmerkung:
Am einfachsten erstellst du die Bilder als Images z. B. die Vier mit
img = Image('00000:09090:00000:09090:00000:')

   

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