Talaan ng mga Nilalaman:

Vibrotactile Sensory Substitution at Augmentation Device (SSAD): 4 na Hakbang
Vibrotactile Sensory Substitution at Augmentation Device (SSAD): 4 na Hakbang

Video: Vibrotactile Sensory Substitution at Augmentation Device (SSAD): 4 na Hakbang

Video: Vibrotactile Sensory Substitution at Augmentation Device (SSAD): 4 na Hakbang
Video: Mark Paterson on 'Disability, Sensory Substitution and the Origins of the Neuroplastic Subject' 2024, Hulyo
Anonim
Vibrotactile Sensory Substitution at Augmentation Device (SSAD)
Vibrotactile Sensory Substitution at Augmentation Device (SSAD)
Vibrotactile Sensory Substitution at Augmentation Device (SSAD)
Vibrotactile Sensory Substitution at Augmentation Device (SSAD)

Nilalayon ng proyektong ito na mapadali ang pagsasaliksik sa lugar ng Sensory Substitution at Augmentation. Nagkaroon ako ng posibilidad na galugarin ang iba't ibang mga paraan ng pagbuo ng mga prototypes ng SSAD na vibrotactile sa loob ng disertasyon ng MSc. Tulad ng Sensory Substitution and Augmentation ay isang paksa na may kinalaman sa mga siyentipiko lamang sa computer, kundi pati na rin ang mga mananaliksik mula sa iba pang mga larangan, tulad ng agham na nagbibigay-malay, isang sunud-sunod na tagubilin ay dapat paganahin ang mga hindi dalubhasa sa electronics at computer science na tipunin ang prototype na ito para sa kanilang sarili. pangangailangan sa pagsasaliksik.

Hindi ko balak na gumawa ng ad para sa eksaktong isang uri ng tatak / produkto. Ang proyektong ito ay hindi nai-sponsor ng anumang kumpanya. Ang materyal, ginamit ko, ay napili dahil sa mga panteknikal na pagtutukoy at kaginhawaan (bilis / gastos ng paghahatid, pagkakaroon, atbp.). Para sa lahat ng mga produkto na nabanggit sa Ituturo na ito, magagamit ang pantay na angkop na mga kahalili.

Ang kasalukuyang Instructable ay naglalaman ng mga sunud-sunod na tagubilin kung paano bumuo ng isang pangunahing prototype ng SSAD na may hanggang sa 4 na motor at mga analogue sensor.

Bilang karagdagan sa Instructable na ito Lumikha ako ng tatlong mga extension: Una, nag-publish ako ng mga tagubilin tungkol sa kung paano gamitin ang higit sa apat na mga motor na may prototype na SSAD na ito (https://www.instructables.com/id/Using-More-Than-4…). Pangalawa, nilikha ko ang pagbibigay at halimbawa ng kung paano gawin ang prototype na ito na maisusuot (https://www.instructables.com/id/Making-the-SSAD-W…) at kung paano sasakupin ang mga motor ng ERM nang walang encapsulated na umiikot na masa (https: / /www.instructables.com/id/Covering-Rotating…). Dagdag dito, isang halimbawa ng kung paano isama bukod sa mga analogue sensor (sa kasong ito ang isang proximity sensors) sa prototype ay nai-publish din (https://www.instructables.com/id/Including-a-Proxi…).

Ano ang "Sensory Substitution and Augmentation"?

Sa Sensory Substitution ang impormasyong nakalap ng isang sensory modalidad (hal. Paningin) ay maaaring mapagtanto sa pamamagitan ng ibang kahulugan (hal. Tunog). Ito ay isang promising di-nagsasalakay na diskarteng makakatulong sa mga tao na mapagtagumpayan ang pagkawala ng pandama o kapansanan.

Kung ang sensory stimulus, na isinalin, ay karaniwang hindi mahahalata ng mga tao (hal. UV light), ang pamamaraang ito ay tinatawag na Sensory Augmentation.

Anong mga kasanayan ang kinakailangan upang mabuo ang prototype na ito?

Talaga, walang mga advanced na kasanayan sa pag-program ang kinakailangan upang sundin ang mga tagubilin, na ibinigay sa ibaba. Gayunpaman, kung ikaw ay isang nagsisimula sa paghihinang, magplano ng ilang dagdag na oras upang malaman ang diskarteng ito. Kung sakaling hindi mo pa nai-program bago, maaaring kailanganin ang ilang tulong mula sa isang taong mas may karanasan sa pagprograma.

Mayroon bang mga makina o tool na kinakailangan na magastos o hindi madaling magamit?

Maliban sa isang panghinang, walang mga makina o tool ang kinakailangan para sa pagbuo ng prototype na ito na hindi mo madaling mabibili online o sa susunod na tindahan ng sambahayan. Ang SSAD na ito ay dinisenyo upang payagan ang mabilis na pag-prototyping, na nangangahulugang dapat itong mabilis na kopyahin at payagan ang isang murang paggalugad ng mga ideya.

Mga gamit

Pangunahing mga bahagi (tungkol sa 65 £ para sa 4 na motor, excl. Kagamitan sa paghihinang)

  • Arduino Uno (hal. Https://store.arduino.cc/arduino-uno-rev3, 20 £)
  • Adafruit Motorshield v2.3 (hal. Https://www.adafruit.com/product/1438, 20 £) at mga male stacking header (karaniwang kasama kapag bumibili ng motorshield)
  • Mga motor na Cylindrical ERM (hal. Https://www.adafruit.com/product/1438, 5, 50 £ / motor)
  • Panghinang at bakal na panghinang
  • Mga wire

Opsyonal (tingnan ang Mga Extension)

Kung ang ERM motor na may walang takip na umiikot na masa ay binili:

  • Tubo ng vinyl
  • Manipis na board na malambot
  • 3D printer (para sa Arduino casing)

Kung nais mong gumamit ng higit sa 4 na motor (para sa higit sa 8 magkapareho sa ibang pagkakataon):

  • Adafruit Motorshield v2.3 at male stacking header
  • Mga header ng stacking ng babae (hal.
  • Arduino Mega para sa higit sa 6 na mga motor (hal.

Hakbang 1: Paghihinang

Paghihinang
Paghihinang

Paghinang ng mga pin sa motorshield

Nag-aalok ang Adafruit ng isang napaka-komprehensibong tutorial kung paano maghinang ng mga header sa isang motorshield (https://learn.adafruit.com/adafruit-motor-shield-v…):

  1. Una, ilagay ang mga stacking header sa mga pin sa Arduino Uno,
  2. Pagkatapos, ilagay ang kalasag sa itaas, upang ang maikling gilid ng mga pin ay dumikit.
  3. Pagkatapos nito, solder ang lahat ng mga pin sa kalasag at tiyaking dumadaloy ang solder sa paligid ng pin at bumubuo ng isang hugis ng bulkan (tingnan ang larawan sa itaas, na pinagtibay mula sa https://cdn.sparkfun.com/assets/c/d/ a / a / 9 / 523b1189…).

Kung ikaw ay isang nagsisimula sa paghihinang, tulungan ang iyong sarili sa maraming mga tutorial, tulad ng

Ang mga panghinang na haba na wires sa motor

Tulad ng karamihan sa mga motor ay dumating nang wala o masyadong maikli at manipis na mga wire, makatuwiran na pahabain ang mga ito sa pamamagitan ng paghihinang sa mga ito sa mas mahaba at mas matatag na mga wire. Narito kung paano mo magagawa iyon:

  1. Alisin ang plastik sa paligid ng dulo ng mga wire at iposisyon ito upang sila ay makipag-ugnay sa bawat isa kasama ang kanilang mga nakalantad na mga wire, tulad ng sa larawan.
  2. Maghinang silang magkasama sa pamamagitan ng pagpindot sa mga thread ng parehong wires at hayaang dumaloy ang solder sa kanila.

Hakbang 2: Mga kable

Kable
Kable
  1. Mag-stack ng motorshield sa itaas ng Arduino.
  2. Mga tornilyo na motor sa motorshield.
  3. Ang mga wire analogue sensor sa Arduino (sa imahe ginagawa ito sa mga light sensor, ngunit ang parehong circuit ay mukhang pareho para sa iba pang mga analogue sensor).

Hakbang 3: Pag-coding

Coding
Coding
Coding
Coding
Coding
Coding
Coding
Coding

1. Mag-download

Mag-download ng zip folder (SSAD_analogueInputs.zip), nakalakip sa ibaba. I-zip mo ito

I-download ang Arduino IDE (https://www.arduino.cc/en/main/software).

Buksan ang Arduino file (SSAD_analogueInputs.ino) na nasa loob ng unzipped folder gamit ang Arduino IDE.

2. Mag-install ng Mga Aklatan

Para sa pagpapatakbo ng ibinigay na code, kailangan mong mag-install ng ilang mga aklatan. Kaya, kung ang file ng Arduino, na naka-attach sa dulo ng artikulong ito, ay bukas sa loob ng Arduino IDE, gawin ang sumusunod:

  1. Mag-click: Mga Tool → Pamahalaan ang Mga Aklatan…
  2. Hanapin ang "Adafruit Motor Shield V2 Library" sa Filter ng iyong patlang ng paghahanap
  3. I-install ito sa pamamagitan ng pag-click sa Button ng Pag-install

Matapos ang pag-download ng mga silid-aklatan na ito, ngayon ang # isama ang mga pahayag sa mga ibinigay na code ay dapat na gumana. Suriin iyon sa pamamagitan ng pag-click sa Button na "Patunayan" (Lagyan ng tsek sa kaliwang tuktok). Alam mo na gumagana ang lahat ng mga aklatan, kung makuha mo ang mensahe na "Tapos na sa pag-iipon" sa ilalim ng programa. Kung hindi man ay lilitaw ang isang pulang bar at makakakuha ka ng isang mensahe kung ano ang maling nangyari.

3. Baguhin ang Code

Baguhin ang code alinsunod sa iyong kaso ng paggamit sa pamamagitan ng pagsunod sa mga tagubilin sa ibaba:

Initiating Motors at ang kanilang SensoryOutputs

Una sa lahat, ideklara kung aling mga pin ang ginagamit ng mga motor, pati na rin sa kung anong saklaw ang gumagana ng mga motor. Halimbawa, ang isang motor na nakakabit sa M4 at gumagana sa isang (bilis) na saklaw na 25 at 175 ay idineklarang ganoon (sa ilalim ng MAIN komento):

Motor motor1 = Motor (4, 25, 175);

Kapag nagtatrabaho sa maliit na mga motor na panginginig ng boses na hinihimok sa isang saklaw hanggang sa 3V, ang motorhield ay dapat gamitin nang may pag-iingat dahil ginawa ito para sa pagpapatakbo ng mga motor sa 4.5VDC hanggang 13.5VDC. Upang hindi mapinsala ang mga 3V motor, programmediko kong pinaghigpitan ang output ng Volt ng kalasag sa maximum na 3V (eksaktong 2.95V). Ginawa ko iyon sa pamamagitan ng pagsukat kung magkano ang maximum na bilis ng 255 ay nasa Volt at sinusukat sa isang multimeter na ito ay 4.3V. Samakatuwid, hindi ko pinapayagan ang isang mas mataas na bilis kaysa sa 175, na halos 3V, sa mga motor.

Ang bawat motor ay konektado sa isang SensoryOutput.

Ang isang SensoryOutput ay binubuo ng isa o maraming mga sensory stimuli. Halimbawa, ang isang motor ay maaaring mag-vibrate alinsunod sa isang solong sensor, o ayon sa average ng maramihang, magkakaibang nakaposisyon na mga sensor.

Samakatuwid, una para sa bawat motor, isang SensoryOutput ang dapat ideklara. Ang mga numero sa loob ng mga bracket ay ang minimum at pinakamataas na halaga ng maaaring makita ng sensor (grupo). Para sa mga analogue sensor ito ay halos 0 at 1023:

Output ng SensoryOutput1 = SensoryOutput (0, 1023);

Sa loop () na pag-andar ang bawat motor pagkatapos ay itinalaga sa isang halaga ng output. Sumusulat ka dito isulat para sa bawat motor ang sumusunod na pahayag at sa halip na "output1", anuman ang halaga ng SensoryOutput na dapat na konektado dito. Huwag kalimutan na baguhin din ang lahat ng mga pangalan na "output1" sa linyang ito, kung gumagamit ka ng ibang pangalan para rito.

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

Kung nais mo, maaari kang magbigay ng maraming mga motor (hal. Motor1 at motor2) ng parehong SensoryOutput (hal. Output1).

Dagdag dito, maaari mong ibigay ang mga halaga ng maraming mga sensor sa isang motor (tingnan ang susunod na seksyon).

Pagtukoy sa Mga Sensor

Sa pag-andar ng setup () kailangan itong ideklara kung aling mga sensor ang magiging bahagi ng kung aling panginginig ng motor (SensoryOutput). Narito ang isang halimbawa ng kung paano mo tinukoy na ang sensor na konektado sa Arduino Pin A0 ay dapat isalin sa mga panginginig sa motor1 at dahil dito ay output1:

output1.include (A0);

Kung ang maramihang mga output ng pandama ay dapat na pagsamahin sa loob ng isang panginginig ng motor, maaari ka lamang magdagdag ng isa pang analogue input pin sa output1:

output1.include (A1);

Kung hindi man, magpatuloy lamang sa susunod na output:

output2.include (A1);

Pinagsasama ang Maramihang Mga Sensor

Tulad ng nabanggit sa itaas, maraming mga input ng sensor (hal. Mula sa A0, A1 at A2) ay maaaring humantong sa isang motor. Ang code, nagbibigay ako, ay kinakalkula ang average ng mga halagang binabasa ng lahat ng mga kasama na sensor. Kaya, kung ito ay sapat na para sa iyong kaso ng paggamit at nais mo lamang direktang mapa, halimbawa, isang mababang sensory input sa isang mababang panginginig ng boses, tapos ka na at hindi mo kailangang isipin ang tungkol sa sumusunod:

Gayunpaman, kung mayroon kang iba pang mga ideya kung ano ang nais mong gawin sa isa o maraming mga raw na sensory input, maaari mong gawin ang mga naaayon sa mga pagbabago sa pagpapaandar int getValue () sa klase ng SensoryOutput:

int getValue () {

finalOutput = 0; // TODO gawin ang nais mo sa mga sensory na halaga // dito itinatayo ang average, kung maraming mga halagang pinagsama para sa (int i = 0; i <curArrayLength; i ++) {finalOutput + = analogRead (valueArray ); } bumalik finalOutput / curArrayLength; }

4. I-upload ang Code sa iyong Arduino Prototype

I-plug ang Arduino Prototype (mula sa Hakbang 2) sa iyong PC.

I-click ang Mga Tool → Port → Piliin ang Port, kung saan ang Arduino / Genuino Uno ay nakasulat sa mga braket

I-click ang Mga Tool → Lupon → Arduino / Genuino Uno

Ngayon, ang mga motor ay dapat tumakbo alinsunod sa mga input ng mga analogue sensor. Kung nais mo, maaari mong idiskonekta ang Arduino mula sa iyong PC at i-plug ito sa isa pang mapagkukunan ng kuryente, tulad ng isang 9V na baterya.

Hakbang 4: Mga Posibleng Extension

Mga Posibleng Extension
Mga Posibleng Extension
Mga Posibleng Extension
Mga Posibleng Extension
Mga Posibleng Extension
Mga Posibleng Extension

Ang prototype na iyong itinayo ay nagbibigay-daan sa eksklusibong mga pag-input ng analogue at maaaring magmaneho ng hanggang sa apat na mga motor. Bukod dito, hindi pa ito masusuot. Kung nais mong pahabain ang mga tampok na iyon, tingnan ang mga sumusunod na tagubilin:

  • Saklaw ang Mga Paikot na Masa ng ERM Motors:
  • Ginagawang Masuot ang SSAD:
  • Paggamit ng higit sa 4 na Mga Motors - Pag-stack ng maraming mga motorhield:
  • Paggamit ng isang ultrasonic proximity sensor bilang SSAD input:

Inirerekumendang: