Obsah:

Technika nosenia: Rukavice meniace hlas: 7 krokov
Technika nosenia: Rukavice meniace hlas: 7 krokov

Video: Technika nosenia: Rukavice meniace hlas: 7 krokov

Video: Technika nosenia: Rukavice meniace hlas: 7 krokov
Video: Часть 7 - Аудиокнига «Тэсс из рода д'Эрбервиллей» Томаса Харди (главы 45–50) 2024, Júl
Anonim
Technológia nosenia: rukavice na zmenu hlasu
Technológia nosenia: rukavice na zmenu hlasu
Technológia nosenia: rukavice na zmenu hlasu
Technológia nosenia: rukavice na zmenu hlasu

Zdá sa, že v dnešnej dobe sú v móde rukavice s neuveriteľnými schopnosťami. Aj keď je Thanosova nekonečná rukavica dosť silnou rukavicou, chceli sme vytvoriť rukavicu, ktorá dokáže ešte niečo pozoruhodnejšie: zmeniť hlas nositeľa v reálnom čase.

Tento návod poskytuje návod, ako sme navrhli rukavice na zmenu hlasu. Náš návrh využíval rôzne senzory a mikrokontrolér v rukavici na detekciu pohybov, ktoré boli odoslané prostredníctvom kódu Arduino do opravy Max, kde bol náš zvukový signál potom zábavným spôsobom zmenený a skreslený. Špecifické snímače, pohyby a zvukové zmeny, ktoré sme použili, sú flexibilné z rôznych dôvodov; toto je len jeden zo spôsobov, ako si vytvoriť rukavice meniace hlas!

Tento projekt bol súčasťou komunitného partnerstva medzi študentmi Pomona College a Fremont Academy of Engineering Femineers. Je to skutočne zábavná zmes elektronického inžinierstva a prvkov elektronickej hudby!

Krok 1: Materiály

Materiály
Materiály
Materiály
Materiály
Materiály
Materiály

Diely:

  • Mikrokontrolér HexWear (ATmega32U4) (https://hexwear.com/)
  • Akcelerometer MMA8451 (https://www.adafruit.com/product/2019)
  • Krátke flexibilné snímače (x4) (https://www.adafruit.com/product/1070)
  • Ľahké bežecké rukavice
  • Skrutky a podložky #2 (x8)
  • Krimpovacie konektory; Rozchod 22-18 (x8) (https://www.elecdirect.com/crimp-wire-terminals/ring-crimp-terminals/pvc-ring-terminals/ring-terminal-pvc-red-22-18-6- 100 ks)
  • Odpor 50 kΩ (x4)
  • Drôt (~ 20 gauge)
  • Samolepiaci zatvárací špendlík
  • Plsť alebo iná tkanina (~ 10 štvorcových palcov)
  • Šijacie nite
  • Zipsy
  • Prenosný počítač
  • USB mikrofón

Nástroje

  • Spájkovacia súprava
  • Odizolovače a strihače drôtov
  • Elektrická páska
  • Teplovzdušná pištoľ
  • Skrutkovač
  • Nožnice
  • Šijacia ihla

Softvér:

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

Krok 2: Inštalácia softvéru

Začneme tým, čo je skutočne najzábavnejšou súčasťou každého projektu: inštalácia knižníc (a ďalšie).

Arduino:

Stiahnite si a nainštalujte softvér Arduino (https://www.arduino.cc/en/Main/Software).

HexWear:

1) (Iba Windows, používatelia systému Mac môžu tento krok preskočiť) Nainštalujte ovládač na https://www.redgerbera.com/pages/hexwear-driver-installation. Stiahnite a nainštalujte ovládač (súbor.exe uvedený v kroku 2 v hornej časti prepojenej stránky RedGerbera).

2) Nainštalujte požadovanú knižnicu pre Hexware. Otvorte Arduino IDE. V časti „Súbor“vyberte „Predvoľby“. Prilepte miesto, ktoré je určené pre adresy URL doplnkového panela správcov

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

Potom kliknite na „OK“.

Prejdite na Nástroje -> Doska: -> Správca rady. V ponuke v ľavom hornom rohu vyberte možnosť Prispené.

Vyhľadajte a potom kliknite na dosky Gerbera a kliknite na položku Inštalovať. Ukončite a znova otvorte Arduino IDE.

Aby ste sa uistili, že je knižnica nainštalovaná správne, prejdite na Nástroje -> Doska a posuňte sa do spodnej časti ponuky. Mali by ste vidieť sekciu s názvom „Dosky Gerbera“, pod ktorou by sa mal objaviť aspoň HexWear (ak nie viac dosiek ako mini-HexWear).

Akcelerometer:

Stiahnite si a nainštalujte knižnicu akcelerometra (https://learn.adafruit.com/adafruit-mma8451-accelerometer-breakout/wiring-and-test)

Krok 3: Pripojenie akcelerometra

Pripojenie akcelerometra
Pripojenie akcelerometra
Pripojenie akcelerometra
Pripojenie akcelerometra

Na interakciu s týmto projektom potrebujeme dva hlavné typy senzorov: akcelerometer a flex senzory. Budeme ich skúmať jeden po druhom, počnúc akcelerometrom. Najprv potrebujeme, aby sa hardvérové pripojenia zhodovali.

Aby ste predišli poškodeniu šesťhranu, odporúčame vložiť skrutku a podložku č. 2 cez požadované porty a potom k nej pripevniť všetky spoje. Aby sa pri hre s rukavicou niečo neuvoľnilo, spoje by mali byť spájkované a/alebo krimpované. Pri každom zapojení pomocou niekoľkých palcov drôtu vykonajte nasledujúce spojenia od šesťuholníka k akcelerometru (referenčné informácie nájdete na vyššie uvedených vývodoch):

VSTUPNÉ NAPÄTIE VINGROUND GNDSCL/D3 SCLSDA/D2 SDA

Keď je všetko zapojené, sme pripravení testovať!

Ako test spustite ukážkový kód akcelerometra v Arduino (Súbor-> Príklady-> Adafruit_MMA8451-> MMA8451demo) a uistite sa, že môže vychádzať na sériový monitor. Pri držaní na úrovni by malo produkovať zrýchlenie v dôsledku gravitácie (~ 10 m/s) v smere z. Naklonením akcelerometra sa toto zrýchlenie bude merať v smere x alebo y; použijeme to, aby sme nositeľovi umožnili zmeniť zvuk otáčaním ruky!

Teraz musíme dáta akcelerometra prezentovať tak, aby mohli byť prepojené s Max. Aby sme to urobili, musíme vytlačiť hodnoty x a y, prípadne upravené tak, aby zodpovedali požadovanému rozsahu (pozri časť 6). V našom priloženom kóde robíme nasledujúce:

// Zmerajte smer x a smer y. Delíme a násobíme, aby sme sa dostali do správnych rozsahov pre MAX (rozsah 1000 v x a rozsah 40 v y) xdir = event.acceleration.x/0,02; ydir = abs (event.acceleration.y)*2; // Vytlačte všetko v čitateľnom formáte pre Max - s medzerami medzi každým číslom Serial.print (xdir); Serial.print ("");

To by malo Hex vytlačiť upravené hodnoty smerov x a y akcelerometra každý riadok. Teraz sme pripravení pridať flexibilné senzory!

Krok 4: Pripojenie senzorov Flex

Upevnenie senzorov Flex
Upevnenie senzorov Flex
Upevnenie senzorov Flex
Upevnenie senzorov Flex
Upevnenie senzorov Flex
Upevnenie senzorov Flex

Ak dokážeme rozpoznať ohýbanie prstov, používateľ môže získať veľa potenciálnych ovládačov zvuku. Flexibilné snímače to urobia. Každý snímač ohybu je v zásade potenciometer, kde neohnutý má odpor ~ 25 KΩ, zatiaľ čo úplne ohnutý má odpor ~ 100 KΩ. Každý flex senzor sme vložili do jednoduchého deliča napätia s 50K odporom, ako je znázornené na prvom obrázku.

Opäť použite pomerne krátke dĺžky drôtu (majte na pamäti, že to všetko bude pasovať na zadnú stranu rukavice), spájkujte štyri moduly deliča napätia. Štyri moduly budú zdieľať ten istý Vin a zem-skrútili sme spolu odizolované konce drôtov, aby sme mali iba jeden zvod na spájku. Nakoniec vezmite štyri moduly a vytvorte prepojenia uvedené na druhom obrázku (ak niekto vie, ako to urobiť bez toho, aby ste urobili strašne zamotaný neporiadok, odhaľte svoje tajomstvá).

Teraz potrebujeme kód Arduino na čítanie napätí z každého senzora. Na naše účely sme ohybné senzory považovali za spínače; boli buď zapnuté alebo vypnuté. Náš kód ako taký jednoducho nastaví prahovú hodnotu napätia-nad touto prahovou hodnotou vyvedieme na sériový port 1 (to znamená, že snímač je ohnutý), v opačnom prípade vydáme 0:

// Vezmite číslo

analógové vzorky a sčítajte ich pre každý snímač Flex

while (sample_count <NUM_SAMPLES) {

súčet 10 += analógové čítanie (A10);

sum9 += analogRead (A9);

sum7 += analógové čítanie (A7);

súčet11 += analogické čítanie (A11);

sample_count ++;

// Krátke oneskorenie, aby ste ich nebrali príliš rýchlo

oneskorenie (5);

}

// vypočítajte napätie, spriemerovanie z rýchlych vzoriek

// použite 5.0 pre 5,0V ADC

referenčné napätie

// Kalibrované je 5,015 V

referenčné napätie

napätie10 = ((float) súčet10 /

(float) NUM_SAMPLES * 5,015) / 1024,0;

napätie9 = ((float) súčet9/

(float) NUM_SAMPLES * 5,015) / 1024,0;

napätie7 = ((float) súčet7 /

(float) NUM_SAMPLES * 5,015) / 1024,0;

napätie11 = ((float) súčet11 /

(float) NUM_SAMPLES * 5,015) / 1024,0;

// Skontrolujte, či každý flex senzor

je väčší ako prah (prah) - ak áno, nastavte číslo

// Pinkie prst

ak (napätie10> prah)

{

//-5 na zvýšenie

výška hlasu o jednu oktávu

flex10 = -10;

}

else flex10 = 0;

//Prstenník

ak (napätie9>

(thresh-0,4)) {

// 5 na zníženie

výška hlasu o jednu oktávu

flex9 = 5;

}

else flex9 = 0;

//Prostredník

if (napätie7> prah) {

// 1 na nastavenie

efekt reverbu

flex7 = 1;

}

else flex7 = 0;

//Ukazovák

ak (napätie11> prah)

{

// 50 na nastavenie

cykly do 50

flex11 = 93;

}

else flex11 = 0;

// Resetovanie celého počítania

premenná na 0 pre ďalšiu slučku

sample_count = 0;

suma10 = 0;

súčet9 = 0;

súčet7 = 0;

súčet11 = 0;

V tomto mieste by mal sériový port zobrazovať hodnoty orientácie akcelerometra a tiež to, či je každý snímač ohybu ohnutý. Sme pripravení nahovoriť náš kód Arduino s Maxom!

Krok 5: Rozhranie s max

Rozhranie s max
Rozhranie s max

Teraz, keď hexadecimálny kód chrlí veľa čísel cez sériový port, potrebujeme softvér Max na čítanie týchto signálov. Blok kódu zobrazený vyššie robí práve to! Nemáš za čo.

Dôležitá poznámka: po nahraní kódu do hexu zatvorte všetky okná sériového portu a potom zmeňte zakrúžkované písmeno v kóde max tak, aby zodpovedalo hexadecimálnemu portu. Ak si nie ste istí, ktoré písmeno chcete nastaviť, stlačením „tlačenej“časti kódu Max sa zobrazia všetky pripojené porty.

Vytlačený riadok zo sériového portu Hex sa číta pomocou bloku kódu Max a potom sa rozdelí na základe oddeľovačov medzier. Výstup na konci bloku Max vám umožní uchopiť každé číslo jednotlivo, takže prvý výstupný priestor spojíme s miestom, kam chceme, aby smer x akcelerometra smeroval, druhý priestor bude v smere y atď. Teraz ich len spojte s číselnými blokmi a uistite sa, že fungujú. Mali by ste byť schopní pohybovať akcelerometrom a snímačmi ohybu a vidieť, ako sa čísla menia v softvéri Max.

Krok 6: Zostavenie zvyšku maximálneho kódu

Vzhľadom na silu jazyka Max tu môžete skutočne popustiť uzdu svojej fantázii všetkými spôsobmi, ktorými môžete pomocou zvukovej rukavice zmeniť magický signál. Ak vám však dochádzajú nápady, vyššie je prehľad toho, čo náš kód Max robí a ako funguje.

Pre každý parameter, ktorý sa pokúšate zmeniť, si pravdepodobne budete chcieť pohrávať s rozsahom hodnôt pochádzajúcich z kódu Arduino, aby ste získali správnu citlivosť.

Niekoľko ďalších tipov na riešenie problémov Max:

  • Ak nepočujete zvuk

    • uistite sa, že je Max nastavený na príjem zvuku z vášho mikrofónu (možnosti Vstupné zvukové stavové zariadenie)
    • uistite sa, že je zapnutý posúvač Hlavnej hlasitosti v Maxe a všetky ďalšie ovládače hlasitosti, ktoré môžete mať vo svojom kóde
  • Ak sa zdá, že kód nič nerobí

    • uistite sa, že je vaša oprava zamknutá (symbol zámku v dolnom ľavom rohu)
    • Pomocou odpočtov v záplate Max zabezpečte, aby vaša oprava Max stále získavala údaje zo sériového portu Arduino. Ak nie, skúste resetovať sériový port (ako je popísané v kroku 5) a/alebo skontrolovať vaše fyzické zapojenie.
  • Divné zvuky orezávania pri zmene parametrov

    to má niečo do činenia s tým, ako ~ tapin a ~ tapout fungujú; konkrétne, že keď zmeníte ich hodnoty, resetujú sa, čo spôsobí orezanie. Vzhľadom na naše obmedzené znalosti programu sme si takmer istí, že v Maxe existuje lepší spôsob, ako to urobiť a problém odstrániť …

Krok 7: Doslova to všetko dať dohromady

Doslova všetko dohromady
Doslova všetko dohromady
Doslova všetko dohromady
Doslova všetko dohromady
Doslova všetko dohromady
Doslova všetko dohromady
Doslova všetko dohromady
Doslova všetko dohromady

Všetko, čo teraz zostáva, je pripojiť naše obvody k našej rukavici. Vezmite si ďalšiu tkaninu a vystrihnite pásy o niečo väčšie ako ohybové senzory. Prišite ďalšiu tkaninu na prst rukavice, kde sa kĺb ohýba, pričom ponechajte akýsi rukáv, v ktorom bude sedieť snímač flexa (senzory flexa nemôžeme len tak prilepiť priamo na rukavicu, pretože tkanina rukavice sa pri ohýbaní prstov naťahuje). Akonáhle je objímka väčšinou ušitá, zasuňte flex senzor a opatrne prišite elektródy k rukavici tak, aby bol flex senzor upevnený na mieste. Opakujte to pre každý flex senzor.

Ďalej pomocou samolepiaceho zatváracieho špendlíka pripevnite Hex k zadnej časti rukavice (možno budete chcieť na špendlík naliať horúce lepidlo, aby ste sa uistili, že sa počas nosenia neodstráni). Prišite akcelerometer na zápästie rukavice. Nakoniec kúzlo zipsov krásne vyčistite od všetkých nevzhľadných drôtov.

Ste pripravení vyskúšať svoju dokonalú rukavicu speváckej sily! (Dôrazne odporúčame „Harder Better Faster Stronger“spoločnosti Daft Punk, aby ste naplno predviedli svoje schopnosti meniť hlas.)

Odporúča: