Innholdsfortegnelse:
- Trinn 1: Datastoffer
- Trinn 2: Pianoet
- Trinn 3: Montering
- Trinn 4: Tekniske utfordringer og fremtidige hensyn
Video: Synesthesia Player Piano: 4 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:21
Denne spilleren piano spiller musikk ved hjelp av et fargehjul og et kamera! Bilder blir tatt av kameraet, behandlet og tolket som musikknoter. Akkurat nå er det programmert til å spille barnerim som kan endres ved å laste opp en ny arduino -skisse som angir hvilke toner som skal spilles (Hvilke farger skal vises til kameraet).
Den innebygde Linux -PCen starter en tjeneste ved oppstart som tar et bilde med et kamera, beregner en funksjon av RGB -verdiene i bildet og sender ut en lyd basert på funksjonens returverdi. Før du spiller lyden sender den et signal som forteller en Arduino om å rotere en servo, og presenterer fargen som tilsvarer neste tone som skal spilles. Deretter starter sløyfen igjen, et bilde blir tatt, fargehjulet roteres og en lyd spilles ad uendelig.
Dette prosjektet er en morsom måte å integrere musikk, moderne Linux-systemprogrammering, mikrokontrollerprogrammering, inkscape-doodling, laserskjæring og omformulering av noen søppelpappkasser.
Alle koder og inkscape SVGer er tilgjengelige på github på:
github.com/melvyniandrag/pyMusic
Materialer som brukes:
- Blanke hvite etiketter
- Pappeske
- Webkamera
- Fargestifter
- Arduino
- Beagleboard-xM
- Ledninger
- Seriekabel
- Grunnleggende kunnskap om bildebehandling og musikk
Trinn 1: Datastoffer
Ombord trenger du en liten Linux-kompatibel datamaskin, for eksempel en Raspberry Pi. Jeg brukte en gammel BeagleBoard-xM fordi jeg tilfeldigvis hadde den liggende og jeg allerede hadde et operativsystem på SD-kortet. Du kan bruke hva som helst, så lenge det kan håndtere et webkamera, kan kjøre OpenCV (datasynbiblioteket som brukes til å ta og behandle bilder av fargehjulet) og har en lydutgang.
Jeg konfigurerte operativsystemet for å kjøre python -koden som tar bilder ved oppstart etter en systemd -opplæring. For at skriptet skal kjøre, må du sudo apt-get install python-pyaudio python-opencv for å få de angitte bibliotekene. Du må også pip installere numpy pyserial for å få disse bibliotekene. pyaudio brukes til å spille lyder, opencv brukes til å ta bilder og behandle, numpy brukes også til bildebehandling, og pyserial er nødvendig for å kommunisere med Arduino.
Arduino brukes til å rotere servomotoren som fargehjulet er montert på. Hvis du hadde en Raspberry Pi, kunne du bruke GPIO -pinnene der og utelate Arduino, men du må endre Python -koden.
På bildene kan du se den teknologiske tarmene til operasjonen og et par kodesnutter.
Trinn 2: Pianoet
Jeg laget pianoet av papp av noen gamle esker jeg hadde. Jeg er så heldig å bo i nærheten av et makerrom som har en laserskjærer. I et helt år har jeg lurt på hva i all verden man vil ha en laserskjærer til, og det viser seg at jeg endelig fant en bruk for den.
Jeg målte datamaskinen, arduino og servo, så jeg visste hvor mye plass jeg ville trenge, tegnet pianoets deler i inkscape og kuttet dem ut på laserskjæreren. (Rediger: Jeg gikk tom for papp for å få kabinettet til å holde datamaskinen og arduinoen, så jeg satte dem ikke inn. De er på utsiden av saken. Spiller ingen rolle, kunne ha fått en annen eske et sted, men det gjorde det ikke spiller ingen rolle til slutt.)
Bitene ble satt sammen med epoxy.
Trinn 3: Montering
Her er noen bilder av pianoet som er satt sammen og farget. Skriveren var tom for blekk, så jeg kunne ikke skrive ut fargene på de hvite etikettene som jeg hadde planlagt. Så jeg brukte datterens fargestifter. Og jeg kunne ikke finne en xacto -kniv for å kutte etiketten i form av papp, så jeg brukte bare en biffkniv og la noe beskyttende på kjøkkenbenken. Bruk det du har!
Trinn 4: Tekniske utfordringer og fremtidige hensyn
En utfordrende del av dette prosjektet var å få de riktige RGB -verdiene til å bli lest av kameraet. Webkameraet jeg har har noen utrolig lyse lysdioder på det som jeg ikke vet hvordan jeg skal slå av i Linux. Jeg tror det er en Windows -driver som lar deg slå dem på og av. Jeg eksperimenterte med å teipe lysdiodene med elektrisk tape og la dem være på. Jeg testet også programvaren for robusthet ved ikke bare å vise det farget papir, men også skrive et lite nettsted som viser farger.
Lydene som produseres av datamaskinen har noen ganger pops og sprak i dem, og dette kommer av det faktum at jeg har veldig liten erfaring med Linux -lydprogrammering. Pyaudio -biblioteket spytter ut en hel haug med klager om at JACK ikke er installert på PC -en, men som standard ønsker JACK ikke å kjøre hodeløst (uten et gui -skrivebord og en skjerm). Dette er en programmeringsoppgave som jeg trodde var en forfining, men som ikke var nødvendig for å uttrykke essensen av pianoet jeg hadde i tankene.
Jeg hadde vurdert å bruke en håndsveiv for å endre fargene, og kanskje å ha dem på en kjevle, men det introduserer sine egne komplikasjoner. Servoen er litt bråkete, men fungerer bra foreløpig.
Spillerpianoet er for øyeblikket bare programmert til å spille 4 noter. Dette er fordi servoen bare beveger seg 180 grader, de fleste barnerim kan spilles med bare 3-4 noter, og jeg ville ikke at fargehjulet skulle bli rotete med fargegrenser, muligens forvirrende kameraet. Så gjennom en kombinasjon av musikalsk flaks og tekniske begrensninger er 4 notater greit.
Anbefalt:
Arduino Piezo Buzzer Piano: 5 trinn
Arduino Piezo Buzzer Piano: Her skal vi lage et Arduino -piano som bruker en piezo -summer som høyttaler. Dette prosjektet er lett skalerbart og kan fungere med mer eller færre notater, avhengig av deg! Vi vil bygge den med bare fire knapper/taster for enkelhets skyld. Dette er et morsomt og enkelt prosjekt
Enkelt Arduino -piano: 8 trinn
Enkelt Arduino-piano: I dag skal vi lage et enkelt Arduino-piano på en oktav, som kan være et flott utgangspunkt for andre prosjekter. Dette prosjektet vil introdusere grunnleggende Arduino -komponenter og programmering på videregående nivå. Selv om koden er forhåndsfremstilte individer
Arduino -piano med manuell og 7 forhåndsinnstilte sanger: 7 trinn
Arduino Piano med manuell og 7 forhåndsinnstilte sanger: Arduino Piano Keyboard grensesnitt med LCD har 2 modus. Den manuelle modusen & Forhåndsinnstilt modus. Jeg brukte 7 trykknapper for et enkelt piano med 7 tangenter og 1 knapp for oppsettsmodus for å bytte til 7 forhåndsinnstilte sanger. Forhåndsinnstilte sanger: Klikk på oppsettsmodusknappen fi
Arduino Paper Piano: 6 trinn
Arduino Paper Piano: Jeg klarte det og forbedret dette prosjektet basert på papirpiano med arduino-- Hackster.ioDu kan også finne denne originale ideen i papirpiano med arduino-- Arduino Project Hub Endringene jeg har gjort på papirpianoet ovenfor er ikke bare utseendet, men
Working Piano Slips: 6 trinn
Working Piano Slips: 1980 -tallet ga mange flotte prestasjoner innen mote og musikk. Det var synthmusikk, den funky keytaren, leggings og det klassiske pianoslipset for menn. Disse båndene ble brukt ironisk (og unironisk) av mange fasjonable (og umoderne)