JOYSTICK

Qu’est-ce qu’un joystick ?

Un joystick est une sorte de manette qui peut tourner à 360 degrés et qui permet de contrôler de nombreux appareils. On le rencontre notamment sur les manettes des consoles de jeux vidéos. Le joystick te sera très utile pour contrôler de manière simple tes robots. Tu as envie d’apprendre à utiliser un joystick ? C’est parti !

joystick

Le joystick peut paraître compliqué mais ce n’est pas le cas. Faisons une petite expérience. Prends ton joystick, enlève la partie en plastique, qui te permet de le manipuler, et regarde bien :
joysticksincapucha

Ces composants noirs ne te rappellent rien ? Ils ressemblent beaucoup à ton potentiomètre ! En effet, un joystick n’est rien d’autre que la réunion de deux potentiomètres, un pour contrôler l’axe X et l’autre pour contrôler l’axe Y. Ce joystick possède également un bouton-poussoir, donc si tu appuies sur la manette, tu pourras avoir accès à d’autres fonctions. Récapitulons : nous avons deux potentiomètres et un bouton-poussoir à programmer. Au travail ! Prépare :

  1. Un joystick
  2. Un écran LCD
  3. Une carte contrôleur ZUM BT 328 ou une carte compatible avec Arduino UNO
  4. Un câble USB

Exercice 1

Afficher les valeurs du joystick sur l’écran

Nous allons utiliser l’écran LCD pour afficher les valeurs du joystick, provenant de l’axe X, de l’axe Y et du bouton. Connecte le joystick et l’écran LCD comme suit :

ZUM-LCD-Joystick

Maintenant regarde bien comment le programme a été conçu dans bitbloq :

joystivklcd

Comme dans le cas d’autres capteurs vus précédemment, tu dois affecter au joystick une variable pour stocker ses valeurs. Ici nous l’avons appellée joystick. Il s’agit d’une variable un peu particulière… Elle stocke trois valeurs ! Ce type de variable est appelé arrays (tableau) et sert à stocker plusieurs valeurs dans une seule variable, par exemple les coordonnées x, y, z d’un graphique, les heures, les minutes et les secondes d’une montre, ou dans notre cas, les coordonnées X et Y et la valeur du bouton-poussoir de notre joystick. Comme tu peux le voir, nous déclarons la variable et nous l’assignons au joystick puis nous commençons à écrire ses informations dans l’écran LCD. Pour accéder aux coordonnées X et Y ou à la valeur du bouton-poussoir du joystick, nous devrons accéder à un des trois éléments de la variable. Pour cela, tu peux utiliser le bloc var variable [chiffre], le chiffre correspondant à l’élément auquel nous voulons accéder. Quand tu travailles avec des tableaux, tu ne dois pas oublier une chose : le premier élément d’un tableau ne correspond pas au chiffre 1 mais au chiffre 0. Si tu veux accéder au premier élément d’un tableau, tu devras entrer un 0 au lieu d’un 1, si tu veux accéder au deuxième élément, tu devras entrer un 1 au lieu d’un 2, etc. Regarde le schéma suivant pour avoir les idées claires :
indicesvector

Fais attention aux valeurs que peut atteindre ton joystick. En théorie ton joystick te donnera, comme dans le cas du potentiomètre, des valeurs entre 0 et 1023, mais en réalité, il est peu probable qu’il atteigne ces valeurs ; cela dépendra de ses limitations physiques. Prends en compte les valeurs maximales de ton joystick si tu souhaites créer un projet nécessitant une grande précision. Et maintenant un autre exercice de programmation avec le joystick :

Exercice 2

Moduler la vitesse de clignotement d’une LED avec le joystick

Tu te souviens de comment nous avons modulé la vitesse de clignotement d’une LED avec un potentiomètre ? Le temps d’attente après avoir allumé et éteint la LED devait être identique. Mais maintenant nous avons deux potentiomètres réunis dans une seule pièce, le joystick ! Tentons donc une petite expérience. Faisons s’allumer la LED pendant une durée dépendant de la valeur X, et éteignons-la pendant une durée dépendant de la valeur Y. Connecte le joystick en suivant les indications du schéma antérieur et ajoute une LED (connecte-la à la broche numérique 6). Nous te laissons essayer ! Nous te recommandons pour un effet plus visible d’échelonner la valeur du joystick entre 0 et 500, même si ce n’est pas indispensable. Rendez-vous plus bas pour la solution !
reloj-de-arena-10375

Ça a marché ? Ton programme devrait ressembler à celui-ci :
ejemplo2joystick

Comme tu peux le constater, la durée de chaque état de la LED varie en fonction de la position du joystick. Teste donc plusieurs positions ! Tu peux aussi modifier les valeurs d’échelonnement pour que les changements soient plus rapides ou plus lents. Les joysticks ont de multiples applications, par exemple contrôler des moteurs (ou bien un autre élément ou un autre appareil). Tu verras, ils deviendront bientôt un de tes composants favoris.