The Queens Cupcake

Aus microbit - Das Schulbuch
Zur Navigation springen Zur Suche springen

Icon Geschichte

Icon Aufgabenstellung

Pass auf, dass der Cupcake nicht vom silbernen Tablett rutscht, wenn er serviert wird! In diesem Spiel wird der Cupcake durch ein leuchtendes LED am Micro:bit simuliert. Das silberne Tablett stellt den 5x5 LED-Raster des Micro:bits dar. Der Spieler oder die Spielerin müssen den Micro:bit flach auf dem Handrücken im Raum herumtragen und sicherstellen, dass er so flach wie möglich bleibt. Mithilfe des Beschleunigungssensors stellt unser Programm fest, ob sich der Micro:bit neigt (vorwärts, rückwärts, links oder rechts). Wenn das der Fall ist, bewegt sich der Cupcake (leuchtendes LED) auf dem silbernen Tablett (5x5 LED-Raster) in die richtige Richtung. Das Spiel endet, wenn das leuchtende LED am Rand des LED-Rasters ist und der Micro:bit weiter geneigt wird.

Icon Materialien

  • Ein BBC Micro:bit

Icon Zeitaufwand

  • 1-2 Unterrichtseinheit(en)

Icon Schwierigkeitsgrad

borderlessborderlessborderless

Icon Kompetenzen

Du solltest bereits

  • Bedingte Anweisungen kennen
  • Wissen, was Variablen sind und wofür sie benötigt werden


Beim Programmieren lernst bzw. übst du

Bei dieser Aufgabe lernst du auch

  • ein neues Programm zu erstellen

Icon Unterrichtsfächer

  • Informatik

Icon Tipps und Hilfestellungen

Erforderliche Programmierblöcke

Ziel

  • Der Cupcake soll mittels eines "sprite" (eine leuchtende Led am Display) am Micro:bit beim Starten in der Mitte des Displays angezeigt werden.
  • Das Sprite soll sich nach oben, unten, links und rechts am Dipslay bewegen, wenn der Micro:bit in diese Richtung geneigt wird. Wenn du also den Micro:bit nach vorne neigst, gleitet das sprite am Display nach vorne. Der Beschleunigungssensor hilft dabei.
  • Das Spiel dauert solange wie der Cupcake (sprite) am Dispaly leuchtet. Fällt er von der Platte, wird "Game Over" am Micro:bit ausgegeben.

Blöcke

  • Notwendige Variablen
    • Die Variable "cupcake" stellt mittels eines "sprite" (Computergrafik, eine leuchtende LED am Micro:bit) den Cupcake dar.<spoiler text="Block">
let cupcake = game.createSprite(2, 2)

</spoiler>

    • Kein anderes Kommunikations-Paar in der Klasse darf diesen Kanal benutzen (Kanal 1 bis 255 ist möglich).
  • Beim Starten des Senders wird ein beliebiges Symbol angezeigt, um zu wissen, dass der Micro:bit eingeschaltet ist. Mit diesem Befehl kannst du die Helligkeit des Displays verringern, um den Akku zu schonen.<spoiler text="Block">
radio.setGroup(47)
led.setBrightness(5)
basic.showIcon(IconNames.Yes)

</spoiler>

  • Block zum Senden der Temperatur <spoiler text="Block">
let receivedNumber = 0
basic.forever(function () {
    receivedNumber = input.temperature()
    radio.sendNumber(receivedNumber)
})

</spoiler>

  • Block zum Empfangen und Anzeigen der Temperatur <spoiler text="Block">
radio.onReceivedNumber(function (receivedNumber) {
    basic.showNumber(receivedNumber)
})

</spoiler>

  • Ausgeben des Sounds, wenn die Temperatur unter 0 Grad ist <spoiler text="Block">
radio.onReceivedNumber(function (receivedNumber) {
    basic.showNumber(receivedNumber)
    if (receivedNumber < 0) {
        music.startMelody(music.builtInMelody(Melodies.Chase), MelodyOptions.Forever)
    }
})

})

</spoiler>

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

  • Stelle dein Ergebnis vor! Was kann dein Produkt?
  • Was hat dir bei der Entwicklung deines Produkts gefallen?
  • Welche Schwierigkeiten hattest? Wie konntest du diese lösen?
  • Erläutere, wie du dein Produkt programmiert hast!
  • Was war bei dieser Aufgabe interessant für dich?

Projektspezifisch

  • Kannst du Erklären, warum die Variable "tolerance" benötigt? Warum brauchen wir Sie?
  • Welche Auswirkungen hätte es auf das Spiel, wenn die Variable "tolerance" den Wert 500 statt 200 hätte? Wäre das Spiel einfacher oder schwieriger?

Icon Weiterentwicklung

  • Überlege, ob es wirklich sinnvoll ist, die Temperatur dauerhaft an den Sender zu schicken? Wäre es nicht besser für den Akku, wenn das nur alle 5 Minuten passiert?

Erweiterungsaufgabe

  • Der oder die Spieler*in muss eine festgelegt Route mit dem "Cupcake" gehen. Es soll dabei erfasst werden, wie lange er oder sie für die Lieferung braucht. Programmiere den Micro:bit so, dass direkt nach der "3-2-1 Go"-Meldung die Zeitmessung startet. Drückt man den Knopf A soll die Zeitmessung gestoppt und der gemessene Wert angezeigt werden.
  • Der Code soll so angepasst werden, dass sich automatisch der Schwierigkeitsgrad ändert, wenn ein Spieler oder eine Spielerin beispielsweise 10 Sekunden lang gespielt hat, ohne den Cupcake fallen zu lassen (Z.B. Toleranzänderung von 200 auf 100).