Lüftungsassistent: Unterschied zwischen den Versionen

Aus microbit - Das Schulbuch
Zur Navigation springen Zur Suche springen
Martin.teufel (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
 
(73 dazwischenliegende Versionen von einem anderen Benutzer werden nicht angezeigt)
Zeile 1: Zeile 1:
== [[Datei:Icon_story.png|20px|Icon]] Wofür brauche ich ein Metronom? ==
== [[Datei:Icon_story.png|20px|Icon]] Frische Luft für frische Ideen ==
[[File:Lueftungsassistent5.JPG|400px|right]]


 
So wie unser ganzer Körper braucht vor allem das Gehirn Sauerstoff, um gut funktionieren zu können. Das wissen auch die Kinder der 3. Klasse. Trotzdem vergessen sie am Vormittag immer wieder, die Fenster für ein paar Minuten zu öffnen, um frische Luft reinzulassen.
Paul, Martin und Michael gründen eine Band. Zu Hause übt jeder fleißig den neuen Song. Doch bei der Probe will irgendwie nichts zusammenpassen. Paul ist mit seiner Gitarre zu langsam, Michael trommelt zu schnell und Michael ändert beim Singen andauernd das Tempo.
Silvia und Georg haben eine Idee. Sie möchten einen Lüftungsassistenten bauen, der regelmäßig an das Öffnen und Schließen der Fenster erinnert.
Paul hat die Lösung. Er zückt sein Metronom. Mit dem regelmäßigen Ticken des Metronoms kann man perfekt das Tempo halten.
Vielleicht kann da der BBC micro:bit weiterhelfen?
Leider hat er nur ein Metronom, das er selbst zum Üben braucht.
Aber vielleicht kann der micro:bit Martin und Michael weiterhelfen?


== [[Datei:Icon_gluehbirne.png|20px|Icon]] Aufgabenstellung  ==
== [[Datei:Icon_gluehbirne.png|20px|Icon]] Aufgabenstellung  ==


Mit dem BBC micro:bit kannst du ein Metronom programmieren.  
Mit dem BBC micro:bit kannst du einen Lüftungsassistenten programmieren.  


* Beim Start spielt der micro:bit dauerhaft 100 bpm (beats per minute = Töne pro Minute).
* Nach einer bestimmten Dauer erinnert der BBC micro:bit mit einem akustischen Signal an das Öffnen und Schließen der Fenster.
* Der Ton ist ein "Mittleres C" für 1/16 Schlag, danach pausiert er für einen Schlag.
* Die LEDS zeigen den aktuellen Status der Fenster an.
* Taste A gedrückt macht das Tempo um 5 bpm schneller.
* Der angeschlossene Servo-Motor ist Teil einer Anzeigetafel, die mit der Stellung des Pfeiles einen Überblick über die Dauer des Öffnens und Schließens gibt.
* Taste B gedrückt macht das Tempo um 5 bpm langsamer.
* Die LED-Anzeige zeigt das aktuelle Tempo in Zahlen an.


== [[Datei:icon_material.png|20px|Icon]] Materialien ==
== [[Datei:icon_material.png|20px|Icon]] Materialien ==


* micro:bit
* BBC micro:bit (Version V2 oder V1 mit Lautsprecher für die Soundausgabe)
* Kopfhörer
* Servo-Motor samt Kabel für den Anschluss an den BBC micro:bit
* 4,5V-Stromquelle (3x AA-Batterien) für Servo-Motor
* [https://microbit.eeducation.at/wiki/Datei:Lueftungsassistent_Vorlage.pdf Lüftungsassistent Vorlage]
* Karton zum Anfertigen der Anzeigetafel


== [[Datei:icon_sanduhr.png|20px|Icon]] Zeitaufwand ==
== [[Datei:icon_sanduhr.png|20px|Icon]] Zeitaufwand ==


* 1 Unterrichtseinheit
* ca. 2 Unterrichtseinheiten


== [[Datei:Icon_puzzle3.png|20px|Icon]] Schwierigkeitsgrad ==
== [[Datei:Icon_puzzle3.png|20px|Icon]] Schwierigkeitsgrad ==


[[Datei:SternGelb.png|30px|borderless]][[Datei:SternLeer.png|30px|borderless]][[Datei:SternLeer.png|30px|borderless]]
[[Datei:SternGelb.png|30px|borderless]][[Datei:SternGelb.png|30px|borderless]][[Datei:SternLeer.png|30px|borderless]]


== [[Datei:Icon_brain.png|20px|Icon]] Kompetenzen ==
== [[Datei:Icon_brain.png|20px|Icon]] Kompetenzen ==
[[File:Anschluss_Servo.png|200px|right]]
Du solltest bereits:
* einen Servo-Motor mit 4,5 Volt Spannung (3x AA-Batterien) versorgen können
* einen Servo-Motor an den BBC micro:bit anschließen können


Das solltest du bereits können:
Du lernst
* Einen Kopfhörer an den micro:bit anschließen


 
* wie du Schleifen verwendest
Du lernst...
* wie du einen Servo-Motor exakt ansteuerst
 
* wie du die Geschwindigkeit des Tempos mit dem micro:bit einstellen kannst (Musik)
* wie du [[Variablen]] erstellen und verändern kannst


== [[Datei:Icon faecher.png|20px|Icon]] Unterrichtsfächer ==
== [[Datei:Icon faecher.png|20px|Icon]] Unterrichtsfächer ==


* Musik
* Physik
* Informatik
* Informatik
* Werken


== [[Datei:Icon_hilfe.png|20px|Icon]] Tipps und Hilfestellungen ==
== [[Datei:Icon_hilfe.png|20px|Icon]] Tipps und Hilfestellungen ==


===Ziel===  
=== Erforderliche Programmierblöcke ===
* Der micro:bit gibt beim Start dauerhaft 100 Töne pro Minute aus
==== Ziel ====  
* Die Taste A erhöht die Anzahl der ausgegebenen Töne um 5 pro Minute
* Beim Öffnen der Fenster wird die Taste A gedrückt. Der Timer beginnt zu zählen.
* Die Taste B verringert die Anzahl der ausgegebenen Töne um 5 pro Minute
* Die LEDs zeigen den aktuellen Status der Fenster an: geöffnet/geschlossen.
* Die LED-Anzeige zeigt das aktuelle Tempo in Zahlen an
[[File:Lueftungsassistent geoeffnet.png|200px ]] ... [[File:Lueftungsassistent geschlossen.png|200px ]]
* Der Pfeil der Anzeigetafel zeigt die restliche Dauer bis zum Öffnen und Schließen der Fenster an.
* Ein akustisches Signal weist auf das Öffnen und Schließen der Fenster hin.


===Erforderliche Programmierblöcke===
==== Blöcke ====
<ol>
<ol>
<li>[[Variablen|Variable]] <spoiler text="Block"> [[Datei:Variable.png|border|500px|Icon]]</spoiler>
<li> Beim Start wird der Winkel des Servo-Motors auf 180° gesetzt. <spoiler text="Block"><pre id="pre01">
<li>Verschachtelte  [[Bedingte_Anweisungen|bedingte Anweisungen]] <spoiler text="Block"> [[Datei:Geschachtelte verzweigung.png|500px|Icon|border|Bedingte Anweisung verschachtelt]]</spoiler>
pins.servoWritePin(AnalogPin.P1, 180)
<li>[[Schleifen|dauerhaft]] <spoiler text="Block"> [[Datei:dauerhaft.png|500px|Icon|border|]]</spoiler>
</pre>
<li>[[Schleifen|beim Start]] <spoiler text="Block"> [[Datei:Beimstart.png|500px|Icon|border|]]</spoiler>
</spoiler>
<li>schreibe analogen Pin <spoiler text="Block"> [[Datei:Schreibepin.png|500px|Icon|border|]]</spoiler>
<li> Die Taste A setzt die erstellte Variable "grad_pfeil" auf 180. Die LEDs zeigen das offene Fenster, danach startet eine Schleife.
<li>zeichne Balkendiagramm <spoiler text="Block"> [[Datei:Balkendiagramm.PNG|500px|Icon|border|]]</spoiler>
<li> Die Schleife wiederholt sich 30-mal. Dabei pausiert der BBC micro:bit jeweils 10 Sekunden, bevor sich der Servo um -6° weiter bewegt.
<li> Sobald der Pfeil den Wert "Fenster schließen" erreicht, spielt der BBC micro:bit eine Melodie ab und zeigt danach das geschlossene Fenster. <spoiler text="Block"><pre id="pre01">
let grad_pfeil = 0
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(`
        # # # # #
        # . # . #
        # . # . #
        # . # . #
        # # # # #
        `)
})
 
 
</pre>
</spoiler>
<li> Es folgt eine zweite Schleife. Nun pausiert der Servo für 90 Sekunden, bevor er sich um +6° weiter bewegt.
<li> Sobald der Pfeil den Wert "Fenster öffnen" erreicht, spielt der BBC micro:bit wieder eine Melodie ab. Danach wird der Bildschirminhalt gelöscht.
<li> Der Vorgang kann mit der Taste A wieder neu gestartet werden.
 
</ol>
</ol>


=== Eckpfeiler zur Umsetzung ===
=== Tipps zur Umsetzung ===


* Programmiere den micro:bit-Zufallsgenerator so, dass durch Schütteln ein Wert "wahr" oder "falsch" ermittelt wird (= Kopf oder Zahl)
* Denk daran, dass der BBC micro:bit mit Millisekunden arbeitet. Am besten du verwendest eine Multiplikation, um eine längere Zeitdauer zu bestimmen:
* Wenn Taster "A" gedrückt wird, soll die Anzahl Kopfwürfe gezeigt werden
:300x1000 Millisekunden = 300 Sekunden = 5 Minuten
* Wenn Taster "B" gedrückt wird, soll die Anzahl Zahlwürfe gezeigt werden
* Falls du einen BBC micro:bit V1 verwendest, achte darauf, dass der Pin P0 für die Soundausgabe verwendet wird. Den Servo-Motor musst du dann an P1 anschließen.
* Wenn Taster "A+B" gedrückt werden, soll die Summe der Würfe dargestellt werden
* Zufallswerte erhält man aus dem Menü Mathematik "Wähle zufälligen Wahr- und Falsch-Wert"
* Wird Wahr ermittelt, so soll der Buchstabe "K" für Kopf erscheinen, andernfalls "Z" für Zahl.
* Hier benötigt man die logische Verzweigung "Wenn ... dann ... sonst"
* Das System sollte über zwei Variablen protokollieren, wie oft Kopf und wie oft Zahl geworfen wurde


===[[Lösung_zufall|Schritt für Schritt zur Lösung]]===
===Schritt für Schritt zur Lösung===
:Hinweise zur Lösungsfindung und auch eine mögliche, komplette Lösung findest du auf der [[Lüftungsassistent_Loesung|Lösungsseite zu diesem Beispiel]]
:Hinweise zur Lösungsfindung und auch eine mögliche, komplette Lösung findest du auf der [[Lüftungsassistent_Loesung|Lösungsseite zu diesem Beispiel]].


==[[Datei:presentation.png|20px|Icon]] Präsentation und Reflexion ==
==[[Datei:presentation.png|20px|Icon]] Präsentation und Reflexion ==
Zeile 83: Zeile 114:
* Stelle dein Ergebnis vor! Was kann dein Produkt?  
* Stelle dein Ergebnis vor! Was kann dein Produkt?  
* Was hat dir bei der Entwicklung deines Produkts gefallen?  
* Was hat dir bei der Entwicklung deines Produkts gefallen?  
* Welche Schwierigkeiten hattest? Wie konntest du diese lösen?
* Welche Schwierigkeiten hattest du? Wie konntest du diese lösen?
* Erläutere, wie du dein Produkt programmiert hast!
* Erläutere, wie du dein Produkt programmiert hast!
* Was war bei dieser Aufgabe interessant für dich?
* Was war bei dieser Aufgabe interessant für dich?


===Projektspezifisch===
== [[Datei:icon_plus.png|20px|Icon]] Weiterentwicklung ==
 
* Fallen dir noch weitere Einsatzmöglichkeiten für die Anzeigetafel ein?
* Auf welche Weise kann dich der BBC micro:bit warnen, falls die Temperatur im Raum zu niedrig wird?


* Welche Regeln wurden für Kopf und Zahl festgelegt? Welche andere Regeln für "Kopf oder Zahl" gäbe es noch?
* Welche Diskussionspunkte ergaben sich während des Spiels?
* Wo wird im Alltag der Wirtschaft mit Zufallsgenerator gearbeitet?
* Wo braucht man bei einem Computerspiel den Zufallsgenerator.
* Wo war bei diesem Beispiel der Vorteil des Computers zu sehen, wo war er eher ein Nachteil?
* Bei welcher Erweiterungsstufe war es am schwierigsten, einen Programmcode zu erstellen.


== [[Datei:icon_plus.png|20px|Icon]] Weiterentwicklung ==


* Audioalarm beim Überschreiten eines Schwellenwertes
<htmlet>makecode_embed</htmlet>
* Smileys anstelle des Graphen bei der Ausgabe der Feuchtigkeit
* Feuchtigkeitswerte zu anderen micro:bits senden
* Bau eines Pflanzenwächters mit Bewässerungsautomatik <spoiler>(https://youtu.be/7eC_VjH1eP0, https://makecode.microbit.org/projects/plant-watering)</spoiler>

Aktuelle Version vom 30. März 2022, 08:37 Uhr

Icon Frische Luft für frische Ideen

So wie unser ganzer Körper braucht vor allem das Gehirn Sauerstoff, um gut funktionieren zu können. Das wissen auch die Kinder der 3. Klasse. Trotzdem vergessen sie am Vormittag immer wieder, die Fenster für ein paar Minuten zu öffnen, um frische Luft reinzulassen. Silvia und Georg haben eine Idee. Sie möchten einen Lüftungsassistenten bauen, der regelmäßig an das Öffnen und Schließen der Fenster erinnert. Vielleicht kann da der BBC micro:bit weiterhelfen?

Icon Aufgabenstellung

Mit dem BBC micro:bit kannst du einen Lüftungsassistenten programmieren.

  • Nach einer bestimmten Dauer erinnert der BBC micro:bit mit einem akustischen Signal an das Öffnen und Schließen der Fenster.
  • Die LEDS zeigen den aktuellen Status der Fenster an.
  • Der angeschlossene Servo-Motor ist Teil einer Anzeigetafel, die mit der Stellung des Pfeiles einen Überblick über die Dauer des Öffnens und Schließens gibt.

Icon Materialien

  • BBC micro:bit (Version V2 oder V1 mit Lautsprecher für die Soundausgabe)
  • Servo-Motor samt Kabel für den Anschluss an den BBC micro:bit
  • 4,5V-Stromquelle (3x AA-Batterien) für Servo-Motor
  • Lüftungsassistent Vorlage
  • Karton zum Anfertigen der Anzeigetafel

Icon Zeitaufwand

  • ca. 2 Unterrichtseinheiten

Icon Schwierigkeitsgrad

borderlessborderlessborderless

Icon Kompetenzen

Du solltest bereits:

  • einen Servo-Motor mit 4,5 Volt Spannung (3x AA-Batterien) versorgen können
  • einen Servo-Motor an den BBC micro:bit anschließen können

Du lernst

  • wie du Schleifen verwendest
  • wie du einen Servo-Motor exakt ansteuerst

Icon Unterrichtsfächer

  • Physik
  • Informatik
  • Werken

Icon Tipps und Hilfestellungen

Erforderliche Programmierblöcke

Ziel

  • Beim Öffnen der Fenster wird die Taste A gedrückt. Der Timer beginnt zu zählen.
  • Die LEDs zeigen den aktuellen Status der Fenster an: geöffnet/geschlossen.

...

  • Der Pfeil der Anzeigetafel zeigt die restliche Dauer bis zum Öffnen und Schließen der Fenster an.
  • Ein akustisches Signal weist auf das Öffnen und Schließen der Fenster hin.

Blöcke

  1. Beim Start wird der Winkel des Servo-Motors auf 180° gesetzt. <spoiler text="Block">
    pins.servoWritePin(AnalogPin.P1, 180)
    

    </spoiler>

  2. Die Taste A setzt die erstellte Variable "grad_pfeil" auf 180. Die LEDs zeigen das offene Fenster, danach startet eine Schleife.
  3. Die Schleife wiederholt sich 30-mal. Dabei pausiert der BBC micro:bit jeweils 10 Sekunden, bevor sich der Servo um -6° weiter bewegt.
  4. Sobald der Pfeil den Wert "Fenster schließen" erreicht, spielt der BBC micro:bit eine Melodie ab und zeigt danach das geschlossene Fenster. <spoiler text="Block">
    let grad_pfeil = 0
    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(`
            # # # # #
            # . # . #
            # . # . #
            # . # . #
            # # # # #
            `)
    })
    
    
    

    </spoiler>

  5. Es folgt eine zweite Schleife. Nun pausiert der Servo für 90 Sekunden, bevor er sich um +6° weiter bewegt.
  6. Sobald der Pfeil den Wert "Fenster öffnen" erreicht, spielt der BBC micro:bit wieder eine Melodie ab. Danach wird der Bildschirminhalt gelöscht.
  7. Der Vorgang kann mit der Taste A wieder neu gestartet werden.

Tipps zur Umsetzung

  • Denk daran, dass der BBC micro:bit mit Millisekunden arbeitet. Am besten du verwendest eine Multiplikation, um eine längere Zeitdauer zu bestimmen:
300x1000 Millisekunden = 300 Sekunden = 5 Minuten
  • Falls du einen BBC micro:bit V1 verwendest, achte darauf, dass der Pin P0 für die Soundausgabe verwendet wird. Den Servo-Motor musst du dann an P1 anschließen.

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 du? Wie konntest du diese lösen?
  • Erläutere, wie du dein Produkt programmiert hast!
  • Was war bei dieser Aufgabe interessant für dich?

Icon Weiterentwicklung

  • Fallen dir noch weitere Einsatzmöglichkeiten für die Anzeigetafel ein?
  • Auf welche Weise kann dich der BBC micro:bit warnen, falls die Temperatur im Raum zu niedrig wird?