Sisukord:

Kantav tehnika: hääle muutmise kinnas: 7 sammu
Kantav tehnika: hääle muutmise kinnas: 7 sammu

Video: Kantav tehnika: hääle muutmise kinnas: 7 sammu

Video: Kantav tehnika: hääle muutmise kinnas: 7 sammu
Video: BATTLELANDS ROYALE (Unreleased) LIVE NEW YEAR 2024, November
Anonim
Kantav tehnika: hääle muutmise kinnas
Kantav tehnika: hääle muutmise kinnas
Kantav tehnika: hääle muutmise kinnas
Kantav tehnika: hääle muutmise kinnas

Tundub, et uskumatute jõududega kindad on tänapäeval moes. Kuigi Thanose Infinity Gauntlet on päris võimas kinnas, tahtsime teha kinda, mis võiks midagi veelgi tähelepanuväärsemat teha: muuta kasutaja häält reaalajas.

See juhendamine annab ülevaate sellest, kuidas me häält muutva kinda kujundasime. Meie disain kasutas liikumiste tuvastamiseks kindas erinevaid andureid ja mikrokontrollerit, mis saadeti Arduino koodi kaudu Max plaastrile, kus meie helisignaali muudeti ja moonutati lõbusalt. Spetsiaalsed andurid, liigutused ja heli muutmised, mida me kasutasime, on kõik erinevatel kaalutlustel paindlikud; see on vaid üks võimalus häält muutva kinda loomiseks!

See projekt oli osa kogukonna partnerlusest Pomona kolledži üliõpilaste ja Fremonti inseneriakadeemia vahel. See on tõeline lõbus segu elektroonikatehnikast ja elektroonilise muusika elementidest!

Samm: materjalid

Materjalid
Materjalid
Materjalid
Materjalid
Materjalid
Materjalid

Osad:

  • HexWeari mikrokontroller (ATmega32U4) (https://hexwear.com/)
  • Kiirendusmõõtur MMA8451 (https://www.adafruit.com/product/2019)
  • Lühikesed painduvad andurid (x4) (https://www.adafruit.com/product/1070)
  • Kerge jooksukinnas
  • #2 kruvi ja seibi (x8)
  • Klambriklemmide pistikud; 22-18 gabariit (x8) (https://www.elecdirect.com/crimp-wire-terminals/ring-crimp-terminals/pvc-ring-terminals/ring-terminal-pvc-red-22-18-6- 100 tk)
  • 50 kΩ takisti (x4)
  • Traat (~ 20 gabariit)
  • Isekleepuv haaknõel
  • Vilt või muu kangas (~ 10 ruutmeetrit)
  • Õmblusniit
  • Tõmblukud
  • Sülearvuti
  • USB -mikrofon

Tööriistad

  • Jootekomplekt
  • Traadi eemaldajad ja traadi lõikurid
  • Elektriline lint
  • Kuuma õhu relv
  • Kruvikeeraja
  • Käärid
  • Õmblusnõel

Tarkvara:

  • Max by Cycling '74 (https://cycling74.com)
  • Arduino tarkvara (https://www.arduino.cc/en/Main/Software)

Samm: tarkvara installimine

Alustame sellest, mis on tõeliselt kõige põnevam osa projektist: raamatukogude (ja muu) installimine.

Arduino:

Laadige alla ja installige Arduino tarkvara (https://www.arduino.cc/en/Main/Software).

HexWear:

1) (ainult Windows, Maci kasutajad saavad selle sammu vahele jätta) Installige draiver, külastades aadressi https://www.redgerbera.com/pages/hexwear-driver-installation. Laadige alla ja installige draiver (lingitud RedGerbera lehe ülaosas 2. toimingus loetletud.exe -fail).

2) Installige Hexware jaoks vajalik raamatukogu. Avage Arduino IDE. Valige jaotises „Fail” „Eelistused”. Kleepige lisatahvlite halduri URL -ide jaoks ette nähtud ruumi

github.com/RedGerbera/Gerbera-Boards/raw/master/package_RedGerbera_index.json.

Seejärel klõpsake "OK".

Avage Tööriistad -> Juhatus: -> Juhatuse haldur. Valige vasakus ülanurgas asuvast menüüst „Kaasatud”.

Otsige üles ja seejärel klõpsake nuppu Gerbera Boards ja klõpsake Install. Sulgege Arduino IDE ja avage see uuesti.

Teegi nõuetekohase installimise tagamiseks avage Tööriistad -> Tahvel ja kerige menüü alla. Peaksite nägema jaotist pealkirjaga „Gerbera lauad”, mille all peaks olema vähemalt HexWear (kui mitte rohkem tahvleid nagu mini-HexWear).

Kiirendusmõõtur:

Laadige alla ja installige kiirendusmõõturite kogu (https://learn.adafruit.com/adafruit-mma8451-accelerometer-breakout/wiring-and-test)

Samm: kiirendusmõõturi kinnitamine

Kiirendusmõõturi kinnitamine
Kiirendusmõõturi kinnitamine
Kiirendusmõõturi kinnitamine
Kiirendusmõõturi kinnitamine

Selle projektiga suhtlemiseks vajame kahte peamist tüüpi andureid: kiirendusmõõtur ja paindeandurid. Uurime neid ükshaaval, alustades kiirendusmõõturist. Esiteks vajame riistvaraühendusi.

Kuusnurga kahjustamise vältimiseks soovitame kruvid ja seibid nr 2 läbi soovitud pordide panna ja seejärel kõik ühendused selle kruvi külge kinnitada. Et kinnastega mängides midagi lahti ei tuleks, tuleks ühendused jootma ja/või krimpsutada. Kasutades iga ühenduse jaoks mõne tolli traati, tehke Hexist kiirendusmõõturiga järgmised ühendused (vt ülaltoodud pistikuid):

Sisendpinge VINGROUND GNDSCL/D3 SCLSDA/D2 SDA

Kui kõik on ühendatud, oleme testimiseks valmis!

Testina käivitage kiirendusmõõturi proovikood Arduinos (Fail-> Näited-> Adafruit_MMA8451-> MMA8451demo), veendudes, et see saab väljuda jadamonitorile. See peaks andma gravitatsioonist tuleneva kiirenduse (~ 10 m/s) z suunas, kui seda hoitakse tasemel. Kiirendusmõõturit kallutades mõõdetakse seda kiirendust x või y suunas; me kasutame seda, et võimaldada kandjal kätt pöörates heli muuta!

Nüüd peame kiirendusmõõturi andmed esitama nii, et neid saaks liidestada Maxiga. Selleks peame printima x ja y väärtused, võib -olla soovitud vahemikule vastavaks muudetud (vt 6. osa). Siin lisatud koodis teeme järgmist.

// Mõõtke x-suund ja y-suund. Jagame ja korrutame, et jõuda MAX -i õigesse vahemikku (vahemik 1000 x ja vahemik 40 y) xdir = event.acceleration.x/0.02; ydir = abs (sündmus.kiirendus.y)*2; // Printige kõik Maxi jaoks loetavas vormingus - tühikutega iga numbri vahel Serial.print (xdir); Serial.print ("");

Sel juhul peaks Hex prindima kiirendusmõõturi x ja y suuna muudetud väärtused igale reale. Nüüd oleme valmis paindeandureid lisama!

Samm: painduvate andurite kinnitamine

Flex -andurite kinnitamine
Flex -andurite kinnitamine
Flex -andurite kinnitamine
Flex -andurite kinnitamine
Flex -andurite kinnitamine
Flex -andurite kinnitamine

Kui suudame sõrmede painutamist tuvastada, saab kandja saada palju potentsiaalseid helikontrolli. Painduvad andurid teevad just seda. Iga paindeandur on sisuliselt potentsiomeeter, kus paindumatu takistus on ~ 25KΩ, täielikult painutatuna aga takistus ~ 100KΩ. Panime iga paindeanduri lihtsasse 50K takisti pingejaotajasse, nagu on näidatud esimesel pildil.

Jällegi, kasutades üsna lühikest traati (pidage meeles, et see kõik sobib kinda tagaküljele), jootke neli pingejaotusmoodulit. Neljal moodulil on sama Vin ja maandus-keerasime juhtmete kooritud otsad kokku, nii et meil oleks jootmiseks vaid üks juhe. Lõpuks võtke neli moodulit ja ühendage teisel pildil näidatud ühendused (kui keegi teab, kuidas seda teha ilma kohutavalt sassis segadust tekitamata, paljastage palun oma saladused).

Nüüd vajame iga anduri pingete lugemiseks Arduino koodi. Meie jaoks käsitlesime paindeandureid lülititena; need olid sisse või välja lülitatud. Sellisena määrab meie kood lihtsalt pingeläve sellest künnisest kõrgemale, väljastame jadaporti 1 (see tähendab, et andur on painutatud), vastasel juhul väljastame 0:

// Võtke hulk

analoogproove ja lisage need iga Flex -anduri kohta

samas (proovi_arv <NUM_SAMPLES) {

summa10 += analoogLoe (A10);

summa9 += analoogLoe (A9);

summa7 += analoogLoe (A7);

summa11 += analoogLoe (A11);

proovi_arv ++;

// Lühike viivitus, et mitte neid liiga kiiresti võtta

viivitus (5);

}

// arvutage pinge, kiirete proovide keskmine

// 5,0 V ADC jaoks kasutage 5.0

võrdluspinge

// 5.015V on kalibreeritud

võrdluspinge

pinge10 = ((ujuk) summa10 /

(hõljuk) NUM_SAMPLES * 5,015) / 1024,0;

pinge9 = ((ujuk) summa9/

(hõljuk) NUM_SAMPLES * 5,015) / 1024,0;

pinge7 = ((ujuk) summa7 /

(hõljuk) NUM_SAMPLES * 5,015) / 1024,0;

pinge11 = ((ujuk) summa11 /

(hõljuk) NUM_SAMPLES * 5,015) / 1024,0;

// Kontrollige, kas iga paindeandur

on suurem kui künnis (künnis) - kui jah, siis määrake number

// Pinkie sõrm

kui (pinge10> künnis)

{

//-5 tõsta

häälheli ühe oktaavi võrra

flex10 = -10;

}

muidu flex10 = 0;

//Sõrmusesõrm

kui (pinge9>

(threes-0,4)) {

// 5 alla

häälheli ühe oktaavi võrra

flex9 = 5;

}

muidu flex9 = 0;

//Keskmine sõrm

if (pinge7> künnis) {

// 1 määrata

reverbi efekt

flex7 = 1;

}

muidu flex7 = 0;

// Nimetissõrm

kui (pinge11> künnis)

{

// 50 seada

tsüklit kuni 50

flex11 = 93;

}

muidu flex11 = 0;

// Lähtesta kogu loendus

muutuja kuni 0 järgmise silmuse jaoks

proovi_arv = 0;

summa10 = 0;

summa9 = 0;

summa7 = 0;

summa11 = 0;

Siinkohal peaks jadaport näitama kiirendusmõõturi orientatsiooni väärtusi ja ka seda, kas iga paindeandur on painutatud. Oleme valmis oma Arduino koodi Maxiga rääkima!

Samm: liidestamine max

Liides Max
Liides Max

Nüüd, kui Hex -kood sülitab palju numbreid läbi jadapordi, vajame nende signaalide lugemiseks tarkvara Max. Ülaltoodud koodiplokk teeb just seda! Olete väga teretulnud.

Oluline märkus: pärast koodi Hex -i üleslaadimist sulgege kõik jadapordi aknad ja muutke Max -koodi ringikujuline täht Hex -porti sobivaks. Kui te pole kindel, millist tähte määrata, kuvatakse Max -koodi printimisosa vajutades kõik ühendatud pordid.

Hexi jadapordist prinditud rida loetakse Max -koodiploki kaudu ja jagatakse seejärel tühikutega. Väljund Max ploki lõpus võimaldab teil haarata iga numbri eraldi, nii et me ühendame esimese väljundruumi sinna, kuhu soovime kiirendusmõõturi x -suunda minna, teine tühik on y -suund jne. Nüüd ühendage need lihtsalt numbriplokkidega, et tagada nende toimimine. Teil peaks olema võimalik kiirendusmõõturit ja paindeandureid liigutada ning näha, kuidas numbrid Max tarkvaras muutuvad.

6. samm: ülejäänud maksimaalse koodi loomine

Arvestades Maxi keele võimsust, võite siin tõesti oma fantaasial lennata lasta kõigil viisidel, kuidas oma maagilise jõukindaga sissetulevat helisignaali muuta. Kui aga ideed otsa saavad, on ülaltoodud ülevaade sellest, mida meie Max -kood teeb ja kuidas see toimib.

Iga parameetri puhul, mida proovite muuta, soovite tõenäoliselt paraja tundlikkuse saamiseks segi ajada Arduino koodist tulenevate väärtuste vahemikuga.

Mõned muud Maxi tõrkeotsingu näpunäited:

  • Kui te ei kuule heli

    • veenduge, et Max on seadistatud heli vastu võtma teie mikrofonilt (valikud Audio oleku sisendseade)
    • veenduge, et Maxi helitugevuse liugur on üles keeratud ja kõik muud helitugevuse juhtnupud, mis teie koodis võivad olla
  • Kui tundub, et kood ei tee midagi

    • veenduge, et plaaster oleks lukustatud (lukusümbol vasakus alanurgas)
    • veenduge Maxi plaastri näitude kaudu, et teie Max -plaaster saab endiselt andmeid Arduino jadaportist. Kui ei, proovige jadaport lähtestada (nagu kirjeldatud 5. toimingus) ja/või kontrollige oma füüsilisi juhtmestiku ühendusi.
  • Kummalised lõikamishelid parameetrite muutmisel

    see on midagi seotud sellega, kuidas ~ tapin ja ~ tapout töötavad; täpsemalt, et nende väärtuste muutmisel lähtestatakse need, mis põhjustab lõikamise. Arvestades meie piiratud teadmisi programmist, oleme peaaegu kindlad, et Maxis on selleks parem viis ja probleem kõrvaldatakse …

Samm 7: sõna otseses mõttes kõik kokku panna

Sõna otseses mõttes kõik kokku panna
Sõna otseses mõttes kõik kokku panna
Sõna otseses mõttes kõik kokku panna
Sõna otseses mõttes kõik kokku panna
Sõna otseses mõttes kõik kokku panna
Sõna otseses mõttes kõik kokku panna
Sõna otseses mõttes kõik kokku panna
Sõna otseses mõttes kõik kokku panna

Nüüd jääb üle vaid kinnitada oma skeem kinda külge. Võtke oma täiendav kangas ja lõigake ribad välja veidi suuremad kui paindeandurid. Õmble lisakangas kinda sõrmele, kus sõrm paindub, jättes painduvale andurile istumiseks mingi varruka (me ei saa paindeandureid lihtsalt kinnasesse liimida, sest kindakangas venib sõrmede paindumisel). Kui varrukas on enamasti õmmeldud, libistage paindeandur sisse ja õmble juhtmed ettevaatlikult kinda külge, kinnitades paindeanduri oma kohale. Korrake seda iga paindeanduri puhul.

Järgmisena kasutage isekleepuvat haaknõela, et kinnitada kuuskant kinnase tagaküljele (võite panna tihvtile kuuma liimi, et veenduda, et see kulumise ajal lahti ei lähe). Õmble kiirendusmõõtur kinda randme külge. Lõpuks kasutage tõmblukkude maagiat, et ilustamata juhtmed ilusti puhastada.

Olete valmis proovile panema oma ülima laulujõukinda! (Soovitame tungivalt Daft Punk'i „Harder Better Faster Stronger”, et näidata oma hääle muutmise võimalusi täielikult)

Soovitan: