Inhaltsverzeichnis

Aufgaben Microbit

Für gewisse Aufgaben gibt es zwei Versionen: Basic und Advanced. Hier hast du die Wahl. Hast du keine Probleme mit den Aufgaben, solltest du die Advanced-Aufgaben lösen. Für TALITs sollte dies eigentlich der Standard sein.

Aufgaben A (Display)

Aufgabe A1

Schreibe ein Programm, das eine Ente auf dem Display zeigt.

Aufgabe A2

Schreibe ein Programm, das eine Animation aus fünf Bildern deiner Wahl zeigt. Jedes Bild soll eine Sekunde lang angezeigt werden.

Aufgabe A3

Basic

Das Display soll eine Animation zeigen, bei der das gesamte Display anfangs nur schwach, dann immer heller leuchtet. Erstelle dazu eine Liste aus selbst erstellten Bildern. Verwende dazu die Image(...) Funktion. Recherchiere selbst dazu, wie man diese verwendet.

Advanced 1
Advanced 2

Aufgabe A4 (Zusatzaufgabe: Advanced)

Mit set_pixel() und get_pixel() kannst du einzelne Pixel direkt ansteuern (siehe Hier findest du alle Funktionen, mit denen du das Display ansteuern kannst.)

Ein einzelnes Pixel soll nun die ganze LED-Matrix ablaufen: oberste Zeile von links nach rechts, dann zweite Zeile von links nach rechts …

Lösungen

Tipps zu den Aufgaben

Lösungen Aufgaben A

Aufgaben B (Tasten)

Aufgabe B1

Drückt man die linke Taste, wird ein Herz (oder eine Ente) angezeigt. Drückt man die rechte Taste, so erlöscht das Bild.

Aufgabe B2

Würfeln: Programmiere einen digitalen Würfel. Drückt man eine der beiden Tasten, so wird eine Zufallszahl (1-6) bestimmt und das entsprechende Würfelbild angezeigt.

Tipps:

Spiele mit einer Kolleg:in (die den Würfel auch bereits korrekt programmiert hat) das Leiterspiel. Spiele maximal 5 Minuten. Klicke auf das Bild, damit es gross angezeigt wird.

Aufgabe B3

Fotostrecke: Befülle eine Liste mit einigen Bildern. Mit der linken und rechten Taste soll man die Bilder durchgehen können. Ist man am Ende der Liste angelangt, passiert nichts, wenn man weiter drückt.

Ist es hier besser, is_pressed() oder was_pressed() oder get_presses() zu verwenden? Warum?

Aufgabe B4 (Zusatzaufgabe, mittel)

Zwei Spielerinnen würfeln abwechslungsweise (eine mit linkem, eine mit rechtem Knopf). Es wird immer die jeweils gewürfelte Zahl angezeigt. Im Hintergrund werden für beide Spielerinnen diese Werte aufsummiert. Wer zuerst die Summe 42 (oder mehr) erreicht hat, hat gewonnen. Von dieser Spielerin wird dann das Lieblingstier angezeigt.

Lösungen Aufgaben B

Aufgaben C (Beschleunigungssensor)

Aufgabe C1

Rechenaufgabe (ohne micro:bit). Stelle dir vor, ein vom micro:bit gemessener Beschleunigungswert sei $2642$.

  1. Wie vielen $g$'s entspricht dies?
  2. Wandle um in $\text{m}/\text{s}^2$.

Aufgabe C2

Rechenaufgabe (ohne micro:bit). Unten sind die gemessenen Werte für die Beschleunigungen in die drei Koordinatenrichtungen angegeben. Berechne jeweils die Gesamtbeschleunigung:

  1. $(1728, 2020, 2040)$
  2. $(-508, -60, 892)$

Aufgabe C3

Zeige in der Konsole („Show serial“) die Beschleunigungen der drei Koordinatenrichtungen an. Pausiere den micro:bit nach jeder Messung z.B. für eine halbe Sekunde, damit du nicht mit Werten überflutest wirst.

  1. Laufe nun mit dem micro:bit und dem Computer durch das Zimmer und zwar so, dass die $x-$ und die $y-$Beschleunigung möglichst klein sind.
  2. Wie musst du den micro:bit halten und wie musst du dich bewegen?

Aufgabe C4

  1. Schreibe ein Programm, welches die Gesamtbeschleunigung misst und den Wert in der Konsole ausgibt. Füge nach jeder Messung wieder eine Pause ein.
  2. Hältst du den micro:bit still, sollten der bekannte Wert $9.81$ (oder zumindest Wert in der Nähe davon) angezeigt werden, unabhängig davon, in welche Richtung der micro:bit zeigt.
  3. Bewege den micro:bit nun so, dass du eine möglichst grosse Beschleunigung misst. Beschädige ihn aber nicht!
  4. Erweiterung: Mit den Tasten sollst du nun zwischen drei Modi umstellen können:
    1. Anzeige in mg (z.B. $1018$)
    2. Anzeige in $g$'s (z.B. $1.02$)
    3. Anzeige in $\text{m}/\text{s}^2$ (z.B. $9.98$)

Aufgabe C5 (Advanced)

Je fester der micro:bit beschleunigt wird, desto heller soll die LED-Matrix leuchten.

Tipp 1: Verwende evtl. deine Funktion aus A3 (Advanced 1), mit der du ein Bild von gewünschter Helligkeit erstellen kannst.

Tipp 2: Verwende die Funktion int(), um aus einer Kommazahl eine Ganzzahl zu machen.

Lösungen Aufgaben C

Aufgaben D (Gesten)

Studiere zuerst den kurzen Theorieteil zum Erkennen von Gesten.

Aufgabe D1

Schreibe ein Programm, das eine Ente anzeigt, wenn du den Microbit schüttelst und ein Haus, wenn du ihn nach oben drehst.

Aufgabe D2

Probiere den Code für den Magic8Ball aus:

Aufgabe D3

Schreibe ein Würfel-Programm, das immer dann, wenn der Microbit geschüttelt wird, eine zufällige Zahl zwischen 1 und 6 anzeigt. Nach einer Sekunde soll das Display wieder dunkel werden. Benutze die Funktion randint() aus dem Modul random.

Aufgabe D4 (Advanced)

Programmiere Schere-Stein-Papier. Die Idee ist, dass du gegen eine Kolleg:in spielen kannst. Beide schütteln jeweils ihren Microbit und dann wird per Zufall eines der drei Symbole ausgewählt und angezeigt. Spiele Best of 5 (also wer zuerst drei Punkte hat).

Weitere Ideen:

Aufgabe D5

Programmiere deine eigene Gesten-Erkennung nur mit dem Accelerometer-Sensor:

Aufgaben E (Audio)

Aufgabe E1

Schreibe eine Programm, das auf Knopfdruck einen Ton mit music.pitch abspielt. Welche Frequenz musst du wählen, damit beim Button B eine Oktave zum Ton bei Button A ertönt?

Aufgabe E2

Schreibe eine Programm, das eine Melodie abspielt.

Aufgabe E3

Schreibe ein Programm, das die Umgebungslautstärke auf dem Display angezeigt (microphone.sound_level() - Dokumentation). Je lauter, desto mehr und hellere Punkte sollen leuchten. Wie reagiert der Microbit auf das Programm aus E1 / E2, das auf einem anderen Gerät abgespielt wird?

Lösung

Als Equalizer

Zusatzaufgabe E4: Mini-Keyboard

Schreibe ein Programm, um Musik abzuspielen. Verwende das pin_logo, pin1 und pin2 als berührungsempfindlicher Sensor (pin1.set_touch_mode(pin1.CAPACITIVE)). Wieviele Kombinationen der drei Pins gibt es? Das sollte für eine diatonische Tonleiter reichen…

Lösung

Aufgaben F (BLE)

Aufgabe F1: Secret Message!

Sendet euch geheime Nachrichten quer durch den Raum. Stellt sicher, dass ihr auf einem eigenen Kanal kommuniziert.

Aufgabe F2a: Happy or not?

Aufgabe F2b: Send-a-Tune

Aufgabe F3: Morsen

Aufgabe F4: micro:bits in love

Studiere die folgende Theorie zu Signalstärke und Distanzmessungen.

Die beiden micro:bits sollen beide ein HAPPY, MEH oder SAD-Smiley anzeigen - je nachdem wie weit sie auseinander sind. Da sie verliebt ineinander sind, sollen sie HAPPY sein, wenn sie möglichst nahe beieinander sind.

Aufgabe F5: Abstimmen

  1. Programmiere deinen Microbit so, dass du mit Mitschüler:innen Abstimmungen durchführen kannst:
    1. Wenn die A-Taste gedrückt wurde, sendet dein Micorbit die Nachricht „YES“ und zeigt auf dem Display das Bild Image.YES.
    2. Wenn die B-Taste gedrückt wurde, sendet dein Micorbit die Nachricht „NO“ und zeigt auf dem Display das Bild Image.NO.
    3. Wenn das Touch-Logo (pin_logo) berührt wird, zeigt das Display, wie viele YES- und wie viele NO-Nachrichten empfangen wurden. Der Text, der durch das Display scrollt, soll beispielsweise so aussehen: „Y: 3. N: 2“. Nach dieser Anzeige soll die Zähler wieder auf 0 gesetzt werden.
  2. Stimmt ab in Gruppen von drei oder mehr Personen
    • A stellt eine Frage, die anderen stimmen mit den Microbits ab.
    • A schaut auf ihrem Microbit, wie abgestimmt wurde.
    • Simmt beispielsweise darüber ab, wohin ihr Mittagessen gehen sollt oder ob das Fach Informatik besser ist als Physik.
    • Testet zuerst und überprüft, ob alle den gleichen Kanal / die gleiche Gruppe eingestellt haben.

Aufgabe F6: Abstimmen 2 (Zusatzaufgabe, schwierig)

Dein Programm in obiger Aufgabe hat ein Problem: Jemand könnte bei einer Frage mehrmals drücken und so meherere Stimmen abgeben. Wie kannst du verhindern, dass jemand mehr als eine Stimme abgeben kann? Indem jeder Microbit mit jeder Ja- und Nein-Stimme seine eigene Nummer mitsendet. In einer Liste kannst du die Nummer erfassen und jeweils überprüfen, ob diese Nummer schon abgestimmt hat oder nicht. Schreibe ein Programm, das du auf mehrere Microbits laden und dann faire Abstimmungen durchführen kannst.

Aufgabe F7: Maximale Distanz? (Zusatzaufgabe: einfach)

Was ist etwa die maximale Distanz in Sichtweite, über die zwei micro:bits miteinander kommunizieren können? Mache ein Experiment.

Wichtig: Die micro:bits müssen sich 'sehen' können.

Aufgabe F8: Nachricht versenden (Zusatzaufgabe: eher einfach)

Ähnlich wie die Morse-Aufgabe, nur soll jetzt eine normale Nachricht bestehend aus Buchstaben versendet werden können. Mit den beiden Knöpfen soll das Alphabet durchgegangen werden können. Mit dem Touch-Logo soll der Buchstabe versendet werden können.

Aufgabe F9: Schere-Stein-Papier revisited (Zusatzaufgabe: mittel-schwierig)

In einer früheren Aufgabe hast du Schere-Stein-Papier bereits einmal programmiert. Programmiere es nun so (um), dass die beiden Spieler:innen beide ihren micro:bit in der Hand halten. Um einen Zug zu machen, wird der micro:bit geschüttelt. Die micro:bit kommunizieren natürlich über BLE miteinander. Das Ergebnis eines Zuges und der aktuellste Spielstand könnte auch über den Lautsprecher ausgegeben werden. Im Dossier kannst du nachlesen, wie man Sounds abspielen kann.

Lösungen Aufgaben F

Aufgaben G (Maqueen)

Aufgabe G0: Distanzmesser (schwieriger als gedacht)

Schreibe ein Programm, das das Display heller werden lässt, je näher der Maqueen zu einem Objekt ist. Betrachte zuerst den Beispiel-Code in der Theorie zum Distanzmesser.

Aufgabe G1: Figur abfahren

  1. Studiere die Theorie zur Driver-Schnittstelle (Motorsteuerung)
  2. Lasse den Maqueen ein Quadrat fahren.
  3. Lasse deinen Maqueen eine der folgenden Optionen abfahren:
    1. Für Geometriefreaks: anspruchsvolle Geometrische Figur (z.B. Pentagramm - wie berechnet man den Winkel der Spitzen? Nicht auf Wikipedia nachschauen!)
    2. Für Narzist:innen: eigener Name / Spitzname / Initialen
    3. Für Schleimer:innen: Name / Initialen der Lehrperson (aber kein Spitzname!)
    4. Für Royalist:innen: Portrait des Königs

Aufgabe G2: Fahren bis zum Hindernis

Verwende die Chassis-Schnittstelle. Wenn die A-Taste gedrückt wurde, soll der Roboter losfahren. Wenn er ein Hindernis (weniger als 8 cm) vor sich hat, soll er stopppen.

Aufgabe G3: Staubsaugroboter

Programmiere einen Staubsaugroboter: Fahre geradeaus bis zu einem Hindernis. Wende um einen zufälligen Winkel und wiederhole.

Probiere den Roboter aus - würde er funktionieren?

Aufgabe G4 (Advanced): Rendez-vous

Verwende deine Kenntnisse zur Funk-Steuerung, um folgende Aufgabe zu lösen:

Aufgabe G5 (Advanced): Follow-the-line

Verwende den Bodensensor, um einer schwarzen Linie zu folgen. Signalisiere den Zustand der Bodensensoren mit den Front-LEDs.

Aufgabe G6 (Medium): Remote Control

Aufgabe für 2 Personen: Schreiben Sie eine Fernsteuerung für den Maqueen. Der eine Microbit sendet Signale (links / rechts / geradeaus), der andere empfängt diese und setzt sie in Steuersignale für den Roboter um.

Mögliche Steuerbelegung:

Lösungen

Lösungen