Kühlschrankwächter Lösung

Aus microbit - Das Schulbuch
Zur Navigation springen Zur Suche springen

Grundsätzliche Überlegungen

Für dieses einführende Beispiel sind zwei Ideen wichtig:

  • Was sind Ereignisse und welche gibt es beim micro:bit?
  • Wie funktionieren Abfragen und wie können dort Vergleiche verwendet werden?

Tipps und Tricks

  • Überlege dir zwei verschiedene Symbole für "Es ist hell" und "Es ist dunkel". Hole dir am besten zwei Blöcke namens "Zeige LEDs" und zeichne dir zwei beliebige Muster. Diese Blöcke kannst du später in dein Programm einbauen.<spoiler text="Lösung">Mögliches Symbol für "Es ist hell"Mögliches Symbol für "Es ist dunkel"</spoiler>
  • Beim Starten des Programms soll eines davon angezeigt werden. Welches nimmst du, wenn wir davon ausgehen, dass wir bei offener Kühlschranktür starten? Baue dein Symbol beim Ereignis "beim Start" ein!
  • Das meiste, was man im Block "dauerhaft" benötigt, findet man im Bereich "Logik" der Programmierumgebung. Für unser Beispiel reicht ein "Wenn"-Block und darin ein Block zum Vergleichen ob etwas kleiner als etwas anderes ist. Dieser Vergleichsblock kann in die "Wenn"-Abfrage eingebaut werden.
  • Das Messen der Lichtstärke ist ein Eingabewert. Der entsprechende Block kann in diesem Bereich gefunden werden. Er passt in den Vergleichsbaustein der "Wenn"-Abfrage.
  • Probiere verschiedene Zahlenwert aus, unter die die Lichtstärke fallen muss damit "Es ist dunkel" angezeigt wird. Wie weit musst du deine Hand jeweils über den micro:bit legen, damit dein Kühlschrankwächter Alarm schlägt?

Komplettlösungen

Beim Starten des Programms, was müssen wir alles festlegen?
Eine mögliche Lösung für den Start? <spoiler text="Lösung">

basic.showLeds(` # # # # # # # # # # # # # # # # # # # # # # # # # `) </spoiler>

Wenn das Programm läuft, muss nur noch die Lichtstärke dauerhaft abgefragt und verglichen werden.
Das sieht im einfachsten Fall so aus: <spoiler text="Lösung">

basic.forever(function () { if (input.lightLevel() < 10) { basic.showLeds(` . . . . . . . . . . . . . . . . . . . . # # # # # `) } }) </spoiler>