Lüftungsassistent Loesung: Unterschied zwischen den Versionen

Aus microbit - Das Schulbuch
Zur Navigation springen Zur Suche springen
Die Seite wurde neu angelegt: „== Grundsätzliche Überlegungen == Der Boden selbst hat einen gewissen elektrischen Widerstand, der von der Menge an Wasser und Nährstoffen abhängt. Es wirk…“
 
 
(20 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
== Grundsätzliche Überlegungen ==
== Grundsätzliche Überlegungen ==
Der Boden selbst hat einen gewissen elektrischen Widerstand, der von der Menge an Wasser und Nährstoffen abhängt. Es wirkt wie ein variabler Widerstand in einer elektronischen Schaltung. Das Wasser ist nicht leitend, der Nährstoffgehalt ist leitend. Die Kombination von Wasser- und Bodennährstoffen verleiht dem Boden eine gewisse Leitfähigkeit. Je mehr Wasser also zusammen mit den Nährstoffen vorhanden ist, desto weniger elektrischen Widerstand wird der Boden haben.
Der Servo-Motor funktioniert ähnlich wie der Minutenzeiger einer Uhr. Während der Minutenzeiger jedoch nur im Uhrzeigersinn läuft und 60 Minuten auf 360° aufteilt (6° pro Minute), bewegt sich der Servo-Motor in beide Richtungen und unterteilt die voreingestellte Zeitdauer auf 180°.


== Hilfestellungen und Lösung zum Metronom ==
== Hilfestellungen und Lösung zum Lüftungsassistent ==
;Feuchtigkeit messen
;Ausgangsstellung Servo-Motor und Pfeil
:Zu Beginn steuern wir den Pin P1 an und geben dort einen Strom aus.
:Zu Beginn setzen wir den Winkel des Servo-Motors auf 180°.
:Um die Feuchtigkeit der Erde mit dem mirco:bit messen zu können, lesen wir die Spannung an Pin P0 aus.
:Der Pfeil wird passend auf den Servo-Motor geklebt. Der Pfeil zeigt auf das rote Ende der Skala ("Fenster öffnen").
:Der Wert dieses Pins liegt zwischen 0 (kein Strom) und 1023 (maximaler Strom) und kann als Variable abgebildet werden.
: Gib der Variable einen sinnvollen Namen, wie zum Beispiel Feuchtigkeit.
:Der Wert dieser Variable kann als Graph auf der LED Matrix ausgegeben werden.
:Mit dem Befehl "plot bar graph" können Werte von Variablen grafisch dargestellt werden.


:'''Versuch'''
;Pfeilbewegung und Zeitintervall
:Setze die Nägel in trockene Erde. Es sollen nun die meisten LEDs abschalten.
:Wir unterteilen die zur Verfügung stehenden 180° in 6° Schritte.
:Setze die Nägel in feuchte Erde Nun sollten die meisten LEDs angehen.
:Nach einer bestimmten Dauer soll der Pfeil jeweils um 6° weiterspringen.
::Bei geöffnetem Fenster 10x1000ms (= 10 Sekunden)
::Bei geschlossenem Fenster 90x1000ms (= 90 Sekunden)


;Akustischer Hinweis
:Sobald der Pfeil bei "Fenster öffnen", bzw. "Fenster schließen" angekommen ist, soll uns der micro:bit ein akustisches Signal zum Öffnen und Schließen der Fenster geben.


== Komplettlösungen ==
<pre id="01">
input.onButtonPressed(Button.A, function () {
    grad_pfeil = 180
    basic.showLeds(`
        # # # # #
        # . . . #
        # . . . #
        # . . . #
        # # # # #
        `)
    for (let index = 0; index < 30; index++) {
        basic.pause(10 * 1000)
        grad_pfeil = grad_pfeil - 6
        pins.servoWritePin(AnalogPin.P1, grad_pfeil)
    }
    music.playMelody("G B A G C5 B A B ", 120)
    basic.showLeds(`
        # # # # #
        # . # . #
        # . # . #
        # . # . #
        # # # # #
        `)
    for (let index = 0; index < 30; index++) {
        basic.pause(90 * 1000)
        grad_pfeil = grad_pfeil + 6
        pins.servoWritePin(AnalogPin.P1, grad_pfeil)
    }
    music.playMelody("A F A F A F A F ", 120)
    basic.clearScreen()
})
let grad_pfeil = 0
pins.servoWritePin(AnalogPin.P1, 180)


;Sensordaten und Werte
:Bisher haben wir nur eine ungefähre Vorstellung davon, was der Sensorwert ist. Ergänzen wir, dass der aktuelle Messwert nur anzeigt wird, wenn die Taste A gedrückt wird.


:'''Versuch'''
</pre>
:Setze die Nägel in die trockene Erde, drücke A und notieren den Wert. Der Wert sollte im Bereich von 250 liegen.
:Setze die Nägel in die feuchte Erde, drücke A und notieren den Wert. Der Wert sollte im Bereich von 1000 liegen.


* Eine mögliche [https://makecode.microbit.org/_52f7xWKivA9V Lösung]




;Verschwende keine Energie
[[Lüftungsassistent|Zurück zur Aufgabe]]
:Wir möchten, dass die Batterien lange Zeit halten und daher können wir den Code optimieren. Unser Feuchtigkeitssensor soll nicht zu viel Energie verbrauchen.
:Wenn wir den Stromkreis direkt an den 3V Pin anschließen. Wird diese Messenheit dauerhaft mit Strom versorgt.
:Stattdessen können wir den Stromkreis mit Pin 3 (P1) verbinden und diesen Pin nur während der Messung einschalten. Dies spart Strom und vermeidet außerdem Korrosion an den Erdsonden (in unserem Fall Nägel).
:Wir können auch die Helligkeit des Bildschirms senken, um den Energieverbrauch der LEDs zu senken.
:Die Bodenfeuchtigkeit ändert sich sehr langsam, so dass wir sie nicht ständig messen müssen. Mit einer Pause von ca. 5 Sekunden kann zusätzlich Energie gespart werden.


 
<htmlet>makecode_embed</htmlet>
== Komplettlösungen ==
[[Datei:pflanzwächteraufbau.jpg|right|500px|border|Pflanzenwächter]]
Wenn der micro:bit mit Strom versorgt ist zeigt der mit der LED Matrix die Feuchtigkeit der Erde. Wenn die Taste A gedrückt wird, wird der Wert als Zahl ausgegeben. Den Pflanzenwächter in Aktion siehst du in diesem Video https://youtu.be/S8NppVT_paw.
Eine mögliche Lösung könnte so aussehen. <spoiler text="Lösung">[[Datei: Loesung_pflanzenwaechter.PNG |border|800px|eine mögliche Lösung]]</spoiler>

Aktuelle Version vom 4. Februar 2022, 13:20 Uhr

Grundsätzliche Überlegungen

Der Servo-Motor funktioniert ähnlich wie der Minutenzeiger einer Uhr. Während der Minutenzeiger jedoch nur im Uhrzeigersinn läuft und 60 Minuten auf 360° aufteilt (6° pro Minute), bewegt sich der Servo-Motor in beide Richtungen und unterteilt die voreingestellte Zeitdauer auf 180°.

Hilfestellungen und Lösung zum Lüftungsassistent

Ausgangsstellung Servo-Motor und Pfeil
Zu Beginn setzen wir den Winkel des Servo-Motors auf 180°.
Der Pfeil wird passend auf den Servo-Motor geklebt. Der Pfeil zeigt auf das rote Ende der Skala ("Fenster öffnen").
Pfeilbewegung und Zeitintervall
Wir unterteilen die zur Verfügung stehenden 180° in 6° Schritte.
Nach einer bestimmten Dauer soll der Pfeil jeweils um 6° weiterspringen.
Bei geöffnetem Fenster 10x1000ms (= 10 Sekunden)
Bei geschlossenem Fenster 90x1000ms (= 90 Sekunden)
Akustischer Hinweis
Sobald der Pfeil bei "Fenster öffnen", bzw. "Fenster schließen" angekommen ist, soll uns der micro:bit ein akustisches Signal zum Öffnen und Schließen der Fenster geben.

Komplettlösungen

input.onButtonPressed(Button.A, function () {
    grad_pfeil = 180
    basic.showLeds(`
        # # # # #
        # . . . #
        # . . . #
        # . . . #
        # # # # #
        `)
    for (let index = 0; index < 30; index++) {
        basic.pause(10 * 1000)
        grad_pfeil = grad_pfeil - 6
        pins.servoWritePin(AnalogPin.P1, grad_pfeil)
    }
    music.playMelody("G B A G C5 B A B ", 120)
    basic.showLeds(`
        # # # # #
        # . # . #
        # . # . #
        # . # . #
        # # # # #
        `)
    for (let index = 0; index < 30; index++) {
        basic.pause(90 * 1000)
        grad_pfeil = grad_pfeil + 6
        pins.servoWritePin(AnalogPin.P1, grad_pfeil)
    }
    music.playMelody("A F A F A F A F ", 120)
    basic.clearScreen()
})
let grad_pfeil = 0
pins.servoWritePin(AnalogPin.P1, 180)



Zurück zur Aufgabe