Raspberry Pi Pico - joystick
Dans ce guide, nous apprendrons à utiliser un joystick avec le Raspberry Pi Pico. En détail, nous découvrirons :
- Comment fonctionne un joystick
- Comment connecter un joystick à un Raspberry Pi Pico
- Comment programmer le Raspberry Pi Pico pour lire les valeurs du joystick
- Comment programmer le Raspberry Pi Pico pour convertir les données du joystick en données utiles (comme les coordonnées XY ou les directions des moteurs)

Préparation du matériel
| 1 | × | Raspberry Pi Pico W | |
| 1 | × | Raspberry Pi Pico Alternativement: | |
| 1 | × | Câble Micro USB | |
| 1 | × | Joystick | |
| 1 | × | Fils de connexion | |
| 1 | × | Recommandé: Carte d'extension à bornier à vis pour Raspberry Pi Pico |
Ou vous pouvez acheter les kits suivants:
| 1 | × | Kit de Capteurs DIYables (30 capteurs/écrans) | |
| 1 | × | Kit de Capteurs DIYables (18 capteurs/écrans) |
À propos du Joystick
Vous avez peut-être vu un joystick utilisé pour contrôler des jeux, des jouets ou même de grosses machines comme des excavatrices.
Le joystick comporte deux potentiomètres disposés en carré et un bouton. Il fournit ces sorties :
- Une plage de 0 à 1023 pour la position horizontale (gauche à droite)
- Une plage de 0 à 1023 pour la position verticale (haut-bas)
- L'état du bouton, soit ALLUMÉ (NIVEAU ÉLEVÉ) ou ÉTEINT (NIVEAU BAS)
Lorsque vous combinez deux valeurs analogiques, elles créent des coordonnées en 2D. Ces coordonnées se situent au centre lorsque le joystick est immobile. Vous pouvez découvrir la direction réelle des coordonnées en utilisant un code de test, dont nous discuterons dans la section suivante.
Certaines applications peuvent utiliser les trois sorties, tandis que d'autres n'en utilisent que quelques-unes.
Schéma des broches
Un joystick a cinq broches.
- Broche GND : connectez-la à la masse (0 V)
- Broche VCC : connectez-la au VCC (3,3 V) du Raspberry Pico
- Broche VRX : fournit une valeur analogique pour la position horizontale (coordonnée X), connectez cette broche à une entrée ADC du Raspberry Pico.
- Broche VRY : fournit une valeur analogique pour la position verticale (coordonnée Y), connectez cette broche à une entrée ADC du Raspberry Pico.
- Broche SW : connectée au bouton-poussoir du joystick. Généralement ouverte. Utilisez une résistance de pull-up pour maintenir cette broche à un niveau haut lorsque le bouton n'est pas enfoncé et à un niveau bas lorsqu'il est enfoncé.

Comment cela fonctionne
- Mouvement Gauche/Droite:
- Déplacer le joystick vers la gauche ou la droite modifie le signal électrique (tension) à la broche VRX.
- Déplacer le joystick vers la gauche abaisse la tension à 0 volt.
- Déplacer le joystick vers la droite augmente la tension à 3,3 volts.
- Le Raspberry Pi Pico mesure cette tension et la transforme en un nombre de 0 à 1023. Ainsi, 0 V vaut 0 et 5 V vaut 1023.
- Mouvement Haut/Bas:
- Déplacer le joystick vers le haut ou le bas modifie la tension à la broche VRY.
- Le déplacer vers le haut diminue la tension à 0 volt.
- Déplacer vers le bas augmente la tension à 3,3 volts.
- Le Raspberry Pi Pico lit également cette tension, la transformant en un nombre de 0 à 1023, de la même manière que pour la broche VRX.
- Mouvements combinés:
- Déplacer le joystick dans n'importe quelle direction modifie la tension sur les broches VRX et VRY selon sa position sur chaque axe.
- Appuyer sur le Joystick:
- Enfoncer le joystick active un bouton interne.
- Connecter une résistance de tirage vers le haut à la broche SW provoquera une chute de la tension de 5 V à 0 V lorsque le joystick est enfoncé.
- Le Raspberry Pi Pico détecte cela comme un signal numérique, affichant HIGH (5 V) lorsque non enfoncé et LOW (0 V) lorsque enfoncé.
Lorsque vous déplacez le joystick, il ajuste les tensions sur VRX et VRY. Le Raspberry Pi Pico lit ces variations comme des valeurs allant de 0 à 1023. En appuyant sur le joystick, la tension à la broche SW change, et le Raspberry Pi Pico détecte cela comme un niveau élevé ou faible.
Diagramme de câblage

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.
Comment programmer pour un joystick
Heureusement, DIYables a développé une bibliothèque de joystick qui facilite grandement le processus d'utilisation d'un joystick avec le Raspberry Pi Pico.
Code du Raspberry Pi Pico - Lit l'état du joystick
Le script MicroPython ci-dessous fait :
- Lit les valeurs analogiques d'un joystick.
- Vérifie si le bouton du joystick est enfoncé ou relâché.
- Lit le nombre d'appuis sur le bouton du joystick.
Étapes rapides
Veuillez suivre ces instructions étape par étape :
- Assurez-vous que l'IDE Thonny est installé sur votre ordinateur.
- Assurez-vous que le micrologiciel MicroPython est installé sur votre Raspberry Pi Pico.
- Si c'est la première fois que vous utilisez un Raspberry Pico, reportez-vous au tutoriel Raspberry Pi Pico - Premiers pas. pour des instructions détaillées.
- Connectez le joystick au Raspberry Pi Pico selon le diagramme fourni.
- Connectez le Raspberry Pi Pico à votre ordinateur à l'aide d'un câble USB.
- Lancez l'IDE Thonny sur votre ordinateur.
- Dans l’IDE Thonny, sélectionnez l'interpréteur MicroPython (Raspberry Pi Pico) en accédant à Outils Options.
- Dans l’onglet Interpréteur, sélectionnez MicroPython (Raspberry Pi Pico) dans le menu déroulant.
- Assurez-vous que le port correct est sélectionné. L’IDE Thonny détecte normalement le port automatiquement, mais vous devrez peut-être le sélectionner manuellement (par exemple, COM3 sur Windows ou /dev/ttyACM0 sur Linux).
- Accédez à Outils Gérer les paquets dans l'IDE Thonny.
- Recherchez “DIYables-MicroPython-Joystick”, puis trouvez la bibliothèque Joystick créée par DIYables.
- Cliquez sur DIYables-MicroPython-Joystick, puis cliquez sur le bouton Install pour installer la bibliothèque Joystick.

- Copiez le code ci-dessus et collez-le dans l'éditeur de l'IDE Thonny.
- Enregistrez le script sur votre Raspberry Pi Pico en procédant comme suit :
- Cliquez sur le bouton Enregistrer, ou utilisez les touches Ctrl+S.
- Dans la boîte de dialogue d'enregistrement, vous verrez deux sections : Cet ordinateur et Raspberry Pi Pico. Sélectionnez Raspberry Pi Pico
- Enregistrez le fichier sous main.py
- Cliquez sur le bouton vert Exécuter (ou appuyez sur F5) pour exécuter le script. Le script s'exécutera.
- Faites glisser le joystick vers la gauche, vers la droite, vers le haut ou vers le bas.
- Appuyez sur la partie supérieure du joystick.
- Consultez le message dans le Shell situé en bas de Thonny.
- En utilisant le joystick, vérifiez la valeur dans le Shell en bas de Thonny. Si la valeur X est 0, rappelez-vous que cela signifie gauche ; sinon, cela signifie droite. Si la valeur Y est 0, cette position est en haut ; sinon, elle est en bas.
À noter que, bien que la plage théorique des valeurs X/Y soit de 0 à 4095, en pratique, les valeurs n'atteignent généralement pas ces extrêmes en raison des caractéristiques mécaniques du joystick. Cette variation est normale et acceptable pour les applications typiques.
Si vous nommez votre script main.py et que vous l'enregistrez dans le répertoire racine du Raspberry Pi Pico, il s'exécutera automatiquement à chaque mise sous tension ou réinitialisation du Pico. Cela est utile pour les applications autonomes qui doivent commencer à s'exécuter immédiatement lors de la mise sous tension. Si vous nommez votre script sous un autre nom que main.py, vous devrez l'exécuter manuellement depuis le Shell de Thonnys.
Convertit une valeur analogique en commandes GAUCHE/DROITE/HAUT/BAS
Le script MicroPython ci-dessous convertit les valeurs analogiques en commandes : MOVE_LEFT, MOVE_RIGHT, MOVE_UP, MOVE_DOWN.
Étapes rapides
- Copiez le code ci-dessus et ouvrez-le dans l’IDE Thonny.
- Enregistrez le script sur votre Raspberry Pi Pico.
- Déplacez le joystick à gauche, à droite, en haut, en bas, ou dans n'importe quelle direction.
- Consultez le message dans le Shell en bas de Thonny.
※ Note:
Il pourrait y avoir aucune commande, une commande, ou même deux commandes en même temps, comme HAUT et GAUCHE ensemble.
Convertit des valeurs analogiques en angles pour contrôler deux servomoteurs
Découvrez les détails dans ce tutoriel Raspberry Pi Pico - joystick - servomoteur..