Indholdsfortegnelse:
- Trin 1: Computeren
- Trin 2: Klaveret
- Trin 3: Montering
- Trin 4: Tekniske udfordringer og fremtidige overvejelser
Video: Synesthesia Player Piano: 4 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:26
Denne spiller klaver spiller musik ved hjælp af et farvehjul og et kamera! Billeder fanges af kameraet, behandles og tolkes som musiknoter. Lige nu er det programmeret til at spille børnerim, der kan ændres ved at uploade en ny arduino -skitse, som angiver, hvilke toner der skal spilles (Hvilke farver skal vises til kameraet).
Den indbyggede Linux -pc starter en service ved opstart, der tager et billede med et kamera, beregner en funktion af RGB -værdierne i billedet og udsender en lyd baseret på funktionens returværdi. Inden lyden afspilles, sender den et signal, der fortæller en Arduino om at rotere en servo og viser farven, der svarer til den næste tone, der skal afspilles. Derefter starter loop igen, et billede tages, farvehjulet roteres, og en lyd afspilles ad infinitum.
Dette projekt er en sjov måde at integrere musik, moderne Linux-systemprogrammering, mikro-controller programmering, inkscape doodling, laserskæring og omformulering af nogle junk papkasser.
Alle koden og inkscape SVG'erne er tilgængelige på github på:
github.com/melvyniandrag/pyMusic
Anvendte materialer:
- Blanke hvide etiketter
- Papkasse
- Webcam
- Farveblyanter
- Arduino
- Beagleboard-xM
- Ledninger
- Serielt kabel
- Grundlæggende viden om billedbehandling og musik
Trin 1: Computeren
Ombord har du brug for en lille Linux-kompatibel computer, f.eks. En Raspberry Pi. Jeg brugte en gammel BeagleBoard-xM, fordi jeg tilfældigvis havde den liggende, og jeg havde allerede et operativsystem på SD-kortet. Du kan bruge hvad som helst, så længe det kan håndtere et webcam, kan køre OpenCV (computer vision -biblioteket, der bruges til at tage og behandle billeder af farvehjulet), og har et lydudgangsstik.
Jeg konfigurerede operativsystemet til at køre python -koden, der fanger billeder ved opstart efter en systemd -tutorial. For at scriptet kan køre, skal du sudo apt-get install python-pyaudio python-opencv for at få de angivne biblioteker. Du skal også pip installere numpy pyserial for at få disse biblioteker. pyaudio bruges til at afspille lyde, opencv bruges til billedoptagelse og behandling, numpy bruges også til billedbehandling, og pyserial er nødvendig for at kommunikere med Arduino.
Arduino bruges til at rotere servomotoren, som farvehjulet er monteret på. Hvis du havde en Raspberry Pi, kunne du gøre brug af GPIO -benene derude og udelade Arduino, men du skulle ændre Python -koden.
På billederne kan du se operationens teknologiske mod og et par kodestykker.
Trin 2: Klaveret
Jeg lavede klaveret af pap af nogle gamle kasser, jeg havde. Jeg har heldet med at bo i nærheden af et makerrum, der har en laserskærer. I et helt år har jeg spekuleret på, hvad pokker man ville have en laserskærer til, og det viser sig, at jeg endelig fandt en brug til det.
Jeg målte computeren, arduino og servo, så jeg vidste, hvor meget plads jeg skulle bruge, tegnede klaverets dele i inkscape og skar dem ud på laserskæreren. (Edit: Jeg løb tør for pap for at få kabinettet til at holde computeren og arduinoen, så jeg lagde dem ikke i. De er på ydersiden af sagen. Det gør ikke noget, kunne have fået en anden æske et sted fra, men det gjorde det ikke det betyder ikke noget i sidste ende.)
Brikkerne blev sat sammen med epoxy.
Trin 3: Montering
Her er nogle billeder af klaveret, der samles og farves. Printeren var løbet tør for blæk, så jeg kunne ikke printe farverne på de hvide etiketter, som jeg havde planlagt. Så jeg brugte min datters farveblyanter. Og jeg kunne ikke finde en xacto -kniv til at skære etiketten i form af pap, så jeg brugte bare en bøfkniv og lagde noget beskyttende på køkkenbordet. Brug hvad du har!
Trin 4: Tekniske udfordringer og fremtidige overvejelser
En udfordrende del af dette projekt var at få de korrekte RGB -værdier til at blive læst af kameraet. Webkameraet, jeg har, har nogle utroligt lyse lysdioder på, som jeg ikke ved, hvordan man slukker i Linux. Jeg tror, at der er en Windows -driver, der giver dig mulighed for at slå dem til og fra. Jeg eksperimenterede med at tape lysdioderne med elektrisk tape og lade dem være tændt. Jeg testede også softwaren for robusthed ved ikke kun at vise det farvet papir, men også skrive et lille websted, der viser farver.
Lydene fra computeren har nogle gange pops og knitrende i dem, og det kommer af, at jeg har meget lidt erfaring med Linux -lydprogrammering. Pyaudio -biblioteket spytter en hel masse klager over, at JACK ikke er installeret på pc'en, men som standard vil JACK ikke køre uden hoved (uden et gui -skrivebord og en skærm). Dette er en programmeringsopgave, som jeg troede var en forfining, men ikke var nødvendig for at udtrykke essensen af det klaver, jeg havde i tankerne.
Jeg havde overvejet at bruge en håndsving til at ændre farverne og måske have dem på en kagerulle, men det introducerer sine egne komplikationer. Servoen er lidt støjende, men fungerer fint for nu.
Spillerens klaver er i øjeblikket kun programmeret til at spille 4 toner. Dette skyldes, at servoen kun bevæger sig 180 grader, de fleste børnerim kan spilles med kun 3-4 toner, og jeg ville ikke have, at farvehjulet skulle blive rodet med farveområder, muligvis forvirre kameraet. Så gennem en kombination af musikalsk held og tekniske begrænsninger er 4 toner fint.
Anbefalede:
Arduino Piezo Buzzer Piano: 5 trin
Arduino Piezo Buzzer Piano: Her laver vi et Arduino klaver, der bruger en piezo summer til en højttaler. Dette projekt er let skalerbart og kan arbejde med flere eller færre noter, afhængigt af dig! Vi vil bygge det med kun fire knapper/taster for nemheds skyld. Dette er sjovt og let projekt
Arduino Paper Piano: 6 trin
Arduino Paper Piano: Jeg klarede det og forbedrede dette projekt baseret på papirklaver med arduino-- Hackster.ioDu kunne også finde denne originale idé i papirklaver med arduino-- Arduino Project Hub Ændringerne, jeg har foretaget i papirklaveret ovenfor, er ikke kun udseendet men
Working Piano Slips: 6 trin
Working Piano Slips: 1980'erne medførte mange store præstationer inden for mode og musik. Der var synthmusik, den funky keytar, leggings og det klassiske mænds klaverstrop. Disse slips blev brugt ironisk (og unironisk) af mange moderigtige (og umoderne)
MaKey MaKey Powered Piano Foot Pedals: 6 trin
MaKey MaKey Powered Piano Foot Pedals: Bananklaveret er måske blevet den mest ikoniske brug af MaKey MaKey, sammen med at gøre forskellige andre husstandsgenstande til klaverer. Nu er jeg ingen klaverekspert, men klaverer, jeg har set, har disse pedal -ting til dine fødder. Ved ikke rigtig hvad
Breadboard Touch Piano: 5 trin
Breadboard Touch Piano: Du skal bare bruge attiny 85, CD4051 (enhver analog multiplexer) og summer til at lave et touch piano