Dragspel Master - en python/arduino musik synt
Detta projekt skapades av ett team av tre studenter från University of Pennsylvania på MHacks 2014 Detroit (en helg Hackathon). Målet med detta projekt är att skapa en musik-synt som genererar signaler baserat på användarens gester. Så om du någonsin velat skapa en elektronisk theremin, eller spela ut din polka fantasi med en pseudo-dragspel, är detta projekt för dig!
Projektet kommer att riktas mot nybörjare eller personer med starter mängden elektroniska kunskap, så om du precis har börjat på arduino detta skulle inte vara en dålig start! Jag kommer att försöka vara explicit där jag kan om projektet men om du behöver några fler förklaringar eller har några frågor bara meddelande mig :)
I detta instructable jag ger och täcker 1) arduino koden behövs för att läsa raw värden från accelerometern, filtrera data, och upprätta seriell kommunikation med en dator 2) parse data från en seriell linje, använda pyFluidSynth för att generera toner baserat på arduino data 3) (valfria grejer) * Port projektet till en Raspberry Pi!, använda matrisen Adafruit LED för att visualisera en vågform som återspeglar intensiteten av acceleration.
All kod för detta projekt finns på https://github.com/aehernandez/Accordion-Hero
Material som behövs
- Arduino ombord (jag använde den Arduino Duemilanove ATmega328)
- USB A till B-kabel
- 3-axlig accelerometer (jag hade ADXL335)
- Dator (jag körde detta projekt på Linux, även om Windows ska vara bra)
- Handske
- 22 AWG Gauge kabel (eller något som passar väl in i arduino styrelsen)
- Konduktiv färg/Tape (eller extra tråd utan isolering, detta är i grunden för att bedriva)
Valfritt material (för utökad funktionalitet):
- XBee trådlös kommunikation sköldar
- Adafruit 16 x 32 ledde matrisen
- Raspberry Pi
Snabb översikt
Det slutliga målet med detta projekt är att ha ett system där användaren kunde trycka fingrarna ihop i olika mönster och baserat på acceleration av deras hand producera en anteckning. En viktig anmärkning här är att olika konfigurationen av fingrar producerar olika anteckningar och accelerationen av handen ändrar intensiteten i volym av anteckningen.
Var och en av de fyra fingrarna (index, mitten, ring och pinkie) hänvisar till en binär konfiguration. Respektive fingret kan mot tummen en binär flagga för konfigurationen. Till exempel om ingen av fingrarna vidrör tummen då flaggan är 0000 och ingen Musiknoteringen spelas. Om pekfingret är att kontakta tummen då den aktiveras och flaggan är sedan 0001. Beroende på genomförandet kunde 0001 se C Musiknoteringen. Om användaren bara tryckt sina ringfingret till tummen då flaggan skulle vara 0100 och en olika toner, kanske ett E skulle spelas. På så sätt användaren kan också kontakta flera fingrar mot tummen, användaren kan t ex kontakta index och middle finger mot sin tumme och flaggan skulle då vara 1100 som efter mönstret, kunde för C#. Observera eftersom endast 12 noder krävs för att slutföra en fullständig kromatisk skala, inte alla flaggor kombinationer används.