Obsah:

Nositelná technika: Rukavice měnící hlas: 7 kroků
Nositelná technika: Rukavice měnící hlas: 7 kroků

Video: Nositelná technika: Rukavice měnící hlas: 7 kroků

Video: Nositelná technika: Rukavice měnící hlas: 7 kroků
Video: Striking Training Gloves 2325-9.m4v 2024, Listopad
Anonim
Nositelná technologie: rukavice měnící hlas
Nositelná technologie: rukavice měnící hlas
Nositelná technologie: rukavice měnící hlas
Nositelná technologie: rukavice měnící hlas

Zdá se, že rukavice s neuvěřitelnými schopnostmi jsou v dnešní době v módě. Zatímco Thanosova Infinity Gauntlet je docela silná rukavice, chtěli jsme vyrobit rukavici, která by dokázala něco ještě pozoruhodnějšího: změnit hlas nositele v reálném čase.

Tento Instructable poskytuje návod, jak jsme navrhli rukavici pro změnu hlasu. Náš návrh využíval k detekci pohybů různé senzory a mikrokontrolér v rukavici, které byly odeslány prostřednictvím kódu Arduino do patche Max, kde byl náš zvukový signál poté zábavným způsobem pozměněn a zkreslen. Konkrétní senzory, pohyby a zvukové změny, které jsme použili, jsou flexibilní pro různé aspekty; toto je jen jeden způsob, jak vytvořit rukavici měnící hlas!

Tento projekt byl součástí komunitního partnerství mezi studenty Pomona College a Fremont Academy of Engineering Femineers. Je to opravdu zábavná kombinace elektronického inženýrství a prvků elektronické hudby!

Krok 1: Materiály

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

Díly:

  • Mikrokontrolér HexWear (ATmega32U4) (https://hexwear.com/)
  • Akcelerometr MMA8451 (https://www.adafruit.com/product/2019)
  • Krátké snímače pružnosti (x4) (https://www.adafruit.com/product/1070)
  • Lehká běžecká rukavice
  • Šrouby a podložky č. 2 (x8)
  • Krimpovací 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- 100ks)
  • Odpor 50 kΩ (x4)
  • Drát (~ 20 gauge)
  • Samolepicí zavírací špendlík
  • Plsť nebo jiná tkanina (~ 10 sq. In.)
  • Šicí nit
  • Zipties
  • Notebook
  • USB mikrofon

Nástroje

  • Pájecí sada
  • Odizolovače a řezačky drátu
  • Elektrická páska
  • Horkovzdušná pistole
  • Šroubovák
  • Nůžky
  • Jehla na šití

Software:

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

Krok 2: Instalace softwaru

Začneme tím, co je skutečně nejzábavnější částí každého projektu: instalace knihoven (a dalších).

Arduino:

Stáhněte si a nainstalujte software Arduino (https://www.arduino.cc/en/Main/Software).

HexWear:

1) (Pouze Windows, uživatelé systému Mac mohou tento krok přeskočit) Nainstalujte ovladač na adrese https://www.redgerbera.com/pages/hexwear-driver-installation. Stáhněte a nainstalujte ovladač (soubor.exe uvedený v kroku 2 v horní části propojené stránky RedGerbera).

2) Nainstalujte požadovanou knihovnu pro Hexware. Otevřete Arduino IDE. V části „Soubor“vyberte „Předvolby“. Vložte místo do prostoru určeného pro adresy URL správce dalších desek

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

Poté klikněte na „OK“.

Přejděte na Nástroje -> Deska: -> Správce desky. V nabídce v levém horním rohu vyberte „Přispěno“.

Vyhledejte a poté klikněte na desky Gerbera a klikněte na Instalovat. Ukončete a znovu otevřete Arduino IDE.

Chcete -li zajistit, aby byla knihovna nainstalována správně, přejděte do nabídky Nástroje -> Deska a přejděte do spodní části nabídky. Měli byste vidět sekci s názvem „Gerbera Boards“, ve které by se měl objevit alespoň HexWear (ne-li více desek jako mini-HexWear).

Akcelerometr:

Stáhněte si a nainstalujte knihovnu akcelerometru (https://learn.adafruit.com/adafruit-mma8451-accelerometer-breakout/wiring-and-test)

Krok 3: Připevnění akcelerometru

Připevnění akcelerometru
Připevnění akcelerometru
Připevnění akcelerometru
Připevnění akcelerometru

K interakci s tímto projektem potřebujeme dva hlavní typy senzorů: akcelerometr a flex senzory. Prozkoumáme je po jednom, počínaje akcelerometrem. Nejprve potřebujeme sladit hardwarová připojení.

Abyste zabránili poškození Hexu, doporučujeme protáhnout šroubem a podložkou č. 2 požadovanými porty a poté k tomuto šroubu připevnit všechna připojení. Aby se při hře s rukavicí něco neuvolnilo, je třeba spoje pájet a/nebo krimpovat. Pro každé připojení použijte několik palců drátu a proveďte následující připojení od šestihranu k akcelerometru (referenční informace naleznete na výše uvedených vývodech):

VSTUPNÍ NAPĚTÍ VINGROUND GNDSCL/D3 SCLSDA/D2 SDA

Když je vše zapojeno, jsme připraveni testovat!

Jako test spusťte ukázkový kód akcelerometru v Arduinu (Soubor-> Příklady-> Adafruit_MMA8451-> MMA8451demo) a ujistěte se, že může vystupovat na sériový monitor. Při udržování hladiny by mělo vydávat gravitační zrychlení (~ 10 m/s) ve směru z. Nakloněním akcelerometru bude toto zrychlení měřeno ve směru x nebo y; použijeme to, abychom nositeli umožnili změnit zvuk otáčením ruky!

Nyní musíme data akcelerometru prezentovat tak, aby je bylo možné propojit s Max. Abychom to mohli udělat, musíme vytisknout hodnoty x a y, případně upravené tak, aby odpovídaly požadovanému rozsahu (viz část 6). V našem připojeném kódu děláme následující:

// Změřte směr x a směr y. Dělíme a násobíme, abychom se dostali do správných rozsahů pro MAX (rozsah 1000 v x a rozsah 40 v y) xdir = event.acceleration.x/0,02; ydir = abs (event.acceleration.y)*2; // Vytiskněte vše ve čitelném formátu pro Max - s mezerami mezi každým číslem Serial.print (xdir); Serial.print ("");

To by mělo mít hexadecimální tisk upravených hodnot směrů xay y akcelerometru každý řádek. Nyní jsme připraveni přidat flex senzory!

Krok 4: Připevnění snímačů Flex

Připevnění snímačů Flex
Připevnění snímačů Flex
Připevnění snímačů Flex
Připevnění snímačů Flex
Připevnění snímačů Flex
Připevnění snímačů Flex

Pokud dokážeme ohýbat prsty, může uživatel získat spoustu potenciálních ovládacích prvků zvuku. Flex senzory to udělají. Každý flex senzor je v podstatě potenciometr, kde neohnutý má odpor ~ 25KΩ, zatímco plně flexovaný má odpor ~ 100KΩ. Každý flex senzor jsme vložili do jednoduchého děliče napětí s 50K odporem, jak ukazuje první obrázek.

Opět použijte poměrně krátké délky drátu (mějte na paměti, že to všechno bude pasovat na zadní část rukavice), pájejte čtyři moduly děliče napětí. Čtyři moduly budou sdílet stejný Vin a uzemnění-stočili jsme dohromady odizolované konce vodičů, takže bychom měli jen jeden vývod na pájku. Nakonec vezměte čtyři moduly a proveďte zapojení zobrazená na druhém obrázku (pokud někdo ví, jak to udělat, aniž byste dělali strašně zamotaný nepořádek, prozraďte svá tajemství).

Nyní potřebujeme kód Arduino pro čtení napětí z každého senzoru. Pro naše účely jsme flexe senzory považovali za přepínače; byly buď zapnuté, nebo vypnuté. Náš kód jako takový jednoduše nastaví prahovou hodnotu napětí-nad touto prahovou hodnotou vyvedeme 1 na sériový port (což znamená, že snímač je ohnutý), jinak vydáme 0:

// Vezměte několik

analogové vzorky a sečtěte je pro každý snímač Flex

while (sample_count <NUM_SAMPLES) {

sum10 += analogRead (A10);

sum9 += analogRead (A9);

sum7 += analogRead (A7);

sum11 += analogRead (A11);

sample_count ++;

// Krátké zpoždění, aby je nebrali příliš rychle

zpoždění (5);

}

// vypočítat napětí, průměrování z rychlých vzorků

// použijte 5.0 pro ADC 5.0V

referenční napětí

// 5,015 V je kalibrováno

referenční napětí

napětí10 = ((plovoucí) součet10 /

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

napětí9 = ((plovoucí) součet9/

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

napětí7 = ((plovoucí) součet7 /

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

napětí11 = ((plovoucí) součet11 /

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

// Zkontrolujte, zda každý flex senzor

je větší než prahová hodnota (thresh) - pokud ano, nastavte číslo

// Pinkie prst

if (napětí10> mlátit)

{

//-5 zvýšit

výška hlasu o jednu oktávu

flex10 = -10;

}

else flex10 = 0;

//Prsteník

pokud (napětí9>

(thresh-0,4)) {

// 5 snížit

výška hlasu o jednu oktávu

flex9 = 5;

}

else flex9 = 0;

//Prostředníček

if (napětí7> mlátit) {

// 1 k nastavení

efekt reverbu

flex7 = 1;

}

else flex7 = 0;

//Ukazováček

if (napětí11> mlátit)

{

// 50 k nastavení

cykly do 50

flex11 = 93;

}

else flex11 = 0;

// Reset všech počítání

proměnná na 0 pro další smyčku

sample_count = 0;

součet10 = 0;

součet9 = 0;

součet7 = 0;

součet11 = 0;

V tomto okamžiku by měl sériový port zobrazovat hodnoty pro orientaci akcelerometru a také to, zda je každý flex senzor ohnutý. Jsme připraveni, aby náš kód Arduino hovořil s Maxem!

Krok 5: Rozhraní s max

Rozhraní s max
Rozhraní s max

Nyní, když hexadecimální kód plivá spoustou čísel přes sériový port, potřebujeme software Max pro čtení těchto signálů. Blok kódu na obrázku výše to dělá! Jste srdečně zváni.

Důležitá poznámka: po nahrání kódu do Hex zavřete všechna okna sériového portu a poté změňte zakroužkované písmeno v kódu Max tak, aby odpovídalo hexadecimálnímu portu. Pokud si nejste jisti, které písmeno nastavit, stisknutím části „Tisk“kódu Max se zobrazí seznam všech připojených portů.

Vytištěná čára ze sériového portu Hexu se přečte přes blok kódu Max a poté se rozdělí na základě oddělovačů mezer. Výstup na konci bloku Max umožňuje uchopit každé číslo jednotlivě, takže první výstupní prostor připojíme tam, kam chceme, aby šel směr x akcelerometru, druhý prostor bude směr y atd. Pro Nyní je jednoduše připojte k číselným blokům, abyste se ujistili, že fungují. Měli byste být schopni pohybovat akcelerometrem a senzory flexe a sledovat změnu čísel v softwaru Max.

Krok 6: Sestavení zbytku maximálního kódu

Vzhledem k síle jazyka Max zde můžete opravdu popustit uzdu své fantazii všemi způsoby, jak pomocí své magické energetické rukavice změnit příchozí zvukový signál. Přesto, pokud vám dojdou nápady, výše je shrnutí toho, co náš Max kód dělá a jak funguje.

Pro každý parametr, který se pokoušíte změnit, si pravděpodobně budete chtít pohrávat s rozsahem hodnot pocházejících z kódu Arduino, abyste získali správnou citlivost.

Několik dalších tipů pro řešení potíží Max:

  • Pokud neslyšíte zvuk

    • ujistěte se, že je Max nastaven na příjem zvuku z vašeho mikrofonu (Možnosti Vstupní zvukové stavové zařízení)
    • ujistěte se, že je zapnutý jezdec hlavní hlasitosti v Max a všechny další ovládací prvky hlasitosti, které můžete mít v kódu
  • Pokud se zdá, že kód nic nedělá

    • ujistěte se, že je váš patch zamknutý (symbol zámku v dolním levém rohu)
    • zajistěte prostřednictvím odečtů v opravě Max, že vaše oprava Max stále získává data ze sériového portu Arduino. Pokud ne, zkuste resetovat sériový port (jak je popsáno v kroku 5) a/nebo zkontrolovat vaše fyzická zapojení.
  • Při změně parametrů podivné zvuky ořezávání

    to má co do činění s tím, jak ~ tapin a ~ tapout fungují; konkrétně, že když změníte jejich hodnoty, resetují se, což způsobí oříznutí. Vzhledem k našim omezeným znalostem programu jsme si téměř jisti, že existuje lepší způsob, jak to udělat v Max a odstranit problém…

Krok 7: Doslova dát vše dohromady

Doslova dát vše dohromady
Doslova dát vše dohromady
Doslova dát to všechno dohromady
Doslova dát to všechno dohromady
Doslova dát to všechno dohromady
Doslova dát to všechno dohromady
Doslova dát to všechno dohromady
Doslova dát to všechno dohromady

Teď už jen zbývá připojit naše obvody k rukavici. Vezměte si další látku a vystřihněte proužky o něco větší než ohybové senzory. Přišijte další látku k prstu rukavice, kde se klouby ohýbají, a ponechte jakýsi rukáv pro flex senzor, aby seděl (nemůžeme jen přilepit flex senzory přímo na rukavici, protože tkanina rukavice se při ohýbání prstů natahuje). Jakmile je rukáv většinou ušitý, zasuňte flex senzor dovnitř a opatrně přišijte elektrody k rukavici, fixujte flex senzor na místě. Opakujte to pro každý flex senzor.

Dále pomocí samolepicího bezpečnostního špendlíku připevněte Hex k zadní části rukavice (možná budete chtít na špendlík nanést horké lepidlo, abyste se ujistili, že se během nošení nevrátí). Přišijte akcelerometr k zápěstí rukavice. Nakonec pomocí kouzla zipů krásně vyčistěte všechny nevzhledné dráty.

Jste připraveni vyzkoušet svou špičkovou rukavici pro zpěv! (Můžeme vřele doporučit „Harder Better Faster Stronger“společnosti Daft Punk, abyste plně předvedli své schopnosti měnit hlas)

Doporučuje: