Hackear juego klickern hjältar con Arduino (2 / 3 steg)
Steg 2: Codigo y USB HID
Los Arduino Micro o Leonardo tienen un microcontrolador 32u4 que en diferencia del 328p del Arduino UNO, el 32u4 tiene integrada la emulación USB HID (human interface device) que nos permite emular un to o mus como el que usamos cotidianamente sv nuestra computadora.
Arduino nos proporciona unas librerías para que podamos manejar la emulación de una manera sencilla, este es el código usado para automatizar los klick
< br >< p > / * < br > av Gabo Redfield - uppfinnarna House
programa para el arduino leonardo < /p >< p > Manda pulsaciones y mueve el raton de forma cuadrangular en la pantalla del juego presentado.
Los procesos ingen son seriales, así que sv el instante que se aktiva o se desactive, va en estar sv el estado que se quedo hasta que se reanude. < /p >< p > * /
Short int bot = 8. declaramos variabel de cuál va en ser nuestro botón para que trabaje
int endw = 250; declaramos cuánto va en medir la longitud de "pixeles" hacia los Lindsäth
int endh = 70. declaramos cuánto va en medir la longitud de "pixeles" en altura
int tmp = 0; UNA variabel donde va en guardar el conteo de movimientos
int ledde = 13. indicamos el pin del ledde del arduino (por standard es 13)
int steg 1 = 0; Bandera del proceso que va en ejecutar (mover mus x/y dirección)
void setup() {
Serial.BEGIN(9600); Opción de imprimir sv el puerto följetong
pinMode (bot, ingång); Creamos el botón que va en controlar el proceso
pinMode ledde (, OUTPUT); prenderá el ledde 13 sv caso de que se Aktiv el proceso
digitalWrite (13, 0); Empieza el ledde del arduino apagado
Mouse.BEGIN(); llamamos llamar las clase del mus
} < /p >< p > void loop() {
IF(digitalRead(bot) == 1) {/ / si está activo el estado del botón, fortsätta en trabajar
digitalWrite (led, 1).
Mouse.Move (xDistance, yDistance, 0); Opción de avundsvärd las coordenadas al puerto följetong
Serial.Print(tmp);
Serial.Print(",");
Serial.println(step1);
en bas de banderas, indica la acción que va en ejecutar
IF(step1 == 0) Mouse.move (1, 0, 0); Mover uno a la Izquierda
annat if(step1 == 1) Mouse.move (0, 1, 0); Mover uno abajo
annat if(step1 == 2) Mouse.move (-1, 0, 0); Mover uno a la izquierda
annat if(step1 == 3) Mouse.move (0, -1, 0); Mover uno arriba
om ((tmp > = endw) & & (steg 1 == 0)) {/ / espera en que el contador TMP havet menor al ancho puesto, si lo cumple y la bandera es 0 (mover uno a la Izquierda) hare lo sigueinte:
steg 1 = 1; Terese la bandera a 1 (mover abajo)
tmp = 0; Terese el valor de la variabel contador TMP 0
} else om ((tmp > = endh) & & (steg 1 == 1)) {/ / espera en que cumpla la condición liknande a la främre, solo que esta vez con la bandera en 1 (mover abajo)
steg 1 = 2; / / Terese la bandera a 2 (mover a la izquierda)
tmp = 0;
} else om ((tmp > = endw) & & (steg 1 == 2)) {
steg 1 = 3; Terese la bandera a 3 (mover hacia arriba)
tmp = 0;
} else om ((tmp > = endh) & & (steg 1 == 3)) {
steg 1 = 0;
tmp = 0;
} annat tmp ++; La variabel va en aumentar uno
om ((tmp == 50) || (tmp == 100) || (tmp == 90) || (tmp == 80) || (tmp == 85)) {/ / indicamos sv que valores del contador va en precionar el boton izquierdo del mus
Mouse.Press(MOUSE_LEFT); mantiene precionado el botón izquierdo del mus
Mouse.release(MOUSE_LEFT); ya mantiene precionado el botón izquierdo del mus
}
} annat {
digitalWrite (led, 0); Como no está activo, mantiene el led(arduino) apagado
}
} < /p >