Mission 2-07: "Die Soundbox"

Website: BBSI Technik Kaiserslautern
Kurs: TG13 GK IV (Wehner)
Buch: Mission 2-07: "Die Soundbox"
Gedruckt von: Gast
Datum: Samstag, 23. November 2024, 12:25

1. Kurzbeschreibung des Projekts

Hallo Apprentice,

um unsere Astronautenkollegen etws zu foppen, programmieren wir uns nun einen
Soundgenerator, welcher für alle Gelegenheiten den richtigen Toneffekt bereit stellt.

Daadadammm!

Und schon kann die Gaudi beginnen!

2. Die Beschreibung Deiner Mission

Bei diesem Projekt erstellen wir ein Programm mit dem Namen "Soundgenerator.hex",
welcher über den Schallwendler auf der Spannungsversrogungsplatine frei auswählbare
Sounds bereitstellt.

Funktionsbeschreibung:
1. Wir verwenden zur Programmerstellung ausschließlich die ereignisorientierte Programmierung.

2. Die Ereignisse:
    a. Das Ereignis "Kaltstart/Warmstart des micro:bit-Computers" stellt zuerst das Smiley aus Bild 1
        als Bereitschaftsanzeige auf dem Display des micro:bit-Computers dar.
        Weiter wird eine Variable mit dem Namen "Melodie" mit dem Wert 1 belegt.
       
        Bild1: Bereitschaftsanzeige

     b. Das Ereignis "Drücken der Taste B" spielt den ausgewählten Soundeffekt (Melodie) ab.
         - Hierbei wird im ersten Schritt wieder das Smiley aus Bild 1 zur Anzeige gebracht.
         - Darauf folgen insgesamt sechs einseitige Auswahlstrukturen, mit welchen ermittelt wird,
           welche Zahl {1, 2, 3, 4, 5, 6} in der Variablen "Melodie" gerade gespeichert ist und ent-
           sprechend der in ihr gespeicherten Zahl den jeweiligen Soundeffekt (Melodie) abspielt.

           Inhalt der Variablen "Melodie"           Soundeffekt (Melodie)
           1 .........................................................    "power up"
           2 .........................................................    "power down"
           3 .........................................................    "dadadum"
           4 .........................................................    "wawawawaa"
           5 .........................................................    "funk"
           6 .........................................................    "punchline"

     c. Das Ereignis "Drücken der Taste A" kann der gewünschte Soundeffekt ausgewählt werden.
         - Dabei wird im ersten Schritt der Inhalt der Variable "Melodie" um 1 erhöht.
           Wird als danach die Taste "A" gedrückt, ertönt ein anderer Soundeffekt aufgrund des geänderten
           Inhalts der Variablen "Melodie".

         - Im zweiten Schritt ist es jedoch unerlässlich zu verhindern, dass die in der Variablen "Melodie"
           gespeicherte Zahl den Wert 6 nicht übersteigt
, da sonst kein Ton mehr abgespielt würde.
           Dies lösen wir ganz einfach (*^_^); mit einer einseitigen Auswahlstruktur, mit welcher überprüft
           wird, ob der Inhalt der Variablen größer gleich 7 ist. Ist dem so, so wird im Anweisungsblock
           innerhalb  der einseitigen Auswahlstruktur die Variable "Melodie" auf den Wert 1 zurückgesetzt.

        - Im dritten Schritt geben wir als Hilfestellung für den Anwender noch den Inhalt der Variablen
          "Melodie" (Datentyp: Zahl) auf dem Display
unseres micro:bit-Computers aus.

4. Erweiterungen

Nachdem wir unser Programm eintsprechend der Missionsbeschreibung erfolgreich getestet
haben, können wir es selbst um zusätzliche Funktionen erweitern.

Hier sind einige Ideen:

1. Idee: Erweiterung des Programms von 6 auf 10 verschiedene Soundeffekte.

2. Idee: Durch das gleichzeitige Drücken beider Tasten "A" und "B", welches ein eigenes Ereignis
             darstellt, wird ein zufälliger Soundeffekt abgespielt, wobei die ursprüngliche Funktion des
             Programms beim Drücken der Tasten "A" oder "B" erhalten bleibt.

             Umsetzungshinweise zur 2. Idee:
             - Der Programmcode zur den Ereignissen "Drücken der Taste A" bzw. "Drücken der Taste B"
               bleibt unverändert.
             - Hierbei darf der Inhalt der Variablen "Melodie" sollte hierbei nicht verändert werden, sonst
               würde das Verhalten des micro:bit beim Drücken der Taste "A" verändert.