/*
Ce code se trouve dans le domaine public
Auteur : alpeshVitha
Date : 18 mai 2013
*/
int sPull = 0 ; Position de départ de l’axe des x
Sylvanus int = 0 ; Fin de course de l’axe x
int ysPull = 0 ; Position de départ de l’axe y
int yePull = 0 ; Fin de course de l’axe y
gamme int = 15 ;
int responseDelay = 1 ; délai de réponse de la souris, en ms
Déclaration pour le lissage de la lecture d’axe y. Je les ai trouvés très bruyant, probablement parce que le potentiomètre est logarithmique dans la nature.
const int numReadings = 10 ;
int lectures [numReadings] ; les lectures de l’entrée analogique
int index = 0 ; l’index de la lecture courante
total int = 0 ; le total cumulé
moyenne d’int = 0 ; la moyenne
void setup() {}
initialiser le contrôle de la souris :
Mouse.Begin() ;
Serial.Begin(9600) ;
Initialisation de lissage
pour (int thisReading = 0; thisReading < numReadings ; thisReading ++)
lectures [thisReading] = 0 ;
}
void loop() {}
lire l’état initial de la fronde à x axe et axe y
sPull = analogRead(A0) ; axe x
ysPull = analogRead(A1) ; axe y
Sylvanus = sPull ; valeur de x stocké dans la variable de sylvanus
Delay(100) ; Attendez de 100 ms pour le doigt de glisser sur le potentiomètre
sPull = analogRead(A0) ; relire l’axe des x
Tirez int = (Sylvanus - sPull) ; Delta x
faites de même pour l’axe des y obtenir 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 (traction > -200) {/ / ajuster cette valeur basée sur votre jeu vers le haut
if(pull<200) {/ / ajuster cette valeur basée sur votre jeu vers le haut
calculer la distance de mouvement
int xDistance = (pull/50) * rang ;
Si (xDistance! = 0) {}
if (!. {Mouse.isPressed(MOUSE_LEFT))}
Mouse.Press(MOUSE_LEFT) ;
}
Mouse.Move (-xDistance, 0, 0) ;
}
}
}
Lissage de Y
////////////////////////////////////////////////////////////////////////////////////////////////////
Total = total - lectures [index] ;
lecture de la sonde :
lectures [index] = ypull ;
Ajouter la lecture au total :
Total = total + lectures [index] ;
avancer vers la position suivante dans le tableau :
index = index + 1 ;
Si nous sommes à la fin du tableau...
Si (index > = numReadings)
.. Wrap autour du début :
index = 0 ;
calculer la moyenne :
moyenne = total / numReadings ;
/////////////////////////////////////////////////////////////////////////////////////////////////
Delay(1) ;
int yDistance = (moyenne) * 2 ;
Si (yDistance! = 0) {}
Mouse.Move (0, - yDistance, 0) ;
}
un retard si la souris ne bouge pas trop vite :
Delay(responseDelay) ;
}