Inhaltsverzeichnis:
- Schritt 1: Das Computerzeug
- Schritt 2: Das Klavier
- Schritt 3: Montage
- Schritt 4: Technische Herausforderungen und zukünftige Überlegungen
Video: Synästhesie-Spieler-Klavier - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:16
Dieses Player Piano spielt Musik mit einem Farbrad und einer Kamera! Bilder werden von der Kamera erfasst, verarbeitet und als Musiknoten interpretiert. Im Moment ist es so programmiert, dass es Kinderreime spielt, die durch Hochladen einer neuen Arduino-Skizze geändert werden können, die angibt, welche Noten gespielt werden sollen (welche Farben sollen der Kamera angezeigt werden).
Der Onboard-Linux-PC startet beim Booten einen Dienst, der ein Bild mit einer Kamera aufnimmt, eine Funktion der RGB-Werte im Bild berechnet und basierend auf dem Rückgabewert der Funktion einen Ton ausgibt. Vor dem Abspielen des Sounds sendet es ein Signal, das einem Arduino mitteilt, ein Servo zu drehen, wobei die Farbe angezeigt wird, die der nächsten zu spielenden Note entspricht. Dann startet die Schleife erneut, es wird ein Bild aufgenommen, das Farbrad gedreht und ein Ton endlos abgespielt.
Dieses Projekt ist eine unterhaltsame Möglichkeit, Musik, moderne Linux-Systemprogrammierung, Mikrocontroller-Programmierung, Inkscape-Kritzeleien, Laserschneiden und Wiederverwendung einiger Junk-Pappkartons zu integrieren.
Alle Code- und Inkscape-SVGs sind auf github verfügbar unter:
github.com/melvyniandrag/pyMusic
Verwendete Materialien:
- Leere weiße Etiketten
- Pappkarton
- Webcam
- Buntstifte
- Arduino
- Beagleboard-xM
- Drähte
- Serielles Kabel
- Grundkenntnisse in Bildbearbeitung und Musik
Schritt 1: Das Computerzeug
An Bord benötigen Sie einen kleinen Linux-fähigen Computer wie einen Raspberry Pi. Ich habe ein altes BeagleBoard-xM verwendet, weil ich es zufällig herumliegen hatte und ich bereits ein Betriebssystem auf der SD-Karte hatte. Sie können alles verwenden, solange es mit einer Webcam umgehen kann, OpenCV (die Computer-Vision-Bibliothek zum Aufnehmen und Verarbeiten von Bildern des Farbrads) ausführen kann und einen Audioausgang hat.
Ich habe das Betriebssystem so eingerichtet, dass es den Python-Code ausführt, der Bilder beim Booten nach einem systemd-Tutorial erfasst. Damit das Skript ausgeführt werden kann, müssen Sie sudo apt-get install python-pyaudio python-opencv ausführen, um die angegebenen Bibliotheken zu erhalten. Sie müssen auch pip install numpy pyserial installieren, um diese Bibliotheken zu erhalten. pyaudio wird zum Abspielen von Sounds verwendet, opencv wird für die Bildaufnahme und -verarbeitung verwendet, numpy wird auch für die Bildverarbeitung verwendet und pyserial wird für die Kommunikation mit dem Arduino benötigt.
Der Arduino wird zum Drehen des Servomotors verwendet, auf dem das Farbrad montiert ist. Wenn Sie einen Raspberry Pi hätten, könnten Sie die GPIO-Pins dort verwenden und das Arduino weglassen, aber Sie müssten den Python-Code ändern.
In den Bildern sehen Sie den technologischen Mut der Operation und ein paar Codeschnipsel.
Schritt 2: Das Klavier
Ich habe das Klavier aus Karton aus einigen alten Kisten gemacht, die ich hatte. Ich habe das Glück, in der Nähe eines Makerspace zu leben, der einen Laserschneider hat. Ein ganzes Jahr lang habe ich mich gefragt, wofür man einen Laserschneider haben möchte, und es stellte sich heraus, dass ich endlich eine Verwendung dafür gefunden habe.
Ich habe den Computer, das Arduino und das Servo gemessen, damit ich wusste, wie viel Platz ich brauche, die Teile des Klaviers in Inkscape gezeichnet und mit dem Laserschneider ausgeschnitten. (Bearbeiten: Mir ist der Karton ausgegangen, damit das Gehäuse den Computer und das Arduino aufnehmen kann, und habe sie nicht hineingesteckt. Sie befinden sich auf der Außenseite des Gehäuses. Egal, hätte irgendwo eine andere Schachtel bekommen können, aber es hat ist am Ende egal.)
Die Teile wurden mit Epoxy zusammengefügt.
Schritt 3: Montage
Hier sind einige Bilder des Klaviers, das zusammengebaut und gefärbt wird. Der Drucker hatte keine Tinte mehr, sodass ich die Farben nicht wie geplant auf die weißen Etiketten drucken konnte. Also habe ich die Buntstifte meiner Tochter verwendet. Und ich konnte kein Xacto-Messer finden, um das Etikett in die Form des Kartons zu schneiden, also habe ich einfach ein Steakmesser verwendet und etwas Schützendes auf die Küchentheke gelegt. Verwenden Sie, was Sie haben!
Schritt 4: Technische Herausforderungen und zukünftige Überlegungen
Ein herausfordernder Teil dieses Projekts bestand darin, die richtigen RGB-Werte zu erhalten, die von der Kamera gelesen werden konnten. Die Webcam, die ich habe, hat einige unglaublich helle LEDs, die ich unter Linux nicht ausschalten kann. Ich denke, es gibt einen Windows-Treiber, mit dem Sie sie ein- und ausschalten können. Ich experimentierte damit, die LEDs mit Isolierband abzukleben und sie eingeschaltet zu lassen. Ich habe die Software auch auf ihre Robustheit getestet, indem ich nicht nur farbiges Papier gezeigt habe, sondern auch eine kleine Website geschrieben habe, die Farben zeigt.
Die vom Computer erzeugten Klänge enthalten manchmal Knackser und Knistern, und das liegt daran, dass ich sehr wenig Erfahrung mit der Audioprogrammierung unter Linux habe. Die pyaudio-Bibliothek spuckt eine ganze Reihe von Beschwerden aus, dass JACK nicht auf dem PC installiert ist, aber standardmäßig möchte JACK nicht ohne Kopf (ohne GUI-Desktop und Monitor) laufen. Dies ist eine Programmieraufgabe, die ich für eine Verfeinerung hielt, aber nicht notwendig war, um die Essenz des Spielerklaviers auszudrücken, das ich im Sinn hatte.
Ich hatte überlegt, eine Handkurbel zu verwenden, um die Farben zu ändern und sie vielleicht auf einem Nudelholz zu haben, aber das bringt seine eigenen Komplikationen mit sich. Das Servo ist etwas laut, funktioniert aber im Moment gut.
Das Player Piano ist derzeit nur für das Spielen von 4 Noten programmiert. Dies liegt daran, dass sich das Servo nur um 180 Grad bewegt, die meisten Kinderreime mit nur 3-4 Tönen gespielt werden können und ich nicht wollte, dass das Farbrad mit Farbbereichen überladen wird, was die Kamera möglicherweise verwirren könnte. Durch eine Kombination aus musikalischem Glück und technischen Einschränkungen sind 4 Noten in Ordnung.