Turinys:
- Prekės
- 1 žingsnis: koncepcija
- 2 žingsnis: Paruoškite akselerometrą
- 3 žingsnis: Sukurkite pirštinę
- 4 žingsnis: Kurkite „Ableton“
- 5 veiksmas: pradėkite naudoti „Firmata“
- 6 veiksmas: patikrinkite „Firmata“
- 7 žingsnis: paveikite muziką rankos judesiais
- 8 žingsnis: „Track Class“(premija!)
- 9 žingsnis: takelio ilgis, ritmai ir dar daugiau (premija!)
Video: Šokių pirštinė: 9 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:45
Šioje pamokoje aš padėsiu jums sukurti pirštinę, kuri leistų šokiui bendrauti su muzika. Sukursite pirštines su akcelerometru, suprojektuosite kompoziciją „Ableton“ir sujungsite jas taip sudėtingai ar paprastai, kaip norite!
Prekės
- „Ableton“(arba nemokama bandomoji versija)
- Arduino
- Trumpieji kabeliai
- Lituoklis
- Kartonas
- Karštas klijų pistoletas
- Daug vaizduotės
1 žingsnis: koncepcija
Šis projektas sukurtas taip, kad būtų įdomus. Jei šioje pamokoje pateiktas pavyzdinis projektas jums nėra įdomus, suprojektuokite jį iš naujo!
Aš rekomenduoju įdėti keletą mėgstamų dainų, pajudinti rankas prie jų ir pamatyti, kas atsitiks. Ar judate rankas aukštyn ir žemyn? Šonas į šoną? Lėtai ar greitai? Kokie muzikos aspektai verčia pajudinti rankas? Jei turite šių dalykų sąrašą, tikriausiai galėsite išsiaiškinti, kaip patinkančius judesius įtraukti į galimus algoritmus.
Štai mano naudojami judesiai:
- Greitas judesys aukštyn ir žemyn sukelia dainos, būgnų ar boso pradžią. (Tai atsitinka skirtinguose dainos taškuose, nebūtinai vienu metu!)
- Lėtas, pasviręs judesys iš vienos pusės į kitą sukelia aidingesnį, aukštesnį garsą.
- Vienoje konkrečioje dainos dalyje, pakėlus ranką į viršų, muzika nutyla - taigi aš ją „pagavau“užgniaužęs kumštį.
Naudokite juos arba sukurkite patys!
(Atkreipkite dėmesį: ši pamoka neapima, kaip kurti muziką ar melodijas tiesiogiai „Ableton“! Jei laikysitės šių nurodymų, galėsite tik padidinti/sumažinti takelių garsą arba taikyti garso efektus.)
2 žingsnis: Paruoškite akselerometrą
Pirmiausia išsiaiškinkite, kokio tipo akselerometrą turite. Aš naudoju šį; tiks bet kuris trijų ašių akselerometras. (Arba išbandykite kito tipo jutiklius, jei norite išprotėti.) Įsitikinkite, kad žinote, kaip skaityti „Arduino“akselerometro duomenis. Gali reikėti atsisiųsti akselerometro biblioteką, jei ji naudoja ką nors sudėtingesnio nei analoginis įėjimas.
Išbandę jį su duonos lenta, lituokite trumpus spalvomis pažymėtus laidus į akselerometro kaiščius. Įdėkite raudoną laidą į maitinimo kaištį, juodą laidą į įžeminimo kaištį ir visus kitus laidus, reikalingus akselerometro ryšiui. (Jei turite akselerometrą I2C, tai bus SCL ir SDA kaiščiai. Jei turite analoginį pagreičio matuoklį, greičiausiai kiekvienam iš x, y ir z išėjimų bus po vieną kaištį.) Įsitikinkite, kad lydmetalis yra tvirtas ir kad karoliukai nesutaptų tarp gretimų kaiščių.
3 žingsnis: Sukurkite pirštinę
Iškirpkite plono kartono ar storo popieriaus gabalėlį į stačiakampį, šiek tiek didesnį nei jūsų akselerometras. Priklijuokite akselerometrą prie kartono ir įsitikinkite, kad ant dugno dedate klijus. Tada priklijuokite kartoninį akselerometrą prie pirštinės galo. Laisvai siūkite kiekvieną vielą prie pirštinės riešo, kad sumažintumėte akselerometro įtampą, ir tada jūsų pirštinė yra paruošta. Prijunkite jį prie ilgesnių laidų, kad būtų pakankamai vietos rankai pajudinti, kai ji prijungta.
4 žingsnis: Kurkite „Ableton“
Dabar atėjo laikas sukurti dainą, kurios valdymui galiausiai naudosite pirštinę. Aš rekomenduoju „Ableton“kilpas, kad visi kartu skambėtų gerai, bet gali būti naudojami palaipsniui kurti: išbandykite melodiją, akordus, bosą ir perkusiją. Galite naudoti pirštines, kad valdytumėte, ar kiekviena kilpa groja, ar ne.
Jei sugalvojate kokių nors įdomių garsų, kuriuos retkarčiais galite įtraukti į dainą, pavyzdžiui, keistą garso efektą ar netradicinį instrumentą, pabandykite pridėti ir vieną ar du iš jų! Galite susieti juos su rečiau atliekamais rankų judesiais, kad kartkartėmis įneštumėte ką nors įdomaus.
Čia yra nuoroda į mano su „Arduino“suderinamą kompoziciją, jei nenorite rašyti savo:
(Deja, pamokymo sritis neapima Abletono. Tačiau yra daug gerų vaizdo įrašų, kaip naudotis, ir Ableton turi 90 dienų nemokamą bandomąją versiją! Rekomenduoju šį vaizdo įrašą.)
5 veiksmas: pradėkite naudoti „Firmata“
Kad „Arduino“galėtų bendrauti su „Ableton“, turėsite naudoti biblioteką „Firmata“. Taip pat turėsite atsisiųsti „Ableton“ryšio rinkinį.
„Ableton“viršuje kairėje esančiame meniu spustelėkite Paketai> Ryšio rinkinys> Įrenginiai, tada dukart spustelėkite pirmąjį įrenginį („Arduino“), kad jį pridėtumėte. Nepamirškite prisiminti, prie kurio „Ableton“takelio pridėjote įrenginį!
6 veiksmas: patikrinkite „Firmata“
Pirmiausia išbandysime ir įsitikinsime, kad jūsų „Arduino“bendrauja su Abletonu. Įkelkite šį kodo fragmentą į „Arduino“ir paleiskite:
#include void analogWriteCallback (baitų smeigtukas, int vertė) {if (IS_PIN_PWM (smeigtukas)) {pinMode (PIN_TO_DIGITAL (PIN), OUTPUT); analogWrite (PIN_TO_PWM (kaištis), vertė); }} 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);}
Tai yra minimalus minimumas, reikalingas bendravimui su „Firmata“. Jis nuolat siunčia 800 (iš 1024) išvestį į „Firmata“įrenginio 0 prievadą Abletone. Jei įkelsite šį kodą į „Arduino“, kai „Ableton“atidarytas „Firmata“įrenginys, jis turėtų atrodyti kaip aukščiau pateiktas vaizdas. (Susiekite prievadą 0 su bet kuo Abletone, kad galėtumėte matyti vertes.)
Galite spustelėti mygtuką „Žemėlapis“ir bet kurį „Ableton“su „Firmata“suderinamą įrenginį, kad pridėtumėte atvaizdą tarp įvesties, gautos į tą prievadą, ir to „Ableton“įrenginio vertės. Paprasti pavyzdžiai yra bet kokio takelio ar bet kurio garso efekto ratuko garsumas. Tyrinėkite ir pamatykite, ką galite rasti žemėlapyje!
7 žingsnis: paveikite muziką rankos judesiais
Iki to laiko turėtumėte turėti šiek tiek muzikos „Ableton“, „Arduino“„Firmata“scenarijų ir pritvirtintą akselerometro pirštinę. Padarykime muziką!
Susiekite „Arduino“įrenginio „Ableton“prievadus prie skirtingų dalykų (siūlau sekti garsumą) ir pridėkite kodo eilutes, kad duomenys būtų siunčiami į kiekvieną „Arduino“prievadą.
Firmata.sendAnalog (prievadas, tūrio lygis);
Kiekvienam „Firmata“prievadui naudokite tokį kodą.
Jei norite padaryti ką nors paprasto, galite siųsti neapdorotus akselerometro rodmenis į Abletono uostus ir iš ten juos susieti. Norėdami įgyti sudėtingesnės patirties, galite nuspręsti: kokios pagreičio matuoklio vertės turėtų sukelti garsus, kaip ir kada?
Tada paleiskite visas „Ableton“kilpas, paleiskite „Arduino“kodą ir šokite!
(Atsakomybės apribojimas: jei planuojate sukurti bet kokį sudėtingą savo dainos algoritmą, gali prireikti daug laiko, kol jis bus sureguliuotas. „Dance away“gali būti mažiau tikslus, nei tikėtasi.)
8 žingsnis: „Track Class“(premija!)
Jei neprieštaraujate garsumo padidėjimui ar turite kitą būdą, kaip jį sušvelninti, praleiskite šį veiksmą. Priešingu atveju skaitykite toliau!
Pastebėjau, kad vienu metu perjungus garsą iš nutildyto į pilną, atsiranda nemalonių šurmuliuojančių garsų, ir malonu, kad garsas gali išnykti palaipsniui. Tačiau tai sunku padaryti sinchroninėje „Arduino“programavimo aplinkoje. Taigi, čia yra keletas kodų, kaip išnykti:
klasė Track {public: int volume; int volumeGoal; int updateSpeed; Takelis () {tūris = 0; volumeGoal = 0; updateSpeed = 0; } void setVolumeGoal (int tikslas) {volumeGoal = tikslas; } int getVolumeGoal () {return volumeGoal; } void setUpdateSpeed (int greitis) {updateSpeed = greitis; } int getVolume () {return volume; } void updateVolume () {if ((volume> volumeGoal) && ((volume - volumeGoal)> = updateSpeed)) {volume - = updateSpeed; } else if ((tūris = atnaujinimo greitis)) {tūris += atnaujinimo greitis; }} void mute (int fastness) {volumeGoal = 50; updateSpeed = greitis; } void full (int fastness) {volumeGoal = 950; updateSpeed = greitis; }};
Kiekvienas takelis turi dabartinį tūrį, tikslo tūrį ir greitį, kuriuo jis juda to tikslo apimties link. Jei norite pakeisti takelio garsumą, skambinkite setVolumeGoal (). Kiekvieną kartą, kai paleisite „Arduino“funkciją „loop ()“, skambinkite „updateVolume“() kiekvienu takeliu ir nusiųskite šią informaciją „Firmata“su „getVolume (“). Pakeiskite atnaujinimo greitį, kad greičiau arba palaipsniui išnyktumėte! Be to, jei galite, nenustatykite garsumo į 0; vietoj to nustatykite labai mažą vertę (numatytasis nutildytas () yra 100).
9 žingsnis: takelio ilgis, ritmai ir dar daugiau (premija!)
Galite padaryti daug dalykų, kad jūsų projekto skleidžiamas garsas būtų lengviau klausomas. Štai keletas variantų:
Galite sekti, kiek laiko daina skambėjo. Norėdami tai padaryti, turėsite išsiaiškinti, kada daina prasidėjo; Aš rekomenduoju sąrankos () funkcijos „ciklo“ciklą, kuris atideda jūsų kodo vykdymą, kol jis nepajunta rankos judesio. Išsaugokite dainos pradžios laiką kintamajame naudodami milis () ir patikrinkite, kiek laiko jis tęsiasi kiekvieną kartą, kai sukursite kilpą (). Tai galite naudoti norėdami įjungti arba išjungti tam tikras funkcijas tam tikru dainos metu.
Jei žinote, kiek laiko jūsų kilpos eina per milisekundes, taip pat galite sekti, kiek kartų perėjote, kad gautumėte niuansinį supratimą apie dainos struktūrą!
Kita problema, su kuria galite susidurti, yra tai, kada pradėti ir sustabdyti takelio grojimą. Aš išsprendžiau tai, stebėdamas, kokio ritmo daina šiuo metu buvo. Tada po gesto galėjau groti takelius bet kokiu greičiu, užuot iškart nutraukęs. Dėl to viskas vyksta daug sklandžiau. Štai pavyzdys:
if (millis () - lastLoop> = 4000) {kilpos += 1; lastLoop = milis (); už (int j = 0; j <8; j ++) {beatNow [j] = klaidinga; }} ritmas = (milis () - paskutinė kilpa) / 250; if (mušti! = lastBeat) {lastBeat = mušti; BeatsLeft -= 1; }
Būtinai atnaujinkite tomus pagal beatNow [beat] ir (arba) beatsLeft reikšmes. Pavyzdinis kodas, apimantis beveik viską šioje pamokoje, taip pat kai kurie, yra pridedamas, jei norite jį pamatyti praktiškai.
Rekomenduojamas:
Karstų šokių muzika naudojant „Arduino“: 6 žingsniai
Karstų šokių muzika naudojant „Arduino“: Šioje pamokoje aš esu tai, kaip galite naudoti „Arduino“muzikai kurti naudodami tik garsiakalbį (nereikia MP3 modulio). Pirmiausia žiūrėkite šią vaizdo pamoką
Šokių pertrauka klasėje: 8 žingsniai
Šokių pertrauka klasėje: ar jūsų klasei reikia smegenų pertraukos, o „GoNoodle“ištraukimas užima daug laiko? Ar norite pasveikinti savo mokinius prie durų, bet dėl COVID-19 rankos paspaudimo, apkabinimo ir penkių nepavyksta? Tada čia yra jūsų sprendimas! Mokiniai renkasi
Šokių vakarėlio robotas Eduarduino!: 5 žingsniai
Eduarduino šokių vakarėlio robotas!: Stengiatės išgarsėti „Tik-Tok“? Mes turime jums sprendimą! Eduarduino yra jūsų asmeninis „Tik-Tok“tarpinis serveris! Jis yra šokantis robotas, galintis atlikti visus šokio judesius, kurių jūs negalite! Eduarduino aukštos kokybės judesių sistemą įkvėpė
„Pasidaryk pats“šokių šokių revoliucija naudojant „Makey Makey“: 6 žingsniai
„Pasidaryk pats“šokių šokių revoliucija naudojant „Makey Makey“: Ei, sveiki! Tai mano DIY Dance Dance Revolution lenta. Tai vienas iš mano mėgstamiausių projektų, prie kurių dirbau, ir tai tikrai unikalus projektas. Šis projektas buvo skirtas padėti išmokyti vaikus, kaip veikia grandinės, aš panaudojau šį projektą STEM naktims ir paskatinau
Vedlio pirštinė: „Arduino“valdoma valdiklio pirštinė: 4 žingsniai (su nuotraukomis)
„Wizard Glove“: „Arduino“valdomos valdiklio pirštinės: „Wizard Glove“. Savo projekte aš sukūriau pirštinę, kurią galite naudoti norėdami žaisti savo mėgstamus su magija susijusius žaidimus šauniai ir įtraukiančiai, naudodami tik keletą pagrindinių arduino ir arduino išteklių. galite žaisti tokius žaidimus kaip vyresnio amžiaus slinktys arba