Zum Hauptinhalt springen
Version: 28Gj

Anwendung

Uhr
CodeEditor
👉 https://python.microbit.org/v/3/project

Ausgehend von folgender Vorlage soll eine tickende Uhr programmiert werden:

from microbit import *

zeit = [
Image.CLOCK1,
Image.CLOCK2,
Image.CLOCK3,
Image.CLOCK4,
Image.CLOCK5,
Image.CLOCK6,
Image.CLOCK7,
Image.CLOCK8,
Image.CLOCK9,
Image.CLOCK10,
Image.CLOCK11,
Image.CLOCK12,
]

while True:
display.show(Image.CLOCK1)

Laden...

Tastendruck erkennen

Auf dem Micro:Bit können die beiden Tasten A und B abgefragt werden. Es gibt zwei Möglichkeiten, den Zustand der beiden Knöpfe abzufragen:

is_pressed()
Prüft, ob die Taste gerade gedrückt ist (True/False).
was_pressed()
Prüft, ob die Taste seit der letzten Abfrage gedrückt wurde (True/False).

Beispiel

Beispiel 1
from microbit import *

while True:
if button_a.is_pressed():
display.show(Image.HAPPY)
elif button_b.is_pressed():
display.show(Image.SAD)
else:
display.show(Image.ASLEEP)
Beispiel 2
from microbit import *

while True:
if button_a.was_pressed():
display.show(Image.HAPPY)
elif button_b.was_pressed():
display.show(Image.SAD)
sleep(1000)
Tastenabfrage

Laden Sie nacheinander die Code-Beispiele 1 und 2 auf Ihren Micro:Bit und testen Sie das Verhalten der Programme beim Drücken der Tasten A und B. Beschreiben Sie die Unterschiede im Verhalten der beiden Programme.

Laden...

Szenarien: Was passiert?

  • Was passiert in Beispiel 1, wenn die Tasten A und B gleichzeitig gedrückt werden? Können Sie das Verhalten mit dem Code erklären?
  • Was passiert in Beispiel 2, wenn ganz schnell nacheinander
    • zuerst die Taste A und dann B gedrückt werden?
    • zuerst die Taste B und dann A gedrückt werden?
    • können Sie das Verhalten mit dem Code erklären?
Laden...
Diashow

Es soll eine Diashow programmiert werden, die mit der Taste B zum nächsten Bild und mit der Taste A zum vorherigen Bild wechselt. Ist man auf dem letzten Bild und klick B, so soll wiederum das erste Bild angezeigt werden (oder wenn auf dem ersten Bild A gedrückt wird, soll das letzte Bild angezeigt werden).

from microbit import *

bilder = [
Image.PACMAN,
Image.PITCHFORK,
Image.RABBIT,
Image.ROLLERSKATE,
Image.SAD,
Image.SCISSORS,
Image.SILLY,
Image.SKULL,
Image.SMILE,
Image.SNAKE,
Image.SQUARE,
Image.SQUARE_SMALL,
Image.STICKFIGURE,
Image.SURPRISED,
Image.SWORD,
Image.TARGET,
Image.TORTOISE,
Image.TRIANGLE,
Image.TRIANGLE_LEFT,
Image.TSHIRT
]

while True:
display.show(Image.PACMAN)
sleep(1000)

Hinweis 1

Erstellen Sie eine Variable bild_index, die den Index des aktuell angezeigten Bildes speichert. Welcher Index hat das erste Bild in der Liste bilder?

Hinweis 2

Wird B gedrückt, so soll der Index um 1 erhöht werden. Wird A gedrückt, so soll der Index um 1 verringert werden. Das aktuelle Bild muss natürlich noch angezeigt werden. Finden Sie heraus wie?

Hinweis 3

... das aktuelle Bild kann dann mit display.show(bilder[bild_index]) angezeigt werden. Was passiert nun, wenn Sie am ersten Bild sind und A drücken? Was passiert, wenn Sie am letzten Bild sind und B drücken? Wie können Sie das verhindern?


Bonus-Aufgaben

  • Fügen Sie einen Soundeffekt hinzu, der bei jedem Bildwechsel abgespielt wird. (Für vorwärts und rückwärts jeweils ein anderer Soundeffekt.)
  • Zeigen Sie ein zufälliges Bild an, wenn der Micro:Bit geschüttelt wird.
  • Schalten Sie automatisch zum nächsten Bild weiter, wenn für 5 Sekunden keine Taste gedrückt wurde.
Laden...

Micro:Bit - Vordefinierte Bilder

Die Micro:Bit Bibliothek stellt eine Reihe vordefinierter Bilder zur Verfügung

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