Utilisez un joystick sur le Raspberry Pi (avec MCP3008)

Utilisez un joystick sur le Raspberry Pi avec MCP3008
Utilisez un joystick sur le Raspberry Pi avec MCP3008

Pour certaines applications, comme les jeux, un joystick peut être utile ou même nécessaire. Comme ceux-ci fonctionnent généralement de manière purement analogique, le signal doit être converti, ce que nous faisons avec la puce MCP3008. La connexion et la lecture d’un joystick sont présentées dans ce didacticiel.

Ces joysticks analogiques ont deux axes, qui permettent à une certaine tension de passer à travers deux potentiomètres (résistance réglable). Pour que la position puisse également être lue numériquement sur le Raspberry, le MCP3008 est nécessaire. Le schéma de ce module est le suivant:

mcp3008-e1397762478714

Sur le côté gauche se trouvent 8 entrées analogiques, dont nous n’avons besoin que de 3.

Sur le côté droit se trouvent les sorties numériques, où la transmission a lieu via DIN et DOUT.

Le périphérique MCP3008 est un convertisseur analogique-numérique 10 bits. Cela signifie qu’il peut atteindre un maximum de 2 ^ 10, soit 1024 combinaisons de bits (les valeurs de 0 à 1023). Avec une tension d’entrée de 3,3 V, les env. 3.2mV sont des étapes qui peuvent être mappées (3.3V).

Accessoires

Installer

Bien que le joystick ait une tension d’entrée de 5 V, il fonctionne sans problème avec 3,3 V, ce qui est encore plus important lors de l’utilisation du MCP3008. Le terme SW désigne le bouton qui est activé lorsque vous appuyez sur le joystick. Pour que ce soit 0 ou 1023 (pressé ou non pressé), une résistance de 10 kΩ est attachée au VCC. Sans cette résistance, des numéros invalides sont sortis qui ne peuvent pas être clairement attribués.

joystick_Steckplatine

L’affectation des broches de la Raspberry PI ressemble à ceci:

Tarte aux Raspberry PI MCP3008
Broche 1 (3,3 V) Broche 16 (VDD)
Broche 1 (3,3 V) Broche 15 (VREF)
Broche 6 (GND) Broche 14 (AGND)
Broche 23 (SCLK) Broche 13 (CLK)
Broche 21 (MISO) Broche 12 (DOUT)
Broche 19 (MOSI) Broche 11 (DIN)
Broche 24 (CE0) Broche 10 (CS / SHDN)
Broche 6 (GND) Broche 9 (DGND)

Après la connexion au joystick:

RPi / MCP3008 Manette
Broche Raspberry PI 6 (GND) GND
Broche Raspberry PI 1 (3,3 V) + 5V
Broche 1 (CH0) SW
Broche 2 (CH1) VRx
Broche 3 (CH2) VRy

Essai

Dans mon script, j’utilise le SpiDev bibliothèque. Si vous ne l’avez pas déjà installé, vous devez le faire avant de tester le joystick.

Comme mentionné précédemment, le MCP3008 renvoie une valeur comprise entre 0 et 1023. Si le joystick est en « état de repos », c’est-à-dire au milieu, environ 512 seront renvoyés. 0 est renvoyé à une extrémité d’un axe et 1023 à l’autre extrémité (à quelle extrémité cela dépend de la façon dont vous regardez le joystick).

Vous pouvez télécharger le fichier de test

wget http://www.tutorials-raspberrypi.de/wp-content/uploads/scripts/joystick_test.py

ou créez-le vous-même:

Ensuite, vous pouvez démarrer le script en

sudo python joystick_test.py

et déplacez le joystick. Vous constaterez que 1024 pas sont probablement trop, car la précision du doigt sur un petit joystick est difficilement réalisable. Par conséquent, je recommanderais de définir des zones dans une application plutôt que de tester des valeurs individuelles (à l’exception de 0/1023).

  • AZDelivery 3 x KY-023 Joystick Module Compatible avec Arduino et Raspberry Pi y Compris Un eBook
    ✅ Notre module AZDelivery Joystick Breakout convient pour différents projets ludiques. ✅ Die Les axes X et Y sont réglables à l'aide d'un potentiomètre de 10 kOhm, ce qui vous permet de modifier mécaniquement la valeur de résistance. ✅ Der Joystick dispose d'un bouton avec un point de pression agréable et offre plus de possibilités de programmation et d'utilisation. Cela vous donne un produit que vous pouvez utiliser de plusieurs façons. ✅ Grâce à ses dimensions: 4 x 2,6 x 3,2 cm, le joystick peut être utilisé dans presque tous les projets et ne s'use pas en utilisation intensive. ✅ Ce produit inclut un E-Book qui fournit des informations utiles sur la façon de commencer votre projet. Il permet une installation rapide et fait gagner du temps sur le processus de configuration. On y trouve une série d'exemples d'applications, des guides d'installation complets et des bibliothèques.
  • AZDelivery KY-023 Joystick Keypad Shield Manette PS2 Compatible avec Arduino et Raspberry Pi y Compris Un eBook
    ✅ Notre AZDelivery JoyStick GamePad est 100% compatible avec microcontrôleurs, rendant cet écran si intéressant pour tous les amoureux du jeu. ✅ Sur l'écran se trouvent le joystick PS2 2 axes (KY-023), 7 boutons (4 boutons, 2 boutons, bouton-poussoir sur le joystick PS2) et les possibilités de commande illimitées pour tous les projets possibles. ✅ Grâce au brochage d'un module NRF24L01RF, d'un écran LCD Nokia 5110 ou d'une interface Bluetooth, les possibilités d'application sont quasiment illimitées. ✅ Grâce à l'interface I2C et à la tension de service 3,3V ou 5V, il est possible d'utiliser cette carte directement sans régulateur de tension. ✅ Ce produit inclut un E-Book qui fournit des informations utiles sur la façon de commencer votre projet. Il permet une installation rapide et fait gagner du temps sur le processus de configuration. On y trouve une série d'exemples d'applications, des guides d'installation complets et des bibliothèques.
  • Touchsy HAT pour Raspberry Pi, écran tactile résistif de 8,1 cm pour Raspberry Pi, SBC et microcontrôleurs avec boutons programmables et interface SPI Joystick Écran tactile LCD
    Touchsy Hat : compatible avec Raspberry Pi 4, 3 et autres ordinateurs à carte unique GPIO à 40 broches. Profitez d'une entrée tactile précise avec sa technologie tactile résistive. Ajustement parfait : la taille d'affichage de 3,2" du Touchsy Hat est conçue pour correspondre parfaitement à la taille du Raspberry Pi 4, offrant une intégration homogène. Visuels de haute qualité : alimenté par le pilote d'affichage ILI934, ce chapeau offre des visuels impressionnants, assurant une expérience visuelle agréable pour vos projets Raspberry Pi. Contrôle polyvalent : profitez d'options de contrôle polyvalentes avec le joystick à 5 voies et 2 boutons programmables, vous permettant de personnaliser les fonctions selon vos besoins. Notifications audio : restez informé avec le buzzer programmable multi-tune, qui peut être programmé pour vous alerter des notifications ou d'autres événements sur votre Raspberry Pi.