Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

ThimbleKrox: Control de ratón montado en el dedo con Arduino Micro y MPU-6050

Componentes y materiales

ComponenteCantidad
Arduino Micro1
SparkFun Triple Axis Accelerometer and Gyro Breakout - MPU-60501
Cable micro USB a USB1
Jumpers (para conectar Arduino y MPU-6050)Varios
Elástico (opcional, para sujetar el Arduino a la mano)1

Herramientas necesarias

Aplicaciones y servicios en línea

Sobre el proyecto

¡Hola a todos! Este es mi primer proyecto: ThimbleKrox, un dedal que permite controlar el puntero del ratón mediante el movimiento del índice (o cualquier dedo).

Paso 1: Materiales y herramientas

Ya listados arriba.

Paso 2: Conexión

Conecta los pines del Arduino al MPU-6050 de la siguiente manera:

ThimbleKrox: Control de ratón montado en el dedo con Arduino Micro y MPU-6050

Paso 3: Impresión 3D (opcional)

Si deseas una carcasa estética, imprime el modelo del dedal. Hay dos versiones:

ThimbleKrox: Control de ratón montado en el dedo con Arduino Micro y MPU-6050
ThimbleKrox: Control de ratón montado en el dedo con Arduino Micro y MPU-6050

Paso 4: Montaje

Con dedal impreso en 3D

Inserta el MPU-6050 en la cavidad superior del dedal y aloja los cables en la inferior.

Sin dedal impreso

Fija el MPU-6050 en la última falange del dedo con cinta adhesiva o una goma elástica.

Paso 5: Código y calibración

Instala las librerías necesarias: Wire.h, I2Cdev.h, MPU6050.h y Mouse.h.

Sube el código de calibración, abre el monitor serie (Ctrl+Shift+M) y observa valores como:

right | gx = 3165 gy = 469 gz = -1055 | ax = 15232 ay = 2064 az = -4496

La primera palabra indica la dirección detectada. Ajusta las líneas marcadas con // calibration line en el código hasta que la dirección mostrada coincida con el movimiento real del dedo. Cada cambio requiere volver a subir el código.

Ejemplo: Si el monitor muestra "left" pero el código tiene if (ax >= 15000) { right(); }, cambia el valor 15000 por 5000 para que la condición se cumpla con la lectura actual.

Una vez calibrado, copia los valores ajustados al código principal y súbelo al Arduino.

Paso 6: ¡A probarlo!

Ponte el dedal y controla el ratón moviendo el dedo.

Código

Código principal (ThimbleKrox)

// Control del puntero del ratón mediante movimiento del dedo
// Para calibrar usa "ThimbleKrox calibration code" y sigue el tutorial en hackster.io
// Líneas a calibrar marcadas con "//calibration line"
// Autor: Magform
#include <Wire.h>
#include <I2Cdev.h>
#include <MPU6050.h>
#include <Mouse.h>

MPU6050 mpu;
int16_t ax, ay, az, gx, gy, gz;
int vx, vy;
int sensibilidad = 10; // Cambia para ajustar sensibilidad

void setup() {
  Serial.begin(9600);
  Wire.begin();
  mpu.initialize();
  if (!mpu.testConnection()) {
    while (1); // Bucle infinito si no hay conexión
  }
}

void up() { Mouse.move(0, -sensibilidad); }
void down() { Mouse.move(0, sensibilidad); }
void left() { Mouse.move(-sensibilidad, 0); }
void right() { Mouse.move(sensibilidad, 0); }

void loop() {
  mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
  if (ax >= 15000) { right(); }      // calibration line
  if (ax <= -9000) { left(); }       // calibration line
  if (ay <= -8000) { up(); }         // calibration line
  if (ay >= 10000) { down(); }       // calibration line
  // Click derecho/izquierdo con gestos bruscos (en desarrollo)
  /*
  if (gy >= 20000) { Mouse.click(MOUSE_RIGHT); delay(100); }
  if (gy <= -20000) { Mouse.click(MOUSE_LEFT); delay(100); }
  */
  delay(10);
}

Código de calibración

// Calibración de ThimbleKrox
// Sigue el tutorial en hackster.io
// Autor: Magform
#include <Wire.h>
#include <I2Cdev.h>
#include <MPU6050.h>
#include <Mouse.h>

MPU6050 mpu;
int16_t ax, ay, az, gx, gy, gz;
int vx, vy;
int Nwrong = 1;

void setup() {
  Serial.begin(9600);
  Wire.begin();
  mpu.initialize();
  while (Nwrong != 0) {
    if (!mpu.testConnection()) {
      Serial.print("Wrong connection number: ");
      Serial.println(Nwrong++);
      delay(1000);
    } else {
      Nwrong = 0;
    }
  }
}

void up() { Serial.print(" up "); }
void down() { Serial.print(" down "); }
void left() { Serial.print(" left "); }
void right() { Serial.print(" right "); }
void rightclick() { Serial.print(" RightClick "); }
void leftclick() { Serial.print(" LeftClick "); }

void loop() {
  mpu.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
  if (ax >= 15000) { right(); }      // calibration line
  if (ax <= -9000) { left(); }       // calibration line
  if (ay <= -8000) { up(); }         // calibration line
  if (ay >= 10000) { down(); }       // calibration line
  /*
  if (gy >= 20000) { rightclick(); delay(100); }
  if (gy <= -20000) { leftclick(); delay(100); }
  */
  Serial.print(" | gx= "); Serial.print(gx);
  Serial.print(" gy= "); Serial.print(gy);
  Serial.print(" gz= "); Serial.print(gz);
  Serial.print(" | ax= "); Serial.print(ax);
  Serial.print(" ay= "); Serial.print(ay);
  Serial.print(" az= "); Serial.println(az);
  delay(5000);
}

Modelos 3D

Archivos disponibles en GitHub y Thingiverse.

Esquemático

ThimbleKrox: Control de ratón montado en el dedo con Arduino Micro y MPU-6050

Proceso de manufactura

  1. Construya un robot con streaming de vídeo controlado por Internet con Arduino y Raspberry Pi
  2. Controla tu Ventilador de Techo con Alexa: Guía Paso a Paso
  3. Alcancía Inteligente: Controla un Aceptador de Monedas con Arduino Nano
  4. Centro de Control de Potencia Arduino: N-FET, P-FET, Relé y RTC
  5. Controla un LED por Bluetooth con Arduino – Guía DIY paso a paso
  6. Controlador de Humidificador DIY con Arduino y Relé: Configuración Segura de Alto Voltaje
  7. Controla Dos Motores Paso a Paso con Arduino Nano y Joystick - Tutorial Sencillo
  8. Controlar un LED de Arduino con Cortana vía Bluetooth en Windows 10
  9. Controla tu TV con Alexa mediante Arduino IoT Cloud: Guía Paso a Paso
  10. Control Inalámbrico de Iluminación Doméstica desde Smartphone con 1Sheeld
  11. Control de Ventilador PWM de 4 Pines a 25 kHz con Arduino Uno – Montaje, Código y Pruebas