Turinys:

Nešiojama technika: balsą keičianti pirštinė: 7 žingsniai
Nešiojama technika: balsą keičianti pirštinė: 7 žingsniai

Video: Nešiojama technika: balsą keičianti pirštinė: 7 žingsniai

Video: Nešiojama technika: balsą keičianti pirštinė: 7 žingsniai
Video: 60 минут очень длинных предложений на английском языке - разговорная практика английского языка 2024, Lapkritis
Anonim
Nešiojama technika: balsą keičianti pirštinė
Nešiojama technika: balsą keičianti pirštinė
Nešiojama technika: balsą keičianti pirštinė
Nešiojama technika: balsą keičianti pirštinė

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

Medžiagos
Medžiagos
Medžiagos
Medžiagos
Medžiagos
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

Akselerometro prijungimas
Akselerometro prijungimas
Akselerometro prijungimas
Akselerometro prijungimas

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

Flex jutiklių pritvirtinimas
Flex jutiklių pritvirtinimas
Flex jutiklių pritvirtinimas
Flex jutiklių pritvirtinimas
Flex jutiklių pritvirtinimas
Flex jutiklių pritvirtinimas

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

Sąsaja su maks
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

Žodžiu viską sujungus
Žodžiu viską sujungus
Žodžiu viską sujungus
Žodžiu viską sujungus
Žodžiu viską sujungus
Žodžiu viską sujungus
Žodžiu viską sujungus
Žodžiu viską sujungus

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: