Indholdsfortegnelse:

Bærbar teknologi: stemmeskiftende handske: 7 trin
Bærbar teknologi: stemmeskiftende handske: 7 trin

Video: Bærbar teknologi: stemmeskiftende handske: 7 trin

Video: Bærbar teknologi: stemmeskiftende handske: 7 trin
Video: Умная одежда будущего 2024, November
Anonim
Bærbar teknologi: Handske med stemmeskift
Bærbar teknologi: Handske med stemmeskift
Bærbar teknologi: Handske med stemmeskift
Bærbar teknologi: Handske med stemmeskift

Nå, det ser ud til, at handsker med utrolige kræfter er raseri i disse dage. Selvom Thanos 'Infinity Gauntlet er en temmelig kraftig handske, ville vi lave en handske, der kunne gøre noget endnu mere bemærkelsesværdigt: ændre brugerens stemme i realtid.

Denne Instructable giver en gennemgang af, hvordan vi designede en stemmeskiftende handske. Vores design brugte forskellige sensorer og en mikrocontroller i handsken til at registrere bevægelser, der blev sendt via en Arduino -kode til en Max -patch, hvor vores lydsignal derefter blev ændret og forvrænget på sjove måder. De specifikke sensorer, bevægelser og lydændringer, vi brugte, er alle fleksible til forskellige overvejelser; dette er kun en måde at skabe en stemmeskiftende handske på!

Dette projekt var en del af et fællesskabspartnerskab mellem Pomona College -studerende og Fremont Academy of Engineering Femineers. Det er en rigtig sjov blanding af elektronisk teknik og elektroniske musikelementer!

Trin 1: Materialer

Materialer
Materialer
Materialer
Materialer
Materialer
Materialer

Dele:

  • HexWear Microcontroller (ATmega32U4) (https://hexwear.com/)
  • MMA8451 Accelerometer (https://www.adafruit.com/product/2019)
  • Korte flexsensorer (x4) (https://www.adafruit.com/product/1070)
  • Let løbehandske
  • #2 skruer og skiver (x8)
  • Crimp terminal stik; 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Ω modstand (x4)
  • Tråd (~ 20 gauge)
  • Selvklæbende sikkerhedsnål
  • Filt eller andet stof (~ 10 kvm.)
  • Sytråd
  • Zips
  • Bærbar
  • USB -mikrofon

Værktøjer

  • Loddesæt
  • Wire strippere og trådskærere
  • Elektrisk tape
  • Varmluftspistol
  • Skruetrækker
  • Saks
  • Synål

Software:

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

Trin 2: Installation af softwaren

Vi kommer i gang med det, der virkelig er den mest spændende del af ethvert projekt: installation af biblioteker (og mere).

Arduino:

Download og installer Arduino -softwaren (https://www.arduino.cc/en/Main/Software).

HexWear:

1) (kun Windows, Mac-brugere kan springe dette trin over) Installer driveren ved at besøge https://www.redgerbera.com/pages/hexwear-driver-installation. Download og installer driveren (.exe -filen, der er angivet i trin 2 øverst på den linkede RedGerbera -side).

2) Installer det nødvendige bibliotek til Hexware. Åbn Arduino IDE. Vælg "Indstillinger" under "Fil". Indsæt i den plads, der er angivet til Yderligere Boards Manager -webadresser

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

Klik derefter på "OK".

Gå til Værktøjer -> Board: -> Board Manager. Vælg "Bidraget" i menuen øverst til venstre.

Søg efter, og klik derefter på Gerbera Boards, og klik på Installer. Afslut og genåbn Arduino IDE.

For at sikre, at biblioteket er installeret korrekt, skal du gå til Værktøjer -> Board og rulle til bunden af menuen. Du bør se et afsnit med titlen "Gerbera Boards", hvorunder der i det mindste skal vises HexWear (hvis ikke flere boards som mini-HexWear).

Accelerometer:

Download og installer accelerometerbiblioteket (https://learn.adafruit.com/adafruit-mma8451-accelerometer-breakout/wiring-and-test)

Trin 3: Montering af accelerometeret

Vedhæftning af accelerometeret
Vedhæftning af accelerometeret
Vedhæftning af accelerometeret
Vedhæftning af accelerometeret

Vi har brug for to hovedtyper af sensorer for at interagere med dette projekt: et accelerometer og flexsensorer. Vi undersøger disse ad gangen, begyndende med accelerometeret. For det første har vi brug for hardwareforbindelserne for at matche.

For at undgå at beskadige din Hex anbefaler vi at sætte en #2 skrue og skive gennem de ønskede porte og derefter fastgøre alle forbindelser til den skrue. For at forhindre, at noget løsner, når man spiller med handsken, skal forbindelser loddes og/eller krympes. Brug et par centimeter ledning til hver forbindelse, og foretag følgende forbindelser fra Hex til accelerometeret (se pinouterne ovenfor for reference):

INDGANGSPÆNDING VINGROUND GNDSCL/D3 SCLSDA/D2 SDA

Når alt er tilsluttet, er vi klar til at teste!

Som en test, kør accelerometerprøvekoden i Arduino (Fil-> Eksempler-> Adafruit_MMA8451-> MMA8451demo), og sørg for, at den kan udsendes til den serielle skærm. Den skal levere accelerationen på grund af tyngdekraften (~ 10m/s) i z -retning, når den holdes på niveau. Ved at vippe accelerometeret måles denne acceleration i x- eller y -retningen; vi vil bruge dette til at give brugeren mulighed for at ændre lyden ved at dreje deres hånd!

Nu skal vi præsentere accelerometerdataene på en sådan måde, at de kan forbindes med Max. For at gøre dette skal vi udskrive værdierne for x og y, måske ændret for at matche det ønskede område (se del 6). I vores kode vedhæftet her gør vi følgende:

// Mål x-retning og y-retning. Vi deler og multiplicerer for at komme ind i de rigtige områder 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; // Udskriv alt i et læsbart format til Max - med mellemrum mellem hvert nummer Serial.print (xdir); Serial.print ("");

Dette skal have Hex til at udskrive de modificerede værdier for accelerationsmålerets x og y -retning på hver linje. Nu er vi klar til at tilføje flexsensorerne!

Trin 4: Montering af Flex -sensorerne

Montering af Flex -sensorerne
Montering af Flex -sensorerne
Montering af Flex -sensorerne
Montering af Flex -sensorerne
Montering af Flex -sensorerne
Montering af Flex -sensorerne

Brugeren kan få masser af potentielle lydkontroller, hvis vi kan registrere bøjning af fingre. Flex -sensorerne gør netop det. Hver flex -sensor er i det væsentlige et potentiometer, hvor unflexed har en modstand på ~ 25KΩ, mens fuldt flexed har en modstand på ~ 100KΩ. Vi sætter hver flexsensor i en simpel spændingsdeler med en 50K modstand, som vist på det første billede.

Igen ved at bruge temmelig korte trådlængder (husk på, at det hele passer til bagsiden af en handske), lod fire spændingsdelermoduler. De fire moduler vil dele den samme Vin og malet-vi snoede sammen de afisolerede ender af ledningerne, så vi ville have kun en ledning til lodning. Til sidst skal du tage de fire moduler og oprette forbindelserne vist i det andet billede (hvis nogen ved, hvordan man gør dette uden at lave et frygteligt sammenfiltret rod, skal du afsløre dine hemmeligheder).

Nu har vi brug for Arduino -koden for at aflæse spændingerne fra hver sensor. Til vores formål behandlede vi flexsensorerne som switches; de var enten tændt eller slukket. Som sådan sætter vores kode simpelthen en spændingstærskel-over denne tærskel, vi sender et 1 til seriel port (hvilket betyder, at sensoren er bøjet), ellers sender vi et 0:

// Tag et antal

analoge prøver og tilføj dem 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 at tage dem for hurtigt

forsinkelse (5);

}

// beregne spændingen, i gennemsnit over de hurtige prøver

// brug 5.0 til en 5.0V ADC

referencespænding

// 5.015V er den kalibrerede

referencespænding

spænding10 = ((float) sum10 /

(float) NUM_SAMPLES * 5.015) / 1024.0;

spænding9 = ((float) sum9/

(float) NUM_SAMPLES * 5.015) / 1024.0;

spænding7 = ((float) sum7 /

(float) NUM_SAMPLES * 5.015) / 1024.0;

spænding11 = ((float) sum11 /

(float) NUM_SAMPLES * 5.015) / 1024.0;

// Kontroller, om hver flex sensor

er større end tærsklen (tærskning) - i så fald skal du indstille tallet

// Pinkifinger

hvis (spænding10> tærskning)

{

//-5 for at hæve

stemmehøjde med en oktav

flex10 = -10;

}

ellers flex10 = 0;

//Ringfinger

hvis (spænding9>

(tærsk-0.4)) {

// 5 for at sænke

stemmehøjde med en oktav

flex9 = 5;

}

ellers flex9 = 0;

//Lange finger

hvis (spænding7> tærske) {

// 1 for at indstille

rumklangseffekt

flex7 = 1;

}

ellers flex7 = 0;

//Pegefinger

hvis (spænding11> tærske)

{

// 50 for at indstille

cykler til 50

flex11 = 93;

}

ellers flex11 = 0;

// Nulstil al tællingen

variabel til 0 for den næste sløjfe

sample_count = 0;

sum10 = 0;

sum9 = 0;

sum7 = 0;

sum11 = 0;

På dette tidspunkt skal den serielle port vise værdier for accelerometerets orientering, og også om hver flexsensor er bøjet. Vi er klar til at få vores Arduino -kode til at tale med Max!

Trin 5: Grænseflade med maks

Grænseflade med maks
Grænseflade med maks

Nu hvor Hex -koden spytter masser af tal gennem den serielle port, har vi brug for Max -softwaren til at læse disse signaler. Kodeblokken på billedet ovenfor gør netop det! Du er meget velkommen.

Vigtig note: Når du har uploadet koden til Hex, skal du lukke alle serielle portvinduer og derefter ændre det cirkelformede bogstav i Max -koden, så den matcher Hex -porten. Hvis du er i tvivl om, hvilket bogstav du skal angive, vises alle tilsluttede porte ved at trykke på “udskriv” -delen af Max -koden.

Den udskrevne linje fra Hex's serielle port læses gennem Max -kodeblokken og deles derefter baseret på mellemrumsafgrænserne. Outputtet i slutningen af Max -blokken giver dig mulighed for at få fat i hvert tal individuelt, så vi forbinder det første outputrum til det sted, hvor vi vil have x -retningen af accelerometeret, det andet mellemrum vil være y -retningen osv. For nu, bare forbinde disse til nummerblokke for at sikre, at de fungerer. Du bør være i stand til at flytte accelerometeret og flexsensorerne og se tallene ændre sig i Max -softwaren.

Trin 6: Opbygning af resten af maks. Kode

I betragtning af Max -sprogets kraft, kan du virkelig lade din fantasi løbe vild her med alle de måder, du kan ændre det indgående lydsignal med din magiske power -handske. Hvis du alligevel løber tør for ideer, er ovenstående en oversigt over, hvad vores Max -kode gør, og hvordan den fungerer.

For hver parameter, du forsøger at ændre, vil du sandsynligvis rode rundt med de værdier, der kommer fra Arduino -koden for at få den helt rigtige følsomhed.

Nogle andre Max fejlfindingstip:

  • Hvis du ikke hører lyd

    • Sørg for, at Max er indstillet til at modtage lyd fra din mikrofon (indstillinger Lydstatusinputenhed)
    • sørg for, at Master Volume -skyderen i Max er skruet op, og alle andre lydstyrkekontroller, du måtte have i din kode
  • Hvis koden ikke ser ud til at gøre noget

    • Sørg for, at din patch er låst (låsesymbol i nederste venstre hjørne)
    • sikre via aflæsninger i Max -patch, at din Max -patch stadig får data fra Arduino -serielle port. Hvis ikke, kan du prøve at nulstille den serielle port (som beskrevet i trin 5) og/eller kontrollere dine fysiske ledningsforbindelser.
  • Mærkelige kliplyde ved ændring af parametre

    dette er noget at gøre med hvordan ~ tapin og ~ tapout fungerer; specifikt, at når du ændrer deres værdier, nulstilles de, hvilket forårsager klipning. I betragtning af vores begrænsede kendskab til programmet, er vi næsten sikre på, at der er en bedre måde at gøre dette på i Max og fjerne problemet …

Trin 7: Bogstaveligt talt at sætte det hele sammen

Bogstaveligt talt at sætte det hele sammen
Bogstaveligt talt at sætte det hele sammen
Bogstaveligt talt at sætte det hele sammen
Bogstaveligt talt at sætte det hele sammen
Bogstaveligt talt at sætte det hele sammen
Bogstaveligt talt at sætte det hele sammen
Bogstaveligt talt at sætte det hele sammen
Bogstaveligt talt at sætte det hele sammen

Det eneste, der er tilbage nu, er at vedhæfte vores kredsløb til vores handske. Tag dit ekstra stof og skær strimler lidt større ud end flexsensorerne. Sy det ekstra stof til handskens finger, hvor knoglen bøjer, og lad en slags ærme sidde i flexsensoren (vi kan ikke bare lime flex -sensorerne direkte til handsken, fordi handskestoffet strækker sig, når fingrene bøjer). Når ærmet for det meste er syet, skal du skubbe flexsensoren ind og sy forsigtigt ledningerne til handsken og fastgøre flexsensoren på plads. Gentag dette for hver flex sensor.

Brug derefter den selvklæbende sikkerhedsnål til at fastgøre Hex på bagsiden af handsken (du vil måske lægge lidt varm lim på stiften for at sikre, at den ikke bliver fortrudt under slid). Sy accelerometeret til handskens håndled. Til sidst skal du bruge magien i lynlåse til smukt at rydde op i alle grimme ledninger.

Du er klar til at teste din ultimative sangkraftshandske! (Må vi stærkt anbefale Daft Punk's "Harder Better Faster Stronger" for fuldt ud at vise dine stemmeskiftende muligheder)

Anbefalede: