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:00] – [Aufgabe C7 (Knacknuss)] scagf_informatik:microbit_sca [2026-01-05 14:36] (aktuell) sca
Zeile 4: Zeile 4:
  
 **Editor:** **Editor:**
-   Wir arbeiten ausschliesslich mit dem [[https://python.microbit.org/v/3|Online-Editor]]. Achtung: funktioniert *nichtin allen Browsern. Sicher funktioniert er in **Chrome**. +   Link zu **Online-Editor**: https://python.microbit.org/ 
-   Die Verwendung des Mu-Editors ist nicht gestattet (da er keinen Simulator besitzt). +   Verwende den Chrome Browser (oder Edge) 
-   * Da wir im Online-Editor arbeiten, ist das **Speichern** etwas mühsam: +   Der Editor beinhaltet auch einen **Simulator**! 
-     Wir müssen die Codes von Hand in ein File auf dem Computer kopieren. +   Tipp zum **Speichern:** 
-     * Verwende dazu die folgende Vorlage: {{ :gf_informatik:mikktrl_rob_aufgaben_template.docx |Template Aufgaben}} +     Lege auf OneNote eine Seite an, z.B"MicroBit - Aufgaben" 
-     Bonus bei diesem Vorgehen: schöne Übersicht von allen deinen Codes+     Copy-Paste deine Codes dort hineine
  
 **Bemerkungen:** **Bemerkungen:**
Zeile 16: Zeile 16:
      * [[gf_informatik:microbit_sca|Aufgaben]]      * [[gf_informatik:microbit_sca|Aufgaben]]
    * Für gewisse Aufgaben gibt es **zwei Versionen: Basic und Advanced**. Hier hast du die Wahl. Falls dir das Programmieren gut läuft, solltest du die Advanced-Aufgaben lösen. Für TALITs (und solche, die es sein sollten) sind die Advanced-Aufgaben Pflicht.    * Für gewisse Aufgaben gibt es **zwei Versionen: Basic und Advanced**. Hier hast du die Wahl. Falls dir das Programmieren gut läuft, solltest du die Advanced-Aufgaben lösen. Für TALITs (und solche, die es sein sollten) sind die Advanced-Aufgaben Pflicht.
-   * Adapter für USB C <-> A müssen selbst mitgebracht werden. 
  
 ===== - Aufgaben A (Display) ===== ===== - Aufgaben A (Display) =====
Zeile 145: Zeile 144:
  
 === Aufgabe C5 === === Aufgabe C5 ===
-Folgende Code-Zeilen erstellen eine Liste aus 10 Bildern unterschiedlicher Helligkeit:  
-<code python> 
-my_images = [] 
  
-for i in range(010, 1): +Die LEDs sollen anzeigenwie fest der Microbit geschüttelt wird:
-    my_img = Image() +
-    my_img.fill(i) +
-    my_images.append(my_img) +
-</code> +
-In der For-Schleife geschieht Folgendes für jeden Wert von i, also von 0 bis 9, also zehn mal: +
-  * Zuerst wird mit der Funktion ''Image()'' ein leeres Bild namens ''my\_img'' erstellt.  +
-  * Dieses Bild wird  nun gefülltDie Funktion ''fill()'' füllt jedes Pixel des Bildes mit einer bestimmten Helligkeit. Weil ''i'' bei jedem Durchlauf erhöht wird, wird ''my\_img'' bei jedem Durchlauf um eine Stufe heller – von 0 (dunkel) bis 9 (ganz hell) +
-  * Das Bild wird der Liste ''my\_images'' hinzugefügt.+
  
-Schreibe ein Programmin das du obigen Code hinein kopierstdas die Bilder mit 200 Milliskeunden Verzögerung nacheinander endlos anzeigt. +   * nicht geschüttelt: alle LEDs off 
 +   * ganz stark geschüttelt: alle LEDs mit Stärke 9 
 +   * dazwischen: Alle LEDs mit Werten 1-8je nachdemwie stark geschüttelt 
 + 
 +Tipps: 
 + 
 +   * Verwende folgende Liste für die Anzeige:<WRAP><code python> 
 +all_leds = [ 
 +    Image("00000:00000:00000:00000:00000"), 
 +    Image("11111:11111:11111:11111:11111"), 
 +    Image("22222:22222:22222:22222:22222"), 
 +    Image("33333:33333:33333:33333:33333"), 
 +    Image("44444:44444:44444:44444:44444"), 
 +    Image("55555:55555:55555:55555:55555"), 
 +    Image("66666:66666:66666:66666:66666"), 
 +    Image("77777:77777:77777:77777:77777"), 
 +    Image("88888:88888:88888:88888:88888"), 
 +    Image("99999:99999:99999:99999:99999"), 
 +
 +</code></WRAP> 
 + 
 +===== - Aufgaben D (Sounds) ===== 
 + 
 +**Relevante Theorie:**
  
-=== Aufgabe C6 === +   [[gf_informatik:microbit_programmieren_grundlagen#sounds|Theorie Sounds]]
-Speichere das Programm aus Aufgabe **C5** unter neuem Namen und ändere es:  +
-  * Immer dann, wenn du die Taste A drückst, soll das nächste Bild aus der Liste angezeigt werden.  +
-  * Nach dem letzten (hellsten) Bild, soll wieder das erste angezeigt werden. +
-  * Tipp: Damit du mit einem Tastendruck nicht gleich mehrere Bilder weiterspringstbaue eine Verzögerung mit ''sleep()'' ein.+
  
-=== Aufgabe C7 (Knacknuss) === 
-Speichere das Programm aus Aufgabe **C6** unter neuem Namen und ändere es: 
-  * Das Display soll umso heller leuchten, je stärker du den Microbit hin und her schüttelst.  
-  * Lese dazu den x-Wert aus dem Beschleunigungssensor aus. 
-  * Dieser liegt im Bereich von +/- 2040. Du brauchst aber einen Index-Wert von 0...9. 
-  * 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 (Speaker – Töne und Melodien ausgeben) ==== 
 === 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 251:
   * 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 = 0 +   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". 
-while True: +   1. Weiter soll der Micro:Bit diese drei Nachrichten empfangen und anzeigen können: Wird 'yes' empfangen, wird ein "Y" angezeigt usw. 
-    if(button_a.is_pressed()): +   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.
-        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> +
- +
- +
-==== 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 273:
   * 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 306:
 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 454: Zeile 320:
 ===== Lösungen ===== ===== Lösungen =====
  
-<nodisp 2>+<nodisp 1>
  
 ++++Lösungen Aufgaben A| ++++Lösungen Aufgaben A|
Zeile 715: Zeile 581:
 </code> </code>
  
-=== C5 – Variante A ===+=== C5 === 
 + 
 +Variante 1
 <code python> <code python>
 from microbit import * from microbit import *
  
-my_images = [] +all_leds = [ 
- +    Image("00000:00000:00000:00000:00000"), 
-for i in range(091): +    Image("11111:11111:11111:11111:11111"), 
-    my_img = Image() +    Image("22222:22222:22222:22222:22222"), 
-    my_img.fill(i+    Image("33333:33333:33333:33333:33333")
-    my_images.append(my_img+    Image("44444:44444:44444:44444:44444"), 
- +    Image("55555:55555:55555:55555:55555"), 
-my_pos = 0+    Image("66666:66666:66666:66666:66666"), 
 +    Image("77777:77777:77777:77777:77777"), 
 +    Image("88888:88888:88888:88888:88888"), 
 +    Image("99999:99999:99999:99999:99999"), 
 +]
  
 while True: while True:
-    sleep(200+    # Variante 1 
-    if my_pos len(my_images1: +    ax,ay,az = accelerometer.get_values() 
-        my_pos +1+     
 +    # Variante 2 
 +    ax = accelerometer.get_x() 
 +    ay = accelerometer.get_y() 
 +    az = accelerometer.get_z() 
 + 
 +    # Gesamtbeschleunigung 
 +    a = (ax*ax + ay**2 + az**2)**0.5 
 +    if 1200: 
 +        display.show(all_leds[0]) 
 +    elif a <= 1500: 
 +        display.show(all_leds[1]) 
 +    elif a <= 1800
 +        display.show(all_leds[2]) 
 +    elif a <2100: 
 +        display.show(all_leds[3]) 
 +    elif a <= 2400: 
 +        display.show(all_leds[4]) 
 +    elif a <= 2700: 
 +        display.show(all_leds[5]) 
 +    elif a <= 3000: 
 +        display.show(all_leds[6]) 
 +    elif a <= 3300: 
 +        display.show(all_leds[7]) 
 +    elif a <= 3600: 
 +        display.show(all_leds[8])
     else:     else:
-        my_pos = 0 +        display.show(all_leds[9]
-    display.show(my_images[my_pos])+     
 +    print(a) 
 +    sleep(400)
 </code> </code>
  
-=== C5 – Variante B ===+Variante 2 (elegant)
 <code python> <code python>
 +# Imports go at the top
 from microbit import * from microbit import *
 +import math
  
 my_images = [] my_images = []
  
-for i in range(091): +all_leds = [ 
-    my_img = Image() +    Image("00000:00000:00000:00000:00000"), 
-    my_img.fill(i+    Image("11111:11111:11111:11111:11111"), 
-    my_images.append(my_img)+    Image("22222:22222:22222:22222:22222")
 +    Image("33333:33333:33333:33333:33333"), 
 +    Image("44444:44444:44444:44444:44444"), 
 +    Image("55555:55555:55555:55555:55555"), 
 +    Image("66666:66666:66666:66666:66666")
 +    Image("77777:77777:77777:77777:77777"), 
 +    Image("88888:88888:88888:88888:88888"), 
 +    Image("99999:99999:99999:99999:99999"), 
 +]
  
-display.show(my_images, delay = 200, loop = True)+while True: 
 +    x,y,z = accelerometer.get_values() 
 +    a = math.sqrt(x*x+y*y+z*z) 
 +    strength = int((a - 1000) // 250) 
 +    if strength > 9: 
 +        strength = 9 
 +    elif strength < 0: 
 +        strength = 0 
 +    print(strength) 
 +    display.show(all_leds[strength]) 
 +    sleep(200)
 </code> </code>
  
-=== C6 ===+++++ 
 +</nodisp> 
 + 
 +<nodisp 2> 
 +++++Lösungen Aufgaben D| 
 +=== D1 ===
 <code python> <code python>
-from microbit import *+from microbit import* 
 +import music
  
-my_images = [] +# Frère Jacques: 
-my_pos = 0+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']
  
-for i in range(0, 9, 1)+note = 0 
-    my_img = Image() +while True
-    my_img.fill(i+    if(button_a.is_pressed()): 
-    my_images.append(my_img)+        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: while True:
     if(button_a.is_pressed()):     if(button_a.is_pressed()):
-        sleep(100+        display.show(Image.HAPPY) 
-        if my_pos < len(my_images) - 1: +        music.play(melody_jacques[note]) 
-            my_pos += 1+        sleep(30
 +        if(note < len(melody_jacques)-1)
 +            note += 1
         else:         else:
-            my_pos = 0 +            note = 0 
-    display.show(my_images[my_pos])+    else: 
 +        display.show(Image.ARROW_W)
 </code> </code>
  
-=== C7 ===+=== 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> <code python>
 from microbit import * from microbit import *
 +import music
  
-my_images = [] +while True: 
-my_pos = 0+    for freq in range(330, 770, 10): 
 +        music.pitch(freq, 100) 
 +    for freq in range(770, 330, -10): 
 +        music.pitch(freq, 100) 
 +</code>
  
-for i in range(0, 10, 1): +=== D5 === 
-    my_img Image() +<code python> 
-    my_img.fill(i) +from microbit import * 
-    my_images.append(my_img)+import music
  
 +freq = 440  # A4
 while True: while True:
-    xAcceleration accelerometer.get_x() +    if button_a.is_pressed(): 
-    # xAcceleration von +/-2040 nach 0...9 umrechnen+        if freq < 4000: 
-    my_pos abs(xAcceleration) // 205 +            freq +100 
-    print(my_pos+        music.pitch(freq, 50
-    display.show(my_images[my_pos])+    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> </code>
 ++++ ++++
 </nodisp> </nodisp>
 +
  • gf_informatik/microbit_sca.1687899634.txt.gz
  • Zuletzt geändert: 2023-06-27 21:00
  • von sca