Kühlschrankwächter Lösung: Unterschied zwischen den Versionen

Aus microbit - Das Schulbuch
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(3 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
== Grundsätzliche Überlegungen ==
== Grundsätzliche Überlegungen ==
Für diesen einführenden Beispiele sind zwei Ideen wichtig:
Für dieses einführende Beispiel sind zwei Ideen wichtig:
* Was sind [[Ereignisse]] und welche gibt es beim micro:bit?
* Was sind [[Ereignisse]] und welche gibt es beim micro:bit?
* Wie funktionieren [[Alternativen|Abfragen]] und wie können dort Vergleiche verwendet werden?
* Wie funktionieren [[Alternativen|Abfragen]] und wie können dort Vergleiche verwendet werden?


== Tipps und Tricks ==
== 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">[[Datei:Kühlschrankwächter - Licht an.png|border|250px|Mögliches Symbol für "Es ist hell"]][[Datei:Kühlschrankwächter - Licht aus.png|border|250px|Mögliches Symbol für "Es ist dunkel"]]</spoiler>
* Ü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">[[Datei:Kuehlschrankwaechter - Licht an.png|border|250px|Mögliches Symbol für "Es ist hell"]][[Datei:Kuehlschrankwaechter - Licht aus.png|border|250px|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!
* 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 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.
Zeile 13: Zeile 13:
== Komplettlösungen ==
== Komplettlösungen ==
; Beim Starten des Programms, was müssen wir alles festlegen?
; Beim Starten des Programms, was müssen wir alles festlegen?
: Eine mögliche Lösung für den Start? <spoiler text="Lösung">[[Datei:Kühlschrankwächter - beim Start.png|border|250px|Was passieren könnte, wenn das Programm startet]]</spoiler>
: Eine mögliche Lösung für den Start? <spoiler text="Lösung"><pre id="pre4">
basic.showLeds(`
    # # # # #
    # # # # #
    # # # # #
    # # # # #
    # # # # #
    `)
</pre></spoiler>
; Wenn das Programm läuft, muss nur noch die Lichtstärke dauerhaft abgefragt und verglichen werden.
; 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">[[Datei:Kühlschrankwächter - dauerhaft.png|border|450px|Was dauerhaft getestet und im Fall des Falles gemacht werden könnte]]</spoiler>
: Das sieht im einfachsten Fall so aus: <spoiler text="Lösung"><pre id="pre4">
basic.forever(function () {
    if (input.lightLevel() < 10) {
        basic.showLeds(`
            . . . . .
            . . . . .
            . . . . .
            . . . . .
            # # # # #
            `)
    }
})
</pre></spoiler>
<htmlet>makecode_embed</htmlet>

Aktuelle Version vom 12. Mai 2020, 11:06 Uhr

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>