comment calibrer un joystick ?

L'auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

bonjour, pour piloter mon robot je suis en train de fabriquer une télécommande et j'ai un problème de réglage des joysticks.

Si j'ai bien compris : les joystick sont 2 potentiometre en croix. il renvoi donc un voltage differents suivant leur position l'arduino convertit ça en une valeur numérique entre 0 et 1023. donc le point 0 d'un joystick a théoriquement une valeur de 511.

j'ai 2 joystick ce qui fait 4 potards et aucun ne retourne la bonne valeur.

j'ai essayé de rajouter le valeur manquante a la variable mais dans ce cas il ne retourne pas une valeur entre 0 et 1023 mais entre 0+ajust et 1023+ajust

peut t'on calibrer un joystick de facon logiciel ?

Merci de m'avoir lu

ps : j'ai des joystick keyes il y a peut être un réglage matériel dessus que je n'ai pas trouvé.

Édité par Hydrasul

+0 -0

Salut,

Sur les radios d'aéromodélisme calibrer les manches se fait en plaçant d'abord tout au neutre, puis en mettant "tout dans les coins" pour les 4 coins. Ça permet au logiciel de connaître la position correspondant au neutre et aux butées mécaniques. Donc l'idée c'est de connaître 3 points par axe: les deux butées et le neutre. Tu peux faire passer une droite par ces trois points, de la forme $y=ax+b$$x$ est la "position physique" de l'axe et $y$ la valeur numérique de l'axe vue par Arduino. Inverse cette fonction et tu as ta courbe de la position physique en fonction des infos des potentiomètres.

Du point de vue du réglage physique, si tu veux un neutre plus précis il faut jouer sur le serrage des ressorts de rappel au neutre. Personnellement je les aime très raides, c'est plus précis.

+1 -0
Auteur du sujet

Merci pour ta réponse rapide. Mais je ne crois pas que cela réponde a mon problème. quand je met les joystick en butée il réponde correctement ils me renvoient donc les valeurs 0 ou 1022. Mais des que je relâche il ne renvoi pas 511 comme attendu mais chacun a une valeur différente l'un est a 497 et l'autre a 523 pour les 2 extrêmes.

Sur les télécommandes il y a un trig qui permet de régler le point zéro j'aurais voulu savoir si il est possible de faire la même chose logiciellement sur un arduino

pour info les joysticks que j'utilise sont des keyes couramment appeler joystick de ps2

+0 -1

Ben je viens de te dire comment faire. Tu prends les valeurs extrêmes et neutres de chaque joystick, tu fais ta courbe de calibration et c'est fini. Si tu ne comprends pas des points précis mentionne-les, que je comprenne pourquoi ça te va pas comme réponse…

+1 -1

2 points définissent une droite. Si chaque potard sort les mêmes valeurs extrêmes (0/1023) mais des valeurs différentes entre les deux, je vois pas comment il peut calibrer avec une droite car justement la relation ne doit pas être linéaire…

L'idéal, ca serait que pour chaque potard, tu relèves à l'aide de l'arduino la valeur mesurée tous les X degrés (5 /10 par exemples) et que tu traces les courbes correspondantes.

Ca te permettrait de formuler une hypothèse sur la forme de la courbe (exemple $ a*log(x) + b*sqrt(x) + c$) et avec de la régression linéaire multiple, tu pourrais trouver les coefficients correspondants ($ a,b,c $ dans mon exemple). Puis, tu inverses cette courbe pour avoir la position en fonction de la mesure.

Édité par Davidbrcz

+0 -0

Bah suffit de faire deux droites par potar. La première d'une butée au point neutre et l'autre du point neutre à l'autre butée. Je pense que ça suffit comme approximation (après ça dépend du robot…).

+0 -1
Auteur du sujet

Oula la ma pauvre tête. Je n'ai pas vraiment compris ce que vous avez dit. alors la coder .....

J’espérais un truc simple et facile pour rectifier les variation hardware d'un module a l'autre !

Merci pour tout

+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte