Loeffel-ei: Unterschied zwischen den Versionen

Aus microbit - Das Schulbuch
Zur Navigation springen Zur Suche springen
Alois.bachinger (Diskussion | Beiträge)
Martin.teufel (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
 
(31 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
== [[File:Icon_story.png|30px|Icon]] Ei und Löffel Spiel  ==  
== [[File:Icon_story.png|30px|Icon]] Ei und Löffel Spiel  ==  
[[File:Ei_Loeffel_lauf.png|400px|right]]
[[File:Ei_Loeffel_lauf.png|400px|right]]
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?" <br> "Mmh, ich weiß nicht, hast du schon eine Idee?" Sonja antwortet: "Wir könnten das Ei-Löffel Spiel machen! Was meinst du?" <br> Elias: "Ja, dabei hatten wir bisher immer Spaß, aber vielleicht peppen wir dieses Spiel etwas auf?"<br> Sonja: "Stimmt, wir könnten statt den Gegenständen Ei und Löffel den micro:bit zum Einsatz bringen! Kannst du dir vorstellen, wie sich das praktisch umsetzen lässt? Versuchen wir gemeinsam eine Lösung zu finden!" <br>
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?" <br> "Mmh, ich weiß nicht, hast du schon eine Idee?" Sonja antwortet: "Wir könnten das Ei und Löffel Spiel machen! Was meinst du?" <br> Elias: "Ja, dabei hatten wir bisher immer Spaß, aber vielleicht peppen wir dieses Spiel etwas auf?"<br> 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!" <br>


== [[File:Icon_gluehbirne.png|30px|Icon]] Aufgabenstellung  ==
== [[File:Icon_gluehbirne.png|30px|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.
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-Löffel Spiel simulieren. Dazu muss der 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 micro:bits schwankt, würde das echte Ei zu Boden gefallen sein. Der leuchtende Punkt auf der LED Matrix sollte möglichst sein ursprüngliche zentrale Position behalten.  
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 micro:bits soll das Ei dargestellt werden.
* Auf der LED Matrix des BBC micro:bit soll das Ei dargestellt werden.
* Mit dem Beschleunigungssensor kannst du die Bewegung und die Lage des micro:bits erfassen und auch die Reaktionsempfindlichkeit über den Sensorwert einstellen.
* 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.
* Die Sensorwerte werden in einer Endlosschleife regelmäßig abgefragt.
* Der Micro:bit muss auf der Handfläche auch befestigen werden (Gummiband)
* Der BBC micro:bit muss auf der Handfläche befestigt werden (Gummiband)


== [[File:icon_material.png|30px|Icon]] Materialien ==
== [[File:icon_material.png|30px|Icon]] Materialien ==


* BBC micro:bit
* BBC micro:bit
* Klebeband um Start- und Ziellinie des zu überwindenden Weges zu markieren
* Klebeband, um Start- und Ziellinie des zu überwindenden Weges zu markieren
* Löffel und Ei zum Kennenlernen des Spiels
* Löffel und Ei zum Kennenlernen des Spiels
* Doppelklebeband  
* Doppelklebeband  
Zeile 25: Zeile 25:
== [[File:icon_sanduhr.png|30px|Icon]] Zeitaufwand ==
== [[File:icon_sanduhr.png|30px|Icon]] Zeitaufwand ==


* 2 Unterrichtseinheiten
* ca. 2 Unterrichtseinheiten


== [[File:Icon_puzzle3.png|30px|Icon]] Schwierigkeitsgrad ==
== [[File:Icon_puzzle3.png|30px|Icon]] Schwierigkeitsgrad ==
Zeile 33: Zeile 33:
== [[File:Icon_brain.png|30px|Icon]] Kompetenzen ==
== [[File:Icon_brain.png|30px|Icon]] Kompetenzen ==


[[File:Loeffel_kreativ.png|thumb|frame|Mikrobit mit einem Metalllöffel ist nicht optimal - Foto mit Handoberfläche]]
[[File:Loeffel_kreativ.png|thumb|frame|]]
[[File:Handflaeche oben mb.png|thumb|frame|Foto Handfläche mit Micro.bit]]
[[File:Handflaeche oben mb.png|thumb|frame|]]


Du solltest bereits  
Du solltest bereits  
* das Koordinatensystem kennen.
* das Koordinatensystem kennen
* wissen, wie man Punkte in einem Koordinatensystem angibt.
* wissen, wie man Punkte in einem Koordinatensystem angibt
* was eine Endlosschleife bedeutet.
* wissen, was eine Endlosschleife bedeutet


Bei dieser Aufgabe lernst du
Bei dieser Aufgabe lernst du
* wie du Werte des Beschleunigungssensors nutzen kannst, um einen Punkt auf der LED Matrix tanzen zu lassen.
* wie du Werte des Beschleunigungssensors nutzen kannst, um einen Punkt auf der LED Matrix tanzen zu lassen


Beim Programmieren lernst bzw. übst du
Beim Programmieren lernst bzw. übst du


* [[Variablen]] anzulegen.
* [[Variablen]] anzulegen
* [[Operatoren]] zu verwenden.
* [[Operatoren]] zu verwenden
* den [[Beschleunigungssensor]] zu nutzen.
* den [[Beschleunigungssensor]] zu nutzen
* [[Bedingungen]] einzusetzen.
* [[Bedingungen]] einzusetzen


== [[File:Icon faecher.png|30px|Icon]] Unterrichtsfächer ==
== [[File:Icon faecher.png|30px|Icon]] Unterrichtsfächer ==
Zeile 57: Zeile 57:
* Digitale Grundbildung
* Digitale Grundbildung
* Deutsch
* Deutsch
* Soziales Lernen


== [[File:Icon_hilfe.png|30px|Icon]] Tipps und Hilfestellungen ==
== [[File:Icon_hilfe.png|30px|Icon]] Tipps und Hilfestellungen ==
Wenn du genau gelesen hast, dann wollen Sonja und Elias das Ei- und Löffelspiel mit dem micro:bit durchführen und dafür ein Programm schreiben.
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 ===
=== Erforderliche Programmierblöcke ===


==== Ziel ====  
==== Ziel ====  
* Stelle das Ei symbolisch als eine einzeln leuchtende LED in der Mitte der LED Matrix dar.  
* Stelle das Ei symbolisch als eine einzeln leuchtende LED in der Mitte der LED Matrix dar.  
* Der micro:bit (Ersatz für das Ei) muss beim Gehen so genau balanciert werden, dass sich die leuchtende LED sich nicht aus der Grundstellung bewegt, nicht aus der Matrix kippt.
* 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 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.  
* 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 micro:bit in jede Richtung bewegt hat. Liegt der 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 Beschleunigungsmessen nach unten.
* 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.


[[File:egg01.png|200px ]] ... [[File:Koordinatenraster.png|200px ]] ... [[File:microbitAchsen.png|200px ]]
[[File:egg01.png|200px ]] ... [[File:Koordinatenraster.png|200px ]] ... [[File:microbitAchsen.png|200px ]]
Zeile 73: Zeile 72:
==== Blöcke (Welche Programmteile benötigt man) ====
==== Blöcke (Welche Programmteile benötigt man) ====


* Beim Spielstart wird die Position des Eies auf der LED Matrix in der Mitte festgelegt. <spoiler text="Block"> [[File:KoordinatenEi.png|border|Zwei mögliche Zustände (wahr und falsch)?]]</spoiler>
* 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">
* Damit das Ei als mittlere Koordinate auf der LED Matrix leuchtet, muss die angegebene LED mithilfe der entsprechenden X- und Y-Koordinate eingeschaltet werden. <spoiler text="Block"> [[File:LEDeinschalten.png|border|Zwei mögliche Zustände (wahr und falsch)?]] ...</spoiler>
<pre id="pre01">
* In einer Endlosschleife frage man den Wert der Bewegungsänderung in Richtung X- und Y-Achse ab. <spoiler text="Block"> [[File:Bewegungmessen.png|Zwei mögliche Zustände (wahr und falsch)?]] </spoiler>
let x = 2
* 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 micro:bits dauerhaft in der Endlosschleife überprüft und die entsprechende Änderung der Variablen festgelegt. <spoiler text="Block"> [[File:Bedingung Bewegung.png|border|Zwei mögliche Zustände (wahr und falsch)?]] </spoiler>
let y = 2
* Wie sensibel der 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 micro:bits. 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.
</pre>
<spoiler text="Block"> [[File:BedingungBewegung200.png|border|Zwei mögliche Zustände (wahr und falsch)?]] </spoiler>
</spoiler>
* Eine volle Neigung nach links (90°) ergibt einen Zahlenwert von -1023, eine volle Neigung nach rechts ergibt +1023. Genauso bei der y-Neigung.
* 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">  
<pre id="01">
basic.forever(function () {
    led.plot(x, y)
    accX = input.acceleration(Dimension.X)
    accY = input.acceleration(Dimension.Y)
})
 
</pre>
</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">  
<pre id="01">
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
    }
})
</pre>
</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 ===
=== Tipps zur Umsetzung ===


* Für die Bedingung musst du dir auch überlegen, wie rasch und sensibel der micro:bit bei Bewegung reagieren soll. Der vorgeschlagene Zahlenwert beträgt in diesem Beispiel 150.
* 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.
* Lade das Programm auf deinen micro:bit, klebe das Batteriepack mit einem Doppelklebeband auf einen Löffel und gestalte den micro:bit als Ei. Die LED Matrix soll dabei sichtbar sein.
* Erstelle das Programm in der Programmieroberfläche, teste erst einmal mit dem Simulator in der Programmieroberfläche.
* Verwende am besten einen Kunstofflöffel, damit keine Kurzschlüsse auf dem Metalllöffel entstehen können.
* 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===
===Schritt für Schritt zur Lösung===
Zeile 93: Zeile 123:


===Allgemein===
===Allgemein===
* Probiere das Ei und Löffelspiel zuerst mit Ei und Löffel aus, verwende danach den micro:bit für dieses Bewegungsspiel. Vergleiche die Ergebnisse und berichte über deine Erfahrungen.
* 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.  
* Stelle dein Ergebnis vor! Zeige, was dein Produkt kann.  
* Was hat dir bei der Entwicklung dieses Spiels gefallen?  
* Was hat dir bei der Entwicklung dieses Spiels gefallen?  
Zeile 99: Zeile 129:
* Erläutere, wie du dein Produkt programmiert hast und welche Funktionen du verwendet hast!
* Erläutere, wie du dein Produkt programmiert hast und welche Funktionen du verwendet hast!
* Was war bei dieser Aufgabe interessant für dich?
* Was war bei dieser Aufgabe interessant für dich?
* Gestalte einen Team Bewerb. Mache den Vergleich und starte einen Wettbewerb. Ein Spieler eine Spielerin mit Löffel und Ei und ein zweiter mit dem micro:bit.
* 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 mit verschiedenen Variationen aus. Führe einen Staffellauf mit Eiübergabe (micro:bit Übergabe) und zwei Wettbewerbsteams durch. Lasse zwei Wettbewerbteams antreten.
* 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===
===Projektspezifisch===


* x
* Welche Regeln sind für die Genauigkeit festgelegt?
* x
* Wo findet man in der Praxis Lagesensoren und Beschleunigungsmesser?
* x
* 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"?


==[[File:icon_plus.png|30px|Icon]] Weiterentwicklung ==
==[[File:icon_plus.png|30px|Icon]] Weiterentwicklung ==
Zeile 113: Zeile 144:
* Ändere auch den Pausierwert und beobachte das Spiel.
* Ä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.
* Lasse als Zeichen, dass das Ei hinuntergefallen und das Spiel zu Ende ist, ein rotes X Symbol anzeigen.
* Der micro:bit soll laut einige nervige Töne abspielen wenn das Ei hinunterfällt. Komponiere selbst eine Melodie.
* Der BBC micro:bit soll einige laute und nervige Töne abspielen wenn das Ei hinunterfällt. Komponiere selbst eine Melodie.
* Programmiere einen weiteren micro:bit als Stoppuhr und setze ihn beim Spiel für den Wettbewerb ein. Anregungen und Tipps, wie du den micro:bit als Stoppuhr programmierst findest du hier: [https://microbit.eeducation.at/wiki/Stoppuhr Link]
* 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: [https://microbit.eeducation.at/wiki/Stoppuhr Link]


=== Noch eine Erweiterungsaufgabe ===  
=== Weitere Erweiterungsaufgaben ===  
Analysiere diesen Programmcode:<br> Erkläre deiner Mitschülerin und deinem Mitschüler mit eigenen Worten, was in diesem Programm schrittweise passiert.
Analysiere diesen Programmcode:<br> Erkläre deiner Mitschülerin/deinem Mitschüler mit eigenen Worten, was in diesem Programm schrittweise passiert.


* Welche besonderen Funktionen sind hier sichtbar?  
* Welche besonderen Funktionen sind hier sichtbar?  
* Besprecht gemeinsam, welche Werte man ändern kann und was die jeweilige Änderung bewirkt.
* Besprecht gemeinsam, welche Werte man ändern kann und was die jeweilige Änderung bewirkt.
[[File:Ei Loeffel erw.png]]
<spoiler text='Erweiterungsaufgabe 1'>
<pre id='pre01'>
 
 
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
</pre>
</spoiler>
Dieses Erweiterungsprogramm ist hier aufrufbar:
[https://makecode.microbit.org/_J6MV5cbkYKHL Link]
 
<spoiler text='Erweiterungsaufgabe 2'>
<pre id='pre01'>
 
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()
})
</pre>
</spoiler>
Dieses Erweiterungsbeispiel ist hier aufrufbar:
[https://makecode.microbit.org/_gq6AFF45PXUV Link]
 


Dieses Programm ist hier aufrufbar:
<htmlet>makecode_embed</htmlet>
[https://makecode.microbit.org/_2uLL8Haa4C5q Link]

Aktuelle Version vom 30. März 2022, 08:02 Uhr

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