Sadržaj:

Računalni miš Cyborg: 4 koraka (sa slikama)
Računalni miš Cyborg: 4 koraka (sa slikama)

Video: Računalni miš Cyborg: 4 koraka (sa slikama)

Video: Računalni miš Cyborg: 4 koraka (sa slikama)
Video: Собаку бросили в лесу с коробкой макарон. История собаки по имени Ринго. 2024, Novembar
Anonim
Računalni miš Cyborg
Računalni miš Cyborg

Mnoge studije ukazuju na to da položaj upotrebe konvencionalnog računarskog miša može biti opasan. Miš je standardni dio računarske opreme. Korisnici računara koriste miš gotovo tri puta više od tastature. Kako su stope izloženosti velike, poboljšanje držanja gornjih ekstremiteta tijekom korištenja računalnog miša vrlo je važno.

Za ovaj apstraktni projekt napravit ćemo nosivi uređaj koji omogućava ljudima da se kreću kroz ekran računara bez potrebe za vanjskom tehnologijom. Na taj način bismo mogli koristiti ruke prirodnim pokretima umjesto klikanja uređaja na vodoravnoj površini. Ovo takođe omogućava korišćenje ekrana dok stojite, čineći usmene prezentacije prijatnijima.

Što se tiče prototipa, indeks će se koristiti kao joystick, srednji prst za lijevi klik, prstenjak za desni klik i pinky za uključivanje i isključivanje uređaja. Palac će djelovati kao površina na kojoj se pritisnu tipke. Sve će se to dodati u rukavicu.

Supplies

  • (x1) Arduino Leonardo
  • (x1) Protoboard
  • (x1) Modul džojstika
  • (x3) Taster
  • (x20 ±) Žičani kratkospojnici
  • (x3) Otpornici od 1KΩ
  • (x1) Komplet za šivanje rukavica
  • Čičak Vrući silikon
  • Komplet za lemljenje žice
  • 3D štampani deo

Korak 1: Postavite hardver

Postavite hardver
Postavite hardver

Uključili smo Fritzing skicu za bolje razumijevanje dizajna. Preporučujemo da komponente prvo montirate na protoboard. Na taj način možete provjeriti radi li sve prije lemljenja.

Korak 2: Otpremite kôd i testirajte

Nakon povezivanja spojite USB A (M) na mikro USB B (M) s računala na Arduino Leonardo i prenesite skicu. Slobodno kopirajte, izmijenite i poboljšajte skicu.

UPOZORENJE: Kada koristite naredbu Mouse.move (), Arduino preuzima vaš miš! Prije upotrebe naredbe provjerite imate li kontrolu. Radi samo za Arduino Leonardo, Micro ili Due

Evo našeg koda za ovaj projekt:

// Definiranje pinova#include; const int mouseMiddleButton = 2; // ulazni pin za sredinu miša Button const int startEmulation = 3; // prebacivanje za uključivanje i isključivanje emulacije miša const int mouseLeftButton = 4; // ulazni pin za miša lijevo Button const int mouseRightButton = 5; // ulazni pin za miša desno Button const int joystickX = A1; // joystick X os const int joystickY = A0; // joystick Y os

// parametri za čitanje upravljačke palice:

int cursorSpeed = 10; // izlazna brzina kretanja X ili Y int responseDelay = 5; // kašnjenje odgovora miša, u ms int prag = cursorSpeed / 4; // prag mirovanja int center = cursorSpeed / 2; // vrijednost položaja u mirovanju int mouseMiddleState = 0;

boolean mouseIsActive = false; // da li da kontrolišemo miša ili ne

int lastSwitchState = LOW; // prethodno stanje prekidača

void setup () {

pinMode (startEmulation, INPUT); // prekidač pin pinMode (mouseMiddleButton, INPUT); // srednja tipka miša pin pinMode (mouseLeftButton, INPUT); // lijeva tipka miša pin pinMode (mouseRightButton, INPUT); // pin desne tipke miša

Mouse.begin (); // preuzimamo kontrolu nad mišem

}

void loop () {{100} {101}

// čita prekidač: int switchState = digitalRead (startEmulation);

// ako je promijenjen i visok, promijenite stanje miša:

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

// spremanje stanja prekidača za sljedeću petlju:

lastSwitchState = switchState;

// očitavanje i mjerenje dviju osi:

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

// ako je stanje kontrole miša aktivno, pomaknite miš:

if (mouseIsActive) {Mouse.move (xReading, yReading, 0); // (x, y, pomičite kotačić miša)}

// LIJEVO

// čitajte dugme miša i kliknite ili ne kliknite: // ako je pritisnuto dugme miša: if (digitalRead (mouseLeftButton) == HIGH) {// ako miš nije pritisnuto, pritisnite ga: if (! Mouse.isPressed (MOUSE_LEFT)) {Mouse.press (MOUSE_LEFT); kašnjenje (100); // odgoda za omogućavanje jednog i dvostrukog klika na Mouse.release (MOUSE_LEFT); }}

// inače dugme miša nije pritisnuto:

else {// ako je miš pritisnut, otpustite ga: if (Mouse.isPressed (MOUSE_LEFT)) {Mouse.release (MOUSE_LEFT); }}

// DESNO

// čitajte dugme miša i kliknite ili ne kliknite: // ako je pritisnuto dugme miša: if (digitalRead (mouseRightButton) == HIGH) {// ako miš nije pritisnuto, pritisnite ga: if (! Mouse.isPressed (MOUSE_RIGHT)) {Mouse.press (MOUSE_RIGHT); kašnjenje (100); // odgoda za omogućavanje jednog i dvostrukog klika na Mouse.release (MOUSE_RIGHT); }}

// inače dugme miša nije pritisnuto:

else {// ako je miš pritisnut, otpustite ga: if (Mouse.isPressed (MOUSE_RIGHT)) {Mouse.release (MOUSE_RIGHT); }}

// SREDNJI

// čitajte dugme miša i kliknite ili ne kliknite: // ako je pritisnuto dugme miša: if (digitalRead (mouseMiddleButton) == HIGH) {// ako miš nije pritisnuto, pritisnite ga: if (! Mouse.isPressed (MOUSE_MIDDLE) && mouseMiddleState == 0) {Mouse.press (MOUSE_MIDDLE); mouseMiddleState = 1; // aktualiziranje el estado del botón}}

// inače dugme miša nije pritisnuto:

else {// ako je miš pritisnut, otpustite ga: if (Mouse.isPressed (MOUSE_MIDDLE) && mouseMiddleState == 1) {Mouse.release (MOUSE_MIDDLE); mouseMiddleState = 0; }}

kašnjenje (responseDelay);

}

/*

čita os (0 ili 1 za x ili y) i skalira raspon analognog ulaza u raspon od 0 do */

int readAxis (int thisAxis) {{100} {101}

// čita analogni ulaz: int reading = analogRead (thisAxis);

// preslikavanje očitanja iz raspona analognog ulaza u izlazni raspon:

čitanje = karta (čitanje, 0, 1023, 0, cursorSpeed);

// ako je očitavanje izlaza izvan

// prag položaja mirovanja, upotrijebite ga: int distance = očitanje - centar;

if (abs (udaljenost) <prag) {distance = 0; }

// vraća udaljenost za ovu os:

povratna udaljenost; }

Korak 3: Montiranje prototipa

Montaža prototipa
Montaža prototipa
Montaža prototipa
Montaža prototipa
Montaža prototipa
Montaža prototipa

Prvi korak je šivanje čičak trake na rukavicu, morate prišiti četiri trake čičak po jednu na svaki prst. Sašili smo mekani dio čička.

Svako dugme ima dvije žice, jedna koja počinje na odgovarajućim pinovima i povezuje se s pozitivnom nogom dugmeta, a druga na negativnoj. Na drugom kraju negativne žice lemimo otpore svakog dugmeta plus negativnu žicu džojstika na posljednju žicu, koja se spaja na GND Arduino ploče. Ista paralelna veza radi i s pozitivne strane. (3 dugmeta i pozitivna noga džojstika)

Nakon lemljenja kratkospojnika stavit ćemo tvrde čičak trake, tako da se žice zaglave između njih. Na kraju smo termo-lijepili modul joystick-a na 3D štampani komad. Ispod možete pronaći. STL datoteku.

Korak 4: Počnite koristiti ruku kao miš

Image
Image
Počnite koristiti ruku kao miš!
Počnite koristiti ruku kao miš!
Počnite koristiti ruku kao miš!
Počnite koristiti ruku kao miš!

Glasajte za nas na takmičenju Assistive Tech Contest ako ste uživali u projektu.

Preporučuje se: