Kazalo:

Nosljiva tehnika: Rokavice za spreminjanje glasu: 7 korakov
Nosljiva tehnika: Rokavice za spreminjanje glasu: 7 korakov

Video: Nosljiva tehnika: Rokavice za spreminjanje glasu: 7 korakov

Video: Nosljiva tehnika: Rokavice za spreminjanje glasu: 7 korakov
Video: Часть 7 - Аудиокнига «Тэсс из рода д'Эрбервиллей» Томаса Харди (главы 45–50) 2024, November
Anonim
Nosljiva tehnologija: Rokavice za spreminjanje glasu
Nosljiva tehnologija: Rokavice za spreminjanje glasu
Nosljiva tehnologija: Rokavice za spreminjanje glasu
Nosljiva tehnologija: Rokavice za spreminjanje glasu

No, zdi se, da so te roke danes besne rokavice z neverjetno močjo. Čeprav je Thanos's Infinity Gauntlet precej močna rokavica, smo želeli narediti rokavico, ki bi lahko naredila nekaj še bolj izjemnega: spremenila glas uporabnika v realnem času.

Ta Instructable ponuja sprehod po tem, kako smo oblikovali rokavico za spreminjanje glasu. Naša zasnova je uporabila različne senzorje in mikrokrmilnik v rokavici za zaznavanje gibov, ki so bili poslani prek kode Arduino na obliž Max, kjer je bil naš zvočni signal nato spremenjen in popačen na zabaven način. Posebni senzorji, gibi in zvočne spremembe, ki smo jih uporabili, so prilagodljivi za različne vidike; to je le en način za ustvarjanje rokavic, ki spreminjajo glas!

Ta projekt je bil del skupnostnega partnerstva med študenti Pomona College in Fremont Academy of Engineering Femineers. To je prava zabavna mešanica elektronskega inženiringa in elementov elektronske glasbe!

1. korak: Materiali

Materiali
Materiali
Materiali
Materiali
Materiali
Materiali

Deli:

  • Mikrokrmilnik HexWear (ATmega32U4) (https://hexwear.com/)
  • Merilnik pospeška MMA8451 (https://www.adafruit.com/product/2019)
  • Kratki upogibni senzorji (x4) (https://www.adafruit.com/product/1070)
  • Lahka tekaška rokavica
  • #2 vijaki in podložke (x8)
  • Terminali za stiskanje sponk; 22-18 gauge (x8) (https://www.elecdirect.com/crimp-wire-terminals/ring-crimp-terminals/pvc-ring-terminals/ring-terminal-pvc-red-22-18-6- 100 kosov)
  • 50kΩ upor (x4)
  • Žica (~ 20 gauge)
  • Samolepilni varnostni zatič
  • Filc ali druga tkanina (~ 10 sq. In.)
  • Šivalna nit
  • Zadrge
  • Prenosni računalnik
  • USB mikrofon

Orodja

  • Komplet za spajkanje
  • Odstranjevalci in rezalniki žice
  • Električni trak
  • Pištola z vročim zrakom
  • Izvijač
  • Škarje
  • Šivalna igla

Programska oprema:

  • Max s kolesarjenjem '74 (https://cycling74.com)
  • Arduino programska oprema (https://www.arduino.cc/en/Main/Software)

2. korak: Namestitev programske opreme

Začnemo z resnično najbolj razburljivim delom vsakega projekta: namestitvijo knjižnic (in še več).

Arduino:

Prenesite in namestite programsko opremo Arduino (https://www.arduino.cc/en/Main/Software).

HexWear:

1) (Samo v sistemu Windows, uporabniki Mac lahko ta korak preskočijo) Namestite gonilnik na spletnem mestu https://www.redgerbera.com/pages/hexwear-driver-installation. Prenesite in namestite gonilnik (datoteka.exe, navedena v 2. koraku na vrhu povezane strani RedGerbera).

2) Namestite potrebno knjižnico za Hexware. Odprite Arduino IDE. Pri »Datoteka« izberite »Nastavitve«. Prilepite v prostor za URL -je Dodatnih upraviteljev plošč

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

Nato kliknite »V redu«.

Pojdite v Orodja -> Upravni odbor: -> Upravitelj odbora. V zgornjem levem kotu izberite »Prispevek«.

Poiščite in kliknite Gerbera Boards ter kliknite Install. Zaprite in znova odprite Arduino IDE.

Če želite zagotoviti, da je knjižnica pravilno nameščena, pojdite na Orodja -> Plošča in se pomaknite do dna menija. Videti bi morali razdelek z naslovom "Gerbera Boards", pod katerim bi se moral pojaviti vsaj HexWear (če ne več plošč, kot je mini-HexWear).

Merilnik pospeška:

Prenesite in namestite knjižnico merilnika pospeška (https://learn.adafruit.com/adafruit-mma8451-accelerometer-breakout/wiring-and-test)

3. korak: Pritrditev merilnika pospeška

Pritrditev merilnika pospeška
Pritrditev merilnika pospeška
Pritrditev merilnika pospeška
Pritrditev merilnika pospeška

Za interakcijo s tem projektom potrebujemo dve glavni vrsti senzorjev: merilnik pospeška in senzor upogibanja. Te bomo pregledali naenkrat, začenši z merilnikom pospeška. Najprej potrebujemo povezave strojne opreme.

Da se izognete poškodbam šesterokotnika, priporočamo, da skozi željena vrata vstavite vijak #2 in podložko, nato pa pritrdite vse povezave na ta vijak. Da se pri igranju z rokavico nič ne bi ohlapilo, je treba spoje spajkati in/ali stisniti. Z nekaj centimetri žice za vsako povezavo naredite naslednje povezave od šestkotnika do merilnika pospeška (za referenco glejte zgornje odtise):

VHODNA NAPETOST VINGROUND GNDSCL/D3 SCLSDA/D2 SDA

Ko je vse povezano, smo pripravljeni na preizkus!

Kot test zaženite vzorčno kodo merilnika pospeška v Arduinu (Datoteka-> Primeri-> Adafruit_MMA8451-> MMA8451demo) in se prepričajte, da se lahko odda na serijski monitor. Pospešek zaradi gravitacije (~ 10m/s) mora v smeri z oddajati v ravnini. Z nagibom merilnika pospeška se bo ta pospešek meril v smeri x ali y; to bomo uporabili, da uporabniku omogočimo spreminjanje zvoka z vrtenjem roke!

Zdaj moramo podatke merilnika pospeška predstaviti tako, da jih je mogoče povezati z Max. Če želite to narediti, moramo natisniti vrednosti x in y, morda spremenjene tako, da ustrezajo želenemu obsegu (glej 6. del). V naši priloženi kodi naredimo naslednje:

// Izmerite smer x in y. Delimo in množimo, da pridemo v prava območja za MAX (razpon 1000 v x in 40 v y) xdir = event.acceleration.x/0,02; ydir = abs (event.acceleration.y)*2; // Natisni vse v berljivi obliki za Max - s presledki med vsako številko Serial.print (xdir); Serial.print ("");

To bi moralo imeti šestkotno tiskanje spremenjenih vrednosti smeri x in y merilnika pospeška v vsaki vrstici. Zdaj smo pripravljeni dodati senzorje upogibanja!

4. korak: Pritrditev upogljivih senzorjev

Pritrditev senzorjev Flex
Pritrditev senzorjev Flex
Pritrditev senzorjev Flex
Pritrditev senzorjev Flex
Pritrditev senzorjev Flex
Pritrditev senzorjev Flex

Uporabnik lahko dobi veliko potencialnih kontrol zvoka, če zaznamo upogibne prste. Senzorji flex bodo naredili prav to. Vsak upogljivi senzor je v bistvu potenciometer, kjer ima upognjen upor ~ 25KΩ, medtem ko ima popolnoma upognjen upor ~ 100KΩ. Vsak senzor upogiba postavimo v preprost razdelilnik napetosti z uporom 50K, kot je prikazano na prvi sliki.

Spet z uporabo dokaj kratkih žic (ne pozabite, da bo vse to pritrjeno na zadnjo stran rokavice), spajkajte štiri napetostne delilne module. Štirje moduli bodo imeli isti Vin in ozemljitev, ki smo jih zvili skupaj s slečenih koncev žic, tako da bi imeli le eno žico za spajkanje. Nazadnje vzemite štiri module in vzpostavite povezave, prikazane na drugi sliki (če kdo ve, kako to storiti, ne da bi naredil grozno zapleteno zmešnjavo, naj razkrije svoje skrivnosti).

Zdaj potrebujemo kodo Arduino za branje napetosti vsakega senzorja. Za naše namene smo senzorje upogibnosti obravnavali kot stikala; so bili vključeni ali izključeni. Kot taka naša koda preprosto nastavi prag napetosti nad tem pragom, na zaporedna vrata oddamo 1 (kar pomeni, da je senzor upognjen), sicer pa iznesemo 0:

// Vzemite nekaj

analognih vzorcev in jih seštejte za vsak senzor Flex

while (vzorec_štev <NUM_SAMPLES) {

sum10 += analogRead (A10);

sum9 += analogRead (A9);

sum7 += analogRead (A7);

sum11 += analogRead (A11);

vzorec_štetje ++;

// Kratek zamik, da jih ne vzamemo prehitro

zamuda (5);

}

// izračunamo napetost, povprečenje za hitre vzorce

// za 5.0V ADC uporabite 5.0

referenčna napetost

// 5,015V je umerjeno

referenčna napetost

napetost10 = ((plavajoča) vsota10 /

(plavajoče) NUM_SAMPLES * 5.015) / 1024.0;

napetost9 = ((plavajoča) vsota9/

(plavajoče) NUM_SAMPLES * 5.015) / 1024.0;

napetost7 = ((plavajoča) vsota7 /

(plavajoče) NUM_SAMPLES * 5.015) / 1024.0;

napetost11 = ((plavajoča) vsota11 /

(plavajoče) NUM_SAMPLES * 5.015) / 1024.0;

// Preverite, ali je vsak senzor upogibanja

je večji od praga (prag) - če je tako, nastavite številko

// Pinkie prst

če (napetost10> prag)

{

//-5 za dvig

glas za eno oktavo

flex10 = -10;

}

else flex10 = 0;

//Prstanec

če (napetost9>

(prag-0,4)) {

// 5 za znižanje

glas za eno oktavo

flex9 = 5;

}

else flex9 = 0;

//Sredinec

če (napetost7> prag) {

// 1 za nastavitev

odmevni učinek

flex7 = 1;

}

else flex7 = 0;

//Kazalec

če (napetost11> prag)

{

// 50 za nastavitev

ciklov do 50

flex11 = 93;

}

else flex11 = 0;

// Ponastavi vse štetje

spremenljivko na 0 za naslednjo zanko

število vzorcev = 0;

vsota10 = 0;

vsota9 = 0;

vsota7 = 0;

vsota11 = 0;

Na tem mestu bi morala serijska vrata prikazati vrednosti za usmerjenost merilnika pospeška in tudi, ali je vsak senzor upogiba upognjen. Pripravljeni smo, da se naša koda Arduino pogovarja z Maksom!

5. korak: Povezovanje z Max

Povezava z Max
Povezava z Max

Zdaj, ko šestnajstiška koda pljuva veliko številk skozi serijska vrata, potrebujemo programsko opremo Max za branje teh signalov. Zgornji blok kode počne ravno to! Ste zelo dobrodošli.

Pomembno opozorilo: ko naložite kodo v Hex, zaprite vsa okna zaporednih vrat in nato spremenite obkroženo črko v kodi Max tako, da se ujema s šestnajstimi vrati. Če niste prepričani, katero črko naj nastavite, s pritiskom na del »tiskanje« kode Max označite vsa povezana vrata.

Natisnjena vrstica iz serijskih vrat Hex se prebere skozi blok kode Max in nato razdeli na podlagi ločilnikov prostora. Izhod na koncu bloka Max vam omogoča, da vzamete vsako številko posebej, zato bomo prvi izhodni prostor povezali tja, kamor želimo, da gre smer x merilnika pospeška, drugi prostor bo smer y itd. zdaj jih le povežite s številskimi bloki, da zagotovite njihovo delovanje. Morali bi premakniti merilnike pospeška in senzorje upogibanja ter videti spremembe v programski opremi Max.

6. korak: Ustvarjanje preostale kode Max

Glede na moč jezika Max lahko tukaj resnično pustite domišljijo z vsemi načini, kako lahko spremenite dohodni zvočni signal s svojo čarobno rokavico. Če pa vam zmanjka idej, je zgoraj povzetek, kaj naša Max koda počne in kako deluje.

Za vsak parameter, ki ga poskušate spremeniti, se boste verjetno želeli poigravati z obsegom vrednosti, ki prihajajo iz kode Arduino, da boste dobili ravno pravo občutljivost.

Nekaj drugih nasvetov za odpravljanje težav Max:

  • Če ne slišite zvoka
    • prepričajte se, da je Max nastavljen za sprejemanje zvoka iz vašega mikrofona (možnosti avdio vhodna naprava)
    • Prepričajte se, da je drsnik Master Volume v Maxu privzet in kateri koli drugi gumbi za glasnost, ki jih imate v kodi
  • Če se zdi, da koda ne počne ničesar

    • Poskrbite, da je vaš obliž zaklenjen (simbol ključavnice v spodnjem levem kotu)
    • z odčitki v popravku Max zagotovite, da vaš popravek Max še vedno prejema podatke iz serijskih vrat Arduino. Če ne, poskusite ponastaviti serijska vrata (kot je opisano v 5. koraku) in/ali preverite fizične povezave ožičenja.
  • Nenavaden izrezovalni zvok pri spreminjanju parametrov

    to je povezano s tem, kako delujeta ~ tapin in ~ tapout; natančneje, da ko spremenite njihove vrednosti, se ponastavijo, kar povzroči odrezovanje. Glede na omejeno znanje o programu smo skoraj prepričani, da je v Maxu to boljši način in odpraviti težavo …

7. korak: Dobesedno združite vse skupaj

Dobesedno vse skupaj
Dobesedno vse skupaj
Dobesedno vse skupaj
Dobesedno vse skupaj
Dobesedno vse skupaj
Dobesedno vse skupaj
Dobesedno vse skupaj
Dobesedno vse skupaj

Zdaj ostane le, da naše vezje pritrdimo na rokavico. Vzemite dodatno tkanino in izrežite trakove, nekoliko večje od senzorjev upogibanja. Dodatno tkanino prišite na prst rokavice, kjer se upogne člen, pri čemer pustite nekakšen rokav, v katerem lahko sedi senzor upogiba (senzorjev upogiba ne moremo le prilepiti neposredno na rokavico, ker se tkanina rokavic raztegne, ko se prsti upognejo)). Ko je rokav večinoma prišit, potisnite senzor upogibanja in previdno prišite vodila do rokavice ter pritrdite senzor upogiba. To ponovite za vsak senzor upogibanja.

Nato uporabite samolepilni varnostni zatič, da pritrdite šesterokotnik na zadnjo stran rokavice (na zatič boste morda želeli nanesti nekaj vročega lepila, da se prepričate, da se med obrabo ne razveže). Merilnik pospeška prišite na zapestje rokavice. Nazadnje, uporabite čarovnijo zadrge, da lepo očistite vse grde žice.

Pripravljeni ste preizkusiti svojo vrhunsko pevsko rokavico! (Močno priporočamo, da Daft Punk "Harder Better Faster Stronger" v celoti pokaže svoje sposobnosti spreminjanja glasu)

Priporočena: