Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
gf_informatik:microbit_sca [2023-06-27 21:01] scagf_informatik:microbit_sca [2023-06-28 03:40] (aktuell) – [Aufgabe E6 (Anonyme Umfragen)] sca
Zeile 174: Zeile 174:
   * Tipps: Die Funktion ''abs()'' gibt den absoluten Wert, also den Betrag einer Zahl zurück. Der Operator ''%%//%%'' (//floor division//) dividiert und rundet das Resultat auf ganze Zahlen ab.   * Tipps: Die Funktion ''abs()'' gibt den absoluten Wert, also den Betrag einer Zahl zurück. Der Operator ''%%//%%'' (//floor division//) dividiert und rundet das Resultat auf ganze Zahlen ab.
  
-==== - Aufgaben D (Sounds) ====+===== - Aufgaben D (Sounds) ====
 + 
 +**Relevante Theorie:** 
 + 
 +   * [[gf_informatik:microbit_programmieren_grundlagen#sounds|Theorie Sounds]] 
 + 
 === Aufgabe D1 === === Aufgabe D1 ===
 Schreibe ein Programm, dass die Melodie //Frère Jacques// spielt (mit Pause zwischen gleichen Tönen), **solange du die A-Taste gedrückt hältst**: Schreibe ein Programm, dass die Melodie //Frère Jacques// spielt (mit Pause zwischen gleichen Tönen), **solange du die A-Taste gedrückt hältst**:
Zeile 251: Zeile 257:
   * Mit der B-Taste soll neben dem Tempo auch die Tonlage verringert werden.   * Mit der B-Taste soll neben dem Tempo auch die Tonlage verringert werden.
  
-=== Lösungen === 
  
-<nodisp 2> 
-++++Lösungen Aufgaben D| 
-=== D1 === 
-<code python> 
-from microbit import* 
-import music 
  
-# Frère Jacques: +===== - Aufgaben E (Radio) =====
-melody_jacques ['c4:4', 'd4:4', 'e4:4', 'c4:4','c4:4', 'd4:4', 'e4:4', 'c4:4', +
-                 'e4:4', 'f4:4', 'g4:8', 'e4:4', 'f4:4', 'g4:8', +
-                 'g4:2', 'a4:2', 'g4:2', 'f4:2', 'e4:4', 'c4:4', +
-                 'g4:2', 'a4:2', 'g4:2', 'f4:2', 'e4:4', 'c4:4', +
-                 'c4:4', 'g3:4', 'c4:8', 'c4:4', 'g3:4', 'c4:8']+
  
-note = 0 +**Relevante Theorie:**
-while True: +
-    if(button_a.is_pressed()): +
-        music.play(melody_jacques[note]) +
-        sleep(30) +
-        if(note < len(melody_jacques)-1): +
-            note += 1 +
-        else: +
-            note = 0 +
-</code>+
  
-=== D2 === +   [[gf_informatik:microbit_programmieren_grundlagen#radio|Theorie Radio]]
-<code python> +
-from microbit import* +
-import music+
  
-# Frère Jacques: +=== Aufgabe E1 ===
-melody_jacques ['c4:4', 'd4:4', 'e4:4', 'c4:4','c4:4', 'd4:4', 'e4:4', 'c4:4', +
-                 'e4:4', 'f4:4', 'g4:8', 'e4:4', 'f4:4', 'g4:8', +
-                 'g4:2', 'a4:2', 'g4:2', 'f4:2', 'e4:4', 'c4:4', +
-                 'g4:2', 'a4:2', 'g4:2', 'f4:2', 'e4:4', 'c4:4', +
-                 'c4:4', 'g3:4', 'c4:8', 'c4:4', 'g3:4', 'c4:8'+
- +
-note +
-while True: +
-    if(button_a.is_pressed()): +
-        display.show(Image.HAPPY) +
-        music.play(melody_jacques[note]) +
-        sleep(30) +
-        if(note < len(melody_jacques)-1): +
-            note ++
-        else: +
-            note +
-    else: +
-        display.show(Image.ARROW_W) +
-</code> +
- +
-=== D3 === +
-<code python> +
-from microbit import* +
-import music +
- +
-# Frère Jacques: +
-melody_jacques = ['c4:4', 'd4:4', 'e4:4', 'c4:4','c4:4', 'd4:4', 'e4:4', 'c4:4', +
-                 'e4:4', 'f4:4', 'g4:8', 'e4:4', 'f4:4', 'g4:8', +
-                 'g4:2', 'a4:2', 'g4:2', 'f4:2', 'e4:4', 'c4:4', +
-                 'g4:2', 'a4:2', 'g4:2', 'f4:2', 'e4:4', 'c4:4', +
-                 'c4:4', 'g3:4', 'c4:8', 'c4:4', 'g3:4', 'c4:8'+
- +
-# Popcorn: +
-melody_pop =     ['b4:2', 'a4:2', 'b4:2', 'f4:2','d4:2', 'f4:2', 'b3:4', +
-                 'b4:2', 'a4:2', 'b4:2', 'f4:2','d4:2', 'f4:2', 'b3:4', +
-                 'b4:2', 'c#5:2', 'd5:2', 'c#5:2', 'd5:2', 'b4:2', 'c#5:2', 'b4:2', 'c#5:2', 'a4:2', +
-                 'b4:2', 'a4:2', 'b4:2', 'g#4:2', 'b4:4','r:4'+
- +
-noteA = 0 +
-noteB = 0 +
-while True: +
-    if(button_a.is_pressed()): +
-        music.set_tempo(bpm = 120) # Diese Melodie normal spielen +
-        display.show(Image.ASLEEP) +
-        music.play(melody_jacques[noteA]) +
-        sleep(30) +
-        if(noteA < len(melody_jacques)-1): +
-            noteA += 1 +
-        else: +
-            noteA = 0+
  
-    elif(button_b.is_pressed()): +   1. Schreibe ein Programm zum Nachrichtenaustausch: Mit beiden Tasten und dem Touch-Logo sollen drei verschiedene Nachrichten versendet werden können: "yes", "no" und "maybe". 
-        music.set_tempo(bpm = 200) # Diese Melodie schneller spielen +   1. Weiter soll der Micro:Bit diese drei Nachrichten empfangen und anzeigen können: Wird 'yes' empfangen, wird ein "Y" angezeigt usw. 
-        display.show(Image.MUSIC_CROTCHET) +   1. Einige dich mit deiner Kolleg:in auf eine eigene Gruppe oder Kanal, über den ihr kommunizieren wollt. Stellt euch nun mündliche Fragen und antwortet euch gegenseitig mit dem Micro:Bit.
-        music.play(melody_pop[noteB]) +
-        sleep(30) +
-        if(noteB < len(melody_pop)-1): +
-            noteB += 1 +
-        else: +
-            noteB = 0 +
- +
-    else: +
-        display.clear() +
-</code> +
- +
-=== D4 === +
-<code python> +
-from microbit import * +
-import music +
- +
-while True: +
-    for freq in range(330, 770, 10): +
-        music.pitch(freq, 100) +
-    for freq in range(770, 330, -10): +
-        music.pitch(freq, 100) +
-</code> +
- +
-=== D5 === +
-<code python> +
-from microbit import * +
-import music +
- +
-freq = 440  # A4 +
-while True: +
-    if button_a.is_pressed(): +
-        if freq < 4000: +
-            freq += 100 +
-        music.pitch(freq, 50) +
-    if button_b.is_pressed(): +
-        if freq > 100: +
-            freq -= 100 +
-        music.pitch(freq, 50) +
-</code> +
- +
-=== D6 === +
-<code python> +
-from microbit import * +
-import music +
- +
-while True: +
-    if accelerometer.was_gesture("face up"): +
-        display.show(Image.HAPPY) +
-        music.play(music.JUMP_UP) +
-    elif accelerometer.was_gesture("face down"): +
-        display.show(Image.SAD) +
-        music.play(music.JUMP_DOWN) +
-    else: +
-        display.clear() +
-</code> +
-++++ +
-</nodisp> +
- +
- +
-==== Aufgaben E (Radio – Nachrichten über BLE senden) ==== +
-=== Aufgabe E1 === +
-Erweitert euer Programm zum Nachrichtenaustausch so, dass ihr mit den beiden Tasten und dem Touch-Logo drei verschiedene Nachrichten senden könnt: "yes", "no" und "maybe"Wenn ihr eine eigene Gruppe oder einen eigenen Kanal gewählt habtkönnt ihr nun geheime Antworten senden zu Fragen, die ihr euch mündlich gestellt habt+
  
 === Aufgabe E2 === === Aufgabe E2 ===
Zeile 409: Zeile 279:
   * Solange eine Nachricht empfangen wird, soll das gesamte Display hell leuchten.    * Solange eine Nachricht empfangen wird, soll das gesamte Display hell leuchten. 
   * Solange keine Nachricht empfangen wird, soll das Display nicht leuchten.   * Solange keine Nachricht empfangen wird, soll das Display nicht leuchten.
 +
 +{{:gf_informatik:morse.png?400|}}
  
 === Aufgabe E4 (Beacon 1) === === Aufgabe E4 (Beacon 1) ===
Zeile 440: Zeile 312:
 Schreibt ein Programm, mit dem ihr anonyme Umfragen durchführen könnt.  Schreibt ein Programm, mit dem ihr anonyme Umfragen durchführen könnt. 
  
-* Wenn die Taste A gedrückt wird, sendet der Microbit die Nachricht "jo".  +* Wenn die Taste A gedrückt wird, sendet der Microbit die Nachricht "Ja".  
-* Wenn die Taste B gedrückt wird, sendet der Microbit die Nachricht "nai". +* Wenn die Taste B gedrückt wird, sendet der Microbit die Nachricht "Nein". 
-Füge für beide Tasten eine Verzögerung mit ''sleep(300)'' ein, sodass bei jedem Tastendruck nur //eine// Nachricht gesendet wird.+Verwende `get_presses()` und füge zur Sicherheit den Tasten eine Verzögerung mit ''sleep(300)'' hinzu, sodass bei jedem Tastendruck sicher nur //eine// Nachricht gesendet wird.
 * Wann immer eine Nachricht empfangen wird, wird sie ausgewertet: * Wann immer eine Nachricht empfangen wird, wird sie ausgewertet:
- * Ist der Inhalt der Nachricht "jo", so wird eine Variable zum Zählen der Ja-Stimmen um 1 erhöht. + * Ist der Inhalt der Nachricht "Ja", so wird eine Variable zum Zählen der Ja-Stimmen um 1 erhöht. 
- * Ist der Inhalt der Nachricht "nai", so wird eine Variable zum Zählen der Nein-Stimmen um 1 erhöht. + * Ist der Inhalt der Nachricht "Nein", so wird eine Variable zum Zählen der Nein-Stimmen um 1 erhöht. 
-* Wenn das Touch-Logo berührt wird, soll das Display die Anzahl Ja- und die Anzahl Nein-Stimmen anzeigen – und daraufhin beide Variablen wieder auf 0 setzen.+* Wenn das Touch-Logo berührt wird, soll das Display die Anzahl Ja- und die Anzahl Nein-Stimmen anzeigen.
 * Testet euer Programm: Einigt euch zu viert auf dieselbe Gruppen-Nummer (oder Kanal-Nummer), stellt Fragen und antwortet über die A- und B-Tasten. * Testet euer Programm: Einigt euch zu viert auf dieselbe Gruppen-Nummer (oder Kanal-Nummer), stellt Fragen und antwortet über die A- und B-Tasten.
  
Zeile 794: Zeile 666:
 ++++ ++++
 </nodisp> </nodisp>
 +
 +<nodisp 2>
 +++++Lösungen Aufgaben D|
 +=== D1 ===
 +<code python>
 +from microbit import*
 +import music
 +
 +# Frère Jacques:
 +melody_jacques = ['c4:4', 'd4:4', 'e4:4', 'c4:4','c4:4', 'd4:4', 'e4:4', 'c4:4',
 +                 'e4:4', 'f4:4', 'g4:8', 'e4:4', 'f4:4', 'g4:8',
 +                 'g4:2', 'a4:2', 'g4:2', 'f4:2', 'e4:4', 'c4:4',
 +                 'g4:2', 'a4:2', 'g4:2', 'f4:2', 'e4:4', 'c4:4',
 +                 'c4:4', 'g3:4', 'c4:8', 'c4:4', 'g3:4', 'c4:8']
 +
 +note = 0
 +while True:
 +    if(button_a.is_pressed()):
 +        music.play(melody_jacques[note])
 +        sleep(30)
 +        if(note < len(melody_jacques)-1):
 +            note += 1
 +        else:
 +            note = 0
 +</code>
 +
 +=== D2 ===
 +<code python>
 +from microbit import*
 +import music
 +
 +# Frère Jacques:
 +melody_jacques = ['c4:4', 'd4:4', 'e4:4', 'c4:4','c4:4', 'd4:4', 'e4:4', 'c4:4',
 +                 'e4:4', 'f4:4', 'g4:8', 'e4:4', 'f4:4', 'g4:8',
 +                 'g4:2', 'a4:2', 'g4:2', 'f4:2', 'e4:4', 'c4:4',
 +                 'g4:2', 'a4:2', 'g4:2', 'f4:2', 'e4:4', 'c4:4',
 +                 'c4:4', 'g3:4', 'c4:8', 'c4:4', 'g3:4', 'c4:8']
 +
 +note = 0
 +while True:
 +    if(button_a.is_pressed()):
 +        display.show(Image.HAPPY)
 +        music.play(melody_jacques[note])
 +        sleep(30)
 +        if(note < len(melody_jacques)-1):
 +            note += 1
 +        else:
 +            note = 0
 +    else:
 +        display.show(Image.ARROW_W)
 +</code>
 +
 +=== D3 ===
 +<code python>
 +from microbit import*
 +import music
 +
 +# Frère Jacques:
 +melody_jacques = ['c4:4', 'd4:4', 'e4:4', 'c4:4','c4:4', 'd4:4', 'e4:4', 'c4:4',
 +                 'e4:4', 'f4:4', 'g4:8', 'e4:4', 'f4:4', 'g4:8',
 +                 'g4:2', 'a4:2', 'g4:2', 'f4:2', 'e4:4', 'c4:4',
 +                 'g4:2', 'a4:2', 'g4:2', 'f4:2', 'e4:4', 'c4:4',
 +                 'c4:4', 'g3:4', 'c4:8', 'c4:4', 'g3:4', 'c4:8']
 +
 +# Popcorn:
 +melody_pop =     ['b4:2', 'a4:2', 'b4:2', 'f4:2','d4:2', 'f4:2', 'b3:4',
 +                 'b4:2', 'a4:2', 'b4:2', 'f4:2','d4:2', 'f4:2', 'b3:4',
 +                 'b4:2', 'c#5:2', 'd5:2', 'c#5:2', 'd5:2', 'b4:2', 'c#5:2', 'b4:2', 'c#5:2', 'a4:2',
 +                 'b4:2', 'a4:2', 'b4:2', 'g#4:2', 'b4:4','r:4']
 +
 +noteA = 0
 +noteB = 0
 +while True:
 +    if(button_a.is_pressed()):
 +        music.set_tempo(bpm = 120) # Diese Melodie normal spielen
 +        display.show(Image.ASLEEP)
 +        music.play(melody_jacques[noteA])
 +        sleep(30)
 +        if(noteA < len(melody_jacques)-1):
 +            noteA += 1
 +        else:
 +            noteA = 0
 +
 +    elif(button_b.is_pressed()):
 +        music.set_tempo(bpm = 200) # Diese Melodie schneller spielen
 +        display.show(Image.MUSIC_CROTCHET)
 +        music.play(melody_pop[noteB])
 +        sleep(30)
 +        if(noteB < len(melody_pop)-1):
 +            noteB += 1
 +        else:
 +            noteB = 0
 +
 +    else:
 +        display.clear()
 +</code>
 +
 +=== D4 ===
 +<code python>
 +from microbit import *
 +import music
 +
 +while True:
 +    for freq in range(330, 770, 10):
 +        music.pitch(freq, 100)
 +    for freq in range(770, 330, -10):
 +        music.pitch(freq, 100)
 +</code>
 +
 +=== D5 ===
 +<code python>
 +from microbit import *
 +import music
 +
 +freq = 440  # A4
 +while True:
 +    if button_a.is_pressed():
 +        if freq < 4000:
 +            freq += 100
 +        music.pitch(freq, 50)
 +    if button_b.is_pressed():
 +        if freq > 100:
 +            freq -= 100
 +        music.pitch(freq, 50)
 +</code>
 +
 +=== D6 ===
 +<code python>
 +from microbit import *
 +import music
 +
 +while True:
 +    if accelerometer.was_gesture("face up"):
 +        display.show(Image.HAPPY)
 +        music.play(music.JUMP_UP)
 +    elif accelerometer.was_gesture("face down"):
 +        display.show(Image.SAD)
 +        music.play(music.JUMP_DOWN)
 +    else:
 +        display.clear()
 +</code>
 +++++
 +</nodisp>
 +
  • gf_informatik/microbit_sca.1687899667.txt.gz
  • Zuletzt geändert: 2023-06-27 21:01
  • von sca