Loeffel-ei

Aus microbit - Das Schulbuch
Version vom 30. März 2022, 08:02 Uhr von Martin.teufel (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Icon Ei und Löffel Spiel

Sonja und Elias sind zur Geburtstagsparty von Lukas eingeladen. Eine Woche vor der Feier fragt Sonja: "Elias, hast du dir schon ein Spiel für die Geburtstagsparty überlegt?"
"Mmh, ich weiß nicht, hast du schon eine Idee?" Sonja antwortet: "Wir könnten das Ei und Löffel Spiel machen! Was meinst du?"
Elias: "Ja, dabei hatten wir bisher immer Spaß, aber vielleicht peppen wir dieses Spiel etwas auf?"
Sonja: "Stimmt, wir könnten statt den Gegenständen Ei und Löffel den BBC micro:bit zum Einsatz bringen! Kannst du dir vorstellen, wie sich das praktisch umsetzen lässt? Versuchen wir gemeinsam eine Lösung zu finden!"

Icon Aufgabenstellung

Das Ei und Löffel Spiel ist ein Geschicklichkeitsspiel, bei dem von der Spielerin oder dem Spieler ein Ei über eine gewisse Distanz auf einem Löffel transportiert werden muss, ohne dass es auf den Boden fällt. Die Spielerin oder der Spieler muss also mit dem Ei vorsichtig umgehen und braucht dabei Geschick und Geduld, um das Ei problemlos zu balancieren. Wenn das Ei auf den Boden fällt, hat die Spielerin oder der Spieler verloren und muss neu beginnen.

Um keine Eier zu beschädigen, wollen wir mit dem BBC micro:bit das Ei und Löffel Spiel simulieren. Dazu muss der BBC micro:bit als Ei programmiert werden und auf der oberen Handfläche der Spielerin oder des Spielers balanciert werden. Wenn du also zu schnell gehst und deine Handfläche zu sehr mit dem BBC micro:bit schwankt, würde das echte Ei zu Boden gefallen sein. Der leuchtende Punkt auf der LED Matrix sollte möglichst seine ursprüngliche zentrale Position behalten.


  • Auf der LED Matrix des BBC micro:bit soll das Ei dargestellt werden.
  • Mit dem Beschleunigungssensor kannst du die Bewegung und die Lage des BBC micro:bit erfassen und auch die Reaktionsempfindlichkeit über den Sensorwert einstellen.
  • Die Sensorwerte werden in einer Endlosschleife regelmäßig abgefragt.
  • Der BBC micro:bit muss auf der Handfläche befestigt werden (Gummiband)

Icon Materialien

  • BBC micro:bit
  • Klebeband, um Start- und Ziellinie des zu überwindenden Weges zu markieren
  • Löffel und Ei zum Kennenlernen des Spiels
  • Doppelklebeband
  • Blatt Papier
  • 3 Gummiringe

Icon Zeitaufwand

  • ca. 2 Unterrichtseinheiten

Icon Schwierigkeitsgrad

Icon Kompetenzen

Du solltest bereits

  • das Koordinatensystem kennen
  • wissen, wie man Punkte in einem Koordinatensystem angibt
  • wissen, was eine Endlosschleife bedeutet

Bei dieser Aufgabe lernst du

  • wie du Werte des Beschleunigungssensors nutzen kannst, um einen Punkt auf der LED Matrix tanzen zu lassen

Beim Programmieren lernst bzw. übst du

Icon Unterrichtsfächer

  • Mathematik
  • Informatik
  • Digitale Grundbildung
  • Deutsch

Icon Tipps und Hilfestellungen

Wenn du genau gelesen hast, dann wollen Sonja und Elias das Ei und Löffel Spiel mit dem BBC micro:bit durchführen und dafür ein Programm schreiben.

Erforderliche Programmierblöcke

Ziel

  • Stelle das Ei symbolisch als eine einzeln leuchtende LED in der Mitte der LED Matrix dar.
  • Der BBC micro:bit (Ersatz für das Ei) muss beim Gehen so genau balanciert werden, dass sich die leuchtende LED nicht aus der Grundstellung bewegt, nicht aus der Matrix kippt.
  • Das 5 x 5-Raster der LEDs auf dem BBC micro:bit stellt ein Koordinatenraster mit einer horizontalen x-Achse und einer vertikalen y-Achse dar. Der Ursprung befindet sich bei diesem System in der oberen linken Ecke und mithilfe der Koordinatenpaare ist die Position der einzelnen LEDs eindeutig festgelegt. Die Werte der x-Koordinaten reichen von 0 bis 4 und steigen von links nach rechts an. Die Werte der y-Koordinaten steigen von 0 bis 4 von oben nach unten an.
  • Der Beschleunigungssensor funktioniert mit x-, y- und z-Koordinaten. Diese werden dazu verwendet, um zu sehen, wie weit sich der BBC micro:bit in jede Richtung bewegt hat. Liegt der BBC micro:bit völlig waagrecht und unbeweglich, so sind die Werte für die Beschleunigung ax und ay Null. Die z-Achse spielt bei unserem Beispiel keine Rolle - diese wäre die Beschleunigungsmessung nach unten.

... ...

Blöcke (Welche Programmteile benötigt man)

  • Beim Spielstart wird die Position des Eies auf der LED Matrix in der Mitte festgelegt - mit der x- und y-Koordinate auf 2/2. <spoiler text="Block">
let x = 2
let y = 2

</spoiler>

  • In einer Endlosschleife fragt man den Wert der Bewegungsänderung in Richtung x- und y-Achse ab. Diese Werte werden in den accX und accY gespeichert.<spoiler text="Block">
basic.forever(function () {
    led.plot(x, y)
    accX = input.acceleration(Dimension.X)
    accY = input.acceleration(Dimension.Y)
})

</spoiler>

  • Die leuchtende LED, die das Ei darstellt, darf sich nicht außerhalb der LED Matrix bewegen. Die x und y-Koordinaten dürfen nur Werte von 0 bis 4 annehmen. Mithilfe von Bedingungen im Zusammenspiel mit dem Bewegungssensor wird die jeweilige Kipprichtung des BBC micro:bit dauerhaft in der Endlosschleife überprüft und die entsprechende Änderung der Variablen festgelegt. <spoiler text="Block">
basic.forever(function () {
    if (accX < -150 && x > 0) {
        x += -1
    } else if (accX > 150 && x < 4) {
        x += 1
    }
    if (accY < -150 && y > 0) {
        y += -1
    } else if (accY > 150 && y < 4) {
        y += 1
    }
})

</spoiler>

  • Wie sensibel der BBC micro:bit auf die Handbewegung reagiert, legt die Größe des angegebenen Zahlenwertes der Beschleunigung fest. Das Vorzeichen Plus oder Minus beim Zahlenwert bestimmt die Neigungsrichtung des BBC micro:bit. Für die x-Achse bedeutet das, dass das Vorzeichen Minus die Neigung nach links und das Vorzeichen Plus die Neigung nach rechts angibt. Für die y-Achse stellt das Minus die Neigung nach vorne und das Plus die Neigung nach hinten dar.
  • Suche dir in der letzten Block-Darstellung die Grenzwerte -150 und +150, wird der BBC micro:bit mehr als dieser Wert geneigt, dann wird die Anzeige verändert.
  • Zusatzinformation: Der Wert 150 ist nur eine geringe Neigung, bei einer vollen Neigung nach links (um 90°) ergäbe das einen Messwert von -1023, eine volle Neigung nach rechts ergibt +1023. Genauso bei der y-Neigung.

Tipps zur Umsetzung

  • Für die Bedingung musst du dir auch überlegen, wie rasch und sensibel der BBC micro:bit bei Bewegung reagieren soll. Der vorgeschlagene Zahlenwert beträgt in diesem Beispiel 150.
  • Erstelle das Programm in der Programmieroberfläche, teste erst einmal mit dem Simulator in der Programmieroberfläche.
  • Lade das Programm auf den BBC micro:bit und teste die Genauigkeit der Neigung - noch ohne Zusatzmaterial -, das Programm sollte durch Kippen des BBC micro:bit richtig reagieren.
  • Erst dann klebe das Batteriepack mit einem Doppelklebeband auf einen Löffel und gestalte den BBC micro:bit als Ei. Die LED Matrix soll dabei sichtbar sein.
  • Verwende am besten einen Kunststofflöffel, damit keine Kurzschlüsse auf dem Metalllöffel entstehen können.

Schritt für Schritt zur Lösung

Hinweise zur Lösungsfindung und auch eine mögliche, komplette Lösung findest du auf der Lösungsseite zu diesem Beispiel

Icon Präsentation und Reflexion

Allgemein

  • Probiere das Ei und Löffel Spiel zuerst mit Ei und Löffel aus, verwende danach den BBC micro:bit für dieses Bewegungsspiel. Vergleiche die Ergebnisse und berichte über deine Erfahrungen.
  • Stelle dein Ergebnis vor! Zeige, was dein Produkt kann.
  • Was hat dir bei der Entwicklung dieses Spiels gefallen?
  • Welche Schwierigkeiten hattest du bei der Umsetzung? Wie konntest du diese lösen?
  • Erläutere, wie du dein Produkt programmiert hast und welche Funktionen du verwendet hast!
  • Was war bei dieser Aufgabe interessant für dich?
  • Gestalte einen Teambewerb. Ein Spieler/eine Spielerin mit Löffel und Ei und ein zweiter/eine zweite mit dem BBC micro:bit.
  • Probiere das Spiel in verschiedenen Variationen aus. Führe z.B. einen Staffellauf mit Eiübergabe (BBC micro:bit Übergabe) und zwei Teams durch.

Projektspezifisch

  • Welche Regeln sind für die Genauigkeit festgelegt?
  • Wo findet man in der Praxis Lagesensoren und Beschleunigungsmesser?
  • Wo braucht man bei einem Computerspiel den Lagesensor und Beschleunigungsmesser?
  • Vergleiche auch: Welche Variante des Spiels (Ei oder Computer) macht mehr Spaß - welche Variante ist "schonender"?

Icon Weiterentwicklung

  • Experimentiere mit deinem Programm, teste das Spiel mit verschiedenen Schwierigkeitsgraden.
  • Ändere auch den Pausierwert und beobachte das Spiel.
  • Lasse als Zeichen, dass das Ei hinuntergefallen und das Spiel zu Ende ist, ein rotes X Symbol anzeigen.
  • Der BBC micro:bit soll einige laute und nervige Töne abspielen wenn das Ei hinunterfällt. Komponiere selbst eine Melodie.
  • Programmiere einen weiteren BBC micro:bit als Stoppuhr und setze ihn beim Spiel für den Wettbewerb ein. Anregungen und Tipps, wie du den BBC micro:bit als Stoppuhr programmierst, findest du hier: Link

Weitere Erweiterungsaufgaben

Analysiere diesen Programmcode:
Erkläre deiner Mitschülerin/deinem Mitschüler mit eigenen Worten, was in diesem Programm schrittweise passiert.

  • Welche besonderen Funktionen sind hier sichtbar?
  • Besprecht gemeinsam, welche Werte man ändern kann und was die jeweilige Änderung bewirkt.

<spoiler text='Erweiterungsaufgabe 1'>



basic.forever(function () {
    if ((x == 0) || (x == 4)) {
        basic.showIcon(IconNames.No)
    }
    if ((y == 0) || (y == 4)) {
        basic.showIcon(IconNames.No)
    }
    led.plot(x, y)
    accX = input.acceleration(Dimension.X)
    accY = input.acceleration(Dimension.Y)
    if (accX < -150 && x > 0) {
        x += -1
    } else if (accX > 150 && x < 4) {
        x += 1
    }
    if (accY < -150 && y > 0) {
        y += -1
    } else if (accY > 150 && y < 4) {
        y += 1
    }
    basic.pause(500)
    basic.clearScreen()


})
let accY = 0
let accX = 0
let x = 2
let y = 2

</spoiler> Dieses Erweiterungsprogramm ist hier aufrufbar: Link

<spoiler text='Erweiterungsaufgabe 2'>


let accY = 0
let accX = 0
let x = 2
let y = 2
let empfindlichkeit = 100
basic.forever(function () {
    led.plot(x, y)
    if ((x == 0) || (x == 4)) {
        music.playTone(262, music.beat(BeatFraction.Whole))
    }
    if ((y == 0) || (y == 4)) {
        music.playTone(262, music.beat(BeatFraction.Whole))
    }
    accX = input.acceleration(Dimension.X)
    accY = input.acceleration(Dimension.Y)
    if (accX < empfindlichkeit * -1 && x > 0) {
        x += -1
    } else if (accX > empfindlichkeit && x < 4) {
        x += 1
    }
    if (accY < empfindlichkeit * -1 && y > 0) {
        y += -1
    } else if (accY > empfindlichkeit && y < 4) {
        y += 1
    }
    basic.pause(500)
    basic.clearScreen()
})

</spoiler> Dieses Erweiterungsbeispiel ist hier aufrufbar: Link