Innholdsfortegnelse:

Wearable Tech: Stemmeendrende hanske: 7 trinn
Wearable Tech: Stemmeendrende hanske: 7 trinn

Video: Wearable Tech: Stemmeendrende hanske: 7 trinn

Video: Wearable Tech: Stemmeendrende hanske: 7 trinn
Video: New spider gloves useful gloves #quick #technology 2024, November
Anonim
Wearable Tech: Stemmeendrende hanske
Wearable Tech: Stemmeendrende hanske
Wearable Tech: Stemmeendrende hanske
Wearable Tech: Stemmeendrende hanske

Vel, det virker som hansker med utrolige krefter er raseri i disse dager. Selv om Thanos 'Infinity Gauntlet er en ganske kraftig hanske, ønsket vi å lage en hanske som kunne gjøre noe enda mer bemerkelsesverdig: endre brukerens stemme i sanntid.

Denne instruksjonsboken gir en gjennomgang av hvordan vi designet en hanske som endrer stemme. Vår design brukte forskjellige sensorer og en mikrokontroller i hansken for å oppdage bevegelser, som ble sendt via en Arduino -kode til en Max -patch, der lydsignalet vårt deretter ble endret og forvrengt på morsomme måter. De spesifikke sensorene, bevegelsene og lydendringene vi brukte er alle fleksible for forskjellige hensyn; Dette er bare en måte å lage en stemmeskiftende hanske på!

Dette prosjektet var en del av et fellesskapspartnerskap mellom Pomona College -studenter og Fremont Academy of Engineering Femineers. Det er en skikkelig morsom blanding av elektronikk og elektroniske musikkelementer!

Trinn 1: Materialer

Materialer
Materialer
Materialer
Materialer
Materialer
Materialer

Deler:

  • HexWear Microcontroller (ATmega32U4) (https://hexwear.com/)
  • MMA8451 akselerometer (https://www.adafruit.com/product/2019)
  • Short Flex Sensors (x4) (https://www.adafruit.com/product/1070)
  • Lett løpehanske
  • #2 skruer og skiver (x8)
  • Krympeklemmer; 22-18 gauge (x8) (https://www.elecdirect.com/crimp-wire-terminals/ring-crimp-terminals/pvc-ring-terminals/ring-terminal-pvc-red-22-18-6- 100pk)
  • 50kΩ motstand (x4)
  • Wire (~ 20 gauge)
  • Selvklebende sikkerhetsnål
  • Filt eller annet stoff (~ 10 kvm)
  • Sytråd
  • Zipties
  • Laptop
  • USB -mikrofon

Verktøy

  • Loddesett
  • Wire strippere og wire cutters
  • Elektrisk tape
  • Varmluftspistol
  • Skrujern
  • Saks
  • Synål

Programvare:

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

Trinn 2: Installere programvaren

Vi begynner med det som virkelig er den mest spennende delen av ethvert prosjekt: installering av biblioteker (og mer).

Arduino:

Last ned og installer Arduino -programvaren (https://www.arduino.cc/en/Main/Software).

HexWear:

1) (bare Windows, Mac-brukere kan hoppe over dette trinnet) Installer driveren ved å besøke https://www.redgerbera.com/pages/hexwear-driver-installation. Last ned og installer driveren (.exe -filen oppført på trinn 2 øverst på den koblede RedGerbera -siden).

2) Installer nødvendig bibliotek for Hexware. Åpne Arduino IDE. Velg "Preferanser" under "File". Lim inn på plassen som er gitt for flere nettadresser for Boards Manager

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

Klikk deretter "OK".

Gå til Tools -> Board: -> Board Manager. Velg "Bidraget" fra menyen i venstre hjørne.

Søk etter, og klikk deretter på Gerbera Boards og klikk på Installer. Avslutt og åpne Arduino IDE på nytt.

For å sikre at biblioteket er riktig installert, gå til Verktøy -> Brett og bla til bunnen av menyen. Du bør se en seksjon med tittelen "Gerbera Boards", der det i det minste skulle vises HexWear (om ikke flere tavler som mini-HexWear).

Akselerometer:

Last ned og installer akselerometerbiblioteket (https://learn.adafruit.com/adafruit-mma8451-accelerometer-breakout/wiring-and-test)

Trinn 3: Fest akselerometeret

Fest akselerometeret
Fest akselerometeret
Fest akselerometeret
Fest akselerometeret

Vi trenger to hovedtyper sensorer for å samhandle med dette prosjektet: et akselerometer og flexsensorer. Vi vil undersøke disse om gangen, med start med akselerometeret. Først trenger vi maskinvaretilkoblingene for å samsvare.

For å unngå å skade Hex, anbefaler vi å sette en #2 skrue og skive gjennom de ønskede portene, og deretter feste alle tilkoblinger til den skruen. For å forhindre at noe løsner når du spiller med hansken, bør tilkoblinger loddes og/eller krympes. Bruk noen få centimeter ledning for hver tilkobling, og gjør følgende tilkoblinger fra sekskantet til akselerometeret (se pinoutene ovenfor for referanse):

INNGANGSPENNING VINGROUND GNDSCL/D3 SCLSDA/D2 SDA

Når alt er ferdig, er vi klare til å teste!

Som en test, kjør akselerometerprøvekoden i Arduino (Fil-> Eksempler-> Adafruit_MMA8451-> MMA8451demo), og sørg for at den kan sendes til seriell skjerm. Den skal levere akselerasjonen på grunn av tyngdekraften (~ 10m/s) i z -retningen når den holdes på nivå. Ved å vippe akselerometeret vil denne akselerasjonen måles i x- eller y -retningen; vi bruker dette til å la brukeren endre lyden ved å rotere hånden!

Nå må vi presentere akselerometerdataene på en slik måte at de kan kobles til Max. For å gjøre det må vi skrive ut verdiene til x og y, kanskje modifisert for å matche ønsket område (se del 6). I koden vår vedlagt her gjør vi følgende:

// Mål x-retningen og y-retningen. Vi deler og multipliserer for å komme inn i de riktige områdene for MAX (område på 1000 i x og område på 40 i y) xdir = event.acceleration.x/0.02; ydir = abs (event.acceleration.y)*2; // Skriv ut alt i et lesbart format for Max - med mellomrom mellom hvert nummer Serial.print (xdir); Serial.print ("");

Dette bør få Hex til å skrive ut de modifiserte verdiene for x- og y -retningene til akselerometeret hver linje. Nå er vi klare til å legge til flex -sensorene!

Trinn 4: Fest Flex -sensorene

Fest Flex -sensorene
Fest Flex -sensorene
Fest Flex -sensorene
Fest Flex -sensorene
Fest Flex -sensorene
Fest Flex -sensorene

Brukeren kan få mange potensielle lydkontroller hvis vi kan oppdage bøyende fingre. Flex -sensorene vil gjøre nettopp det. Hver flex -sensor er i hovedsak et potensiometer, hvor unflexed har en motstand på ~ 25KΩ, mens fullt flexed har en motstand på ~ 100KΩ. Vi legger hver flexsensor i en enkel spenningsdeler med en 50K motstand, som vist på det første bildet.

Igjen bruker du ganske korte trådlengder (husk at alt passer på baksiden av hansken), lodd fire spenningsdelermoduler. De fire modulene vil dele den samme Vin og malt-vi vridd sammen de avisolerte endene på ledningene, slik at vi bare ville ha en ledning til lodding. Til slutt, ta de fire modulene og gjør tilkoblingene som vises i det andre bildet (hvis noen vet hvordan de skal gjøre dette uten å gjøre et fryktelig flokete rot, vennligst avslør hemmelighetene dine).

Nå trenger vi Arduino -koden for å lese inn spenningene fra hver sensor. For vårt formål behandlet vi flexsensorene som brytere; de var enten på eller av. Som sådan setter koden vår ganske enkelt en spenningsterskel-over denne terskelen, vi sender ut en 1 til serieporten (betyr at sensoren er bøyd), ellers sender vi ut en 0:

// Ta en rekke

analoge prøver og legg dem til for hver Flex -sensor

mens (sample_count <NUM_SAMPLES) {

sum10 += analogRead (A10);

sum9 += analogRead (A9);

sum7 += analogRead (A7);

sum11 += analogRead (A11);

sample_count ++;

// Kort forsinkelse for ikke å ta dem for raskt

forsinkelse (5);

}

// beregne spenningen, gjennomsnitt over de raske prøvene

// bruk 5.0 for en 5.0V ADC

referansespenning

// 5.015V er kalibrert

referansespenning

voltage10 = ((float) sum10 /

(flyte) NUM_SAMPLES * 5.015) / 1024.0;

spenning9 = ((float) sum9/

(flyte) NUM_SAMPLES * 5.015) / 1024.0;

spenning7 = ((float) sum7 /

(flyte) NUM_SAMPLES * 5.015) / 1024.0;

voltage11 = ((float) sum11 /

(flyte) NUM_SAMPLES * 5.015) / 1024.0;

// Sjekk om hver flex sensor

er større enn terskel (tersk) - sett i så fall tallet

// Pinkifinger

hvis (spenning10> tersk)

{

//-5 for å heve

stemmehøyde med en oktav

flex10 = -10;

}

ellers flex10 = 0;

//Ringfingeren

hvis (spenning9>

(tersk-0.4)) {

// 5 for å senke

stemmehøyde med en oktav

flex9 = 5;

}

annet flex9 = 0;

//Langfinger

if (voltage7> thresh) {

// 1 for å angi

reverb effekt

flex7 = 1;

}

annet flex7 = 0;

//Pekefinger

hvis (spenning11> tersk)

{

// 50 for å angi

sykluser til 50

flex11 = 93;

}

ellers flex11 = 0;

// Tilbakestill all tellingen

variabel til 0 for neste sløyfe

sample_count = 0;

sum10 = 0;

sum9 = 0;

sum7 = 0;

sum11 = 0;

På dette tidspunktet bør den serielle porten vise verdier for akselerometerretningen, og også om hver flex -sensor er bøyd. Vi er klare til å få Arduino -koden vår til å snakke med Max!

Trinn 5: Grensesnitt med maks

Grensesnitt med maks
Grensesnitt med maks

Nå som Hex -koden spytter mange tall gjennom serieporten, trenger vi Max -programvaren for å lese disse signalene. Kodeblokken avbildet ovenfor gjør nettopp det! Du er hjertelig velkommen.

Viktig merknad: Etter å ha lastet opp koden til Hex, lukker du alle serielle portvinduer, og deretter endrer du den sirkulerte bokstaven i Maks -koden for å matche Hex -porten. Hvis du er usikker på hvilken bokstav du skal angi, vil alle "tilkoblede porter" vises ved å trykke på "skrive ut" -delen av Maks -koden.

Den trykte linjen fra Hex serielle port leses gjennom Max -kodeblokken, og deles deretter basert på mellomromstegnene. Utgangen på slutten av Max -blokken lar deg fange hvert tall individuelt, så vi vil koble det første utgangsområdet til der vi vil at x -retningen til akselerometeret skal gå, det andre rommet vil være y -retningen, etc. For nå, bare koble disse til nummerblokker for å sikre at de fungerer. Du bør kunne flytte akselerometeret og flex -sensorene og se tallene endres i Max -programvaren.

Trinn 6: Bygg resten av maks -koden

Gitt kraften i Max -språket, kan du virkelig la fantasien løpe vilt her med alle måtene du kan endre det innkommende lydsignalet med din magiske krafthanske. Likevel, hvis du går tom for ideer, er en oversikt over hva Max -koden vår gjør og hvordan den fungerer.

For hver parameter du prøver å endre, vil du sannsynligvis rote rundt med verdiområdet fra Arduino -koden for å få akkurat den riktige følsomheten.

Noen andre Max -feilsøkingstips:

  • Hvis du ikke hører lyd

    • Sørg for at Max er satt til å motta lyd fra mikrofonen (alternativer for lydstatusinnmatingsenhet)
    • Sørg for at Master Volume -glidebryteren i Max er skrudd opp, og at alle andre volumkontroller du måtte ha i koden
  • Hvis koden ikke ser ut til å gjøre noe

    • sørg for at lappen er låst (låsesymbol i nedre venstre hjørne)
    • sikre via avlesninger i Max -oppdateringen at Max -oppdateringen fremdeles får data fra Arduino seriell port. Hvis ikke, kan du prøve å tilbakestille den serielle porten (som beskrevet i trinn 5) og/eller kontrollere de fysiske tilkoblingene.
  • Merkelige klippelyder ved endring av parametere

    dette er noe å gjøre med hvordan ~ tapin og ~ tapout fungerer; spesielt at når du endrer verdiene deres, tilbakestilles de, noe som forårsaker klipping. Gitt vår begrensede kunnskap om programmet, er vi nesten sikre på at det er en bedre måte å gjøre dette på i Max og eliminere problemet …

Trinn 7: Sett bokstavelig talt alt sammen

Bokstavelig talt å sette alt sammen
Bokstavelig talt å sette alt sammen
Bokstavelig talt å sette alt sammen
Bokstavelig talt å sette alt sammen
Bokstavelig talt å sette alt sammen
Bokstavelig talt å sette alt sammen
Bokstavelig talt å sette alt sammen
Bokstavelig talt å sette alt sammen

Alt som gjenstår nå er å feste kretsene våre til hansken. Ta ekstra stoff og klipp ut strimler som er litt større enn flex -sensorene. Sy det ekstra stoffet til fingeren på hansken der knoken bøyes, og la en slags erme for flex -sensoren sitte i (vi kan ikke bare lime flex -sensorene direkte til hansken fordi hanskestoffet strekker seg når fingrene bøyer seg). Når ermet for det meste er sydd, skyver du inn flexsensoren og syer forsiktig ledningene til hansken, og fester flexsensoren på plass. Gjenta dette for hver flex -sensor.

Deretter bruker du den selvklebende sikkerhetsnålen til å feste Hex på baksiden av hansken (det kan være lurt å legge litt varmt lim på pinnen for å sikre at den ikke blir angret under slitasje). Sy akselerometeret til håndleddet på hansken. Til slutt, bruk magien i glidelåser for å vakkert rydde opp i stygge ledninger.

Du er klar til å teste din ultimate sangkrafthanske! (Kan vi anbefale Daft Punk's "Harder Better Faster Stronger" på det sterkeste for å vise frem evnen til å endre stemmen din fullt ut)

Anbefalt: