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-28 03:28] – [Lösungen] scagf_informatik:microbit_sca [2023-06-28 03:40] (aktuell) – [Aufgabe E6 (Anonyme Umfragen)] sca
Zeile 175: Zeile 175:
  
 ===== - 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 253: Zeile 259:
  
  
-===== - Aufgaben E (BLE) =====+===== - Aufgaben E (Radio) ===== 
 + 
 +**Relevante Theorie:** 
 + 
 +   * [[gf_informatik:microbit_programmieren_grundlagen#radio|Theorie Radio]]
  
 === Aufgabe E1 === === 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+ 
 +   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". 
 +   1. Weiter soll der Micro:Bit diese drei Nachrichten empfangen und anzeigen können: Wird 'yes' empfangen, wird ein "Y" angezeigt usw. 
 +   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.
  
 === Aufgabe E2 === === Aufgabe E2 ===
Zeile 266: 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 297: 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 651: 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.1687922899.txt.gz
  • Zuletzt geändert: 2023-06-28 03:28
  • von sca