INHOUDSOPGAWE:

Draagbare tegnologie: handskoen wat stem verander: 7 stappe
Draagbare tegnologie: handskoen wat stem verander: 7 stappe

Video: Draagbare tegnologie: handskoen wat stem verander: 7 stappe

Video: Draagbare tegnologie: handskoen wat stem verander: 7 stappe
Video: HBO 4, diagnostiek en doe-het-zelfaanpassing 2024, November
Anonim
Drabare tegnologie: handskoen wat stem verander
Drabare tegnologie: handskoen wat stem verander
Draagbare tegnologie: handskoen wat stem verander
Draagbare tegnologie: handskoen wat stem verander

Dit lyk asof handskoene met ongelooflike kragte deesdae woedend is. Alhoewel Thanos se Infinity Gauntlet 'n redelik kragtige handskoen is, wou ons 'n handskoen maak wat nog meer merkwaardig kan wees: die stem van die draer intyds verander.

Hierdie Instructable gee 'n uiteensetting van hoe ons 'n handskoen met 'n stem verander het. Ons ontwerp het verskillende sensors en 'n mikrobeheerder in die handskoen gebruik om bewegings op te spoor wat via 'n Arduino -kode na 'n Max -pleister gestuur is, waar ons klanksignaal op 'n prettige manier verander en verdraai is. Die spesifieke sensors, bewegings en klankveranderinge wat ons gebruik het, is almal buigsaam vir verskillende oorwegings; dit is net een manier om 'n handskoen te verander!

Hierdie projek was deel van 'n gemeenskapsvennootskap tussen Pomona College -studente en die Fremont Academy of Engineering Femineers. Dit is 'n baie aangename mengsel van elektroniese ingenieurswese en elektroniese musiekelemente!

Stap 1: materiaal

Materiaal
Materiaal
Materiaal
Materiaal
Materiaal
Materiaal

Dele:

  • HexWear Microcontroller (ATmega32U4) (https://hexwear.com/)
  • MMA8451 versnellingsmeter (https://www.adafruit.com/product/2019)
  • Kort buigsensors (x4) (https://www.adafruit.com/product/1070)
  • Ligte hardloophandskoen
  • #2 skroewe en ringe (x8)
  • Krimp terminale verbindings; 22-18 meter (x8) (https://www.elecdirect.com/crimp-wire-terminals/ring-crimp-terminals/pvc-ring-terminals/ring-terminal-pvc-red-22-18-6- 100 pk)
  • 50kΩ weerstand (x4)
  • Draad (~ 20 meter)
  • Selfklevende veiligheidspennetjie
  • Vilt of ander stof (~ 10 vk.)
  • Naaigraad
  • Zipties
  • Skootrekenaar
  • USB -mikrofoon

Gereedskap

  • Soldeerstel
  • Draadstroppers en draadknipsels
  • Elektriese band
  • Warmluggeweer
  • Skroewedraaier
  • Skêr
  • Naai naald

Sagteware:

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

Stap 2: Installeer die sagteware

Ons begin met die werklik opwindendste deel van enige projek: die installering van biblioteke (en meer).

Arduino:

Laai die Arduino -sagteware af en installeer dit (https://www.arduino.cc/en/Main/Software).

HexWear:

1) (Slegs Windows, Mac-gebruikers kan hierdie stap oorslaan) Installeer die bestuurder deur https://www.redgerbera.com/pages/hexwear-driver-installation te besoek. Laai die bestuurder af en installeer dit (die.exe -lêer wat in stap 2 bo -aan die gekoppelde RedGerbera -bladsy verskyn).

2) Installeer die vereiste biblioteek vir Hexware. Maak die Arduino IDE oop. Kies 'Voorkeure' onder 'Lêer'. Plak in die spasie wat voorsien word vir bykomende bestuurders -URL's

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

Klik dan op "OK".

Gaan na Tools -> Board: -> Board Manager. Kies 'Bydrae' in die menu bo -aan die linkerkant.

Soek vir Gerbera Boards en klik op Installeer. Stop en heropen Arduino IDE.

Om te verseker dat die biblioteek behoorlik geïnstalleer is, gaan na Tools -> Board en blaai onderaan die spyskaart. U moet 'n afdeling met die titel 'Gerbera Boards' sien, waaronder HexWear ten minste moet verskyn (indien nie meer borde soos mini-HexWear nie).

Versnellingsmeter:

Laai die versnellingsmeterbiblioteek af en installeer (https://learn.adafruit.com/adafruit-mma8451-accelerometer-breakout/wiring-and-test)

Stap 3: Bevestig die versnellingsmeter

Bevestig die versnellingsmeter
Bevestig die versnellingsmeter
Bevestig die versnellingsmeter
Bevestig die versnellingsmeter

Ons benodig twee hooftipes sensors om met hierdie projek te kommunikeer: 'n versnellingsmeter en buigsensors. Ons ondersoek hierdie een vir een, begin met die versnellingsmeter. Eerstens het ons die hardewareverbindings nodig om bymekaar te pas.

Om te voorkom dat u u Hex beskadig, beveel ons aan dat u 'n #2 -skroef en wasser deur die gewenste poort steek en alle verbindings aan die skroef bevestig. Om te voorkom dat iets loskom wanneer u met die handskoen speel, moet die verbindings gesoldeer en/of gekrimp word. Gebruik 'n paar sentimeter draad vir elke verbinding en maak die volgende verbindings van die Hex tot die versnellingsmeter (sien die pinouts hierbo vir verwysing):

INVOERVOLGING VINGROUND GNDSCL/D3 SCLSDA/D2 SDA

As alles klaar is, is ons gereed om te toets!

As 'n toets, voer die versnellingsmeter-voorbeeldkode in Arduino uit (lêer-> Voorbeelde-> Adafruit_MMA8451-> MMA8451demo), en maak seker dat dit na die seriële monitor kan gestuur word. Dit moet die versnelling as gevolg van swaartekrag (~ 10m/s) in die z -rigting lewer as dit vlak gehou word. Deur die versnellingsmeter te kantel, word hierdie versnelling gemeet in die x- of y -rigting; ons sal dit gebruik om die draer in staat te stel om die klank te verander deur hul hand te draai!

Nou moet ons die versnellingsmeterdata so aanbied dat dit met Max. Om dit te kan doen, moet ons die waardes van x en y druk, miskien aangepas om aan te pas by die gewenste reeks (sien deel 6). In ons kode hierby aangeheg, doen ons die volgende:

// Meet die x-rigting en y-rigting. Ons verdeel en vermenigvuldig om in die regte reekse vir MAX te kom (reeks van 1000 in x en reeks van 40 in y) xdir = event.acceleration.x/0.02; ydir = abs (event.acceleration.y)*2; // Druk alles in 'n leesbare formaat vir Max - met spasies tussen elke getal Serial.print (xdir); Serial.print ("");

Die Hex moet die gewysigde waardes van die x- en y -rigtings van die versnellingsmeter elke reël laat druk. Nou is ons gereed om die buigsensors by te voeg!

Stap 4: Bevestig die Flex Sensors

Bevestiging van die Flex Sensors
Bevestiging van die Flex Sensors
Bevestiging van die Flex Sensors
Bevestiging van die Flex Sensors
Bevestiging van die Flex Sensors
Bevestiging van die Flex Sensors

Die draer kan baie moontlike klankbeheer kry as ons buigende vingers kan opspoor. Die buigsensors sal presies dit doen. Elke buigsensor is in wese 'n potensiometer, waar onbuigs 'n weerstand van ~ 25KΩ het, terwyl volledig gebuig 'n weerstand van ~ 100KΩ het. Ons plaas elke buigsensor in 'n eenvoudige spanningsverdeler met 'n 50K -weerstand, soos in die eerste prent getoon.

Gebruik weer redelik kort draadlengte (hou in gedagte dat dit op die agterkant van 'n handskoen pas) en soldeer vier spanningsverdelermodules. Die vier modules sal dieselfde Vin deel en grond-ons het die gestroopte ente van die drade aanmekaar gedraai, sodat ons net een lood tot soldeer kan hê. Neem ten slotte die vier modules en maak die verbindings wat in die tweede prentjie getoon word (as iemand weet hoe om dit te doen sonder om 'n vreeslike deurmekaar gemors te maak, onthul asseblief u geheime).

Nou het ons die Arduino -kode nodig om die spanning van elke sensor in te lees. Vir ons doeleindes het ons die buigsensors as skakelaars behandel; hulle was of aan of af. As sodanig stel ons kode bloot 'n spanningsdrempel bo hierdie drempel, gee ons 'n 1 na die seriële poort (wat beteken dat die sensor gebuig is), anders gee ons 'n 0:

// Neem 'n aantal

analoogmonsters en tel dit by vir elke Flex -sensor

terwyl (sample_count <NUM_SAMPLES) {

som10 += analogRead (A10);

som9 += analogRead (A9);

som7 += analogRead (A7);

som11 += analogRead (A11);

sample_count ++;

// Kort vertraging om dit nie te vinnig te neem nie

vertraging (5);

}

// bereken die spanning, gemiddeld oor die vinnige monsters

// gebruik 5.0 vir 'n 5.0V ADC

verwysingspanning

// 5.015V is die geykte

verwysingspanning

spanning10 = ((float) som10 /

(dryf) NUM_SAMPLES * 5.015) / 1024.0;

spanning9 = ((float) som9/

(dryf) NUM_SAMPLES * 5.015) / 1024.0;

spanning7 = ((float) som7 /

(dryf) NUM_SAMPLES * 5.015) / 1024.0;

spanning11 = ((float) som11 /

(dryf) NUM_SAMPLES * 5.015) / 1024.0;

// Kontroleer of elke buigsensor

is groter as die drumpel (dors) - indien wel, stel die getal in

// Pinkie -vinger

as (spanning10> dors)

{

//-5 om in te samel

stemhoogte met een oktaaf

flex10 = -10;

}

anders flex10 = 0;

//Ringvinger

as (spanning9>

(dors-0.4)) {

// 5 om te verlaag

stemhoogte met een oktaaf

flex9 = 5;

}

anders flex9 = 0;

//Middelvinger

as (spanning7> dors) {

// 1 om in te stel

galm effek

flex7 = 1;

}

anders flex7 = 0;

//Wysvinger

as (spanning11> dors)

{

// 50 om in te stel

siklusse na 50

flex11 = 93;

}

anders flex11 = 0;

// Stel al die tellings terug

veranderlike na 0 vir die volgende lus

sample_count = 0;

som10 = 0;

som9 = 0;

som7 = 0;

som11 = 0;

Op hierdie punt moet die seriële poort waardes toon vir die versnellingsmeteroriëntasie, en ook of elke buigsensor gebuig is. Ons is gereed om ons Arduino -kode met Max te laat praat!

Stap 5: Koppelvlak met maks

Koppelvlak met maks
Koppelvlak met maks

Noudat die Hex -kode baie getalle deur die seriële poort spoeg, benodig ons die Max -sagteware om hierdie seine te kan lees. Die kodeblokkie hierbo wys dit! Jy is baie welkom.

Belangrike opmerking: nadat u die kode na die Hex opgelaai het, sluit u alle seriële poortvensters en verander dan die omcirkelde letter in die Max -kode om by die Hex -poort te pas. As u nie seker is watter letter u moet instel nie, sal alle gekoppelde poorte 'n lys van die "druk" -gedeelte van die Max -kode bevat.

Die gedrukte reël vanaf die seriële poort van die Hex word deur die Max -kodeblok gelees en dan verdeel op grond van die ruimte -afbakening. Met die uitset aan die einde van die Max -blok kan u elke getal afsonderlik gryp, dus verbind ons die eerste uitsetruimte waar ons wil hê dat die x -rigting van die versnellingsmeter moet gaan, die tweede spasie is die y -rigting, ens. Koppel dit nou aan die nommerblokke om te verseker dat dit werk. U moet die versnellingsmeter en buigsensors kan beweeg en die getalle in die Max -sagteware kan verander.

Stap 6: Bou die res van die maksimum kode

Gegewe die krag van die Max -taal, kan u u verbeelding hier woes laat loop met al die maniere waarop u die inkomende klanksignaal met u magiese kraghandskoen kan verander. Tog, as u ideë opraak, is hierbo 'n uiteensetting van wat ons Max -kode doen en hoe dit werk.

Vir elke parameter wat u probeer verander, sal u waarskynlik met die reeks waardes wat uit die Arduino -kode kom, moet mors om die regte sensitiwiteit te kry.

'N Paar ander wenke vir die oplos van probleme:

  • As jy nie geluid hoor nie

    • maak seker dat Max ingestel is om klank van u mikrofoon te ontvang (Opsies klankstatus -invoertoestel)
    • Maak seker dat die Master Volume -skuifbalk in Max aangeskakel is en dat enige ander volumekontroles in u kode voorkom
  • As dit lyk asof die kode niks doen nie

    • maak seker dat u pleister gesluit is (slot -simbool in die linker onderste hoek)
    • verseker via uitlees in die Max -pleister dat u Max -lêer steeds data van die Arduino -seriële poort kry. Indien nie, probeer dan om die seriële poort terug te stel (soos uiteengesit in stap 5) en/of kyk na u fisiese aansluitings.
  • Vreemde knipgeluide wanneer parameters verander word

    dit het iets te doen met hoe ~ tapin en ~ tapout werk; spesifiek dat as u hul waardes verander, hulle herstel word, wat die knip veroorsaak. Gegewe ons beperkte kennis van die program, is ons byna seker dat daar 'n beter manier is om dit in Max te doen en die probleem uit te skakel …

Stap 7: Sit alles letterlik saam

Dit alles letterlik saamvoeg
Dit alles letterlik saamvoeg
Dit alles letterlik saamvoeg
Dit alles letterlik saamvoeg
Om dit alles letterlik saam te stel
Om dit alles letterlik saam te stel
Dit alles letterlik saamvoeg
Dit alles letterlik saamvoeg

Al wat nou oorbly, is om ons stroombane aan ons handskoen te heg. Neem u ekstra materiaal en sny stroke effens groter as die buigsensors uit. Naai die ekstra stof aan die vinger van die handskoen waar die kneukel buig, en laat 'n soort mou waarin die buigsensor kan sit (ons kan nie net die buigsensors direk op die handskoen plak nie, want die handskoenstof rek terwyl die vingers buig). Sodra die mou meestal toegewerk is, skuif u die buigsensor in en stik die leidings versigtig aan die handskoen vas en maak die buigsensor vas. Herhaal dit vir elke buigsensor.

Gebruik dan die selfklevende veiligheidspen om die Hex aan die agterkant van die handskoen vas te maak (u kan 'n bietjie warm gom op die pen plaas om seker te maak dat dit nie ongedaan word tydens die dra nie). Werk die versnellingsmeter aan die pols van die handskoen vas. Gebruik laastens die magie van ritsbande om onooglike drade mooi skoon te maak.

U is gereed om u uiteindelike handskoen vir sangkrag op die proef te stel! (Mag ons Daft Punk se “Harder Better Faster Stronger” ten sterkste aanbeveel om u stemveranderende vermoëns ten volle te wys)

Aanbeveel: