Metronom Loesung: Unterschied zwischen den Versionen

Aus microbit - Das Schulbuch
Zur Navigation springen Zur Suche springen
 
(9 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
== Grundsätzliche Überlegungen ==
== Grundsätzliche Überlegungen ==
Bei diesem Beispiel kann die vorgefertigte Variable Tempo aus dem Abschnitt Musik verwendet werden. Der Wert dieser Variable kann auch verändert und jederzeit abgerufen werden.
Bei diesem Beispiel dreht sich alles um die Variable Tempo. Sie ist schon vorgefertigt und unter dem Abschnitt Musik zu finden. Ihr Wert wird in bpm (= beats per minute) angegeben und kann jederzeit abgerufen und verändert werden.


== Hilfestellungen und Lösung zum Metronom ==
== Hilfestellungen und Lösung zum Metronom ==
;Feuchtigkeit messen
;"ändern auf" und "ändern um"
:Zu Beginn steuern wir den Pin P1 an und geben dort einen Strom aus.
:Wichtig ist die Unterscheidung zwischen "ändern auf" und "ändern um".
:Um die Feuchtigkeit der Erde mit dem mirco:bit messen zu können, lesen wir die Spannung an Pin P0 aus.
:"ändern auf" setzt das Tempo auf einen bestimmten Wert. <spoiler text="Block"><pre id="pre01">
:Der Wert dieses Pins liegt zwischen 0 (kein Strom) und 1023 (maximaler Strom) und kann als Variable abgebildet werden.
music.setTempo(100)
: Gib der Variable einen sinnvollen Namen, wie zum Beispiel Feuchtigkeit.
 
:Der Wert dieser Variable kann als Graph auf der LED Matrix ausgegeben werden.
</pre>
:Mit dem Befehl "plot bar graph" können Werte von Variablen grafisch dargestellt werden.
</spoiler>
:"ändern um" verändert das Tempo um einen bestimmten Wert. Das funktioniert sowohl mit positiven als auch negativen Zahlen. <spoiler text="Block"><pre id="pre01">
input.onButtonPressed(Button.A, function () {
    music.changeTempoBy(-5)
})
 
 
</pre>
</spoiler>
 
;Dauerhafte Audio- und LED-Ausgabe
:Damit das Tempo zeitgleich mit dem Abspielen der Töne dargestellt wird, sind zwei Blöcke "dauerhaft" nötig. <spoiler text="Block"><pre id="pre01">
basic.forever(function () {
    basic.showNumber(music.tempo())
})
basic.forever(function () {
    music.playTone(262, music.beat(BeatFraction.Sixteenth))
    music.rest(music.beat(BeatFraction.Whole))
})
 
</pre>
</spoiler>


== Komplettlösungen ==
== Komplettlösungen ==
Zeile 31: Zeile 52:
</pre>
</pre>


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





Aktuelle Version vom 13. März 2022, 18:33 Uhr

Grundsätzliche Überlegungen

Bei diesem Beispiel dreht sich alles um die Variable Tempo. Sie ist schon vorgefertigt und unter dem Abschnitt Musik zu finden. Ihr Wert wird in bpm (= beats per minute) angegeben und kann jederzeit abgerufen und verändert werden.

Hilfestellungen und Lösung zum Metronom

"ändern auf" und "ändern um"
Wichtig ist die Unterscheidung zwischen "ändern auf" und "ändern um".
"ändern auf" setzt das Tempo auf einen bestimmten Wert. <spoiler text="Block">

music.setTempo(100)

</spoiler>

"ändern um" verändert das Tempo um einen bestimmten Wert. Das funktioniert sowohl mit positiven als auch negativen Zahlen. <spoiler text="Block">

input.onButtonPressed(Button.A, function () {

   music.changeTempoBy(-5)

})


</spoiler>

Dauerhafte Audio- und LED-Ausgabe
Damit das Tempo zeitgleich mit dem Abspielen der Töne dargestellt wird, sind zwei Blöcke "dauerhaft" nötig. <spoiler text="Block">

basic.forever(function () { basic.showNumber(music.tempo()) }) basic.forever(function () { music.playTone(262, music.beat(BeatFraction.Sixteenth)) music.rest(music.beat(BeatFraction.Whole)) })

</spoiler>

Komplettlösungen

input.onButtonPressed(Button.A, function () {
    music.changeTempoBy(-5)
})
input.onButtonPressed(Button.B, function () {
    music.changeTempoBy(5)
})
music.setTempo(100)
basic.forever(function () {
    music.playTone(262, music.beat(BeatFraction.Sixteenth))
    music.rest(music.beat(BeatFraction.Whole))
})
basic.forever(function () {
    basic.showNumber(music.tempo())
})



Zurück zur Aufgabe