Cyborg Computer Mouse: 4 Hakbang (na may Mga Larawan)
Cyborg Computer Mouse: 4 Hakbang (na may Mga Larawan)
Anonim
Cyborg Computer Mouse
Cyborg Computer Mouse

Maraming mga pag-aaral ang nagmumungkahi na ang pustura ng paggamit ng isang maginoo na mouse ng computer ay maaaring mapanganib. Ang mouse ay isang karaniwang piraso ng kagamitan sa computer. Ang mga gumagamit ng computer ay gumagamit ng mouse halos tatlong beses nang mas malaki sa keyboard. Dahil mataas ang mga rate ng pagkakalantad, napakahalaga ng pagpapabuti ng pang-itaas na pustura habang ginagamit ang isang computer mouse.

Para sa abstract na proyekto na ito ay gagawa kami ng isang naisusuot na nagpapahintulot sa mga tao na lumipat sa isang computer screen nang hindi kinakailangan ng panlabas na teknolohiya. Sa ganoong paraan maaari naming magamit ang mga kamay natural na paggalaw sa halip na pag-click sa isang aparato sa isang pahalang na ibabaw. Pinapayagan din itong gumamit ng mga screen habang nakatayo, na ginagawang mas kaaya-aya ang mga oral na presentasyon.

Tulad ng para sa prototype ay gagamit ng index bilang isang joystick, ang gitnang daliri para sa kaliwang pag-click, singsing ng daliri para sa kanang pag-click at ang pinky para sa pag-on at pag-off ng aparato. Ang hinlalaki ay kikilos bilang ibabaw kung saan pinindot ang mga pindutan. Ang lahat ng ito ay idaragdag sa isang guwantes.

Mga gamit

  • (x1) Arduino Leonardo
  • (x1) Protoboard
  • (x1) module ng Joystick
  • (x3) Pushbutton
  • (x20 ±) Mga jumper ng wire
  • (x3) Mga lumalaban ng 1KΩ
  • (x1) Glove sewing kit
  • Velcro Mainit na silikon
  • Wire Soldering kit
  • 3D na naka-print na bahagi

Hakbang 1: I-set up ang Hardware

I-set up ang Hardware
I-set up ang Hardware

Nagsama kami ng isang Fritzing sketch para sa isang mas mahusay na pag-unawa sa disenyo. Inirerekumenda naming i-mount muna ang mga bahagi sa isang protoboard. Sa ganoong paraan maaari mong suriin na gumagana ang lahat bago maghinang.

Hakbang 2: I-upload ang Code at Pagsubok

Kapag nagawa ang mga koneksyon ikonekta ang USB A (M) sa micro USB B (M) mula sa computer patungo sa Arduino Leonardo at i-upload ang sketch. Huwag mag-atubiling kopyahin, baguhin at pagbutihin ang sketch.

BABALA: Kapag ginamit mo ang utos ng Mouse.move (), kukunin ng Arduino ang iyong mouse! Tiyaking mayroon kang kontrol bago mo magamit ang utos. Gumagawa lamang ito para sa Arduino Leonardo, Micro o Dahil

Narito ang aming code para sa proyektong ito:

// Define Pins # isama; const int mouseMiddleButton = 2; // input pin para sa gitna ng mouse Button const int startEmulation = 3; // switch to turn on and off mouse emulation const int mouseLeft Button = 4; // input pin para sa kaliwang mouse Button const int mouseRight Button = 5; // input pin para sa kanan ng mouse Button const int joystickX = A1; // joystick X axis const int joystickY = A0; // joystick Y axis

// mga parameter para sa pagbabasa ng joystick:

int cursorSpeed = 10; // output speed of X or Y movement int responseDelay = 5; // pagkaantala ng tugon ng mouse, sa ms int threshold = cursorSpeed / 4; // resting threshold int center = cursorSpeed / 2; // resting posisyon halaga int mouseMiddleState = 0;

boolean mouseIsActive = false; // kung makontrol o hindi ang mouse

int lastSwitchState = LOW; // nakaraang estado ng paglipat

walang bisa ang pag-setup () {

pinMode (startEmulation, INPUT); // the switch pin pinMode (mouseMiddle Button, INPUT); // ang gitnang pindutan ng mouse pin pinMode (mouseLeft Button, INPUT); // the left mouse button pin pinMode (mouseRight Button, INPUT); // ang kanang pindutan ng mouse button

Mouse.begin (); // kontrolin ang mouse

}

void loop () {

// read the switch: int switchState = digitalRead (startEmulation);

// kung binago at mataas ito, i-toggle ang estado ng mouse:

kung (switchState! = lastSwitchState) {kung (switchState == LOW) {mouseIsActive =! mouseIsActive; }}

// save state ng switch para sa susunod na loop:

lastSwitchState = switchState;

// basahin at sukatin ang dalawang palakol:

int xReading = readAxis (A1); int yReading = readAxis (A0);

// kung ang estado ng pagkontrol ng mouse ay aktibo, ilipat ang mouse:

kung (mouseIsActive) {Mouse.move (xReading, yReading, 0); // (x, y, scroll mouse wheel)}

// KALIWA

// basahin ang pindutan ng mouse at mag-click o hindi mag-click: // kung ang pindutan ng mouse ay pinindot: kung (digitalRead (mouseLeft Button) == TAAS) {// kung ang mouse ay hindi pinindot, pindutin ito: kung (! Mouse.isPressed (MOUSE_LEFT)) {Mouse.press (MOUSE_LEFT); pagkaantala (100); // pagkaantala upang paganahin ang solong at i-double click ang Mouse.release (MOUSE_LEFT); }}

// else ang pindutan ng mouse ay hindi pinindot:

iba pa {// kung ang mouse ay pinindot, pakawalan ito: kung (Mouse.isPressed (MOUSE_LEFT)) {Mouse.release (MOUSE_LEFT); }}

// TAMA

// basahin ang pindutan ng mouse at mag-click o hindi mag-click: // kung ang pindutan ng mouse ay pinindot: kung (digitalRead (mouseRight Button) == TAAS) {// kung ang mouse ay hindi pinindot, pindutin ito: kung (! Mouse.isPressed (MOUSE_RIGHT)) {Mouse.press (MOUSE_RIGHT); pagkaantala (100); // pagkaantala upang paganahin ang solong at i-double click ang Mouse.release (MOUSE_RIGHT); }}

// else ang pindutan ng mouse ay hindi pinindot:

iba pa {// kung ang mouse ay pinindot, bitawan ito: kung (Mouse.isPressed (MOUSE_RIGHT)) {Mouse.release (MOUSE_RIGHT); }}

// MIDDLE

// basahin ang pindutan ng mouse at mag-click o hindi mag-click: // kung ang pindutan ng mouse ay pinindot: kung (digitalRead (mouseMiddle Button) == TAAS) {// kung ang mouse ay hindi pinindot, pindutin ito: kung (! Mouse.isPressed (MOUSE_MIDDLE) && mouseMiddleState == 0) {Mouse.press (MOUSE_MIDDLE); mouseMiddleState = 1; // actualiza el estado del botón}}

// else ang pindutan ng mouse ay hindi pinindot:

iba pa {// kung ang mouse ay pinindot, bitawan ito: kung (Mouse.isPressed (MOUSE_MIDDLE) && mouseMiddleState == 1) {Mouse.release (MOUSE_MIDDLE); mouseMiddleState = 0; }}

antala (tugonDelay);

}

/*

nagbabasa ng isang axis (0 o 1 para sa x o y) at sinusukat ang saklaw ng pag-input ng analog sa isang saklaw mula 0 hanggang * /

int readAxis (int thisAxis) {

// basahin ang analog input: int pagbabasa = analogRead (thisAxis);

// mapa ang pagbabasa mula sa saklaw ng pag-input ng analog sa saklaw ng output:

pagbabasa = mapa (pagbabasa, 0, 1023, 0, cursorSpeed);

// kung ang output read ay nasa labas mula sa

// rest posisyon threshold, gamitin ito: int distansya = pagbabasa - gitna;

kung (abs (distansya) <threshold) {distansya = 0; }

// ibalik ang distansya para sa axis na ito:

distansya ng pagbabalik; }

Hakbang 3: Pag-mount ng Prototype

Pag-mount ng Prototype
Pag-mount ng Prototype
Pag-mount ng Prototype
Pag-mount ng Prototype
Pag-mount ng Prototype
Pag-mount ng Prototype

Ang unang hakbang ay ang pagtahi ng velcro sa guwantes, kailangan mong tahiin ang apat na piraso ng velcro isa sa bawat daliri. Tinahi namin ang malambot na bahagi ng velcro.

Ang bawat pushbutton ay may dalawang mga wire, isa na nagsisimula sa kani-kanilang mga pin at kumokonekta sa positibong binti ng pindutan at isa pa sa negatibong binti. Sa kabilang dulo ng negatibong kawad ay hinihinang namin ang mga resistensya ng bawat pindutan kasama ang negatibong kawad ng joystick sa isang huling kawad, na kumokonekta sa GND ng Arduino board. Ang parehong parallel na koneksyon ay gumagana para sa positibong panig. (3 mga pindutan at positibong binti ng joystick)

Matapos ang paghihinang ng mga jumper ay ilalagay namin ang mga matitigas na velcro-strip, upang ang mga wire ay makaalis sa pagitan. Panghuli namin na thermo-nakadikit ang module ng Joystick sa isang naka-print na piraso ng 3D. Sa ibaba mahahanap mo ang. STL file.

Hakbang 4: Simulang Paggamit ng Iyong Kamay Bilang isang Mouse

Image
Image
Simulang Paggamit ng Iyong Kamay Bilang isang Mouse!
Simulang Paggamit ng Iyong Kamay Bilang isang Mouse!
Simulang Paggamit ng Iyong Kamay Bilang isang Mouse!
Simulang Paggamit ng Iyong Kamay Bilang isang Mouse!

Bumoto para sa amin sa assistive Tech Contest kung nasisiyahan ka sa proyekto.