Hackeando un mouse con Arduino

0

Puedeverlaimagenconmayordetalleenelsiguienteenlace:

enlace

He estado tratando de hackear un mouse de pelota (mouse mecánico) con mi arduino. El objetivo es cortar las señales que se dan al sensor rotativo óptico, y reemplazarlas Con señales enviadas por el arduino. Esto en teoría controlaría los movimientos "x" e "y". del ratón.

Actualmente, he desoldado el sensor óptico responsable del movimiento "y" (la imagen 5 muestra el sensor óptico separado). Este sensor generalmente recibe señales de un led infrarrojo en el otro lado de la rueda giratoria y transmite señales a las siguientes partes del mouse utilizando "Cuadratura de codificación", que se explica bien en el siguiente sitio:

enlace

Así que pensé que si enviaba las señales de voltaje correctas a través de mi Arduino Uno R3 usando pines analógicos (A0, A1), debería poder manipular el movimiento vertical del mouse en la pantalla.

Los resultados no fueron excelentes. El cursor del ratón a veces se mueve un poco hacia arriba, y luego parar por unos segundos. Los intervalos de este suceso fueron muy inconsistentes. y lento, y lo había codificado en el Arduino para realizar una línea recta suave.

Aquí está el Código Arduino:

int ledA = A0;
int ledB = A1;
int highVar = 255;//equivalent to 5 volts in the analogWrite() function
int lowVar = 0;//equivalent to 0 volts in the analogWrite() function
int varDelay = 20;//20 milli seconds
void setup()
{
  pinMode(ledA, OUTPUT);
  pinMode(ledB, OUTPUT);
  analogWrite(ledA, 0);
  analogWrite(ledB, 0);
  delay(1000);
}
void loop()
{
  analogWrite(ledA, highVar);
  delay(varDelay);
  analogWrite(ledB, highVar);
  delay(varDelay);
  analogWrite(ledA, lowVar);
  delay(varDelay);
  analogWrite(ledB, lowVar);
  delay(varDelay);
}

Tener un varDelay de 25 milisegundos parece producir los mejores resultados, ya que cualquier cosa superior a 100 milisegundos no producirá casi ningún movimiento.

Tengo entendido que el sensor óptico tiene 3 pines, 1 para el voltaje que proviene del dispositivo, y 2 pines que envían voltaje al dispositivo. Los 2 pines que devuelven el voltaje tendrían que bajar el voltaje cuando la luz infrarroja los golpea. Por esa razón, soldé dos cables de puente a los respectivos pines que envían voltaje al mouse.

No estoy seguro de si los pines A0 y A1 manipulan el voltaje a través de la Modulación de ancho de pulso, e incluso si lo hacen, no estoy seguro de si esta sea la razón por la que estoy obteniendo malos resultados. ¿Alguno de ustedes sabría lo que estoy haciendo mal?

Editado: Me dijeron que A0 y A1 eran salidas, por lo tanto no funcionarían, gracias por la corrección. Sin embargo, anteriormente había usado las pintas 9 y 10 (que tienen PWM), y cuando falló, probé con los pines A0 y A1, así que todavía no tengo una solución para mi problema.

    
pregunta rsthegreat12

1 respuesta

1

La salida del sensor óptico en un mouse como este es una señal digital. Debe oscilar entre la GND del ratón y la tensión igual al pin VCC del sensor óptico.

Para que su Arduino ocupe el lugar del sensor óptico, Arduino debe conducir las señales al chip controlador del mouse con pines de salida digital . El cambio de voltaje entre un nivel de '0' y el nivel de '1' debe coincidir estrechamente con el que estaba produciendo el sensor óptico.

    
respondido por el Michael Karas

Lea otras preguntas en las etiquetas