/*
Este código es de dominio público
Autor: alpeshVitha
Fecha: 18 de mayo de 2013
*/
sPull int = 0; Posición del eje x
ePull int = 0; Posición final del eje x
int ysPull = 0; Posición del eje y
int yePull = 0; Posición final del eje y
int rango = 15;
int responseDelay = 1; demora de respuesta del ratón, en ms
Declaración para suavizar la lectura del eje y. Los encontré muy ruidosa, probablemente porque el potenciómetro es logarítmico en la naturaleza.
const int numReadings = 10;
int lecturas [numReadings]; las lecturas de la entrada analógica
Índice de int = 0; el índice de la lectura actual
int total = 0; la corriente total
int promedio = 0; el medio de
void setup() {}
inicializar el control del ratón:
Mouse.Begin();
Serial.Begin(9600);
Suavizado de inicialización
para (int thisReading = 0; thisReading < numReadings; thisReading ++)
lecturas [thisReading] = 0;
}
void loop() {}
Lee el estado inicial de Honda en el eje de x y eje y
sPull = analogRead(A0); eje x
ysPull = analogRead(A1); eje de y
ePull = sPull; valor de x en ePull variable
Delay(100); espera de 100ms para el dedo se deslice sobre el potenciómetro
sPull = analogRead(A0); Lee de nuevo el eje x
int tire = (ePull - sPull); Delta x
lo mismo para el eje y a Delta y
yePull = ysPull;
ysPull = analogRead(A1);
int ypull = (yePull - ysPull); Delta y
Si (sPull == 0) {}
Si (Mouse.isPressed(MOUSE_LEFT)) {}
Mouse.Release(MOUSE_LEFT);
}
}
Si (pull > -200) {/ / ajustar este valor basado en su conjunto hasta
if(pull<200) {/ / ajustar este valor basado en su conjunto hasta
calcular la distancia de movimiento
int xDistance = (pull/50) * rango;
Si (xDistance! = 0) {}
if (!. {Mouse.isPressed(MOUSE_LEFT))}
Mouse.Press(MOUSE_LEFT);
}
Mouse.Move (-xDistance, 0, 0);
}
}
}
Suavizado y
////////////////////////////////////////////////////////////////////////////////////////////////////
total = total - lecturas [índice];
lectura del sensor:
lecturas [índice] = ypull;
Añadir la lectura al total:
total = total + lecturas [índice];
avanzar a la siguiente posición en la matriz:
index = index + 1;
Si estamos en el final de la matriz...
Si (Índice > = numReadings)
.. .wrap todo al principio:
índice = 0;
calcular la media:
promedio = total / numReadings;
/////////////////////////////////////////////////////////////////////////////////////////////////
Delay(1);
int yDistance = (promedio) * 2;
Si (yDistance! = 0) {}
Mouse.Move (0, - yDistance, 0);
}
un retraso por lo que el ratón no se mueve demasiado rápido:
Delay(responseDelay);
}