Talaan ng mga Nilalaman:

Dance Glove: 9 Mga Hakbang
Dance Glove: 9 Mga Hakbang

Video: Dance Glove: 9 Mga Hakbang

Video: Dance Glove: 9 Mga Hakbang
Video: Grade 10 AP Q1 Ep 13 Mga Hakbang sa Pagbuo ng Community Based DRRMP (part 1) 2024, Hulyo
Anonim
Dance Glove
Dance Glove

Sa tutorial na ito, lalakasan kita sa pagdidisenyo ng guwantes na hahayaan kang makipag-ugnay sa musika sa pamamagitan ng sayaw. Bumubuo ka ng isang gwantes na pinapagana ng accelerometer, magdisenyo ng isang komposisyon sa Ableton, at pagkatapos ay ikonekta ang dalawa sa kumplikado o simpleng isang paraan na nais mo!

Mga gamit

  • Ableton (o libreng pagsubok)
  • Isang Arduino
  • Mga kable ng jumper
  • Panghinang
  • Karton
  • Mainit na glue GUN
  • Maraming imahinasyon

Hakbang 1: Konsepto

Ang proyektong ito ay idinisenyo upang maging masaya. Kung ang paraan ng halimbawa ng proyekto sa tutorial na ito ay hindi masaya para sa iyo, muling idisenyo ito!

Inirerekumenda kong ilagay ang ilan sa iyong mga paboritong kanta, ililipat ang iyong mga kamay sa kanila, at makita kung anong nangyayari. Igagalaw mo ba ang iyong mga kamay pataas-at-pababa? Magkatabi? Mabagal o mabilis? Anong mga aspeto ng musika ang nais mong ilipat ang iyong mga kamay? Kung mayroon kang isang listahan ng mga nakasulat na ito, marahil maaari mong malaman ang ilang mga paraan upang isama ang mga galaw na nasisiyahan ka sa iyong mga huling algorithm.

Narito ang mga galaw na ginamit ko:

  • Ang isang mabilis na paggalaw na pataas at pababa ay nagpapalitaw ng pagsisimula ng kanta, tambol, o bass. (Nangyayari ang mga ito sa iba't ibang mga punto ng kanta, hindi kinakailangan nang sabay-sabay!)
  • Ang isang mabagal, tilty side-to-side na paggalaw ay nagpapalitaw ng isang mas echoey, mataas na tunog na tunog.
  • Sa isang partikular na seksyon ng kanta, ang pagdantay sa aking kamay paitaas ay ginagawang tahimik ang musika - kaya't "nahuli" ko ito sa saradong kamao.

Gumamit ng mga ito o gumawa ng sarili!

(Mangyaring tandaan: ang tutorial na ito ay hindi sumasaklaw kung paano makalikha ng musika o mga melodies na nakatira sa Ableton! Kung mananatili ka sa mga tagubiling ito, magagawa mong dagdagan / bawasan ang dami ng mga track o ang application ng mga audio effects.)

Hakbang 2: Ihanda ang Accelerometer

Ihanda ang Accelerometer
Ihanda ang Accelerometer

Una, alamin kung anong uri ng accelerometer ang mayroon ka. Ginamit ko ang isang ito; Magagawa ang anumang three-axis accelerometer. (O subukan ang isa pang uri ng sensor kung nais mong mag-wild.) Tiyaking alam mo kung paano basahin ang data ng accelerometer mula sa Arduino. Maaaring kailanganin mong mag-download ng isang silid-aklatan para sa iyong accelerometer kung gumagamit ito ng anumang mas kumplikado kaysa sa input ng analog.

Matapos masubukan ito sa isang breadboard, maghinang ng maikling mga naka-code na kulay na mga wire sa mga pin ng iyong accelerometer. Maglagay ng isang pulang kawad sa power pin, isang itim na kawad sa ground pin, at anumang iba pang kinakailangang mga wire para sa komunikasyon ng accelerometer. (Kung mayroon kang isang accelerator ng I2C, ito ang magiging mga pin ng SCL at SDA. Kung mayroon kang isang analog accelerometer, malamang na may isang pin para sa bawat x, y, at z output.) Siguraduhin na ang iyong solder ay solid at na ang mga kuwintas ay hindi nagsasapawan sa pagitan ng mga katabing mga pin.

Hakbang 3: Buuin ang Glove

Buuin ang Glove
Buuin ang Glove

Gupitin ang isang piraso ng manipis na karton o makapal na papel sa isang rektanggulo na bahagyang mas malaki kaysa sa iyong accelerometer. Idikit ang accelerometer sa karton, tiyakin na inilalagay mo ang pandikit sa ilalim. Pagkatapos, kola ang naka-back up na karton na accelerometer sa likuran ng iyong guwantes. Tahiin ang bawat kawad sa pulso ng guwantes upang mapawi ang pag-igting sa accelerometer, at pagkatapos ay handa na ang iyong guwantes. Ikonekta ito sa mas matagal na mga wire upang magkaroon ng sapat na puwang upang ilipat ang iyong kamay kapag naka-plug in ito.

Hakbang 4: Bumuo sa Ableton

Ngayon ay oras na upang bumuo ng kanta sa wakas ay gagamitin mo ang gwantes upang makontrol. Inirerekumenda ko ang mga loop ng Ableton na lahat ay mahusay na magkakasama, ngunit maaaring magamit upang bumuo ng unti: subukan ang himig, kuwerdas, bass, at pagtambulin. Magagamit mo ang iyong gwantes upang makontrol kapag nagpatugtog ang bawat loop o hindi.

Kung maaari mong maiisip ang anumang mga kagiliw-giliw na uri ng tunog upang paminsan-minsang isasama sa isang kanta, tulad ng isang kakatwang epekto ng tunog o hindi kinaugalian na instrumento, subukang idagdag sa isa o dalawa din sa mga iyon! Maaari mong itali ang mga ito sa hindi gaanong kilos ng mga galaw ng kamay upang magdala ng isang bagay na kawili-wili sa bawat paminsan-minsan.

Narito ang isang link sa aking komposisyon na tumutugma sa Arduino, kung sakaling ayaw mong sumulat ng isa sa iyong sarili:

(Sa kasamaang palad, ang pagtuturo sa iyo ng Ableton ay wala sa saklaw ng tutorial. Gayunpaman, maraming magagandang how-to na mga video doon, at ang Ableton ay mayroong 90 araw na libreng pagsubok! Inirerekumenda ko ang video na ito.)

Hakbang 5: Simulang Paggamit ng Firmata

Simulang Paggamit ng Firmata
Simulang Paggamit ng Firmata

Upang paganahin ang iyong Arduino na makipag-usap kay Ableton, kakailanganin mong gumamit ng isang silid-aklatan na tinatawag na Firmata. Kakailanganin mo ring i-download ang Connection Kit para sa Ableton.

Sa Ableton, i-click ang Mga Pack> Connection Kit> Mga Device sa menu sa kaliwang tuktok, at pagkatapos ay i-double click sa unang aparato (Arduino) upang idagdag ito. Tiyaking naaalala mo kung aling Ableton track ang naidagdag mo sa iyong aparato!

Hakbang 6: Subukan ang Firmata

Subukan ang Firmata
Subukan ang Firmata

Una, susubukan namin at tiyakin na ang iyong Arduino ay nakikipag-usap kay Ableton. I-upload ang code na ito sa iyong Arduino at patakbuhin ito:

# isama ang walang bisa analogWriteCallback (byte pin, int halaga) {kung (IS_PIN_PWM (pin)) {pinMode (PIN_TO_DIGITAL (pin), OUTPUT); analogWrite (PIN_TO_PWM (pin), halaga); }} 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);}

Ito ang hubad na minimum na kinakailangan upang makipag-usap sa Firmata. Patuloy itong nagpapadala ng isang output ng 800 (out of 1024) sa port 0 ng Firmata device sa Ableton. Kung na-upload mo ang code na ito sa iyong Arduino habang mayroon kang isang bukas na aparato ng Firmata sa Ableton, dapat magmukhang ang imahe sa itaas. (Mapa port 0 sa anumang bagay sa Ableton upang makita ang mga halaga.)

Maaari mong i-click ang pindutan ng Mapa at pagkatapos ay ang anumang aparatong katugma sa Firmata sa Ableton upang magdagdag ng isang pagmamapa sa pagitan ng input na natanggap sa port na iyon at ang halaga ng aparatong Ableton na iyon. Madaling mga halimbawa isama ang dami ng anumang track o anumang dial sa loob ng isang audio effect. Galugarin at tingnan kung ano ang maaari mong makita upang mapa!

Hakbang 7: Maimpluwensyahan ang Musika Sa Iyong Mga Pagkilos ng Kamay

Maimpluwensyahan ang Musika Sa Iyong Mga Pagkilos ng Kamay!
Maimpluwensyahan ang Musika Sa Iyong Mga Pagkilos ng Kamay!

Sa oras na ito, dapat ay mayroon kang ilang musika sa Ableton, isang Firmata script sa iyong Arduino, at isang nakakabit na guwantes ng accelerometer. Gumawa tayo ng musika!

Mga mapa ng mapa ng Arduino aparato sa Ableton sa iba't ibang mga bagay (iminumungkahi ko ang dami ng track), at pagkatapos ay magdagdag ng mga linya ng code upang magpadala ng data sa bawat port mula sa Arduino.

Firmata.sendAnalog (port, volumeLevel);

Gumamit ng code na tulad nito para sa bawat port ng Firmata.

Kung nais mong gumawa ng isang bagay na simple, maaari mong ipadala ang mga halaga ng accelerometer na hindi naproseso sa mga port ng Ableton at i-map ang mga ito mula doon. Para sa isang mas sopistikadong karanasan, maaari kang magpasya: anong mga halaga ng accelerometer ang dapat magpalitaw ng mga tunog, paano, at kailan?

Pagkatapos i-play ang lahat ng iyong mga loop ng Ableton, patakbuhin ang iyong Arduino code, at sumayaw!

(Pagwawaksi: kung nagpaplano kang lumikha ng anumang uri ng kumplikadong algorithm para sa iyong kanta, maaaring tumagal ng maraming oras upang maiayos. Ang "Sayaw palayo" ay maaaring mas tumpak kaysa sa inaasahang.)

Hakbang 8: Ang Klase ng Subaybayan (bonus!)

Kung hindi mo alintana ang paglabas ng dami o magkaroon ng ibang paraan upang mapagaan ito, laktawan ang hakbang na ito. Kung hindi man, basahin pa!

Napansin ko na ang paglipat ng lakas ng tunog mula sa naka-mute hanggang sa ganap na sabay-sabay ay lumilikha ng ilang mga hindi kasiya-siyang tunog na popping, at masarap na mas mabilis na lumabo sa dami. Gayunpaman, mahirap gawin ito sa kasabay na kapaligiran ng programa ng Arduino. Kaya narito ang ilang code upang mawala ang pag-popping:

klase Subaybayan {publiko: int dami; int volumeGoal; int updateSpeed; Subaybayan () {volume = 0; dami ng Layunin = 0; updateSpeed = 0; } void setVolumeGoal (int layunin) {volumeGoal = layunin; } int getVolumeGoal () {return volumeGoal; } void setUpdateSpeed (int fastness) {updateSpeed = fastness; } int getVolume () {volume ng pagbabalik; } void updateVolume () {if ((volume> volumeGoal) && ((volume - volumeGoal)> = updateSpeed)) {volume - = updateSpeed; } iba pa kung ((dami = updateSpeed)) {volume + = updateSpeed; }} void mute (int fastness) {volumeGoal = 50; updateSpeed = bilis; } walang bisa ang buong (int kabilis) {volumeGoal = 950; updateSpeed = bilis; }};

Ang bawat Track ay may kasalukuyang dami, isang dami ng layunin, at isang bilis kung saan ito gumagalaw patungo sa dami ng layunin. Kung nais mong baguhin ang dami ng isang track, tawagan ang setVolumeGoal (). Sa tuwing pinapatakbo mo ang loop () na pag-andar sa iyong Arduino, tawagan ang updateVolume () sa bawat track, at pagkatapos ay ipadala ang impormasyong iyon sa Firmata gamit ang getVolume (). Baguhin ang bilis ng pag-update para sa mas mabilis o mas unti-unting mga fadeout! Gayundin, iwasang itakda ang dami sa 0 kung maaari; sa halip, itakda ito sa isang napakababang halaga (ang default sa pipi () ay 100).

Hakbang 9: Subaybayan ang Haba, Beats, at Higit Pa (bonus!)

Maaari kang gumawa ng maraming bagay upang mas madaling pakinggan ang tunog na nagreresulta mula sa iyong proyekto. Narito ang ilang mga pagpipilian:

Maaari mong subaybayan kung gaano katagal tumatakbo ang kanta. Upang magawa ito, kakailanganin mong malaman kung kailan nagsimula ang kanta; Inirerekumenda ko ang isang habang loop sa pag-andar ng pag-setup () na kung saan ay naantala ang iyong code mula sa pagtakbo hanggang sa ma-sense ang isang galaw sa kamay. Itabi ang oras ng pagsisimula ng kanta sa isang variable gamit ang millis (), at suriin kung gaano katagal ito sa bawat oras na mag-loop ka (). Maaari mo itong magamit upang paganahin o huwag paganahin ang ilang mga tampok sa ilang mga oras ng kanta.

Kung alam mo kung gaano katagal ang iyong mga loop sa milliseconds, maaari mo ring subaybayan kung gaano karaming mga loop ang napagdaanan mo para sa isang mas nuanced na pag-unawa sa istraktura ng kanta!

Ang isa pang potensyal na isyu na maaari mong makatagpo ay kung kailan magsisimula at itigil ang isang track mula sa pag-play. Nalutas ko ito sa pamamagitan ng pagsubaybay sa kung aling beat ng isang sukat na kasalukuyang nasa kanta. Pagkatapos ay maaari kong i-play ang mga track para sa anumang bilang ng mga beats pagkatapos ng isang kilos, sa halip na putulin agad ito. Ginagawa nitong mas maayos ang pagdaloy ng mga bagay. Narito ang isang halimbawa:

kung (millis () - lastLoop> = 4000) {loop + = 1; lastLoop = millis (); para sa (int j = 0; j <8; j ++) {beatNow [j] = false; }} matalo = (millis () - lastLoop) / 250; kung (beat! = lastBeat) {lastBeat = beat; beatsLeft - = 1; }

Tiyaking nai-update mo ang mga volume nang naaayon sa mga halaga ng beatNow [beat] at / o beatsLeft. Ang halimbawang code na nagsasama ng halos lahat ng bagay sa tutorial na ito, kasama ang ilan, ay nakakabit kung nais mong makita ito sa pagsasanay.

Inirerekumendang: