Inhoudsopgave:

Synesthesia Player Piano - Ajarnpa
Synesthesia Player Piano - Ajarnpa

Video: Synesthesia Player Piano - Ajarnpa

Video: Synesthesia Player Piano - Ajarnpa
Video: 05 Mechina The Synesthesia Signal 2024, Juli-
Anonim
Image
Image
Synesthesie Player Piano
Synesthesie Player Piano
Synesthesie Player Piano
Synesthesie Player Piano

Deze speler piano speelt muziek met behulp van een kleurenwiel en een camera! Beelden worden door de camera vastgelegd, verwerkt en geïnterpreteerd als muzieknoten. Op dit moment is het geprogrammeerd om kinderliedjes te spelen die kunnen worden gewijzigd door een nieuwe Arduino-schets te uploaden die aangeeft welke noten moeten worden gespeeld (welke kleuren aan de camera moeten worden getoond).

De ingebouwde Linux-pc start een service bij het opstarten die een foto maakt met een camera, een functie berekent van de RGB-waarden in de afbeelding en een geluid uitvoert op basis van de retourwaarde van de functie. Voordat het geluid wordt afgespeeld, stuurt het een signaal naar een Arduino om een servo te draaien, waarbij de kleur wordt weergegeven die overeenkomt met de volgende te spelen noot. Dan begint de lus opnieuw, wordt er een foto gemaakt, wordt het kleurenwiel gedraaid en wordt een geluid tot in het oneindige afgespeeld.

Dit project is een leuke manier om muziek, het programmeren van moderne Linux-systemen, het programmeren van microcontrollers, inkscape-doodling, lasersnijden en het hergebruiken van een aantal rommelkartonnen dozen te integreren.

Alle code en inkscape-SVG's zijn beschikbaar op github op:

github.com/melvyniandrag/pyMusic

Gebruikte materialen:

  1. Blanco witte etiketten
  2. Kartonnen doos
  3. webcam
  4. kleurpotloden
  5. Arduino
  6. Beagleboard-xM
  7. Draden
  8. Seriële kabel
  9. Basiskennis van beeldverwerking en muziek

Stap 1: De computerdingen

De computerdingen
De computerdingen
De computerdingen
De computerdingen
De computerdingen
De computerdingen

Aan boord heb je een kleine Linux-compatibele computer nodig, zoals een Raspberry Pi. Ik gebruikte een oude BeagleBoard-xM omdat ik die toevallig had liggen en ik al een besturingssysteem op de SD-kaart had. Je kunt alles gebruiken, zolang het maar een webcam aankan, OpenCV kan draaien (de computer vision-bibliotheek die wordt gebruikt om afbeeldingen van het kleurenwiel te maken en te verwerken) en een audio-uitgang heeft.

Ik heb het besturingssysteem ingesteld om de python-code uit te voeren die afbeeldingen vastlegt bij het opstarten na een systemd-zelfstudie. Om het script uit te voeren, moet u sudo apt-get install python-pyaudio python-opencv gebruiken om de aangegeven bibliotheken te krijgen. Je moet ook pip install numpy pyserial installeren om die bibliotheken te krijgen. pyaudio wordt gebruikt om geluiden af te spelen, opencv wordt gebruikt voor het maken en verwerken van afbeeldingen, numpy wordt ook gebruikt voor beeldverwerking en pyserial is nodig voor communicatie met de Arduino.

De Arduino wordt gebruikt voor het draaien van de servomotor waarop het kleurenwiel is gemonteerd. Als je een Raspberry Pi had, zou je de GPIO-pinnen daar kunnen gebruiken en de Arduino weglaten, maar je zou de Python-code moeten aanpassen.

Op de afbeeldingen zie je het technologische lef van de operatie en een paar codefragmenten.

Stap 2: De piano

De piano
De piano
De piano
De piano
De piano
De piano

Ik maakte de piano van karton uit een paar oude dozen die ik had. Ik heb het geluk in de buurt van een makerspace te wonen met een lasersnijder. Een heel jaar lang heb ik me afgevraagd waar je in godsnaam een lasersnijder voor zou willen hebben, en het blijkt dat ik er eindelijk een gebruik voor heb gevonden.

Ik heb de computer, arduino en servo gemeten, zodat ik wist hoeveel ruimte ik nodig zou hebben, de onderdelen van de piano in inkscape getekend en ze op de lasersnijder uitgesneden. (Bewerken: ik had geen karton meer om de behuizing de computer en arduino te laten vasthouden en dus heb ik ze er niet in gedaan. Ze zitten aan de buitenkant van de behuizing. Maakt niet uit, had ergens een andere doos kunnen krijgen, maar dat deed het niet maakt uiteindelijk niet uit.)

De stukken zijn in elkaar gezet met epoxy.

Stap 3: Montage

samenkomst
samenkomst
samenkomst
samenkomst
samenkomst
samenkomst

Hier zijn enkele afbeeldingen van de piano die in elkaar wordt gezet en ingekleurd. De printer had geen inkt meer, dus ik kon de kleuren niet op de witte labels afdrukken zoals ik had gepland. Dus ik gebruikte de kleurpotloden van mijn dochter. En ik kon geen xacto-mes vinden om het etiket in de vorm van het karton te snijden, dus ik gebruikte gewoon een steakmes en legde iets beschermends op het aanrecht. Gebruik wat je hebt!

Stap 4: Technische uitdagingen en toekomstige overwegingen

Technische uitdagingen en toekomstige overwegingen
Technische uitdagingen en toekomstige overwegingen
Technische uitdagingen en toekomstige overwegingen
Technische uitdagingen en toekomstige overwegingen

Een uitdagend onderdeel van dit project was het verkrijgen van de juiste RGB-waarden om door de camera te worden gelezen. De webcam die ik heb heeft een aantal ongelooflijk heldere LED's waarvan ik niet weet hoe ik ze uit moet zetten in Linux. Ik denk dat er een Windows-stuurprogramma is waarmee je ze kunt in- en uitschakelen. Ik heb geëxperimenteerd met het afplakken van de LED's met elektrische tape en ze aan te laten. Ik heb de software ook getest op robuustheid door het niet alleen gekleurd papier te laten zien, maar ook door een kleine website te schrijven die kleuren laat zien.

De geluiden die door de computer worden geproduceerd, bevatten soms ploffen en knetteren, en dit komt door het feit dat ik heel weinig ervaring heb met Linux-audioprogrammering. De pyaudio-bibliotheek spuugt een hele reeks klachten uit dat JACK niet op de pc is geïnstalleerd, maar standaard wil JACK niet headless draaien (zonder een gui-desktop en een monitor). Dit is een programmeertaak waarvan ik dacht dat het een verfijning was, maar die niet nodig was om de essentie uit te drukken van de pianola die ik in gedachten had.

Ik had overwogen om een handslinger te gebruiken om de kleuren te veranderen, en misschien om ze op een soort deegroller te hebben, maar dat brengt zijn eigen complicaties met zich mee. De servo is een beetje luidruchtig, maar werkt prima voor nu.

De player piano is momenteel slechts geprogrammeerd om 4 noten te spelen. Dit komt omdat de servo maar 180 graden beweegt, de meeste kinderliedjes kunnen worden gespeeld met slechts 3-4 noten, en ik wilde niet dat het kleurenwiel vol zou worden met kleurgebieden, waardoor de camera mogelijk in de war zou raken. Dus door een combinatie van muzikaal geluk en technische beperkingen, is 4 noten prima.

Aanbevolen: