Cuprins:
- Provizii
- Pasul 1: Concept
- Pasul 2: Pregătiți accelerometrul
- Pasul 3: Construiește mănușa
- Pasul 4: Compuneți în Ableton
- Pasul 5: începeți să utilizați Firmata
- Pasul 6: Testați Firmata
- Pasul 7: Influențați muzica cu mișcările mâinilor
- Pasul 8: Clasa Track (bonus!)
- Pasul 9: Lungimea pistei, Beats și multe altele (bonus!)
Video: Mănușă de dans: 9 pași
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:43
În acest tutorial, vă voi ghida prin proiectarea unei mănuși care vă permite să interacționați cu muzica prin dans. Veți construi o mănușă activată pentru accelerometru, veți proiecta o compoziție în Ableton și apoi le veți conecta pe cele două într-un mod atât de complex sau simplu cum doriți!
Provizii
- Ableton (sau încercare gratuită)
- Un Arduino
- Cabluri jumper
- Ciocan de lipit
- Carton
- Pistol de lipit fierbinte
- Multă imaginație
Pasul 1: Concept
Acest proiect este conceput pentru a fi distractiv. Dacă modul în care funcționează proiectul de exemplu din acest tutorial nu este distractiv pentru dvs., reproiectați-l!
Vă recomand să puneți câteva dintre melodiile dvs. preferate, să vă mișcați mâinile spre ele și să vedeți ce se întâmplă. Vă mișcați mâinile în sus și în jos? Side-to-side? Încet sau repede? Ce aspecte ale muzicii te fac să îți dorești să-ți miști mâinile? Dacă aveți o listă cu acestea scrise, probabil veți putea afla câteva modalități de a încorpora mișcările de care vă bucurați în eventualii algoritmi.
Iată mișcările pe care le-am folosit:
- O mișcare rapidă în sus și în jos declanșează începutul melodiei, tobei sau basului. (Acestea se întâmplă în diferite puncte ale cântecului, nu neapărat simultan!)
- O mișcare lentă, înclinată, dintr-o parte în alta, declanșează un sunet mai ecou și puternic.
- La o anumită secțiune a melodiei, înclinarea mâinii în sus face ca muzica să se liniștească - așa că am „prins-o” în pumnul închis.
Folosește-le sau fă-ți propriile!
(Vă rugăm să rețineți: acest tutorial nu acoperă cum să generați muzică sau melodii live în Ableton! Dacă respectați aceste instrucțiuni, veți putea crește / micșora doar volumul pieselor sau aplicarea efectelor audio.)
Pasul 2: Pregătiți accelerometrul
Mai întâi, află ce tip de accelerometru ai. L-am folosit pe acesta; orice accelerometru cu trei axe va face. (Sau încercați un alt tip de senzor dacă doriți să vă descurcați.) Asigurați-vă că știți cum să citiți datele accelerometrului de pe Arduino. Poate fi necesar să descărcați o bibliotecă pentru accelerometru dacă folosește ceva mai complex decât intrarea analogică.
După ce l-ați testat cu o placă de măsurare, lipiți firele scurte codate în culori în pinii accelerometrului. Puneți un fir roșu în pinul de alimentare, un fir negru în pinul de masă și orice alte fire necesare pentru comunicarea accelerometrului. (Dacă aveți un accelerometru I2C, acesta va fi pinii SCL și SDA. Dacă aveți un accelerometru analogic, va exista probabil un pin pentru fiecare dintre ieșirile x, y și z.) Asigurați-vă că lipirea este solidă și că mărgelele nu se suprapun între pinii adiacenți.
Pasul 3: Construiește mănușa
Tăiați o bucată de carton subțire sau hârtie groasă într-un dreptunghi puțin mai mare decât accelerometrul. Lipiți accelerometrul pe carton, asigurându-vă că puneți lipici pe fund. Apoi, lipiți accelerometrul cu suport de carton pe spatele mănușii. Coaseți fiecare fir liber la încheietura mănușii pentru a ușura tensiunea pe accelerometru și apoi mănușa dvs. este gata. Conectați-l la fire mai lungi pentru a avea suficient spațiu pentru a vă mișca mâna când este conectată.
Pasul 4: Compuneți în Ableton
Acum este timpul să compuneți melodia, în cele din urmă veți folosi mănușa pentru a controla. Recomand bucle Ableton care sună bine împreună, dar care pot fi folosite pentru a construi treptat: încercați melodie, acorduri, bas și percuție. Veți putea folosi mănușa pentru a controla când fiecare buclă se joacă sau nu.
Dacă vă puteți gândi la orice fel de sunete interesante pe care să le încorporați ocazional într-o melodie, cum ar fi un efect de sunet ciudat sau un instrument neconvențional, încercați să adăugați și unul sau două dintre acestea! Puteți să le legați de mișcări mai puțin frecvente ale mâinii pentru a aduce ceva din când în când ceva interesant.
Iată un link către compoziția mea compatibilă Arduino, în cazul în care nu doriți să scrieți una dintre cele proprii:
(Din păcate, învățarea Ableton nu este în sfera tutorialului. Cu toate acestea, există o mulțime de videoclipuri de instrucțiuni bune, iar Ableton are o perioadă de încercare gratuită de 90 de zile! Vă recomand acest videoclip.)
Pasul 5: începeți să utilizați Firmata
Pentru a vă permite Arduino să comunice cu Ableton, va trebui să utilizați o bibliotecă numită Firmata. De asemenea, va trebui să descărcați kitul de conexiune pentru Ableton.
În Ableton, faceți clic pe Pachete> Kit de conexiune> Dispozitive din meniul din stânga sus, apoi faceți dublu clic pe primul dispozitiv (Arduino) pentru al adăuga. Asigurați-vă că vă amintiți la ce pistă Ableton ați adăugat dispozitivul!
Pasul 6: Testați Firmata
Mai întâi, vom testa și ne vom asigura că Arduino comunică cu Ableton. Încărcați acest fragment de cod pe Arduino și rulați-l:
#include void analogWriteCallback (pin octeț, valoare int) {if (IS_PIN_PWM (pin)) {pinMode (PIN_TO_DIGITAL (pin), OUTPUT); analogWrite (PIN_TO_PWM (pin), valoare); }} void setup () {Firmata.setFirmwareVersion (FIRMATA_FIRMWARE_MAJOR_VERSION, FIRMATA_FIRMWARE_MINOR_VERSION); Firmata.attach (ANALOG_MESSAGE, analogWriteCallback); Firmata.begin (57600);} void loop () {Firmata.sendAnalog (0, 800);}
Acesta este minimul necesar pentru a comunica cu Firmata. Trimite continuu o ieșire de 800 (din 1024) la portul 0 al dispozitivului Firmata din Ableton. Dacă încărcați acest cod pe Arduino în timp ce aveți un dispozitiv Firmata deschis în Ableton, ar trebui să arate ca imaginea de mai sus. (Hartați portul 0 la orice din Ableton pentru a putea vedea valorile.)
Puteți face clic pe butonul Hartă și apoi pe orice dispozitiv compatibil Firmata din Ableton pentru a adăuga o mapare între intrarea primită în acel port și valoarea acelui dispozitiv Ableton. Exemplele ușoare includ volumul oricărei piese sau a oricărui cadran dintr-un efect audio. Explorați și vedeți ce puteți găsi pe hartă!
Pasul 7: Influențați muzica cu mișcările mâinilor
În acest moment, ar trebui să aveți muzică în Ableton, un script Firmata pe Arduino și o mănușă accelerometru atașată. Hai să facem niște muzică!
Hartați porturile dispozitivului Arduino din Ableton la diferite lucruri (vă sugerez volumul urmăririi), apoi adăugați linii de cod pentru a trimite date către fiecare port de pe Arduino.
Firmata.sendAnalog (port, volumeLevel);
Folosiți codul de acest fel pentru fiecare port Firmata.
Dacă doriți să faceți ceva simplu, puteți trimite valorile accelerometrului neprocesate în porturile Ableton și le puteți mapa de acolo. Pentru o experiență mai sofisticată, puteți decide: ce valori ale accelerometrului ar trebui să declanșeze sunete, cum și când?
Apoi jucați toate buclele Ableton, rulați codul Arduino și dansați!
(Declinare de responsabilitate: dacă intenționați să creați orice fel de algoritm complex pentru melodia dvs., poate dura mult timp pentru a regla fin. „Dance away” poate fi mai puțin precis decât se anticipa.)
Pasul 8: Clasa Track (bonus!)
Dacă nu vă deranjează apariția volumului sau aveți un alt mod de a-l atenua, săriți peste acest pas. În caz contrar, citiți mai departe!
Am observat că trecerea volumului de la dezactivat la deplin într-o singură mișcare creează niște sunete neplăcute și este plăcut să poți estompa în volum mai treptat. Cu toate acestea, este greu să faci acest lucru în mediul de programare sincron al Arduino. Deci, iată câteva coduri pentru a face popping-ul să dispară:
clasa Track {public: int volum; int volumeGoal; int updateSpeed; Track () {volum = 0; volumeGoal = 0; updateSpeed = 0; } void setVolumeGoal (int goal) {volumeGoal = goal; } int getVolumeGoal () {return volumeGoal; } void setUpdateSpeed (int rapiditate) {updateSpeed = rapiditate; } int getVolume () {returnează volumul; } void updateVolume () {if ((volume> volumeGoal) && ((volume - volumeGoal)> = updateSpeed)) {volume - = updateSpeed; } else if ((volume = updateSpeed)) {volume + = updateSpeed; }} void mute (int fastness) {volumeGoal = 50; updateSpeed = rapiditate; } void full (int fastness) {volumeGoal = 950; updateSpeed = rapiditate; }};
Fiecare pistă are un volum curent, un volum de obiectiv și o viteză cu care se deplasează către volumul de obiectiv respectiv. Când doriți să modificați volumul unei piese, apelați setVolumeGoal (). De fiecare dată când rulați funcția loop () în Arduino, apelați updateVolume () pe fiecare pistă, apoi trimiteți aceste informații către Firmata cu getVolume (). Schimbați viteza de actualizare pentru decolorări mai rapide sau mai treptate! De asemenea, evitați setarea volumului la 0, dacă puteți; în schimb, setați-l la o valoare foarte mică (valoarea implicită în mut () este 100).
Pasul 9: Lungimea pistei, Beats și multe altele (bonus!)
Puteți face o mulțime de lucruri pentru ca sunetul rezultat din proiectul dvs. să fie mai ușor de ascultat. Iată câteva opțiuni:
Puteți urmări cât timp rulează melodia. Pentru a face acest lucru, va trebui să vă dați seama când a început melodia; Recomand o buclă de timp în funcția setup () care întârzie codul să ruleze până când a simțit o mișcare a mâinii. Stocați ora de începere a melodiei într-o variabilă folosind millis () și verificați cât timp a durat de fiecare dată când faceți loop (). Puteți utiliza acest lucru pentru a activa sau dezactiva anumite caracteristici în anumite momente ale melodiei.
Dacă știți cât timp buclele dvs. sunt în milisecunde, puteți urmări și câte bucle ați trecut pentru o înțelegere mai nuanțată a structurii melodiei!
O altă problemă potențială pe care o puteți întâlni este când porniți și opriți redarea unei piese. Am rezolvat acest lucru ținând evidența în care ritm al unei măsuri se afla în prezent melodia. Apoi am putut reda piese pentru orice număr de ritmuri după un gest, în loc să le întrerup imediat. Acest lucru face ca lucrurile să curgă mult mai ușor. Iată un exemplu:
if (millis () - lastLoop> = 4000) {bucle + = 1; lastLoop = millis (); for (int j = 0; j <8; j ++) {beatNow [j] = false; }} beat = (millis () - lastLoop) / 250; if (beat! = lastBeat) {lastBeat = beat; beatsLeft - = 1; }
Asigurați-vă că actualizați volumele în mod corespunzător la valorile beatNow [beat] și / sau beatsLeft. Exemplu de cod care include aproape totul în acest tutorial, plus unele, este atașat în cazul în care doriți să-l vedeți în practică.
Recomandat:
Mănușa Taser: 7 pași
Mănușa Taser: Te-ai săturat de mănuși electrice cu aspect prost, cu o tensiune slabă de unică folosință a camerei? Urăsc oamenii de pe YouTube doar arătându-ți doar exteriorul mănușii lor taser și nici măcar nu spui cum au reușit? Ai un gust rafinat și vrei ca mănușa ta să fie amândoi
Mănușă Soft Robotics: 8 pași (cu imagini)
Mănușa Soft Robotics: Proiectul meu este o mănușă softrobotică. Are un actuator poziționat pe fiecare deget; partea inferioară a mănușii este îndepărtată pentru a facilita utilizatorului să o poarte. Actuatoarele sunt activate de un dispozitiv poziționat pe încheietura mâinii puțin mai mare decât un ceas
Cum să faci o mănușă de aer fără fir cu pian: 9 pași
Cum se realizează o mănușă de pian wireless cu aer: Scopuri și funcții: Proiectul nostru de tehnologie purtabilă este de a crea o mănușă de pian fără fir cu lumini sincronizate utilizând electronice de bază, un microcontroler precum un HexWear și un laptop cu software Arduino și Max 8 . Utilizările proiectului nostru
Somatic - Mănușa de date pentru lumea reală: 6 pași (cu imagini)
Somatic - Mănușa de date pentru lumea reală: magneți cu cilindri de neodim cu diametrul de 4 mm Magneți cu cilindri din neodim cu diametrul de 4 mm Somatic este o tastatură și un mouse portabil, confortabil, neobstructiv și gata de purtare pe tot parcursul zilei. Este încărcat cu tot hardware-ul pentru a traduce semne manuale și m
Mănușa vrăjitorului: o mănușă controlată Arduino: 4 pași (cu imagini)
Wizard Glove: o mănușă controlată Arduino: The Wizard Glove. În proiectul meu am realizat o mănușă pe care o puteți folosi pentru a juca jocurile preferate legate de magie într-un mod răcoros și captivant folosind doar câteva active de bază arduino și arduino. poți juca jocuri cu lucruri precum sulurile mai în vârstă sau tu