Cuprins:

Mouse computer Cyborg: 4 pași (cu imagini)
Mouse computer Cyborg: 4 pași (cu imagini)

Video: Mouse computer Cyborg: 4 pași (cu imagini)

Video: Mouse computer Cyborg: 4 pași (cu imagini)
Video: TVneWs - O mama beata cade cu copilul în brate ! 2024, Noiembrie
Anonim
Mouse computer Cyborg
Mouse computer Cyborg

Multe studii sugerează că postura utilizării unui mouse convențional de computer poate fi periculoasă. Mouse-ul este o piesă standard de echipament de calculator. Utilizatorii de computere folosesc mouse-ul de aproape trei ori mai mult decât tastatura. Deoarece ratele de expunere sunt ridicate, îmbunătățirea posturii extremităților superioare în timpul utilizării mouse-ului computerului este foarte importantă.

Pentru acest proiect abstract vom realiza un dispozitiv portabil care să permită oamenilor să se deplaseze printr-un ecran de computer fără a fi necesară o tehnologie externă. În acest fel am putea folosi mâinile mișcări naturale în loc să facem clic pe un dispozitiv pe o suprafață orizontală. Acest lucru permite, de asemenea, utilizarea ecranelor în picioare, făcând prezentările orale mai plăcute.

În ceea ce privește prototipul, se va folosi indexul ca joystick, degetul mijlociu pentru clic stâng, deget inelar pentru clic dreapta și roz pentru pornirea și oprirea dispozitivului. Degetul mare va acționa ca suprafața pe care se apasă butoanele. Toate acestea vor fi adăugate într-o mănușă.

Provizii

  • (x1) Arduino Leonardo
  • (x1) Protoboard
  • (x1) Modul joystick
  • (x3) Buton
  • (x20 ±) Jumperi de sârmă
  • (x3) Rezistențe de 1KΩ
  • (x1) Set de cusut pentru mănuși
  • Silicon fierbinte cu velcro
  • Set de lipit sârmă
  • Piesă tipărită 3D

Pasul 1: configurați hardware-ul

Configurați hardware-ul
Configurați hardware-ul

Am inclus o schiță Fritzing pentru o mai bună înțelegere a designului. Vă recomandăm mai întâi să montați componentele pe un protoboard. În acest fel puteți verifica dacă totul funcționează înainte de lipire.

Pasul 2: încărcați codul și testați

Odată ce conexiunile sunt făcute, conectați USB A (M) la micro USB B (M) de la computer la Arduino Leonardo și încărcați schița. Simțiți-vă liber să copiați, să modificați și să îmbunătățiți schița.

AVERTISMENT: Când utilizați comanda Mouse.move (), Arduino preia mouse-ul! Asigurați-vă că aveți controlul înainte de a utiliza comanda. Funcționează doar pentru Arduino Leonardo, Micro sau Due

Iată codul nostru pentru acest proiect:

// Definiți pini # include; const int mouseMiddleButton = 2; // pin de intrare pentru mijlocul mouse-ului Buton const int startEmulation = 3; // comutați pentru a activa și dezactiva emularea mouse-ului const int mouseLeftButton = 4; // pin de intrare pentru mouse stânga Buton const int mouseRightButton = 5; // pin de intrare pentru mouse dreapta Buton const int joystickX = A1; // joystick X axis const int joystickY = A0; // joystick axa Y

// parametrii pentru citirea joystick-ului:

int cursorSpeed = 10; // viteza de ieșire a mișcării X sau Y int responseDelay = 5; // întârziere de răspuns a mouse-ului, în prag ms int = cursorSpeed / 4; // prag de odihnă int center = cursorSpeed / 2; // valoarea poziției de repaus int mouseMiddleState = 0;

mouse booleanIsActive = false; // dacă se controlează sau nu mouse-ul

int lastSwitchState = LOW; // starea de comutare anterioară

configurare nulă () {

pinMode (startEmulation, INPUT); // comutatorul pin pinMode (mouseMiddleButton, INPUT); // butonul din mijloc al mouse-ului pin pinMode (mouseLeftButton, INPUT); // butonul stâng al mouse-ului pin pinMode (mouseRightButton, INPUT); // butonul drept al mouse-ului

Mouse.begin (); // preia controlul mouse-ului

}

bucla nulă () {

// citiți comutatorul: int switchState = digitalRead (startEmulation);

// dacă este modificat și este ridicat, comutați starea mouse-ului:

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

// salvați starea comutatorului pentru următoarea buclă:

lastSwitchState = switchState;

// citiți și scalați cele două axe:

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

// dacă starea de control a mouse-ului este activă, mutați mouse-ul:

if (mouseIsActive) {Mouse.move (xReading, yReading, 0); // (x, y, rotița mouse-ului)}

//STÂNGA

// citiți butonul mouse-ului și faceți clic sau nu faceți clic: // dacă butonul mouse-ului este apăsat: if (digitalRead (mouseLeftButton) == HIGH) {// dacă mouse-ul nu este apăsat, apăsați-l: if (! Mouse.isPressed (MOUSE_LEFT)) {Mouse.press (MOUSE_LEFT); întârziere (100); // întârziere pentru a activa un singur clic și dublu clic pe Mouse.release (MOUSE_LEFT); }}

// altfel butonul mouse-ului nu este apăsat:

else {// dacă mouse-ul este apăsat, eliberați-l: if (Mouse.isPressed (MOUSE_LEFT)) {Mouse.release (MOUSE_LEFT); }}

//DREAPTA

// citiți butonul mouse-ului și faceți clic sau nu faceți clic: // dacă butonul mouse-ului este apăsat: if (digitalRead (mouseRightButton) == HIGH) {// dacă mouse-ul nu este apăsat, apăsați-l: if (! Mouse.isPressed (MOUSE_RIGHT)) {Mouse.press (MOUSE_RIGHT); întârziere (100); // întârziere pentru a activa un singur clic și dublu clic pe Mouse.release (MOUSE_RIGHT); }}

// altfel butonul mouse-ului nu este apăsat:

else {// dacă mouse-ul este apăsat, eliberați-l: if (Mouse.isPressed (MOUSE_RIGHT)) {Mouse.release (MOUSE_RIGHT); }}

//MIJLOC

// citiți butonul mouse-ului și faceți clic sau nu faceți clic: // dacă butonul mouse-ului este apăsat: if (digitalRead (mouseMiddleButton) == HIGH) {// dacă mouse-ul nu este apăsat, apăsați-l: if (! Mouse.isPressed (MOUSE_MIDDLE) && mouseMiddleState == 0) {Mouse.press (MOUSE_MIDDLE); mouseMiddleState = 1; // actualiza statul butonului}}

// altfel butonul mouse-ului nu este apăsat:

else {// dacă mouse-ul este apăsat, eliberați-l: if (Mouse.isPressed (MOUSE_MIDDLE) && mouseMiddleState == 1) {Mouse.release (MOUSE_MIDDLE); mouseMiddleState = 0; }}

întârziere (responseDelay);

}

/*

citește o axă (0 sau 1 pentru x sau y) și scalează gama de intrare analogică la un interval de la 0 la * /

int readAxis (int thisAxis) {

// citiți intrarea analogică: int reading = analogRead (thisAxis);

// mapează citirea de la intervalul de intrare analogic la intervalul de ieșire:

citire = hartă (citire, 0, 1023, 0, cursorSpeed);

// dacă citirea de ieșire este în afara de

// pragul poziției de odihnă, folosiți-l: distanță int = citire - centru;

if (abs (distanță) <prag) {distance = 0; }

// returnează distanța pentru această axă:

distanța de întoarcere; }

Pasul 3: Montarea prototipului

Montarea prototipului
Montarea prototipului
Montarea prototipului
Montarea prototipului
Montarea prototipului
Montarea prototipului

Primul pas este să coaseți velcro-ul pe mănușă, trebuie să coaseți patru benzi de velcro una la fiecare deget. Am cusut partea moale a velcro-ului.

Fiecare buton are două fire, unul care pornește de la pinii respectivi și se conectează la piciorul pozitiv al butonului și altul la piciorul negativ. La celălalt capăt al firului negativ lipim rezistențele fiecărui buton plus firul negativ al joystick-ului la un ultim fir, care se conectează la GND-ul plăcii Arduino. Aceeași conexiune paralelă funcționează și pentru partea pozitivă. (3 butoane și joystick pozitiv picior)

După lipirea jumperilor, vom pune benzi de velcro dure, astfel încât firele să se blocheze între ele. În cele din urmă, am termo-lipit modulul joystick-ului pe o piesă tipărită 3D. Mai jos puteți găsi fișierul. STL.

Pasul 4: Începeți să folosiți mâna ca mouse

Image
Image
Începeți să vă folosiți mâna ca mouse!
Începeți să vă folosiți mâna ca mouse!
Începeți să vă folosiți mâna ca mouse!
Începeți să vă folosiți mâna ca mouse!

Votați pentru noi în cadrul concursului de asistență tehnică dacă v-a plăcut proiectul.

Recomandat: