Sadržaj:
- Korak 1: Materijali
- Korak 2: Instaliranje softvera
- Korak 3: Priključivanje mjerača brzine
- Korak 4: Priključivanje savitljivih senzora
- Korak 5: Povezivanje s Max
- Korak 6: Izgradnja ostatka maks. Koda
- Korak 7: Bukvalno sve spojite
Video: Nosiva tehnika: Rukavica za promjenu glasa: 7 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:07
Pa, čini se da su rukavice s nevjerojatnim moćima u modi ovih dana. Iako je Thanos's Infinity Gauntlet prilično moćna rukavica, htjeli smo napraviti rukavicu koja bi mogla učiniti nešto još izuzetnije: promijeniti glas korisnika u stvarnom vremenu.
Ovaj Instructable pruža uvid u to kako smo dizajnirali rukavice za promjenu glasa. Naš dizajn je koristio različite senzore i mikrokontroler u rukavici za detekciju pokreta, koji su poslati putem Arduino koda na Max patch, gdje je naš zvučni signal tada promijenjen i izobličen na zabavan način. Specifični senzori, pokreti i izmjene zvuka koje smo koristili fleksibilni su za različita razmatranja; ovo je samo jedan način za stvaranje rukavice za promjenu glasa!
Ovaj projekt bio je dio partnerstva zajednice između studenata Fakulteta Pomona i Fremont Academy of Engineering Femineers. To je prava zabavna mješavina elektroničkog inženjeringa i elemenata elektroničke glazbe!
Korak 1: Materijali
Dijelovi:
- HexWear mikrokontroler (ATmega32U4) (https://hexwear.com/)
- MMA8451 Akcelerometar (https://www.adafruit.com/product/2019)
- Kratki fleksibilni senzori (x4) (https://www.adafruit.com/product/1070)
- Lagane rukavice za trčanje
- #2 vijci i podloške (x8)
- Spojite terminalne konektore; 22-18 mjerač (x8) (https://www.elecdirect.com/crimp-wire-terminals/ring-crimp-terminals/pvc-ring-terminals/ring-terminal-pvc-red-22-18-6- 100pk)
- 50kΩ otpornik (x4)
- Žica (kalibar ~ 20)
- Samoljepljiva sigurnosna igla
- Filc ili druga tkanina (~ 10 kvadratnih inča)
- Konac za šivanje
- Zipties
- Laptop
- USB mikrofon
Alati
- Komplet za lemljenje
- Skidači žice i rezači žice
- Električna traka
- Pištolj sa toplim vazduhom
- Šrafciger
- Makaze
- Šivaća igla
Softver:
- Max biciklizmom '74 (https://cycling74.com)
- Arduino softver (https://www.arduino.cc/en/Main/Software)
Korak 2: Instaliranje softvera
Počinjemo s onim što je zaista najuzbudljiviji dio svakog projekta: instaliranjem biblioteka (i više).
Arduino:
Preuzmite i instalirajte Arduino softver (https://www.arduino.cc/en/Main/Software).
HexWear:
1) (Samo za Windows, korisnici Mac računara mogu preskočiti ovaj korak) Instalirajte upravljački program posjetom https://www.redgerbera.com/pages/hexwear-driver-installation. Preuzmite i instalirajte upravljački program (.exe datoteka navedena u 2. koraku na vrhu povezane stranice RedGerbera).
2) Instalirajte potrebnu biblioteku za Hexware. Otvorite Arduino IDE. U odjeljku "Datoteka" odaberite "Postavke". Zalijepite u prostor predviđen za dodatne URL -ove upravitelja ploča
github.com/RedGerbera/Gerbera-Boards/raw/master/package_RedGerbera_index.json.
Zatim kliknite "OK".
Idite na Alati -> Odbor: -> Upravitelj odbora. U izborniku u gornjem lijevom kutu odaberite "Doprinos".
Potražite, a zatim kliknite na Gerbera ploče i kliknite Instaliraj. Zatvorite i ponovo otvorite Arduino IDE.
Da biste bili sigurni da je biblioteka ispravno instalirana, idite na Alati -> Ploča i pomaknite se do dna izbornika. Trebali biste vidjeti odjeljak pod naslovom "Gerbera ploče", pod kojim bi se barem trebao pojaviti HexWear (ako ne i više ploča poput mini-HexWear-a).
Akcelerometar:
Preuzmite i instalirajte biblioteku akcelerometra (https://learn.adafruit.com/adafruit-mma8451-accelerometer-breakout/wiring-and-test)
Korak 3: Priključivanje mjerača brzine
Za interakciju s ovim projektom potrebne su nam dvije glavne vrste senzora: akcelerometar i fleks senzori. Ispitaćemo ih jedan po jedan, počevši od akcelerometra. Prvo, potrebne su nam hardverske veze.
Kako biste izbjegli oštećenje vašeg Hexa, preporučujemo da stavite vijak #2 i podlošku kroz željene priključke, a zatim pričvrstite sve veze na taj vijak. Kako se ništa ne bi olabavilo tijekom igre s rukavicom, spojeve treba zalemiti i/ili presaviti. Koristeći nekoliko centimetara žice za svaku vezu, napravite sljedeće veze od šestougaonika do akcelerometra (pogledajte gornje spojeve za referencu):
ULAZNI NAPON VINGROUND GNDSCL/D3 SCLSDA/D2 SDA
Sa svim ožičenim, spremni smo za testiranje!
Kao test, pokrenite uzorak koda akcelerometra u Arduinu (Datoteka-> Primjeri-> Adafruit_MMA8451-> MMA8451demo), pazeći da može izlaziti na serijski monitor. On bi trebao ubrzati uslijed gravitacije (~ 10m/s) u smjeru z kada se drži u ravnini. Naginjanjem mjerača ubrzanja, ovo će se ubrzanje mjeriti u smjeru x ili y; upotrijebit ćemo ovo da omogućimo korisniku da promijeni zvuk okretanjem ruke!
Sada moramo prikazati podatke akcelerometra na takav način da se mogu povezati s Max. Da bismo to učinili, moramo ispisati vrijednosti x i y, možda modificirane tako da odgovaraju željenom rasponu (vidi dio 6). U našem kodu koji je ovdje priložen radimo sljedeće:
// Izmjerite smjer x i smjer y. Dijelimo i množimo da bismo ušli u prave raspone za MAX (raspon 1000 u x i raspon 40 u y) xdir = event.acceleration.x/0.02; ydir = abs (event.acceleration.y)*2; // Štampa sve u čitljivom formatu za Max - s razmacima između svakog broja Serial.print (xdir); Serial.print ("");
Ovo bi trebalo da ima heksadecimalni ispis izmjenjenih vrijednosti smjerova x i y akcelerometra u svakom retku. Sada smo spremni za dodavanje fleks senzora!
Korak 4: Priključivanje savitljivih senzora
Nosač može dobiti mnogo potencijalnih kontrola zvuka ako možemo otkriti savijene prste. Fleks senzori će upravo to učiniti. Svaki senzor savijanja je u biti potenciometar, gdje nesavitljiv ima otpor ~ 25KΩ, dok potpuno savijen ima otpor ~ 100KΩ. Svaki senzor savijanja stavljamo u jednostavan razdjelnik napona sa 50K otpornikom, kao što je prikazano na prvoj slici.
Opet koristeći prilično kratke žice (imajte na umu da će sve to stati na stražnju stranu rukavice), lemite četiri razdjelnika napona. Četiri modula dijelit će isti Vin i uzemljenje-uvili smo zajedno ogoljene krajeve žica kako bismo imali samo jedan provodnik za lemljenje. Na kraju, uzmite četiri modula i uspostavite veze prikazane na drugoj slici (ako neko zna kako to učiniti bez stvaranja užasno zamršenog nereda, otkrijte svoje tajne).
Sada nam je potreban Arduino kod za očitavanje napona sa svakog senzora. U naše svrhe smo senzore savijanja tretirali kao prekidače; bili su ili uključeni ili isključeni. Kao takav, naš kôd jednostavno postavlja prag napona-iznad ovog praga, izlazimo 1 na serijski port (što znači da je senzor savijen), inače izlazimo 0:
// Uzmite određeni broj
analognih uzoraka i zbrajajte ih za svaki Flex senzor
while (broj uzoraka <NUM_SAMPLES) {
sum10 += analogRead (A10);
sum9 += analogRead (A9);
sum7 += analogRead (A7);
sum11 += analogRead (A11);
sample_count ++;
// Kratko kašnjenje kako ih ne biste uzeli prebrzo
kašnjenje (5);
}
// izračunati napon, usrednjavanje za brze uzorke
// koristiti 5.0 za 5.0V ADC
referentni napon
// 5.015V je kalibrirano
referentni napon
napon10 = ((float) zbir10 /
(float) NUM_SAMPLES * 5.015) / 1024.0;
napon9 = ((plutajući) zbroj9/
(float) NUM_SAMPLES * 5.015) / 1024.0;
napon7 = ((plutajući) zbir7 /
(float) NUM_SAMPLES * 5.015) / 1024.0;
napon11 = ((float) zbir11 /
(float) NUM_SAMPLES * 5.015) / 1024.0;
// Provjerite svaki senzor savijanja
je veći od praga (prag) - ako je tako, postavite broj
// Pinkie finger
ako (napon10> prag)
{
//-5 za podizanje
visina glasa za jednu oktavu
flex10 = -10;
}
else flex10 = 0;
// Prstenjak
ako (napon9>
(mlaćenje-0,4)) {
// 5 za smanjenje
visina glasa za jednu oktavu
flex9 = 5;
}
else flex9 = 0;
//Srednji prst
if (voltage7> thresh) {
// 1 za postavljanje
reverb efekat
flex7 = 1;
}
else flex7 = 0;
//Kažiprst
ako (napon11> prag)
{
// 50 za postavljanje
ciklusa do 50
flex11 = 93;
}
else flex11 = 0;
// Poništite sva odbrojavanja
promenljiva na 0 za sledeću petlju
uzorak_broj = 0;
sum10 = 0;
sum9 = 0;
sum7 = 0;
sum11 = 0;
U ovom trenutku, serijski port trebao bi prikazati vrijednosti za orijentaciju akcelerometra, kao i da li je svaki fleks senzor savijen. Spremni smo da naš Arduino kod razgovara s Maxom!
Korak 5: Povezivanje s Max
Sada kada Hex kod pljuva mnogo brojeva kroz serijski port, potreban nam je softver Max za čitanje ovih signala. Blok koda prikazan gore čini upravo to! Nema na čemu.
Važna napomena: nakon što učitate kôd u Hex, zatvorite sve prozore serijskog porta, a zatim promijenite zaokruženo slovo u Max kodu tako da odgovara Hex portu. Ako niste sigurni koje slovo postaviti, pritiskom na dio „print“u Max kodu prikazat će se svi povezani portovi.
Odštampana linija sa serijskog porta Hex -a se čita kroz blok Max koda, a zatim se dijeli na osnovu graničnika razmaka. Izlaz na kraju Max bloka omogućuje vam da uhvatite svaki broj pojedinačno, pa ćemo prvi izlazni prostor spojiti na mjesto na koje želimo da ide x smjer akcelerometra, drugi razmak bit će smjer y itd. sada ih samo spojite na numeričke blokove kako biste bili sigurni da rade. Trebali biste biti u mogućnosti pomicati mjerač ubrzanja i senzore savijanja te vidjeti promjene u softveru Max.
Korak 6: Izgradnja ostatka maks. Koda
S obzirom na snagu jezika Max, ovdje možete zaista pustiti mašti na volju sa svim načinima na koje možete promijeniti dolazni zvučni signal pomoću svoje čarobne rukavice. Ipak, ako vam ponestane ideja, gore je pregled onoga što naš Max kod radi i kako funkcionira.
Za svaki parametar koji pokušavate promijeniti, vjerojatno ćete se htjeti petljati s rasponom vrijednosti koje dolaze iz Arduino koda kako biste dobili pravu osjetljivost.
Neki drugi Max savjeti za rješavanje problema:
-
Ako ne čujete zvuk
- provjerite je li Max postavljen za prijem zvuka s vašeg mikrofona (Opcije Audio Status Ulazni uređaj)
- provjerite je li klizač Master Volume u Maxu uključen i sve ostale kontrole glasnoće koje možda imate u kodu
- Ako se čini da kôd ne radi ništa
- provjerite je li vaša zakrpa zaključana (simbol zaključavanja u donjem lijevom kutu)
- osigurajte putem očitanja u zakrpi Max da vaša zakrpa za Max i dalje prima podatke s Arduino serijskog porta. Ako nije, pokušajte resetirati serijski port (kako je navedeno u koraku 5) i/ili provjerite fizičke veze ožičenja.
- Čudni šumovi pri rezanju pri promjeni parametara
ovo ima neke veze s načinom na koji ~ tapin i ~ tapout rade; konkretno da se, kada promijenite njihove vrijednosti, resetiraju, što uzrokuje izrezivanje. S obzirom na naše ograničeno znanje o programu, gotovo smo sigurni da postoji bolji način da to učinite u Maxu i riješite problem …
Korak 7: Bukvalno sve spojite
Sve što sada preostaje je priključiti naše strujno kolo na rukavicu. Uzmite dodatnu tkaninu i izrežite trake nešto veće od senzora savijanja. Prišite dodatnu tkaninu na prst rukavice gdje se zglob savija, ostavljajući svojevrsni rukav u koji može sjediti fleks senzor (ne možemo samo zalijepiti fleks senzore direktno na rukavicu jer se tkanina rukavice rasteže dok se prsti savijaju). Nakon što je rukav većinom sašiven, gurnite senzor savijanja prema unutra i pažljivo prišijte elektrode do rukavice, pričvršćujući senzor savijanja na mjestu. Ponovite ovo za svaki senzor savijanja.
Zatim pomoću samoljepljive sigurnosne igle pričvrstite šesterokut na stražnju stranu rukavice (možda biste htjeli staviti malo vrućeg ljepila na iglu kako biste bili sigurni da se neće poništiti tijekom nošenja). Prišijte akcelerometar na ručni zglob rukavice. Na kraju, upotrijebite čaroliju patentnih zatvarača da lijepo očistite sve neugledne žice.
Spremni ste da isprobate svoju vrhunsku pjevačku moć! (Možemo toplo preporučiti "Harder Better Faster Stronger" Daft Punka da u potpunosti pokažete svoje sposobnosti mijenjanja glasa)
Preporučuje se:
Jednostavna i modularna nosiva svjetla!: 5 koraka (sa slikama)
Jednostavna i modularna svjetla za nošenje!: Izgradite veličanstvena, futuristička i podesiva svjetla za nošenje sa samo nekoliko jeftinih (i isporučivih) dijelova! Pričvrstite se na sve vrste opreme i zamijenite boje tako da odgovaraju odjeći/osjećajima/praznicima/svim stvarima! Teškoća: Početnik+ (vojnici
Nosiva tehnika za djecu: Hero Traka: 4 koraka
Wearable Tech for Kids: Hero Armand: Ova instrukcija će pokriti kako napraviti 'hero traku' koja svijetli kada se nosi. Koristeći provodljivu traku od tkanine, provodne niti i LED za šivanje ovo je odlična aktivnost za učenike da nauče osnove kola i nosive tehnologije. Te
Nosiva tehnika: Vazdušni bubnjevi: 5 koraka
Wearable Tech: Air Drums: Naš cilj ovog projekta bio je napraviti komplet nosivih bubnjeva od nekih akcelerometara i piezo diskova. Zamisao je bila da će se udarcem ruke svirati zamka; ili bi se, pod pritiskom jedne noge, zasvirao zvuk hi-hat-a ili bas bubnja. Kontroli
Infigo - (nosiva rukavica s umjetnom inteligencijom): 9 koraka
Infigo - (Nosiva rukavica na bazi umjetne inteligencije): Infigo je rukavica za nošenje sa AI (umjetna inteligencija) zasnovana na principima pomoćne tehnologije (AT) koja će povećati produktivnost društva sa oštećenjima. Umjetna inteligencija i mašinsko učenje ne mogu zamijeniti ljudsku inteligenciju
Čarobnjačka rukavica: Arduino kontrolisana rukavica: 4 koraka (sa slikama)
Wizard Glove: Arduino kontrolisana rukavica: The Wizard Glove. U mom projektu napravio sam rukavicu koju možete koristiti za igranje vaših omiljenih igara vezanih uz magiju na hladan i sveobuhvatan način koristeći samo nekoliko osnovnih arduino i arduino materijala. možete igrati igre poput starijih svitaka ili