Metronom: Unterschied zwischen den Versionen

Aus microbit - Das Schulbuch
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Martin.teufel (Diskussion | Beiträge)
 
(41 dazwischenliegende Versionen von 2 Benutzern 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]] Wofür brauche ich ein Metronom?  ==


[[Datei:kopf_zahl.jpg|right|600px]]


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. Die Gitarre ist zu langsam, das Schlagzeug viel zu schnell und der Bass ändert andauernd das Tempo.
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 Martin ändert beim Singen andauernd das Tempo.
Paul hat die Lösung. Er zückt sein Metronom und stellt es den anderen vor. Mit einem Ticken gibt es regelmäßig das Tempo an, das man eingibt.
Paul hat die Lösung. Er zückt sein Metronom. Mit dem regelmäßigen Ticken des Metronoms kann man perfekt das Tempo halten.
Leider hat er nur ein Metronom, aber vielleicht kann der micro:bit Martin und Michael weiterhelfen?
Leider hat er nur ein Metronom, das er selber zum Üben braucht.
 
Aber vielleicht kann der BBC micro:bit Martin und Michael weiterhelfen.
[[Datei:Tabelle zufall1.jpg|50%]]


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


Mit dem BBC micro:bit kannst du dies noch bequemer testen – du benützt den Zufallsgenerator des micro:bit. Entwickle ein Programm, mit dem man das Werfen der Münzen simulieren kann. Der Vorteil des Computers, sehr viele Würfe zu produzieren, sollte dabei ebenfalls zum Tragen kommen.
Mit dem BBC micro:bit kannst du ein Metronom programmieren.  


* Das Schütteln des micro:bit sollte den Zufallsgenerator aufrufen: Dieser soll Kopf oder Zahl produzieren.
* Beim Start spielt der BBC micro:bit dauerhaft 100 bpm (beats per minute = Töne pro Minute).
* Taste A sollte die Anzahl der "Kopfwürfe" darstellen
* Der Ton ist ein "Mittleres C" für 1/16 Schlag, danach pausiert er für einen Schlag.
* Taste B sollte die Anzahl der "Zahlwürfe" darstellen
* Taste A macht das Tempo um 5 bpm langsamer.
* Taste A+B sollten die Gesamtanzahl der Versuche darstellen
* Taste B macht das Tempo um 5 bpm schneller.
* Neustart mit "Reset"-Taste (Erweiterung)
* Die LED-Anzeige zeigt das aktuelle Tempo in Zahlen an.


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


* Eine Münze
* BBC micro:bit (Version V2 oder V1 mit Lautsprecher für die Soundausgabe)
* Ein Blatt Papier
* micro:bit


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


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


== [[Datei:Icon_brain.png|20px|Icon]] Kompetenzen ==
== [[Datei:Icon_brain.png|20px|Icon]] Kompetenzen ==


[[Datei:IMG_5764_(1).png|right]]
Du solltest bereits:
Du solltest bereits  
* einen Kopfhörer an den BBC micro:bit anschließen können
* einen Prozentanteil schätzen können
* eine Wertetabelle anlegen und auswerten können
 


Beim Programmieren lernst bzw. übst du


* [[Variablen]] zu verwenden
Du lernst
* [[Operatoren]] zu verwenden
* den [[Zufallsgenerator]] zu nutzen
* [[Bedingungen]] zu verwenden


Bei dieser Aufgabe lernst du auch
* wie du die Variable Tempo mit den Tasten A und B verändern kannst
* ein NEUES Programm zu lesen und es zu interpretieren


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


* Mathematik
* Musik
* Informatik
* Informatik
* Deutsch


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


=== Erforderliche Programmierblöcke ===
=== Erforderliche Programmierblöcke ===
==== Ziel ====  
====Ziel====  
* Der Zufallsgenerator sollte 2 Zustände darstellen: wahr oder falsch
* Der BCC micro:bit gibt beim Start dauerhaft 100 Töne pro Minute aus.
* Diese Zustände entsprechen den 2 Möglichkeiten beim Münzwurf
* Die Taste A verringert die Anzahl der ausgegebenen Töne um 5 pro Minute.
* Es sollte jeweils die Anzahl der Treffer für "wahr" und für "falsch" gezählt werden.
* Die Taste B erhöht die Anzahl der ausgegebenen Töne um 5 pro Minute.
 
* Die LED-Anzeige zeigt das aktuelle Tempo in Zahlen an.
==== Vereinbarung ====
* "'''W'''ahr bedeutet Kopf" und "Falsch bedeutet '''Z'''ahl"
 
[[Datei:kopf.png|200px ]] ... [[Datei:zahl.png|200px ]]


==== Blöcke ====
==== Blöcke ====
<ol>
<li> Beim Start wird das Tempo auf 100 bpm (= beats per minute) geändert. <spoiler text="Block"><pre id="pre01">
music.setTempo(100)


* Anstelle des Münzwurfs sollte der Zufallsgenerator "wahr" oder "falsch" liefern
</pre>
* Der Zufallsgenerator sollte durch Schütteln des micro:bit aufgerufen werden
</spoiler>
* Je nach Bedingung "wahr" oder "falsch" sollten verschiedene Aktionen stattfinden
<li> Die Note "Mittleres C" wird dauerhaft für 1/16 Schlag gespielt, gefolgt von einem Schlag Pause. <spoiler text="Block"><pre id="pre01">
<pre id="pre01">
basic.forever(function () {
input.onGesture(Gesture.Shake, function () {
    music.playTone(262, music.beat(BeatFraction.Sixteenth))
if (true) {
    music.rest(music.beat(BeatFraction.Whole))
})


} else {


}
})
</pre>
</pre>
* Bestimmte Tastenereignisse für Taste A, B und A+B - müssen Daten anzeigen <spoiler text="Block">
</spoiler>
<pre id="pre02">
<li> Wenn Knopf A gedrückt wird, verringert sich das Tempo um fünf Schläge pro Minute. Knopf B erhöht das Tempo um fünf Schläge pro Minute. <spoiler text="Block"><pre id="pre01">
input.onButtonPressed(Button.A, function () {
input.onButtonPressed(Button.A, function () {
})
    music.changeTempoBy(-5)
input.onButtonPressed(Button.AB, function () {
})
})
input.onButtonPressed(Button.B, function () {
input.onButtonPressed(Button.B, function () {
    music.changeTempoBy(5)
})
})
</pre>
</pre>
</spoiler>
</spoiler>
* Daten müssen angezeigt werden <spoiler text="Block">
<li> Die LEDs zeigen dauerhaft das aktuelle Tempo in Zahlen. <spoiler text="Block"><pre id="pre01">
<pre id="pre03">
basic.forever(function () {
basic.showNumber(0)
    basic.showNumber(music.tempo())
})
 
</pre>
</pre>
</spoiler>
</spoiler>
* Bei Programmstart durchzuführen <spoiler text="Block"> <pre id="pre03">
</ol>
basic.showNumber(0)
</pre></spoiler>
* Variablen müssen angelegt und initialisiert werden <spoiler text="Block"><pre id="pre03">
let anzahl_kopf = 0
let anzahl_zahl = 0
</pre></spoiler>
* Variablen müssen hochgezählt werden <spoiler text="Block"><pre id="pre03">
anzahl_zahl += 1
anzahl_kopf += 1
</pre></spoiler>
* Variablen müssen addiert werden <spoiler text="Block"><pre id="pre03">
let varx = anzahl_zahl + 1


</pre></spoiler>
=== Tipps zur Umsetzung ===


=== Eckpfeiler zur Umsetzung ===
* Zähle mit, wie viele Töne der BBC micro:bit pro Minute spielt.
* Dir wird auffallen, dass er nicht ganz 100 Töne pro Minute schafft. Woran könnte das liegen?
:Ein Ton dauert 1/16 Schlag, gefolgt von 1 Schlag Pause. Dementsprechend dauert ein Durchgang 1/16 Schlag + 1 Schlag = 1 1/16 Schläge.
:Wie schaffst du es, dass ein Durchgang genau 1 Schlag dauert? Denke an eine Bruchrechnung. <spoiler text="Block"><pre id="pre01">
basic.forever(function () {
    music.playTone(262, music.beat(BeatFraction.Sixteenth))
    music.rest(music.beat(BeatFraction.Half))
    music.rest(music.beat(BeatFraction.Quarter))
    music.rest(music.beat(BeatFraction.Eighth))
    music.rest(music.beat(BeatFraction.Sixteenth))
})


* Programmiere den micro:bit-Zufallsgenerator so, dass durch Schütteln ein Wert "wahr" oder "falsch" ermittelt wird (= Kopf oder Zahl)
 
* Wenn Taster "A" gedrückt wird, soll die Anzahl Kopfwürfe gezeigt werden
 
* Wenn Taster "B" gedrückt wird, soll die Anzahl Zahlwürfe gezeigt werden
</pre>
* Wenn Taster "A+B" gedrückt werden, soll die Summe der Würfe dargestellt werden
</spoiler>
* 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]]===
===[[Lösung_zufall|Schritt für Schritt zur Lösung]]===
:Hinweise zur Lösungsfindung und auch eine mögliche, komplette Lösung findest du auf der [[Lösung_zufall|Lösungsseite zu diesem Beispiel]]
:Hinweise zur Lösungsfindung und auch eine mögliche, komplette Lösung findest du auf der [[Metronom_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 137: Zeile 117:
* 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 ==
 
* 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 ==


* Schleife: Du kannst mit einer Schleife nicht nur jeweils einen Wurf produzieren, sondern gleich 100 oder gar 1000 Würfe
* Bei manchen Metronomen kann man die Betonung einzelner Töne einstellen. Zum Beispiel wird beim 3/4 Takt der erste Ton lauter gespielt, danach folgen zwei leisere Töne. Kann man das mit dem BBC micro:bit umsetzen?
* Das bedeutet: Wenn einmal geschüttelt wird, werden gleich 1000 Würfe simuliert
* Sobald der BBC micro:bit mit Strom versorgt wird, startet das Metronom. Kann die Funktion auch mit Taste A+B gestartet und gestoppt werden? Hier hilft eine Schleife weiter.
* Nütze dabei den Vorteil des Computers &ndash; er kann sehr schnell rechnen


=== Noch eine Erweiterungsaufgabe ===
'''Analyse eines fremden Programmcodes:'''<br>


* Was stellt dieser Programmcode dar?
[[Datei:Lesen_prg.png|800px]]


Dieses Programm ist hier aufrufbar:
[https://makecode.microbit.org/#pub:_XdWYVaPe8WUk Link]
<htmlet>makecode_embed</htmlet>
<htmlet>makecode_embed</htmlet>

Aktuelle Version vom 17. Mai 2022, 07:35 Uhr

Icon Wofür brauche ich ein Metronom?

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 Martin ändert beim Singen andauernd das Tempo. Paul hat die Lösung. Er zückt sein Metronom. Mit dem regelmäßigen Ticken des Metronoms kann man perfekt das Tempo halten. Leider hat er nur ein Metronom, das er selber zum Üben braucht. Aber vielleicht kann der BBC micro:bit Martin und Michael weiterhelfen.

Icon Aufgabenstellung

Mit dem BBC micro:bit kannst du ein Metronom programmieren.

  • Beim Start spielt der BBC micro:bit dauerhaft 100 bpm (beats per minute = Töne pro Minute).
  • Der Ton ist ein "Mittleres C" für 1/16 Schlag, danach pausiert er für einen Schlag.
  • Taste A macht das Tempo um 5 bpm langsamer.
  • Taste B macht das Tempo um 5 bpm schneller.
  • Die LED-Anzeige zeigt das aktuelle Tempo in Zahlen an.

Icon Materialien

  • BBC micro:bit (Version V2 oder V1 mit Lautsprecher für die Soundausgabe)

Icon Zeitaufwand

  • 1 Unterrichtseinheit

Icon Schwierigkeitsgrad

borderlessborderlessborderless

Icon Kompetenzen

Du solltest bereits:

  • einen Kopfhörer an den BBC micro:bit anschließen können


Du lernst

  • wie du die Variable Tempo mit den Tasten A und B verändern kannst

Icon Unterrichtsfächer

  • Musik
  • Informatik

Icon Tipps und Hilfestellungen

Erforderliche Programmierblöcke

Ziel

  • Der BCC micro:bit gibt beim Start dauerhaft 100 Töne pro Minute aus.
  • Die Taste A verringert die Anzahl der ausgegebenen Töne um 5 pro Minute.
  • Die Taste B erhöht die Anzahl der ausgegebenen Töne um 5 pro Minute.
  • Die LED-Anzeige zeigt das aktuelle Tempo in Zahlen an.

Blöcke

  1. Beim Start wird das Tempo auf 100 bpm (= beats per minute) geändert. <spoiler text="Block">
    music.setTempo(100)
    
    

    </spoiler>

  2. Die Note "Mittleres C" wird dauerhaft für 1/16 Schlag gespielt, gefolgt von einem Schlag Pause. <spoiler text="Block">
    basic.forever(function () {
        music.playTone(262, music.beat(BeatFraction.Sixteenth))
        music.rest(music.beat(BeatFraction.Whole))
    })
    
    
    

    </spoiler>

  3. Wenn Knopf A gedrückt wird, verringert sich das Tempo um fünf Schläge pro Minute. Knopf B erhöht das Tempo um fünf Schläge pro Minute. <spoiler text="Block">
    input.onButtonPressed(Button.A, function () {
        music.changeTempoBy(-5)
    })
    input.onButtonPressed(Button.B, function () {
        music.changeTempoBy(5)
    })
    
    
    
    

    </spoiler>

  4. Die LEDs zeigen dauerhaft das aktuelle Tempo in Zahlen. <spoiler text="Block">
    basic.forever(function () {
        basic.showNumber(music.tempo())
    })
    
    

    </spoiler>

Tipps zur Umsetzung

  • Zähle mit, wie viele Töne der BBC micro:bit pro Minute spielt.
  • Dir wird auffallen, dass er nicht ganz 100 Töne pro Minute schafft. Woran könnte das liegen?
Ein Ton dauert 1/16 Schlag, gefolgt von 1 Schlag Pause. Dementsprechend dauert ein Durchgang 1/16 Schlag + 1 Schlag = 1 1/16 Schläge.
Wie schaffst du es, dass ein Durchgang genau 1 Schlag dauert? Denke an eine Bruchrechnung. <spoiler text="Block">

basic.forever(function () { music.playTone(262, music.beat(BeatFraction.Sixteenth)) music.rest(music.beat(BeatFraction.Half)) music.rest(music.beat(BeatFraction.Quarter)) music.rest(music.beat(BeatFraction.Eighth)) music.rest(music.beat(BeatFraction.Sixteenth)) })

</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

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

  • Bei manchen Metronomen kann man die Betonung einzelner Töne einstellen. Zum Beispiel wird beim 3/4 Takt der erste Ton lauter gespielt, danach folgen zwei leisere Töne. Kann man das mit dem BBC micro:bit umsetzen?
  • Sobald der BBC micro:bit mit Strom versorgt wird, startet das Metronom. Kann die Funktion auch mit Taste A+B gestartet und gestoppt werden? Hier hilft eine Schleife weiter.