Turinys:
- 1 žingsnis: medžiagos
- 2 veiksmas: programinės įrangos diegimas
- 3 žingsnis: akselerometro pritvirtinimas
- 4 žingsnis: pritvirtinkite lanksčius jutiklius
- 5 žingsnis: sąsaja su maks
- 6 veiksmas: sukurkite likusį maksimalų kodą
- 7 žingsnis: pažodžiui viską sudėkite
Video: Nešiojama technika: balsą keičianti pirštinė: 7 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:47
Na, atrodo, kad šių dienų mados pirštinės yra neįtikėtinos galios. Nors Thanos „Infinity Gauntlet“yra gana galinga pirštinė, mes norėjome padaryti pirštinę, galinčią padaryti kažką dar įspūdingesnio: pakeisti dėvėtojo balsą realiuoju laiku.
Šioje instrukcijoje pateikiama instrukcija, kaip mes sukūrėme balsą keičiančią pirštinę. Mūsų konstrukcijoje buvo naudojami įvairūs jutikliai ir pirštinėje esantis mikrovaldiklis, kad aptiktų judesius, kurie buvo siunčiami per „Arduino“kodą į „Max“pleistrą, kur mūsų garso signalas buvo linksmai pakeistas ir iškraipytas. Konkretūs jutikliai, judesiai ir garso pakeitimai, kuriuos mes naudojome, yra lankstūs įvairiais sumetimais; tai tik vienas būdas sukurti balsą keičiančią pirštinę!
Šis projektas buvo bendruomenės partnerystės tarp Pomonos kolegijos studentų ir Fremonto inžinerijos akademijos dalis. Tai tikras įdomus elektroninės inžinerijos ir elektroninės muzikos elementų derinys!
1 žingsnis: medžiagos
Dalys:
- „HexWear“mikrovaldiklis (ATmega32U4) (https://hexwear.com/)
- Akselerometras MMA8451 (https://www.adafruit.com/product/2019)
- Trumpi lankstumo jutikliai (x4) (https://www.adafruit.com/product/1070)
- Lengvos bėgimo pirštinės
- #2 varžtai ir poveržlės (x8)
- Gnybtų gnybtų jungtys; 22-18 matuoklis (x8) (https://www.elecdirect.com/crimp-wire-terminals/ring-crimp-terminals/pvc-ring-terminals/ring-terminal-pvc-red-22-18-6- 100pk)
- 50kΩ rezistorius (x4)
- Viela (~ 20 matuoklis)
- Lipnus apsauginis kaištis
- Veltinis arba kitas audinys (~ 10 kv. Colių)
- Siuvimo siulas
- Zipties
- Nešiojamas kompiuteris
- USB mikrofonas
Įrankiai
- Litavimo komplektas
- Vielos nuėmikliai ir vielos pjaustytuvai
- Izoliacinė juosta
- Karšto oro pistoletas
- Atsuktuvas
- Žirklės
- Siuvimo adata
Programinė įranga:
- „Max by Cycling '74“(https://cycling74.com)
- „Arduino“programinė įranga (https://www.arduino.cc/en/Main/Software)
2 veiksmas: programinės įrangos diegimas
Pradėkime nuo to, kas iš tikrųjų yra labiausiai jaudinanti bet kurio projekto dalis: bibliotekų diegimas (ir dar daugiau).
Arduino:
Atsisiųskite ir įdiekite „Arduino“programinę įrangą (https://www.arduino.cc/en/Main/Software).
„HexWear“:
1) (tik „Windows“, „Mac“vartotojai gali praleisti šį veiksmą) Įdiekite tvarkyklę apsilankę https://www.redgerbera.com/pages/hexwear-driver-installation. Atsisiųskite ir įdiekite tvarkyklę (.exe failas, nurodytas 2 veiksme, susieto „RedGerbera“puslapio viršuje).
2) Įdiekite reikiamą „Hexware“biblioteką. Atidarykite „Arduino IDE“. Skiltyje „Failas“pasirinkite „Nuostatos“. Į vietą, skirtą Papildomų lentų tvarkyklės URL, įklijuokite
github.com/RedGerbera/Gerbera-Boards/raw/master/package_RedGerbera_index.json.
Tada spustelėkite „Gerai“.
Eikite į Įrankiai -> Valdyba: -> Valdybos valdytojas. Viršutiniame kairiajame kampe esančiame meniu pasirinkite „Prisidėta“.
Ieškokite, tada spustelėkite „Gerbera Boards“ir spustelėkite „Įdiegti“. Uždarykite ir vėl atidarykite „Arduino IDE“.
Norėdami įsitikinti, kad biblioteka tinkamai įdiegta, eikite į Įrankiai -> Lenta ir slinkite iki meniu apačios. Turėtumėte pamatyti skyrių „Gerbera Boards“, kuriame turėtų būti bent „HexWear“(jei ne daugiau lentų, tokių kaip „mini-HexWear“).
Akselerometras:
Atsisiųskite ir įdiekite akselerometro biblioteką (https://learn.adafruit.com/adafruit-mma8451-accelerometer-breakout/wiring-and-test)
3 žingsnis: akselerometro pritvirtinimas
Mums reikia dviejų pagrindinių jutiklių tipų, kad galėtume sąveikauti su šiuo projektu: akselerometru ir lanksčiais jutikliais. Mes juos išnagrinėsime po vieną, pradedant nuo akselerometro. Pirma, mums reikia, kad aparatūros jungtys atitiktų.
Kad nepažeistumėte šešiakampio, rekomenduojame įkišti #2 varžtą ir poveržlę per norimas angas, tada prie to varžto pritvirtinti visas jungtis. Kad žaisdami su pirštine niekas neatsilaisvintų, jungtys turi būti lituotos ir (arba) gofruotos. Naudodami kelis colius vielos kiekvienai jungčiai, atlikite šiuos sujungimus nuo šešiakampio iki akselerometro (žr. Aukščiau esančius kontaktus).
Įvesties įtampa VINGROUND GNDSCL/D3 SCLSDA/D2 SDA
Viskas prijungta, mes pasiruošę išbandyti!
Kaip testą paleiskite akselerometro mėginio kodą „Arduino“(Failas-> Pavyzdžiai-> Adafruit_MMA8451-> MMA8451demo) ir įsitikinkite, kad jis gali išvesti serijinį monitorių. Laikant jį lygiu, jis turėtų pagreitinti dėl gravitacijos (~ 10 m/s) z kryptimi. Pakreipus akselerometrą, šis pagreitis bus matuojamas x arba y kryptimi; mes tai panaudosime, kad dėvėtojas galėtų keisti garsą sukdamas ranką!
Dabar turime pateikti akselerometro duomenis taip, kad juos būtų galima susieti su maks. Norėdami tai padaryti, turime atspausdinti x ir y reikšmes, galbūt pakeistas taip, kad atitiktų norimą diapazoną (žr. 6 dalį). Čia pridėtame kode mes atliekame šiuos veiksmus:
// Išmatuokite thex ir y kryptį. Mes dalijame ir dauginame, kad patektume į tinkamus MAX diapazonus (diapazonas 1000 x ir diapazonas 40 y) xdir = event.acceleration.x/0.02; ydir = abs (įvykis.pagreitis.y)*2; // Spausdinkite viską Max skaitomu formatu - su tarpais tarp kiekvieno numerio Serial.print (xdir); Serial.print ("");
Tai turėtų padaryti, kad šešiakampis kiekvienoje eilutėje spausdintų pakeistas akselerometro x ir y krypčių reikšmes. Dabar mes pasiruošę pridėti lanksčius jutiklius!
4 žingsnis: pritvirtinkite lanksčius jutiklius
Naudotojas gali gauti daug galimų garso valdiklių, jei galime aptikti lenkiančius pirštus. Lankstumo jutikliai tai ir padarys. Kiekvienas lankstumo jutiklis iš esmės yra potenciometras, kurio nelankstus atsparumas yra ~ 25KΩ, o visiškai sulenkto - ~ 100KΩ. Kiekvieną lankstumo jutiklį įdėjome į paprastą įtampos daliklį su 50K rezistoriumi, kaip parodyta pirmame paveikslėlyje.
Vėl naudodami gana trumpus laidus (atminkite, kad visa tai bus pritvirtinta prie pirštinės galo), lituokite keturis įtampos skirstytuvo modulius. Keturi moduliai turės tą patį „Vin“ir įžeminimą-mes susukome išardytus laidų galus, kad turėtume tik vieną laidą. Galiausiai paimkite keturis modulius ir užmegzkite ryšius, parodytus antrame paveikslėlyje (jei kas nors žino, kaip tai padaryti nepadarius siaubingai susipainiojusios sumaišties, atskleiskite savo paslaptis).
Dabar mums reikia „Arduino“kodo, kad nuskaitytume kiekvieno jutiklio įtampą. Mūsų tikslais lankstumo jutiklius laikėme jungikliais; jie buvo įjungti arba išjungti. Taigi mūsų kodas tiesiog nustato įtampos slenkstį, viršijantį šią ribą, mes išvedame 1 į nuoseklųjį prievadą (tai reiškia, kad jutiklis yra sulenktas), kitaip mes išvedame 0:
// Paimkite skaičių
analoginius mėginius ir sudėkite juos kiekvienam „Flex“jutikliui
while (sample_count <NUM_SAMPLES) {
sum10 += analogRead (A10);
sum9 += analogRead (A9);
sum7 += analogRead (A7);
sum11 += analogRead (A11);
sample_count ++;
// Trumpas delsimas, kad jų nepriimtų per greitai
vėlavimas (5);
}
// apskaičiuoti įtampą, vidurkis, palyginti su sparčiais mėginiais
// naudoti 5.0 5.0V ADC
etaloninė įtampa
// 5.015V yra kalibruotas
etaloninė įtampa
įtampa10 = ((plūdė) suma10 /
(plūdė) NUM_SAMPLES * 5,015) / 1024,0;
įtampa9 = ((plūdė) suma9/
(plūdė) NUM_SAMPLES * 5,015) / 1024,0;
įtampa7 = ((plūdė) suma7 /
(plūdė) NUM_SAMPLES * 5,015) / 1024,0;
įtampa11 = ((plūdė) suma11 /
(plūdė) NUM_SAMPLES * 5,015) / 1024,0;
// Patikrinkite, ar kiekvienas lankstumo jutiklis
yra didesnis už slenkstį (kūlę) - jei taip, nustatykite skaičių
// Pinkie pirštas
jei (įtampa10> kūlė)
{
//-5 pakelti
balso aukštis viena oktava
flex10 = -10;
}
kitaip flex10 = 0;
//Bevardis pirštas
jei (įtampa9>
(thresh-0,4)) {
// nuo 5 iki žemesnio
balso aukštis viena oktava
flex9 = 5;
}
kitaip flex9 = 0;
//Vidurinis pirštas
if (įtampa7> kūlė) {
// 1 nustatyti
atgarsio efektas
flex7 = 1;
}
kitaip flex7 = 0;
//Rodomasis pirštas
jei (įtampa11> kūlė)
{
// 50 nustatyti
ciklų iki 50
flex11 = 93;
}
kitaip flex11 = 0;
// Iš naujo nustatyti visus skaičiavimus
kintamasis iki 0 kitai kilpa
sample_count = 0;
suma10 = 0;
suma9 = 0;
suma7 = 0;
suma11 = 0;
Šiuo metu serijinis prievadas turėtų parodyti akselerometro orientacijos vertes, taip pat ar kiekvienas lankstumo jutiklis yra sulenktas. Esame pasiruošę, kad mūsų „Arduino“kodas kalbėtų su Maksu!
5 žingsnis: sąsaja su maks
Dabar, kai šešioliktainis kodas spjauna daugybę skaičių per nuoseklųjį prievadą, mums reikia „Max“programinės įrangos, kad galėtume perskaityti šiuos signalus. Aukščiau pavaizduotas kodo blokas tai daro! Labai prašom.
Svarbi pastaba: įkėlę kodą į „Hex“, uždarykite visus nuoseklaus prievado langus, tada pakeiskite „Max“kodo apskritimo raidę, kad ji atitiktų „Hex“prievadą. Jei nesate tikri, kurią raidę nustatyti, paspaudus „Max“kodo „spausdinimo“dalį, bus rodomi visi prijungti prievadai.
Išspausdinta eilutė iš „Hex“nuoseklaus prievado nuskaitoma per „Max“kodo bloką ir padalijama pagal tarpo ribas. Išvestis „Max“bloko pabaigoje leidžia paimti kiekvieną skaičių atskirai, todėl pirmąją išvesties erdvę prijungsime prie tos vietos, kur norime, kad eitų akselerometro kryptis x, antroji erdvė bus y kryptis ir pan. Dabar tiesiog prijunkite juos prie skaičių blokų, kad įsitikintumėte, jog jie veikia. Turėtumėte sugebėti perkelti akselerometrą ir lankstumo jutiklius ir pamatyti, kaip keičiasi skaičiai programinėje įrangoje „Max“.
6 veiksmas: sukurkite likusį maksimalų kodą
Atsižvelgiant į „Max“kalbos galią, čia tikrai galite paleisti savo vaizduotę visais būdais, kaip savo stebuklingos pirštinės pagalba pakeisti gaunamą garso signalą. Vis dėlto, jei pritrūksta idėjų, aukščiau pateikiama informacija apie tai, ką veikia mūsų „Max“kodas ir kaip jis veikia.
Kiekvienam parametrui, kurį bandote pakeisti, tikriausiai norėsite supainioti reikšmių diapazoną, gaunamą iš „Arduino“kodo, kad gautumėte tinkamą jautrumą.
Kiti „Max“trikčių šalinimo patarimai:
-
Jei negirdite garso
- įsitikinkite, kad „Max“nustatytas priimti garsą iš jūsų mikrofono (parinktys Garso būsenos įvesties įrenginys)
- įsitikinkite, kad „Max“pagrindinio garsumo slankiklis yra įjungtas ir visi kiti garsumo valdikliai, kuriuos galite turėti savo kode
-
Jei atrodo, kad kodas nieko nedaro
- įsitikinkite, kad pleistras užrakintas (užrakto simbolis apatiniame kairiajame kampe)
- įsitikinkite, kad „Max“pleistro rodmenys vis dar gauna duomenis iš „Arduino“nuoseklaus prievado. Jei ne, pabandykite iš naujo nustatyti nuoseklųjį prievadą (kaip aprašyta 5 veiksme) ir (arba) patikrinkite savo fizines laidų jungtis.
-
Keisti karpymo garsai keičiant parametrus
tai yra kažkas susiję su tuo, kaip veikia ~ tapin ir ~ tapout; konkrečiai, kai keičiate jų vertes, jos atsistato, o tai sukelia apkarpymą. Atsižvelgiant į mūsų ribotas žinias apie programą, esame beveik tikri, kad yra geresnis būdas tai padaryti „Max“ir pašalinti problemą …
7 žingsnis: pažodžiui viską sudėkite
Dabar lieka tik pritvirtinti grandinę prie pirštinės. Paimkite papildomą audinį ir iškirpkite šiek tiek didesnes juosteles nei lankstumo jutikliai. Prisiūkite papildomą audinį prie pirštinės piršto ten, kur sulenkiamas kumštis, palikdami tam tikrą įvorę lankstymo jutikliui įsitaisyti (mes negalime tiesiog klijuoti lankstumo jutiklių tiesiai prie pirštinės, nes pirštinių audinys tempiasi, kai lenkiasi pirštai). Kai rankovė dažniausiai susiuvama, įstumkite lankstumo jutiklį ir atsargiai prisiūkite laidus prie pirštinės, pritvirtindami lankstumo jutiklį. Pakartokite tai kiekvienam lankstumo jutikliui.
Tada naudokite lipnų apsauginį kaištį, kad pritvirtintumėte šešiakampį prie pirštinės užpakalinės dalies (galbūt norėsite ant kaiščio uždėti karštų klijų, kad įsitikintumėte, jog dėvėjimo metu jis neišnyksta). Siuvinėkite akselerometrą prie pirštinės riešo. Galiausiai naudokite užtrauktukų magiją, kad gražiai išvalytumėte visus negražius laidus.
Esate pasirengęs išbandyti savo galutinę dainavimo galios pirštinę! (Galime labai rekomenduoti „Daft Punk“„Harder Better Faster Stronger“, kad visiškai parodytumėte savo balso keitimo galimybes)
Rekomenduojamas:
Nešiojama Parkinsono ligos technika: 4 žingsniai
Nešiojama Parkinsono ligos technika: daugiau nei 10 milijonų žmonių visame pasaulyje gyvena su Parkinsono liga (PD). Progresuojantis nervų sistemos sutrikimas, sukeliantis standumą ir turintis įtakos paciento judėjimui. Paprasčiau tariant, daugelis žmonių sirgo Parkinsono liga, tačiau
Šviečianti spalvą keičianti gitara: 49 žingsniai (su paveikslėliais)
Švytinti spalvą keičianti gitara: rokenrolo karalystėje svarbu atskirti save. Kadangi pasaulyje yra milijonai žmonių, galinčių groti gitara, paprasčiausiai gerai groti tiesiog nepavyks. Norint pakilti kaip roko dievas, reikia kažko papildomo. Apsvarstykite šį vadovą
Nešiojama technika: oro būgnai: 5 žingsniai
Nešiojama technika: oro būgnai: Šio projekto tikslas buvo pagaminti nešiojamų būgnų rinkinį iš kai kurių akselerometrų ir pjezo diskų. Idėja buvo tokia, kad, pataikius į ranką, grotų spąstai; arba, paspaudus koją, skambėtų skrybėlė ar bosinio būgno garsas. Kontroliuoti
Infigo - (dirbtinio intelekto nešiojama pirštinė): 9 žingsniai
Infigo - (dirbtinio intelekto valdomos dėvimos pirštinės): „Infigo“yra dirbtiniu intelektu varomos nešiojamos pirštinės, pagrįstos pagalbinių technologijų (AT) principais, kurios padidins sutrikusios visuomenės produktyvumą. Dirbtinis intelektas ir mašinų mokymasis negali pakeisti žmogaus integracijos
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