long mousePositionX = 0;
long mousePositionY = 0;
void printPosition() {
Serial.print("Current cursor position (");
Serial.print(mousePositionX); Serial.write(',');
Serial.print(mousePositionY); Serial.println(")");
}
void mouseMoveUpperLeft() {
mousePositionX = 0;
mousePositionY = 0;
Serial.print("\tMoved upper left, ");
printPosition();
}
void mouseClick() {
Serial.print("\tclick at "); printPosition();
}
void MouseMove(int8_t dx, int8_t dy) {
Serial.print("\trelative move ∆(");
Serial.print(dx); Serial.write(','); Serial.print(dy);
Serial.print(")");
mousePositionX += dx;
mousePositionY += dy;
Serial.write('.');
printPosition();
}
void mouseClick(long targetX, long targetY) {
Serial.print("Click requested at (");
Serial.print(targetX);
Serial.write(',');
Serial.print(targetY);
Serial.println(")");
mouseMoveUpperLeft();
// Move diagonally by 127 in both x and y directions
while (mousePositionX < targetX - 127 && mousePositionY < targetY - 127) MouseMove(127, 127);
// Move by 127 in the x direction
while (mousePositionX < targetX - 127) MouseMove(127, 0);
// Move by 127 in the y direction
while (mousePositionY < targetY - 127) MouseMove(0, 127);
// Take the remaining steps
MouseMove(targetX - mousePositionX, targetY - mousePositionY);
mouseClick();
}
void setup() {
Serial.begin(115200);
for (int y = 107; y < 389; y += 6) {
mouseClick(200, y);
delay(50);
}
}
void loop() {}