Taula de continguts:

Ratolí d'ordinador Cyborg: 4 passos (amb imatges)
Ratolí d'ordinador Cyborg: 4 passos (amb imatges)

Vídeo: Ratolí d'ordinador Cyborg: 4 passos (amb imatges)

Vídeo: Ratolí d'ordinador Cyborg: 4 passos (amb imatges)
Vídeo: Раскрываю секрет сочного мяса! Рецепт приготовления баранины с содой в помпейской печи 2024, De novembre
Anonim
Ratolí d’ordinador Cyborg
Ratolí d’ordinador Cyborg

Molts estudis suggereixen que la postura d’utilitzar un ratolí d’ordinador convencional pot ser perillosa. El ratolí és un equip estàndard d’ordinador. Els usuaris d’ordinadors utilitzen el ratolí gairebé el triple que el teclat. Com que les taxes d’exposició són altes, és molt important millorar la postura de les extremitats superiors mentre s’utilitza un ratolí d’ordinador.

Per a aquest projecte abstracte, farem un dispositiu portàtil que permeti a les persones moure’s per la pantalla de l’ordinador sense necessitat de tecnologia externa. D’aquesta manera podríem utilitzar les mans moviments naturals en lloc de fer clic en un dispositiu sobre una superfície horitzontal. Això també permet fer servir pantalles de peu, fent que les presentacions orals siguin més agradables.

Pel que fa al prototip, s'utilitzarà l'índex com a palanca de control, el dit central per fer clic esquerre, l'anular per fer clic amb el botó dret i el color rosa per engegar i apagar el dispositiu. El polze actuarà com la superfície on es premen els botons. Tot això s’afegirà a un guant.

Subministraments

  • (x1) Arduino Leonardo
  • (x1) Protoboard
  • (x1) Mòdul de joystick
  • (x3) Polsador
  • (x20 ±) Saltadors de filferro
  • (x3) Resistències d'1KΩ
  • (x1) Kit de costura de guants
  • Velcro silicona calenta
  • Kit de soldadura de filferro
  • Peça impresa en 3D

Pas 1: configureu el maquinari

Configureu el maquinari
Configureu el maquinari

Hem inclòs un esbós de Fritzing per a una millor comprensió del disseny. Primer us recomanem que munteu els components en una protoaborda. D’aquesta manera podeu comprovar que tot funciona abans de soldar.

Pas 2: pengeu el codi i proveu

Un cop realitzades les connexions, connecteu l'USB A (M) al micro USB B (M) de l'ordinador a l'Arduino Leonardo i pengeu l'esbós. No dubteu a copiar, modificar i millorar l'esbós.

ADVERTÈNCIA: Quan utilitzeu l'ordre Mouse.move (), Arduino es fa càrrec del ratolí. Assegureu-vos que teniu el control abans d’utilitzar l’ordre. Només funciona per Arduino Leonardo, Micro o Due

Aquí teniu el nostre codi per a aquest projecte:

// Definiu els pins # include; const int mouseMutButton = 2; // pin d'entrada per al mig del ratolí Botó const int startEmulation = 3; // canviar per activar i desactivar l'emulació del ratolí const int mouseLeftButton = 4; // pin d'entrada per al ratolí esquerre Botó const int mouseRightButton = 5; // pin d'entrada per al ratolí dret Botó const int joystickX = A1; // joystick X axis const int joystickY = A0; // joystick eix Y

// paràmetres per llegir el joystick:

int cursorSpeed = 10; // velocitat de sortida del moviment X o Y int responseDelay = 5; // retard de resposta del ratolí, en ms int llindar = cursorSpeed / 4; // llindar de descans int centre = cursorSpeed / 2; // valor de posició de descans int mouseMiddleState = 0;

ratolí booleàIsActive = fals; // si voleu controlar o no el ratolí

int lastSwitchState = BAIX; // estat de commutació anterior

configuració nul·la () {

pinMode (startEmulation, INPUT); // el pin pin switch Mode (mouseMiddleButton, INPUT); // el botó central del ratolí pin pinMode (mouseLeftButton, INPUT); // el botó esquerre del ratolí pin pinMode (mouseRightButton, INPUT); // el botó dret del ratolí

Mouse.begin (); // prendre el control del ratolí

}

bucle buit () {

// llegir l'interruptor: int switchState = digitalRead (startEmulation);

// si ha canviat i és alt, canvieu l'estat del ratolí:

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

// desa l'estat del commutador per al següent bucle:

lastSwitchState = switchState;

// llegir i escalar els dos eixos:

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

// si l'estat de control del ratolí està actiu, moveu el ratolí:

if (mouseIsActive) {Mouse.move (xLectura, yLectura, 0); // (x, y, roda de desplaçament del ratolí)}

// ESQUERRA

// llegiu el botó del ratolí i feu clic o no: // si es prem el botó del ratolí: if (digitalRead (mouseLeftButton) == HIGH) {// si no es prem el ratolí, premeu-lo: if (! Mouse.isPressed (MOUSE_LEFT)) {Mouse.press (MOUSE_LEFT); retard (100); // retardar per habilitar un sol clic i fer doble clic a Mouse.release (MOUSE_LEFT); }}

// en cas contrari, no es prem el botó del ratolí:

else {// si es prem el ratolí, deixeu-lo anar: if (Mouse.isPressed (MOUSE_LEFT)) {Mouse.release (MOUSE_LEFT); }}

//DRET

// llegiu el botó del ratolí i feu clic o no: // si es prem el botó del ratolí: if (digitalRead (mouseRightButton) == HIGH) {// si no es prem el ratolí, premeu-lo: if (! Mouse.isPressed (MOUSE_RIGHT)) {Mouse.press (MOUSE_RIGHT); retard (100); // retardar per habilitar un sol clic i fer doble clic a Mouse.release (MOUSE_RIGHT); }}

// en cas contrari, no es prem el botó del ratolí:

else {// si es prem el ratolí, deixeu-lo anar: if (Mouse.isPressed (MOUSE_RIGHT)) {Mouse.release (MOUSE_RIGHT); }}

//MIG

// llegiu el botó del ratolí i feu clic o no: // si es prem el botó del ratolí: if (digitalRead (mouseMiddleButton) == HIGH) {// si no es prem el ratolí, premeu-lo: if (! Mouse.isPressed (MOUSE_MIDDLE) && mouseMiddleState == 0) {Mouse.press (MOUSE_MIDDLE); mouseMiddleState = 1; // actualitzar l’estat del botó}}

// en cas contrari, no es prem el botó del ratolí:

else {// si es prem el ratolí, deixeu-lo anar: if (Mouse.isPressed (MOUSE_MIDDLE) && mouseMiddleState == 1) {Mouse.release (MOUSE_MIDDLE); mouseMiddleState = 0; }}

retard (responseDelay);

}

/*

llegeix un eix (0 o 1 per a x o y) i escala el rang d'entrada analògica a un interval de 0 a * /

int readAxis (int thisAxis) {

// llegir l'entrada analògica: int reading = analogRead (thisAxis);

// assigneu la lectura del rang d'entrada analògica al rang de sortida:

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

// si la lectura de sortida es troba fora del fitxer

// llindar de posició de descans, utilitzeu-lo: int distància = lectura - centre;

if (abs (distància) <llindar) {distància = 0; }

// retorna la distància per a aquest eix:

distància de retorn; }

Pas 3: muntatge del prototip

Muntatge del prototip
Muntatge del prototip
Muntatge del prototip
Muntatge del prototip
Muntatge del prototip
Muntatge del prototip

El primer pas és cosir el velcro al guant, has de cosir quatre tires de velcro una a cada dit. Hem cosit la part tova del velcro.

Cada polsador té dos cables, un que comença als respectius pins i es connecta a la pota positiva del botó i un altre a la pota negativa. A l’altre extrem del cable negatiu, soldem les resistències de cada botó més el cable negatiu del joystick a un darrer cable, que es connecta al GND de la placa Arduino. La mateixa connexió paral·lela funciona per al costat positiu. (3 botons i cama positiva del joystick)

Després de soldar els ponts, posarem les dures tires de velcro, de manera que els cables quedaran atrapats pel mig. Per últim, vam enganxar tèrmicament el mòdul del joystick a una peça impresa en 3D. A continuació podeu trobar el fitxer. STL.

Pas 4: Comenceu a utilitzar la mà com a ratolí

Image
Image
Comenceu a fer servir la mà com a ratolí
Comenceu a fer servir la mà com a ratolí
Comenceu a fer servir la mà com a ratolí
Comenceu a fer servir la mà com a ratolí

Voteu-nos al concurs d'assistència tècnica si us ha agradat el projecte.

Recomanat: