Indholdsfortegnelse:
- Trin 1: Materialer
- Trin 2: Installation af softwaren
- Trin 3: Montering af accelerometeret
- Trin 4: Montering af Flex -sensorerne
- Trin 5: Grænseflade med maks
- Trin 6: Opbygning af resten af maks. Kode
- Trin 7: Bogstaveligt talt at sætte det hele sammen
Video: Bærbar teknologi: stemmeskiftende handske: 7 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:28
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
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
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
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
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
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:
Soft Robotics Handske: 8 trin (med billeder)
Soft Robotics Glove: Mit projekt er en softrobotic handske. Den har en aktuator placeret på hver finger; den nederste del af handsken fjernes for at lette brugeren at bære den. Aktuatorerne aktiveres af en enhed placeret på håndleddet lidt større end et ur
Gest til tale/tekstkonverterende handske: 5 trin
Gesture to Speech/Text Converting Glove: Ideen/skubbet bag implementeringen af dette projekt var at hjælpe mennesker, der har svært ved at kommunikere ved hjælp af tale og kommunikere ved hjælp af håndbevægelser eller mere populært kendt som amerikansk tegnsprog (ASL). Dette projekt kan være et skridt i retning af
Bærbar teknologi til børn: Hero -armbånd: 4 trin
Wearable Tech for Kids: Hero Armband: Denne instruktive vil dække, hvordan man laver et 'hero armband', der lyser, når det bæres. Ved hjælp af ledende stofbånd, ledende tråd og sybare lysdioder er dette en god aktivitet for skoleelever at lære det grundlæggende i kredsløb og bærbar teknologi. Te
Bærbar teknologi: Air Drums: 5 trin
Wearable Tech: Air Drums: Vores mål med dette projekt var at lave et bærbart trommesæt ud af nogle accelerometre og piezo -diske. Ideen var, at hvis der blev truffet et håndslag, ville der spille en lillestøj; eller hvis der trykkes på en fod, afspilles en hi-hat eller en basstromlyd. At styre
Infigo - (en kunstig intelligens drevet bærbar handske): 9 trin
Infigo - (en kunstig intelligens drevet bærbar handske): Infigo er en AI (kunstig intelligens) drevet bærbar handske baseret på principperne for hjælpende teknologi (AT), som vil forbedre produktiviteten i det forringede samfund Kunstig intelligens og maskinlæring kan ikke erstatte en menneskelig integritet