Kazalo:

Vibrotaktilna senzorska naprava za zamenjavo in povečanje (SSAD): 4 koraki
Vibrotaktilna senzorska naprava za zamenjavo in povečanje (SSAD): 4 koraki

Video: Vibrotaktilna senzorska naprava za zamenjavo in povečanje (SSAD): 4 koraki

Video: Vibrotaktilna senzorska naprava za zamenjavo in povečanje (SSAD): 4 koraki
Video: Click clack plug mis aligned 2024, November
Anonim
Vibrotaktilna naprava za senzorično zamenjavo in povečanje (SSAD)
Vibrotaktilna naprava za senzorično zamenjavo in povečanje (SSAD)
Vibrotaktilna naprava za senzorično zamenjavo in povečanje (SSAD)
Vibrotaktilna naprava za senzorično zamenjavo in povečanje (SSAD)

Namen tega projekta je olajšati raziskave na področju senzorične zamenjave in povečanja. Imel sem možnost raziskati različne načine gradnje vibrotaktilnih prototipov SSAD v svoji magistrski nalogi. Ker sta senzorična zamenjava in povečanje tema, ki ne zadeva le računalničarjev, ampak tudi raziskovalce z drugih področij, kot je kognitivna znanost, bi morala navodila po korakih omogočiti, da strokovnjaki za elektroniko in računalništvo sami izdelajo ta prototip raziskovalne namene.

Ne nameravam oglaševati točno ene vrste blagovne znamke/izdelka. Ta projekt ni sponzoriralo nobeno podjetje. Material, ki sem ga uporabil, je bil izbran zaradi tehničnih specifikacij in udobja (hitrost/stroški dostave, razpoložljivost itd.). Za vse izdelke, omenjene v tem navodilu, so na voljo enako ustrezne alternative.

Trenutni Instructable vsebuje navodila po korakih za izdelavo osnovnega prototipa SSAD z do 4 motorji in analognimi senzorji.

Poleg tega Instructable sem ustvaril tri razširitve: Prvič, objavil sem navodila za uporabo več kot štirih motorjev s tem prototipom SSAD (https://www.instructables.com/id/Using-More-Than-4…). Drugič, ustvaril sem ponudbo in primer, kako narediti ta prototip nosljiv (https://www.instructables.com/id/Making-the-SSAD-W…) in kako pokriti ERM motorje brez inkapsulirane vrtljive mase (https:/ /www.instructables.com/id/Covering-Rotating…). Poleg tega je objavljen tudi primer, kako v prototip vključiti drugačne kot analogne senzorje (v tem primeru senzorje bližine) (https://www.instructables.com/id/Including-a-Proxi…).

Kaj je "senzorična zamenjava in povečanje"?

S senzorično zamenjavo lahko informacije, zbrane z eno senzorično modalnostjo (npr. Vid), zaznamo z drugim čutom (npr. Zvokom). To je obetavna neinvazivna tehnika, ki ljudem pomaga pri premagovanju senzorične izgube ali okvare.

Če čutni dražljaj, ki je preveden, običajno ne zaznajo ljudje (npr. UV svetloba), se ta pristop imenuje Senzorično povečanje.

Kakšne veščine so potrebne za izdelavo tega prototipa?

V bistvu za sledenje spodnjim navodilom niso potrebne nobene napredne veščine programiranja. Če pa ste začetnik spajkanja, načrtujte nekaj dodatnega časa, da spoznate to tehniko. Če še nikoli niste programirali, bo morda potrebna pomoč nekoga, ki ima več izkušenj s programiranjem.

Ali so potrebni stroji ali orodja, ki so draga ali niso na voljo enostavno?

Razen spajkalnika za izdelavo tega prototipa niso potrebni nobeni stroji ali orodja, ki jih ne morete zlahka kupiti na spletu ali v naslednji gospodinjski trgovini. Ta SSAD je zasnovan tako, da omogoča hitro izdelavo prototipov, kar pomeni, da mora biti hitro ponovljiv in omogoča poceni raziskovanje idej.

Zaloge

Glavni sestavni deli (približno 65 £ za 4 motorje, brez opreme za spajkanje)

  • Arduino Uno (npr. Https://store.arduino.cc/arduino-uno-rev3, 20 £)
  • Adafruit Motorshield v2.3 (npr. Https://www.adafruit.com/product/1438, 20 £) in glave za zlaganje samcev (običajno vključene pri nakupu motornega ščita)
  • Cilindrični motorji ERM (npr. Https://www.adafruit.com/product/1438, 5, 50 £/motor)
  • Spajkalnik in spajkalna žica
  • Žice

Izbirno (glejte razširitve)

Če kupite motor ERM z nepokrito vrtljivo maso:

  • Vinilna cev
  • Tanka mehka plošča
  • 3D tiskalnik (za ohišje Arduino)

Če želite uporabiti več kot 4 motorje (več kot 8 istih drugič):

  • Adafruit Motorshield v2.3 in moški zložljive glave
  • Ženske zložljive glave (npr.
  • Arduino Mega za več kot 6 motorjev (npr.

1. korak: Spajkanje

Spajkanje
Spajkanje

Zataknite zatiče na motorni ščit

Adafruit ponuja zelo obsežno vadnico o tem, kako spajkati glave na motorni ščit (https://learn.adafruit.com/adafruit-motor-shield-v…):

  1. Najprej vstavite glave za zlaganje v zatiče na Arduino Uno,
  2. Nato položite ščit na vrh, tako da bo kratka stran zatičev štrlela ven.
  3. Po tem spajite vse zatiče na ščit in se prepričajte, da spajka teče okoli zatiča in tvori vulkansko obliko (glejte sliko zgoraj, ki je sprejeta s https://cdn.sparkfun.com/assets/c/d/ a/a/9/523b1189…).

Če ste začetnik spajkanja, si pomagajte z več vajami, na primer

Spajkajte daljše žice na motor

Ker večina motorjev prihaja brez ali zelo kratkih in tankih žic, jih je smiselno podaljšati tako, da jih spajkamo na daljše in robustnejše žice. Evo, kako lahko to storite:

  1. Odstranite plastiko okoli konca žic in jih postavite tako, da bodo v stiku med seboj vzdolž izpostavljenih žic, kot je na sliki.
  2. Spajate jih tako, da se dotaknete niti obeh žic in pustite, da spajka teče po njih.

2. korak: Ožičenje

Ožičenje
Ožičenje
  1. Zložite motorni ščit na vrhu Arduina.
  2. Motorje privijte v ščit motorja.
  3. Priključite analogne senzorje na Arduino (na sliki se to naredi s svetlobnimi senzorji, vendar isto vezje izgleda enako za druge analogne senzorje).

3. korak: Kodiranje

Kodiranje
Kodiranje
Kodiranje
Kodiranje
Kodiranje
Kodiranje
Kodiranje
Kodiranje

1. Prenos

Prenesite zip mapo (SSAD_analogueInputs.zip), priloženo spodaj. Odpakirajte.

Prenesite Arduino IDE (https://www.arduino.cc/en/main/software).

Odprite datoteko Arduino (SSAD_analogueInputs.ino), ki je v nezapakirani mapi z Arduino IDE.

2. Namestite knjižnice

Za zagon priložene kode morate namestiti nekaj knjižnic. Če je datoteka Arduino, ki je priložena na koncu tega članka, odprta v Arduino IDE, naredite naslednje:

  1. Kliknite: Orodja → Upravljanje knjižnic…
  2. V polju Filtrirajte iskalno polje poiščite "Knjižnica Adafruit Motor Shield V2"
  3. Namestite ga s klikom na gumb Namesti

Po prenosu teh knjižnic bi zdaj morali delovati stavki #include v podanih kodah. Preverite to s klikom na gumb "Preveri" (označite na levem vrhu). Veste, da vse knjižnice delujejo, če na dnu programa dobite sporočilo "Kompilacija je končana". V nasprotnem primeru se prikaže rdeča vrstica in dobili boste sporočilo, kaj je šlo narobe.

3. Spremenite kodo

Kodo spremenite glede na vaš primer uporabe, tako da sledite spodnjim navodilom:

Zagon motorjev in njihovi senzorični izhodi

Najprej določite, katere zatiče uporabljajo motorji in v kakšnem obsegu delujejo motorji. Na primer, motor, ki je priključen na M4 in deluje v območju (hitrosti) 25 in 175, je tako razglašen (pod glavnim komentarjem):

Motor motorja1 = motor (4, 25, 175);

Pri delu z motorji z majhnimi vibracijami, ki se poganjajo v območju do 3 V, je treba ščit motorja uporabljati previdno, saj je namenjen za delovanje motorjev na napetostih od 4,5 V do 13,5 V DC. Da ne poškodujem 3V motorjev, sem programsko omejil voltov izhod ščita na največ 3 V (natančno 2,95 V). To sem naredil tako, da sem izmeril, koliko je največja hitrost 255 v voltih, in z multimetrom izmeril, da je to 4,3 V. Zato motorjem nikoli nisem dovolil večje hitrosti od 175, kar je približno 3V.

Vsak motor bo povezan z enim senzorskim izhodom.

En senzorični izhod je sestavljen iz enega ali več senzoričnih dražljajev. Na primer, motor bi lahko vibriral v skladu z enim samim senzorjem ali glede na povprečje več, različno nameščenih senzorjev.

Zato je treba najprej za vsak motor prijaviti en SensoryOutput. Številke v oklepajih so najmanjša in največja vrednost tega, kar zazna senzor (skupina). Za analogne senzorje sta to večinoma 0 in 1023:

SensoryOutput output1 = SensoryOutput output (0, 1023);

V funkciji loop () je vsakemu motorju dodeljena ena izhodna vrednost. Tukaj za vsak motor napišete naslednjo izjavo in namesto "output1", kakršno koli vrednost SensoryOutput naj bo povezana z njim. Ne pozabite spremeniti tudi vseh "output1" imen v tej vrstici, če za to uporabite drugo ime.

motor1.drive (output1.getValue (), output1.getMin (), output1.getMax ());

Če želite, lahko daste več motorjev (npr. Motorja 1 in motorja 2) isti SensoryOutput (npr. Izhod 1).

Poleg tega lahko enemu motorju daste vrednosti več senzorjev (glejte naslednje poglavje).

Določanje senzorjev

V funkciji setup () je treba navesti, kateri senzorji bodo del katerih vibracij motorja (SensoryOutput). Tukaj je primer, kako določite, da je treba senzor, ki je priključen na Arduino Pin A0, pretvoriti v vibracije z motorjem1 in posledično izhod1:

output1.include (A0);

Če je treba v eni vibraciji motorja združiti več senzorskih izhodov, lahko izhodu samo dodate še en analogni vhodni pin:

output1.include (A1);

V nasprotnem primeru nadaljujte z naslednjim izhodom:

output2.include (A1);

Kombinacija več senzorjev

Kot je navedeno zgoraj, je mogoče do enega motorja voditi več vhodov senzorjev (npr. Iz A0, A1 in A2). Koda, ki jo posredujem, izračuna povprečje vrednosti, ki jih preberejo vsi vključeni senzorji. Torej, če je to dovolj za vaš primer uporabe in želite preprosto na primer preslikati nizki senzorični vnos na nizke vibracije, ste končali in vam ni treba razmišljati o naslednjem:

Če pa imate druge ideje o tem, kaj želite narediti z enim ali več surovimi senzoričnimi vhodi, lahko to naredite v skladu s spremembami funkcije int getValue () v razredu SensoryOutput:

int getValue () {

finalOutput = 0; // TODO naredi s senzoričnimi vrednostmi vse, kar hočeš // tukaj je zgrajeno povprečje, če se združi več vrednosti za (int i = 0; i <curArrayLength; i ++) {finalOutput+= analogRead (valueArray ); } return finalOutput / curArrayLength; }

4. Naložite kodo v svoj prototip Arduino

Priključite prototip Arduino (od koraka 2) do računalnika.

Kliknite Orodja → Vrata → Izberite vrata, kjer je v oklepajih zapisano Arduino/Genuino Uno

Kliknite Orodja → Kartica → Arduino/Genuino Uno

Zdaj bi morali motorji delovati v skladu z vhodi analognih senzorjev. Če želite, lahko Arduino odklopite iz računalnika in ga priključite na drug vir napajanja, na primer 9V baterijo.

4. korak: Možne razširitve

Možne razširitve
Možne razširitve
Možne razširitve
Možne razširitve
Možne razširitve
Možne razširitve

Prototip, ki ste ga pravkar zgradili, omogoča izključno analogne vhode in lahko poganja do štiri motorje. Poleg tega še ni nosljiva. Če želite razširiti te funkcije, si oglejte naslednja navodila:

  • Pokrivanje vrtljivih mas ERM motorjev:
  • Kako narediti SSAD nosljiv:
  • Uporaba več kot 4 motorjev-Zlaganje več motornih ščitov:
  • Uporaba ultrazvočnega senzorja bližine kot vhoda SSAD:

Priporočena: