Zum Hauptinhalt springen
Version: 29Ga

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 dem Programmstart oder dem letzten Aufruf von was_pressed() für diese Taste gedrückt wurde (True/False). Der Aufruf setzt diese gespeicherte Information für die abgefragte Taste zurück.

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...

Offline QuizEinloggen um Quiz auszufüllen.

Antworten werden nicht gespeichert und das Quiz kann nicht bewertet werden.
Laden...
Laden...
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 klickt 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
]

bild_index = 0

Hinweis 1

Zeigen Sie das zum bild_index gehörende Bild an, indem Sie mit bilder[bild_index] das aktuelle Bild abfragen und mit display.show() anzeigen.

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 aktualisiert werden. Finden Sie heraus wie?

Hinweis 3

... die Abfrage und das Aktualisieren des Bildes muss in einer Schleife geschehen, damit die Diashow fortlaufend funktioniert.

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
]