Arduino como emulador de mouse

Hola buenos dias a todos. Este es mi primer post en el foro.
Busque para ver si se habian tratado el tema y no encontre nada que me sirviera.

Esto tratando de usar un Arduino Leonardo o un Pro micro como emulador de mouse.
Necesito que al cerrar distintos interruptores, el cursor del mouse se deplace a distintas posiciones de la pantalla y haga un click.

Estoy partiendo de las siguientes presunciones:

Los movimientos del cursor son relativos a la posicion actual del mouse, con lo cual lo primero seria llevarlo al margen superior izquierdo que a partir de alli considerar como el 0, 0.

Las coordenadas estan en pixeles de pantalla?

He logrado que se mueva al 0, 0 y de alli llevarlo a distintas posiciones pero los valores son erraticos. Un 600, 600 deberia ir al centro de la pantalla pero va mucho mas cerca.
Le pongo valores positivos que deberian llevar el cursor abajo y a la dercha y se desplaza arriba a la derecha.

Alguien puede clarificarme un poco esto.

Desde ya muchas gracias.

Buenas:

¿Cómo controlas el puntero del ratón así sin más?

¿Puedes poner códigos?

¿Usa alguna interfaz de escritorio Windows como Visual Studio .net?

Saludos.

pepebky:
Las coordenadas estan en pixeles de pantalla?

Se dan pixeles, pero no necesariamente de la pantalla. La relación de aspecto entre la señal de video y la pantalla sería 1:1 si el sistema operativo lo tiene configurado en la "resolución nativa"; de lo contrario, las coordenadas estarán dadas según la resolución de la señal de video.

pepebky:
He logrado que se mueva al 0, 0 y de alli llevarlo a distintas posiciones pero los valores son erraticos. Un 600, 600 deberia ir al centro de la pantalla pero va mucho mas cerca

Según la documentación sobre Mouse.move(), los parametros son signed char o simplemente un byte con signo; el rango admitido es de apenas -128 a 127. Por desbordamiento, 600 al final se traduce en +88 (88 positivo).

Gracias por las respuestas. Respecto a como lo muevo, si directamente con la orden mouse.move del arduino.
Probare lo que me dicen de -127 a +127.

Aqui el codigo. Es el ultimo con el que experimente. Puede estar mal

#include "Mouse.h"

// set pin numbers for the five buttons:
const int upButton = 2;
const int downButton = 3;
const int leftButton = 4;
const int rightButton = 5;
const int mouseButton = 6;

int range = 5;              // output range of X or Y movement; affects movement speed
int responseDelay = 10;     // response delay of the mouse, in ms


void setup() {
 // initialize the buttons' inputs:
 pinMode(upButton, INPUT_PULLUP);
 pinMode(downButton, INPUT_PULLUP);
 pinMode(leftButton, INPUT_PULLUP);
 pinMode(rightButton, INPUT_PULLUP);
 pinMode(mouseButton, INPUT_PULLUP);
 pinMode(7, INPUT_PULLUP);
 // initialize mouse control:
 Mouse.begin();
}

void loop() {
 // read the buttons:
 int upState = digitalRead(upButton);
 int downState = digitalRead(downButton);
 int rightState = digitalRead(rightButton);
 int leftState = digitalRead(leftButton);
 int clickState = digitalRead(mouseButton);

 if (digitalRead(7) == LOW) {
   Mouse.move(-30, -20, 0);
   delay(1000);
 }
 else{
   Mouse.end();
 }
 if (digitalRead(upButton) == LOW) {
   Mouse.move(15000, 10000, 0);
   delay(10);
   Mouse.press();
   Mouse.release();
   delay(1000);
 }
}

Si es por experimentar con Arduino, vale.
Pero como práctico lo mejor para manejar el ratón y teclado es por software AutoHotkey
Tiene una potencia extraordinaria. En mi trabajo me evitó miles de pulsaciones y movimientos de ratón repetitivos con comandos tan simples como:

Click, 44, 55 Clicks the left mouse button once at coordinates 44, 55.