Dateien
MagicMusicMachine ist eine Maschine, die selbst Musik komponiert und spielt. Passend zur Musik bewegt sich ein Magier auf einem Podest. Mithilfe von fünf Tastern und Schalter kann die Musik und die Bewegung des Magiers verändert werden.
Team:
Timon Kaufmann (PL), 5420 Ehrendingen (AG)
Robin Kaufmann (Coach), 5420 Ehrendingen (AG)
Hubert Kaufmann (Coach), 5420 Ehrendingen (AG)
Typ:
Freizeitprojekt
Kategorie:
Installation/Robotic
Alterskategorie:
Juniors (12- bis 16-Jährige)
Awards:
Community Award
Ausführliche Projektbeschreibung
Idee: Nachdem ich ein Weile lang Radio hörte, merkte ich, dass dort oft das selbe gespielt wurde. Da wollte ich ein Programm entwickeln, das selbst Musik komponiert und dann auch spielt. So begann ich mit meinem Projekt.
Programm: Zuerst wollte ich das Programm zum Spielen der Töne erstellen. Für dieses benötigte ich jeweils zwei Töne gleichzeitig, die beide einen Timer des Arduinos beanspruchten. Das Problem war allerdings, dass nur ein Timer frei war, um Musik zu spielen. Deshalb musste ich aus dem Internet die "Tone Library" herunterladen, die einen weiteren Timer für Musik zur Verfügung stellt. Da diese auf Anhieb nicht funktionierte musste ich sie noch ein wenig verändern. Als dieses Hindernis geschafft war, kam eine weitere Schwierigkeit dazu: Da ich zwei Töne parallel spielen wollte, konnte ich als Pause bis zum nächsten Ton oder zwischen den einzelnen Tönen keinen delay-Befehl erstellen, da sonst das ganze Programm angehalten hätte. Deshalb musste ich mehr oder weniger zwei getrennte Kreisläufe, einer um die Musik zu erstellen und eine um sie dann abzuspielen erstellen. Ansonsten musste ich noch die Auslesung der Taster und Schalter, die Ansteuerung der eingebauten Glocke und die Schnittstelle zwischen Arduino und LegoMindstorms programmieren, was mir nicht allzu grosse Schierigkeiten bereitete.
Komponieren: Das Programm komponiert, je nach gewählter Stilrichtung, aufgrund verschiedener Tonleitern und einer Liste mit unterschiedlich langen Notenlängen, die eigentlich gespielte Musik. Dies geschieht mit der Hilfe von mehreren Zufallszahlen, die dann den Notenlängen oder Tonhöhen zugeordnet werden.
Interface: Als Grundgerüst diente mir "Papas alte Weinkiste", die ich im Keller fand. Auf der Vorderseite befindet sich ein Schalter, um zwischen den Stilrichtungen Dur, Moll und Jazz umschaltet. Je nachdem, welche Stilrichtung ausgewählt wird, erstellt das Programm Musik mit Tönen anderer Tonleitern und mit unterschiedlichen Notenlängen. Auf der Oberseite befindet sich, auf "Mamas alter Parfümschachtel", die Puppe eines Magiers, der passend zum Takt mit dem Kopf nickt. Neben dem Magier kann man mit zwei Tastern, einem Schalter und einem Potentiometer einiges verändern: Man kann wählen, ob der Magier sich dreht, oder nicht, die Glocke, die mit einem Elektromagnet betrieben ist ein- oder ausschalten. Zudem kann man während dem Lied die Geschwindigkeit mit dem Potentiometer verstellen. Mit dem zweiten Taster kann man das aktuelle Lied stoppen oder ein neues starten.
Innenleben: Im Innern befindet sich der Microkontroller Arduino, der alles kontrolliert. Er steuert über einen Transistor das Elektromagnet für die Glocke, gibt das Signal für die Lautsprecher aus und sammelt die Signale der Schalter. Zudem steuert er eine LED, die dem RCX von LegoMindstorms angibt, wann der Zauberer mit dem Kopf nickt. Wenn nämlich der Lichtsensor des RCX merkt, dass es heller wird, schaltet er den Motor ein, der die Schnur, an der der Kopf der Zauberermarionette angemacht ist, bewegt. Der RCX beginnt ebenfalls mit der Drehung des Magiers, wenn man auf den dazugehörigen Schalter drückt.
Informationen zu den verwendeten Technologien:
Als Microkontroller habe ich einen Arduino verwendet, zur Programmierung habe ich das dazugehörige Programm von Arduino verwendet. Für die Bewegungen des Magiers verwendete ich Software und Hardware von LegoMindstorms RCX. Zum Bearbeiten des Films setzte ich Pinnacle Studio 11. Um beim Arduino mehrere Töne gleichzeitig zu spielen benutzte ich die ToneLibrary(http://code.google.com/p/rogue-code/wiki/ToneLibraryDocumentation#Hardware_Connections/Requirements).
Informationen zur Organisation der Teamarbeit
Den grössten Teil der Arbeit habe ich selbstständig erledigt. Bei der Steuerung der Hardware gab mir mein Vater (Hubert Kaufmann) nützliche Tips, bei Schwierigkeiten, die die Software angingen, konnte ich mich gut an meinen Bruder Robin wenden.
Informationen zu den verwendeten Grafiken, Fotos, Sounds, Videos etc.
Alle Fotos, Sounds und Videos sind selber erstellt.
Tagebuch der Projektarbeit
Zuerst habe ich das Programm entwickelt. In meiner Freizeit arbeitete ich etwa vier Wochen daran. Für die Hardware, die ich erst einige Wochen später zusammenbaute, brauchte ich etwa 2 Wochen.