Frostwächter
Geschichte
Es war einmal...
Aufgabenstellung
Mithilfe von zwei BBC Micro:bit wird die Temperatur gemessen und angezeigt. Dazu schickt ein BBC Micro:bit dauerhaft die Temperatur an einem zweiten. Dieser zeigt die gemessene Temperatur an. Wenn die Temperatur unter 0 Grad fällt, soll ein Warnton ausgegeben werden. Der Akku soll dabei möglichst lange halten.
Materialien
- Zwei BBC Micro:bit (Version V2 oder V1 mit Lautsprecher für die Soundausgabe)
Zeitaufwand
- 1-2 Unterrichtseinheit(en)
Schwierigkeitsgrad
Kompetenzen
Du solltest bereits
- Daten mit dem Micro:bit übertragen können
- Bedingte Anweisungen kennen
Beim Programmieren lernst bzw. übst du
- Funkverbindungen aufzunehmen
- Funksignale zu empfangen
- Bedingungen zu verwenden
- die Soundausgabe zu verwenden
Bei dieser Aufgabe lernst du auch
- ein neues Programm zu erstellen
Unterrichtsfächer
- Werken
- Informatik
- Physik
Tipps und Hilfestellungen
Erforderliche Programmierblöcke
Ziel
- Nach Programmstart soll ein beliebiges Symbol zeigen, dass der Micro:bit, der die Temperatur misst, eingeschaltet ist.
- Um den Akku zu schonen, soll dieses Symbol möglichst schwach leuchten.
- Die Temperatur soll fortlaufend gemessen werden und alle 5 Minuten an einen weiteren Micro:bit gesendet werden.
- Beim einem weiteren Micro:bit soll die Temperatur angezeigt werden.
- Falls die Temperatur unter 0 Grad sinkt, soll ein Alarmton beim Empfänger abgespielt werden.
Blöcke
- Zwei Micro:bit sollen mit Funk verbunden werden <spoiler text="Block">
radio.setGroup(47)
</spoiler>
- Der Funkkanal muss für beide gleich lauten
- 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
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
- Wie gut funktioniert der Temperatursensor im Vergleich zu einem gekauften Thermometer?
- Wie weit geht die Funkverbindung?
- Würdest du dich auf diesen Frostwächter verlassen?
- Was müsste sich an diesem Programm verbessern, damit du ihn tatsächlich einsetzen kannst?
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
- Programmiere den Frostwächter so, dass der Warnton bei gedrückter Taste "A" pausiert.
- Ein Micro:bit soll so programmiert werden, dass er die Temperatur misst. Bei Tastendruck "A" soll die kleinste gemessene Temperatur angezeigt werden und "B" das Maximum.