Përmbajtje:

Teknologjia e veshshme: Doreza që ndryshon zërin: 7 hapa
Teknologjia e veshshme: Doreza që ndryshon zërin: 7 hapa

Video: Teknologjia e veshshme: Doreza që ndryshon zërin: 7 hapa

Video: Teknologjia e veshshme: Doreza që ndryshon zërin: 7 hapa
Video: Meeting #5 - 4/29/2022 | ETF team meeting and dialogue 2024, Nëntor
Anonim
Teknologjia e veshshme: Doreza që ndryshon zërin
Teknologjia e veshshme: Doreza që ndryshon zërin
Teknologjia e veshshme: Doreza që ndryshon zërin
Teknologjia e veshshme: Doreza që ndryshon zërin

Epo, duket se dorashka me fuqi të jashtëzakonshme janë të tërbuara këto ditë. Ndërsa Gauntlet e Thanos Infinity është një dorezë mjaft e fuqishme, ne donim të bënim një dorezë që mund të bënte diçka edhe më të shquar: të ndryshonte zërin e bartësit në kohë reale.

Ky udhëzues siguron një përshkrim të hollësishëm të mënyrës sesi ne projektuam një dorezë që ndryshon zërin. Dizajni ynë përdori sensorë të ndryshëm dhe një mikrokontrollues në dorezë për të zbuluar lëvizjet, të cilat u dërguan përmes një kodi Arduino në një arna Max, ku sinjali ynë audio u ndryshua dhe u shtrembërua në mënyra argëtuese. Sensorët, lëvizjet dhe ndryshimet e zërit që përdorëm janë të gjitha fleksibile për konsiderata të ndryshme; kjo është vetëm një mënyrë për të krijuar një dorezë që ndryshon zërin!

Ky projekt ishte pjesë e një partneriteti komunitar midis studentëve të Kolegjit Pomona dhe Akademisë së Femineers të Inxhinierisë në Fremont. Shtë një përzierje e vërtetë argëtuese e inxhinierisë elektronike dhe elementeve të muzikës elektronike!

Hapi 1: Materialet

Materiale
Materiale
Materiale
Materiale
Materiale
Materiale

Pjesët:

  • Mikrokontrolluesi HexWear (ATmega32U4) (https://hexwear.com/)
  • MMA8451 Përshpejtues (https://www.adafruit.com/product/2019)
  • Sensorë të shkurtër Flex (x4) (https://www.adafruit.com/product/1070)
  • Doreza e lehtë vrapimi
  • #2 vida dhe rondele (x8)
  • Lidhëset e terminalit Crimp; Matës 22-18 (x8) (https://www.elecdirect.com/crimp-wire-terminals/ring-crimp-terminals/pvc-ring-terminals/ring-terminal-pvc-red-22-18-6- 100pk)
  • Rezistencë 50kΩ (x4)
  • Tela (matës 20 ~)
  • Kunja e sigurisë vetë-ngjitëse
  • Pëlhurë e ndjerë ose tjetër (~ 10 sq. In.)
  • Fije qepëse
  • Zipties
  • Laptop
  • Mikrofon USB

Mjetet

  • Komplet bashkimi
  • Nxjerrësit e telave dhe prerëset e telave
  • Shirit elektrik
  • Armë me ajër të nxehtë
  • Kaçavidë
  • Gërshërë
  • Gjilpërë qepëse

Softuer:

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

Hapi 2: Instalimi i Softuerit

Ne fillojmë me atë që është me të vërtetë pjesa më emocionuese e çdo projekti: instalimi i bibliotekave (dhe më shumë).

Arduino:

Shkarkoni dhe instaloni programin Arduino (https://www.arduino.cc/en/Main/Software).

HexWear:

1) (Vetëm Windows, përdoruesit e Mac mund ta kalojnë këtë hap) Instaloni drejtuesin duke vizituar https://www.redgerbera.com/pages/hexwear-driver-installation. Shkarkoni dhe instaloni drejtuesin (skedari.exe i listuar në Hapin 2 në krye të faqes së lidhur RedGerbera).

2) Instaloni bibliotekën e kërkuar për Hexware. Hapni Arduino IDE. Nën "File" zgjidhni "Preferencat". Në hapësirën e dhënë për URL -të e Menaxherit të Bordeve Shtesë, ngjiteni

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

Pastaj klikoni "OK".

Shkoni te Mjetet -> Bordi: -> Menaxheri i Bordit. Nga menyja e këndit të sipërm të majtë, zgjidhni "Kontribuar".

Kërkoni, dhe pastaj klikoni në Gerbera Boards dhe klikoni Instalo. Lini dhe rihapni Arduino IDE.

Për të siguruar që biblioteka është instaluar siç duhet, shkoni te Mjetet -> Bordi dhe lëvizni në fund të menusë. Ju duhet të shihni një pjesë të titulluar "Gerbera Boards", nën të cilën duhet të shfaqet të paktën HexWear (nëse jo më shumë dërrasa si mini-HexWear).

Përshpejtuesi:

Shkarkoni dhe instaloni bibliotekën e përshpejtuesit (https://learn.adafruit.com/adafruit-mma8451-accelerometer-breakout/wiring-and-test)

Hapi 3: Bashkimi i Përshpejtuesit

Lidhja e Akselerometrit
Lidhja e Akselerometrit
Lidhja e Akselerometrit
Lidhja e Akselerometrit

Ne kemi nevojë për dy lloje kryesore të sensorëve për të bashkëvepruar me këtë projekt: një akselerometër dhe sensorë fleksibël. Ne do t'i shqyrtojmë këto një nga një, duke filluar me përshpejtuesin. Së pari, ne kemi nevojë që lidhjet e harduerit të përputhen.

Për të shmangur dëmtimin e Hex tuaj, ju rekomandojmë të vendosni një vidë #2 dhe një rondele përmes portave të dëshiruar, pastaj bashkëngjitni të gjitha lidhjet në atë vidë. Për të parandaluar që diçka të mos humbasë kur luani me dorezë, lidhjet duhet të ngjiten dhe/ose të mbërthehen. Duke përdorur disa centimetra tela për secilën lidhje, bëni lidhjet e mëposhtme nga Hex në përshpejtuesin (shikoni pikat e mësipërme për referencë):

Tensioni i hyrjes VINGROUND GNDSCL/D3 SCLSDA/D2 SDA

Me gjithçka të lidhur, ne jemi gati për të provuar!

Si provë, ekzekutoni kodin e mostrës së përshpejtuesit në Arduino (Skedari-> Shembuj-> Adafruit_MMA8451-> MMA8451demo), duke u siguruar që mund të dalë në monitorin Serial. Ai duhet të nxjerrë nxitimin për shkak të gravitetit (~ 10m/s) në drejtimin z kur mbahet në nivel. Duke e përkulur akcelerometrin, ky nxitim do të matet në drejtimin x ose y; ne do ta përdorim këtë për t'i lejuar mbajtësit të ndryshojë tingullin duke rrotulluar dorën!

Tani, ne duhet të paraqesim të dhënat e përshpejtuesit në mënyrë të tillë që të mund të ndërlidhen me Max. Për ta bërë këtë, ne duhet të printojmë vlerat e x dhe y, ndoshta të modifikuara që të përputhen me gamën e dëshiruar (shih Pjesën 6). Në kodin tonë të bashkangjitur këtu, ne bëjmë sa më poshtë:

// Matni drejtimin tex dhe drejtimin y. Ne ndajmë dhe shumëzojmë për të hyrë në intervalet e duhura për MAX (diapazoni 1000 në x dhe diapazoni 40 në y) xdir = event.acceleration.x/0.02; ydir = abs (ngjarje.shpejtimi.y)*2; // Shtypni gjithçka në një format të lexueshëm për Max - me hapësira midis secilit numër Serial.print (xdir); Serial.print ("");

Kjo duhet të ketë që Hex të shtypë vlerat e modifikuara të drejtimeve x dhe y të përshpejtuesit çdo rresht. Tani jemi gati të shtojmë sensorë fleksibël!

Hapi 4: Bashkimi i Sensorëve Flex

Bashkimi i Sensorëve Flex
Bashkimi i Sensorëve Flex
Bashkimi i Sensorëve Flex
Bashkimi i Sensorëve Flex
Bashkimi i Sensorëve Flex
Bashkimi i Sensorëve Flex

Përdoruesi mund të marrë shumë kontrolle potenciale të tingullit nëse ne mund të zbulojmë lakimin e gishtërinjve. Sensorët fleksibël do ta bëjnë këtë. Çdo sensor fleksibël është në thelb një potenciometër, ku i pakleksuar ka një rezistencë prej K 25KΩ, ndërsa i përkulur plotësisht ka një rezistencë prej K 100KΩ. Ne e vendosim secilin sensor fleksibël në një ndarës të thjeshtë të tensionit me një rezistencë 50K, siç tregohet në imazhin e parë.

Përsëri duke përdorur tela mjaft të shkurtër (mbani në mend se e gjithë kjo do të përshtatet në pjesën e pasme të një doreze), bashkoni katër module ndarëse të tensionit. Të katër modulet do të ndajnë të njëjtin Vin dhe terren-ne përdredhëm së bashku skajet e zhveshura të telave kështu që do të kishim vetëm një plumb për ngjitje. Së fundi, merrni katër modulet dhe bëni lidhjet e paraqitura në imazhin e dytë (nëse dikush e di se si ta bëjë këtë pa bërë një rrëmujë tmerrësisht të ngatërruar, ju lutemi zbuloni sekretet tuaja).

Tani, na duhet kodi Arduino për të lexuar tensionet nga secili sensor. Për qëllimet tona, ne i trajtuam sensorët fleksibël si ndërprerës; ata ishin ose ndezur ose fikur. Si i tillë, kodi ynë thjesht vendos një prag të tensionit-mbi këtë prag, ne dalim një 1 në portin Serial (që do të thotë se sensori është i përkulur), përndryshe dalim një 0:

// Merrni një numër të

mostra analoge dhe shtojini ato për secilin sensor Flex

ndërsa (mostra_ numër <NUM_SAMPLES) {

sum10 += analogRead (A10);

sum9 += analogRead (A9);

sum7 += analogRead (A7);

sum11 += analogRead (A11);

mostra_count ++;

// Vonesë e shkurtër për të mos i marrë shumë shpejt

vonesa (5);

}

// llogarit tensionin, mesatare mbi mostrat e shpejta

// përdorni 5.0 për një ADC 5.0V

tension referues

// 5.015V është i kalibruar

tension referues

tension10 = ((noton) shuma 10 /

(noton) NUM_SAMPLE * 5.015) / 1024.0;

tension9 = ((noton) shuma9/

(noton) NUM_SAMPLE * 5.015) / 1024.0;

tension7 = ((noton) shuma7 /

(noton) NUM_SAMPLE * 5.015) / 1024.0;

tension11 = ((noton) shuma11 /

(noton) NUM_SAMPLE * 5.015) / 1024.0;

// Kontrolloni nëse secili sensor fleksibil

është më i madh se pragu (pragu) - nëse është kështu, vendosni numrin

// gisht rozë

nëse (tension10> thresh)

{

//-5 për të ngritur

lartësia e zërit me një oktavë

flex10 = -10;

}

tjetër flex10 = 0;

//Gisht i unazës

nëse (tensioni 9>

(e treta-0.4)) {

// 5 deri më poshtë

lartësia e zërit me një oktavë

flex9 = 5;

}

tjetër flex9 = 0;

//Gishti i mesem

nëse (tension7> thresh) {

// 1 për të vendosur

efekt reverb

flex7 = 1;

}

tjetër flex7 = 0;

//Gishti tregues

nëse (tension11> thresh)

{

// 50 për të vendosur

ciklet në 50

flex11 = 93;

}

tjetër flex11 = 0;

// Rivendosni të gjithë numërimin

variabël në 0 për ciklin tjetër

mostra_ numër = 0;

shuma 10 = 0;

shuma9 = 0;

shuma = 0;

shuma11 = 0;

Në këtë pikë, porti Serial duhet të tregojë vlera për orientimin e përshpejtuesit, dhe gjithashtu nëse secili sensor fleksibël është i përkulur. Ne jemi gati për të marrë kodin tonë Arduino duke folur me Max!

Hapi 5: Ndërfaqja me Max

Ndërfaqja me Max
Ndërfaqja me Max

Tani që kodi Hex po pështyn shumë numra përmes portit Serial, ne kemi nevojë për softuerin Max për të lexuar këto sinjale. Blloku i kodit të paraqitur më lart e bën këtë! Jeni shume te mirepritur.

Shënim i rëndësishëm: pasi të keni ngarkuar kodin në Hex, mbylleni nga të gjitha dritaret e portit serik, pastaj ndryshoni shkronjën e rrethuar në kodin Max që të përputhet me portën Hex. Nëse nuk jeni të sigurt se cilën shkronjë të vendosni, shtypja e pjesës "print" të kodit Max do të listojë të gjitha portet e lidhura.

Linja e shtypur nga porti serik i Hex lexohet përmes bllokut të kodit Max, dhe më pas ndahet në bazë të kufizuesve të hapësirës. Dalja në fund të bllokut Max ju lejon të kapni secilin numër individualisht, kështu që ne do të lidhim hapësirën e parë të daljes me vendin ku duam të shkojë drejtimi x i përshpejtuesit, hapësira e dytë do të jetë drejtimi y, etj. tani, thjesht lidhini këto me blloqet e numrave për t'u siguruar që ata po punojnë. Ju duhet të jeni në gjendje të lëvizni sensorin e përshpejtuesit dhe fleksibël dhe të shihni ndryshimin e numrave në softuerin Max.

Hapi 6: Ndërtimi i pjesës tjetër të Kodit Max

Duke pasur parasysh fuqinë e gjuhës Max, ju me të vërtetë mund ta lini imagjinatën tuaj të egër këtu me të gjitha mënyrat se si mund të ndryshoni sinjalin e zërit në hyrje me dorezën tuaj të fuqisë magjike. Sidoqoftë, nëse nuk keni ide, më lart është një përmbledhje e asaj që bën kodi ynë Max dhe si funksionon.

Për secilin parametër që po përpiqeni të ndryshoni, me siguri do të dëshironi të ngatërroni gamën e vlerave që vijnë nga kodi Arduino për të marrë ndjeshmërinë e duhur.

Disa këshilla të tjera për zgjidhjen e problemeve të Max:

  • Nëse nuk dëgjoni zë

    • sigurohuni që Max është vendosur të marrë audio nga mikrofoni juaj (Opsionet e pajisjes së hyrjes së statusit të audios)
    • sigurohuni që rrëshqitësi Master Volume në Max është aktivizuar dhe çdo kontroll tjetër vëllimi që mund të keni në kodin tuaj
  • Nëse kodi nuk duket të jetë duke bërë asgjë

    • sigurohuni që arna juaj është e kyçur (simboli i kyçjes në këndin e poshtëm të majtë)
    • sigurohuni nëpërmjet leximeve në arnimin Max që arna juaj Max po merr ende të dhëna nga porti serik Arduino. Nëse jo, provoni të rivendosni portën serike (siç përshkruhet në Hapin 5) dhe/ose të kontrolloni lidhjet tuaja fizike të telave.
  • Zhurma të çuditshme të prerjes kur ndryshoni parametrat

    kjo ka të bëjë me mënyrën se si funksionojnë ~ tapin dhe ~ tapout; konkretisht që kur ndryshoni vlerat e tyre, ato rivendosen, gjë që shkakton prerjen. Duke pasur parasysh njohuritë tona të kufizuara për programin, ne jemi pothuajse të sigurt se ka një mënyrë më të mirë për ta bërë këtë në Max dhe për të eleminuar çështjen…

Hapi 7: Vendosja fjalë për fjalë e të gjitha së bashku

Fjalë për fjalë Vendosja e të gjitha së bashku
Fjalë për fjalë Vendosja e të gjitha së bashku
Fjalë për fjalë Vendosja e të gjitha së bashku
Fjalë për fjalë Vendosja e të gjitha së bashku
Fjalë për fjalë Vendosja e të gjitha së bashku
Fjalë për fjalë Vendosja e të gjitha së bashku
Fjalë për fjalë Vendosja e të gjitha së bashku
Fjalë për fjalë Vendosja e të gjitha së bashku

E vetmja gjë që ka mbetur tani është të lidhim qarkun tonë në dorezën tonë. Merrni pëlhurën tuaj shtesë dhe prerë shirita pak më të mëdhenj se sensorët fleksibël. Qepni pëlhurën shtesë në gishtin e dorezës aty ku kyçja e këmbës përkulet, duke lënë një lloj mëngë për të ulur sensorin e përkuljes (ne nuk mund t'i ngjisim sensorët e përkuljes direkt në dorezë sepse pëlhura e dorezës shtrihet ndërsa gishtat përkulen) Pasi mëngë është e qepur kryesisht, rrëshqisni sensorin e përkuljes brenda dhe qepni me kujdes lidhëset në dorezë, duke e fiksuar sensorin e përkuljes në vend. Përsëriteni këtë për secilin sensor fleksibël.

Tjetra, përdorni kunjin e sigurisë ngjitëse për ta bashkangjitur Hex në pjesën e pasme të dorezës (mund të dëshironi të vendosni pak ngjitës të nxehtë në kunj për t'u siguruar që nuk zhduket gjatë veshjes). Qepni akselerometrin në kyçin e dorës. Së fundi, përdorni magjinë e lidhëseve për të pastruar bukur çdo tela të shëmtuar.

Ju jeni gati për të vënë në provë dorezën tuaj përfundimtare të fuqisë së këndimit! (Mund të rekomandojmë shumë "Harder Better Better Faster Stronger" të Daft Punk për të treguar plotësisht aftësitë tuaja për ndryshimin e zërit)

Recommended: