Tabla de contenido:

Ratón de computadora Cyborg: 4 pasos (con imágenes)
Ratón de computadora Cyborg: 4 pasos (con imágenes)

Video: Ratón de computadora Cyborg: 4 pasos (con imágenes)

Video: Ratón de computadora Cyborg: 4 pasos (con imágenes)
Video: 🔥Cómo DIBUJAR en DIGITAL con MOUSE ✍️ (SIN tableta gráfica) 2024, Noviembre
Anonim
Ratón de computadora Cyborg
Ratón de computadora Cyborg

Muchos estudios sugieren que la postura de usar un mouse de computadora convencional puede ser peligrosa. El mouse es una pieza estándar del equipo de computadora. Los usuarios de computadoras usan el mouse casi tres veces más que el teclado. Como las tasas de exposición son altas, es muy importante mejorar la postura de las extremidades superiores mientras se usa un mouse de computadora.

Para este proyecto abstracto crearemos un wearable que permita a las personas moverse a través de la pantalla de una computadora sin la necesidad de tecnología externa. De esa manera podríamos usar los movimientos naturales de las manos en lugar de hacer clic en un dispositivo en una superficie horizontal. Esto también permite utilizar pantallas estando de pie, lo que hace que las presentaciones orales sean más agradables.

En cuanto al prototipo se utilizará el índice como joystick, el dedo medio para hacer clic izquierdo, el dedo anular para hacer clic derecho y el meñique para encender y apagar el dispositivo. El pulgar actuará como la superficie donde se presionan los botones. Todo lo cual se agregará a un guante.

Suministros

  • (x1) Arduino Leonardo
  • (x1) Protoboard
  • (x1) Módulo de joystick
  • (x3) Pulsador
  • (x20 ±) Puentes de cable
  • (x3) Resistencias de 1KΩ
  • (x1) Kit de costura de guantes
  • Velcro Silicona caliente
  • Kit de soldadura de alambre
  • Pieza impresa en 3D

Paso 1: configurar el hardware

Configurar el hardware
Configurar el hardware

Hemos incluido un boceto de Fritzing para una mejor comprensión del diseño. Recomendamos montar los componentes en un protoboard primero. De esa forma puede comprobar que todo funciona antes de soldar.

Paso 2: cargue el código y pruebe

Una vez realizadas las conexiones, conecte el USB A (M) al micro USB B (M) desde la computadora al Arduino Leonardo y cargue el boceto. Siéntase libre de copiar, modificar y mejorar el boceto.

ADVERTENCIA: Cuando usa el comando Mouse.move (), ¡Arduino toma el control de su mouse! Asegúrese de tener el control antes de usar el comando. Solo funciona para Arduino Leonardo, Micro o Due

Aquí está nuestro código para este proyecto:

// Definir Pines # include; const int mouseMiddleButton = 2; // pin de entrada para el botón central del mouse const int startEmulation = 3; // cambia para activar y desactivar la emulación del mouse const int mouseLeftButton = 4; // pin de entrada para el botón izquierdo del mouse const int mouseRightButton = 5; // pin de entrada para el botón derecho del ratón const int joystickX = A1; // joystick eje X const int joystickY = A0; // eje Y del joystick

// parámetros para leer el joystick:

int cursorSpeed = 10; // velocidad de salida del movimiento X o Y int responseDelay = 5; // retardo de respuesta del mouse, en ms int umbral = cursorSpeed / 4; // umbral de reposo int center = cursorSpeed / 2; // valor de la posición de reposo int mouseMiddleState = 0;

booleano mouseIsActive = falso; // si controlar o no el mouse

int lastSwitchState = LOW; // estado de cambio anterior

configuración vacía () {

pinMode (startEmulation, INPUT); // el pin de interruptor pinMode (mouseMiddleButton, INPUT); // el pin del botón central del mouse pinMode (mouseLeftButton, INPUT); // el pin del botón izquierdo del mouse pinMode (mouseRightButton, INPUT); // el pin del botón derecho del mouse

Mouse.begin (); // toma el control del mouse

}

bucle vacío () {

// leer el interruptor: int switchState = digitalRead (startEmulation);

// si ha cambiado y es alto, cambia el estado del mouse:

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

// guarda el estado del interruptor para el siguiente ciclo:

lastSwitchState = switchState;

// lee y escala los dos ejes:

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

// si el estado de control del mouse está activo, mueva el mouse:

if (mouseIsActive) {Mouse.move (xReading, yReading, 0); // (x, y, rueda de desplazamiento del mouse)}

//IZQUIERDA

// leer el botón del mouse y hacer clic o no hacer clic: // si se presiona el botón del mouse: if (digitalRead (mouseLeftButton) == HIGH) {// si no se presiona el mouse, presionarlo: if (! Mouse.isPressed (MOUSE_LEFT)) {Mouse.press (MOUSE_LEFT); retraso (100); // retraso para habilitar Mouse.release (MOUSE_LEFT) con un solo y doble clic; }}

// de lo contrario, no se presiona el botón del mouse:

else {// si se presiona el mouse, suéltelo: if (Mouse.isPressed (MOUSE_LEFT)) {Mouse.release (MOUSE_LEFT); }}

//DERECHA

// leer el botón del mouse y hacer clic o no hacer clic: // si se presiona el botón del mouse: if (digitalRead (mouseRightButton) == HIGH) {// si no se presiona el mouse, presionarlo: if (! Mouse.isPressed (MOUSE_RIGHT)) {Mouse.press (MOUSE_RIGHT); retraso (100); // demora para habilitar Mouse.release (MOUSE_RIGHT) con un solo y doble clic; }}

// de lo contrario, no se presiona el botón del mouse:

else {// si se presiona el mouse, suéltelo: if (Mouse.isPressed (MOUSE_RIGHT)) {Mouse.release (MOUSE_RIGHT); }}

//MEDIO

// leer el botón del mouse y hacer clic o no hacer clic: // si se presiona el botón del mouse: if (digitalRead (mouseMiddleButton) == HIGH) {// si no se presiona el mouse, presionarlo: if (! Mouse.isPressed (MOUSE_MIDDLE) && mouseMiddleState == 0) {Mouse.press (MOUSE_MIDDLE); mouseMiddleState = 1; // actualiza el estado del botón}}

// de lo contrario, no se presiona el botón del mouse:

else {// si se presiona el mouse, suéltelo: if (Mouse.isPressed (MOUSE_MIDDLE) && mouseMiddleState == 1) {Mouse.release (MOUSE_MIDDLE); mouseMiddleState = 0; }}

delay (responseDelay);

}

/*

lee un eje (0 o 1 para xoy) y escala el rango de entrada analógica a un rango de 0 a * /

int readAxis (int thisAxis) {

// leer la entrada analógica: int lectura = analogRead (thisAxis);

// mapear la lectura del rango de entrada analógica al rango de salida:

lectura = mapa (lectura, 0, 1023, 0, velocidad del cursor);

// si la lectura de salida está fuera del

// umbral de posición de reposo, utilícelo: int distancia = lectura - centro;

if (abs (distancia) <umbral) {distancia = 0; }

// devuelve la distancia para este eje:

distancia de regreso; }

Paso 3: Montaje del prototipo

Montaje del prototipo
Montaje del prototipo
Montaje del prototipo
Montaje del prototipo
Montaje del prototipo
Montaje del prototipo

El primer paso es coser el velcro al guante, hay que coser cuatro tiras de velcro una a cada dedo. Cosimos la parte blanda del velcro.

Cada botón tiene dos cables, uno que comienza en los pines respectivos y se conecta a la pata positiva del botón y otro a la pata negativa. En el otro extremo del cable negativo soldamos las resistencias de cada botón más el cable negativo del joystick a un último cable, que se conecta al GND de la placa Arduino. La misma conexión en paralelo funciona para el lado positivo. (3 botones y pata positiva del joystick)

Después de soldar los puentes, colocaremos las tiras de velcro duras, de modo que los cables se atasquen en el medio. Por último, pegamos térmicamente el módulo del joystick a una pieza impresa en 3D. A continuación puede encontrar el archivo. STL.

Paso 4: ¡Empiece a usar la mano como ratón

Image
Image
¡Empiece a usar su mano como un ratón!
¡Empiece a usar su mano como un ratón!
¡Empiece a usar su mano como un ratón!
¡Empiece a usar su mano como un ratón!

Vótanos en el concurso de tecnología de asistencia si te gustó el proyecto.

Recomendado: