Repetitionsaufgaben für Microbit

Beim Lösen der folgenden Aufgaben schreibst du Code für den Microbit. Für die Aufgaben benötigst du bereits erlernte Python-Kenntnisse zu Variablen, Schleifen, Funktionen und Listen.

Damit du möglichst gut lernst, gehst du so vor:

  1. Löse die Aufgabe auf karriertes Papier – achte auf korrekte Einrückungen.
  2. Teste, ob dein Handschrift-Code funktioniert: Schreibe ihn eins zu eins im Online-Editor hin und teste mit dem Simulator.
  3. Korrigiere Fehler auch im deinem Handschrift-Code, am besten farbig!
  4. Wenn du nicht weiterkommst: Schreibe eine kurze Nachricht an die Lehrperson – mit Screenshot vom Code und/oder Frage (via Teams-Chat).

Für folgende Aufgaben benötigst du Variablen und Verzweigungen (if/else/elif):

RA1 – Taschenrechner

Schreibe Code, mit dem du zwei Zahlen miteinander verrechnen kannst:

  • Mit der A-Taste kannst du Zahl 1 um 1 erhöhen, mit der B-Taste Zahl 2.
  • Wenn du das Touch-Logo drückst, zeigt das Display die Summe / das Produkt / die Differenz (wähle selbst) von Zahl 1 und Zahl 2. Beide Zahlen werden wieder auf 0 gesetzt.

RA2 – Zwischen Null und Neun

Schreibe Code, mit dem du Zahlen von 0 bis 9 auf dem Display anzeigen kannst:

  • Mit der A-Taste kannst du die angezeigte Zahl um 1 erhöhen, mit der B-Taste um 1 verringern. Der Berreich 0…9 darf nicht über- oder unterschritten werden.

RA3 – Von Null bis Sieben rundherum

Schreibe Code, mit dem du Zahlen von 0 bis 7 auf dem Display anzeigen kannst.

  • Mit der A-Taste kannst du die angezeigte Zahl um 1 erhöhen – von 0 bis 7 und danach beginnt es wieder bei 0.

RA4 – Dreier-, Fünfer- oder Siebnerreihe?

Schreibe Code, mit dem du eine zufällige Zahl auswertest.

  • Wenn du die A-Taste drückst, wird eine zufällige Zahl zwischen 1 und 77 eine Sekunde lang angezeigt. Danach wird ein passendes Bild eine Sekunde lang angezeigt:
    • Wenn die angezeigte Zahl in der Siebnerreihe vorkommt: Eine Herz.
    • …in der Fünferreihe: Ein Haus.
    • …in der Dreierreihe: Eine Ente.
    • Ansonsten: ein SAD-Face.

Wenn die Zahl in mehreren Reihen vorkommt, soll das Bild zur grösseren Reihe angezeigt werden. Also zum Beispiel bei 15 das Haus.

RA5 – Temperatur in drei Einheiten

Schreibe Code, mit dem du die vom Microbit gemessene Umgebungstemperatur an die Serial-Konsole schickst (mit print()).

  • Wenn du die A-Taste drückst, wird die Temperatur in Grad Celsius ausgegeben.
  • Wenn du die B-Taste drückst, wird die Temperatur in Grad Fahrenheit ausgegeben.
  • Wenn du das Touch-Logo drückst, wird die Temperatur in Kelvin ausgegeben.
  • Jede Zahl muss inklusive ihrer Einheit ausgegeben werden, also z.B. „68° F“.

Tipps: Die Funktion temperature() gibt die Temperatur in °C zurück. Recherchiere im Internet für die Umrechnungen nach Fahrenheit und Kelvin.

Für folgende Aufgaben benötigst du neben Variablen und Verzweigungen auch Funktionen. Dein Code in der Endlos-Schleife (while True) soll möglichst kurz sein. Achte auf die Aufgabenstellung: Soll die Funktion etwas zurückgeben (return), ausgeben (print) oder zeigen (Display-Funktionen)?

RB1 – Helligkeit Null bis Neun

  • Schreibe Code, der auf dem Display ein Herz zeigt. Mit den beiden Tasten (A und B) kannst du die Helligkeit um 1 verringern (bis minimal 0) oder erhöhen (bis maximal 1).
  • Deine Funktion make_heart_image(b) nimmt als Argument die Helligkeit entgegen und gibt ein Bild (Image-Objekt) zurück.

RB2 – Horizontale Linie verschieben

  • Schreibe Code, mit dem du eine horizontale Linie auf dem Display verschieben kannst: Mit der A-Taste schiebst du die Linie nach unten: ist sie unten angelangt, erscheint sie nach dem nächsten Tastendruck wieder oben.
  • Deine Funktion draw_horizontal_line(y_pos) zeigt auf dem Display die Linie an der gewünschten Position. Tipp: Benutze die Funktionen set_pixel() und clear().

RB3 – Beschleunigungswerte übersichtlich

  • Schreibe Code, der alle 500 Millisekunden die Werte vom Beschleunigungssensor ausgibt (mit print()): Mit der A-Taste wechselst du die Einheit: von mg zu g zu m/ss und wieder zu mg… (rundherum).
  • Deine Funktion print_acc_values(u) liesst die Beschleunigungwerte für jede Achse (x, y, z) und sendet sie nacheinander an die Serial-Konsole – mit Angabe der Achse und der Einheit, also zum Beispiel:
    • „X: 373 mg“
    • „Y: -1041 mg“
    • „Z: 865 mg“
  • Das Argument u bestimmt die Einheit: 0 = mg, 1 = g, 2 = m/ss.

RB4 – Gesamtbeschleunigung einstellig

  • Schreibe Code, der die Gesamtbeschleunigung als einstellige Zahl auf dem Display anzeigt.
  • Deine Funktion get_total_acc():
    • ermittelt die Gesamtbeschleunigung (Wurzel aus der Summe der Quadratzahlen von x-, y-, und z-Wert, bewegt sich zwischen 0 und 3464),
    • wandelt sie in eine Zahl zwischen 0 und 9 und
    • gibt diese einstellige Zahl zurück.

Für die folgenden Aufgaben benötigst du (neben Variablen, Verzweigungen und Funktionen) for- oder while-Scheifen.

RC1 – Regentropfen

Schreibe Code, der auf dem Display fallende Regentropfen zeigt: Auf einer zufällig gewählten Display-Spalte (0…4) leuchtet erst das oberste Pixel, dann das zweitoberste etc. Nachdem der Regentropfen unten angekommen ist, beginnt das Programm wieder von vorne. Ein Regentropfen soll innerhalb von 200 Milisekunden von oben nach unten fallen.

RC2 – Pixel schiessen

Schreibe Code, mit dem du Pixel schiessen kannst – von links nach rechts oder zurück.

  • Deine Funktion shoot(a_shoots) lässt ein Pixel auf einer zufällig gewählten Zeile über das Display laufen: Wenn a_shoots = True ist, staret das Pixel auf der linken Seite, ansonsten auf der rechten Seite.
  • Mit der A-Taste wird ein Pixel in Richtung B-Taste geschossen (und umgekehrt).

RC3 – Binär zu dezimal

Schreibe Code, mit dem du eine Binärzahl dezimal anzeigen kannst.

  • Mit den Tasten gibst du die Binärzahl ein: Mit der A-Taste die Nullen, mit der B-Taste die Einsen: Die Kombination BAB ist 101, also 5.
    • Die Binärzahl ist ein String aus den Zeichen '0' und '1'.
  • Deine Funktion binary_to_decimal(binary_string) nimmt als Argument einen String aus Einsen und Nullen an und gibt die entsprechende Dezimalzahl zurück.
  • Wenn du das Touch-Logo drückst, wird zuerst die Binärzahl, dann die ensprechende Dezimalzahl an die Serial-Konsole ausgegeben (mit print()). Dann wird die eingegebene Binärzahl gelöscht.

RC4 – Rauf und runter

Schreibe Code der abwechslungsweise eine fallende und eine steigende Diagnoale zeichnet:

  • Erst bewegt sich das Pixel von unten links nach oben rechts und zieht eine Linie. Dann wird das Display gelöscht. Dann folgt die fallende Linie von links nach rechts. Dann beginnt das Programm von vorne.
  • Verwende zwei for-schleifen und die Funktion set_pixel().

Für die folgenden Aufgaben benötigst du (neben Variablen, Verzweigungen, Funktionen und Schleifen) Listen.

RD1 – Rund um die Uhr

Schreibe Code, mit dem du die Uhrzeit setzen kannst:

  • Nutze die Liste Image.ALL_CLOCKS[], sie enthält 12 Bilder.
  • Wenn du die A-Taste drückst, wird das nächste Bild angezeigt. Nach dem letzten Bild der Liste kommt wieder das erste.

RD2 – Satzgenerator

Schreibe Code, der einen zufälligen Satz generiert und and die Serial-Konsole sendet.

  • Erstelle vier Listen: eine für die Subjekte, eine für Verben, eine für Adjektive und eine für Objekte. Du kannst auch die Listen unten kopieren.
  • Wenn du die A-Taste drückst, wird aus jeder Liste ein zufälliges Element ausgewählt, die vier gewählten Elementen werden zum Satz zusammengefügt und der Satz wird an die Serial-Konsole gesendet.
subjekte = ["Karls Katze", "Albert Einstein", "Lauryn Hill", "Eine Blume", "LeBron James", "Eine Pizza", "Taylor Swift", "Die Sonne"]
verben = ["liebt", "betrachtet", "baut", "malt", "erfindet", "liest", "schreibt", "singt"]
adjektive = ["schnell", "glücklich", "groß", "konzentiert", "zitternd", "fröhlich", "begeistert", "trübselig"]
objekte = ["einen Apfel", "eine Geschichte", "einen Kaffee", "einen Film", "die Pyramiden", "eine Reise", "einen Brief", "Leonardo da Vinci"]

RD3 – Text schreiben und senden

Schreibe Code, mit dem Du ein Wort schreiben und an die Serial-Konsole senden kannst:

  • Mit der A-Taste kannst du durch die Buchstaben des Alphabets blättern (siehe Liste unten). Nach z kommt wieder a. Das Display zeigt den aktuellen Buchstaben.
  • Mit der B-Taste wählst du den aktuellen Buchstaben aus und fügst ihn zum Wort hinzu.
  • Wenn du das Touch-Logo berührst, wird das Wort an die Serial-Konsole gesendet und anschliessend gelöscht.
buchstaben = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"]

Aufgaben RA

RA1:

RA2:

RA3:

RA4:

RA5:

Aufgaben RB

RB1:

RB2:

RB3:

RB4:

Aufgaben RC

RC1:

RC2:

RC3:

RC4:

Aufgaben RD

RD1:

RD2:

RD3:

  • gf_informatik/microbit_und_roboter_programmieren/repetitionsaufgaben.txt
  • Zuletzt geändert: 2023-10-04 14:29
  • von gra