- Composants requis
- Arduino Leonardo
- Module Joystick XY à deux axes
- Schéma
- Code et explication de travail
Nous avons précédemment interfacé Joystick avec Arduino UNO pour comprendre comment il fonctionne et contrôlé quatre LED sur son mouvement gauche, droit, haut et bas. Dans ce projet, nous utiliserons le même joystick que la manette de jeu ou le contrôleur de jeu pour jouer à tous les jeux informatiques qui nécessitent des mouvements vers la gauche, la droite, le haut et le bas. Pour jouer à des jeux qui nécessitent plus d'options de contrôle, deux joysticks ou plus peuvent être utilisés. Ici, nous utiliserons Arduino Leonardo pour interfacer Joystick en tant que contrôleur de jeu. Arduino Leonardo a l'avantage sur Uno que nous pouvons installer des pilotes USB dessus et qu'il peut être détecté comme souris, clavier ou joystick par ordinateur lorsqu'il est connecté.
Composants requis
- Arduino Leonardo
- Module Joystick XY à deux axes
- IDE Arduino
- Fils de connexion
Arduino Leonardo
Pour ce projet, nous utilisons l'Arduino Leonardo, c'est une carte microcontrôleur basée sur l'ATmega32u4. Il possède 20 broches d'entrée / sortie numériques (dont 7 peuvent être utilisées comme sorties PWM et 12 comme entrées analogiques), un oscillateur à quartz 16 MHz, une connexion micro USB, une prise d'alimentation, un en-tête ICSP et un bouton de réinitialisation. Il contient tout le nécessaire pour prendre en charge le microcontrôleur; connectez-le simplement à un ordinateur avec un câble USB ou alimentez-le avec un adaptateur CA / CC ou une batterie pour commencer.
La Leonardo est différente de toutes les cartes précédentes en ce que l'ATmega32u4 a une communication USB intégrée, éliminant le besoin d'un processeur secondaire. Cela permet au Leonardo d'apparaître à un ordinateur connecté comme une souris et un clavier, en plus d'un port série / COM virtuel (CDC).
Spécifications techniques
Microcontrôleur | ATmega32u4 |
Tension de fonctionnement | 5V |
Tension d'entrée (recommandée) | 7-12 V |
Tension d'entrée (limites) | 6-20 V |
Broches d'E / S numériques | 20 |
Canaux PWM | sept |
Canaux d'entrée analogiques | 12 |
Courant CC par broche d'E / S | 40 mA |
Courant CC pour broche 3,3 V | 50 mA |
Mémoire flash | 32 Ko (ATmega32u4) dont 4 Ko utilisés par le chargeur de démarrage |
SRAM | 2,5 Ko (ATmega32u4) |
EEPROM | 1 Ko (ATmega32u4) |
Vitesse de l'horloge | 16 MHz |
Longueur | 68,6 millimètre |
Largeur | 53,3 millimètre |
Poids | 20 grammes |
Référence PIN Out
Module Joystick XY à deux axes
Les joysticks sont disponibles en différentes formes et tailles. Un module Joystick typique est illustré dans la figure ci-dessous. Ce module Joystick fournit généralement des sorties analogiques et les tensions de sortie fournies par ce module changent en fonction de la direction dans laquelle nous le déplaçons. Et nous pouvons obtenir la direction du mouvement en interprétant ces changements de tension à l'aide d'un microcontrôleur. Auparavant, nous avons interfacé le joystick avec différents microcontrôleurs:
- Joystick d'interfaçage avec Arduino
- Joystick d'interfaçage avec Raspberry Pi
- Joystick d'interfaçage avec microcontrôleur PIC
- Interfaçage du joystick avec le microcontrôleur AVR
Ce module de joystick a deux axes comme vous pouvez le voir. Ce sont les axes X et Y. Chaque axe du JOY STICK est monté sur un potentiomètre ou un pot. Les points médians de ces pots sont chassés comme Rx et Ry. Donc Rx et Ry sont des points variables vers ces pots. Lorsque le joystick est en veille, Rx et Ry agissent comme un diviseur de tension.
Lorsque le joystick est déplacé le long de l'axe horizontal, la tension sur la broche Rx change. De même, lorsqu'il est déplacé le long de l'axe vertical, la tension sur la broche Ry change. Nous avons donc quatre directions de Joystick sur deux sorties ADC. Lorsque le bâton est déplacé, la tension sur chaque broche augmente ou diminue selon la direction.
Schéma
Ce contrôleur de jeu Arduino Joystick nécessite des connexions entre l'Arduino et le Joystick comme suit:
Code et explication de travail
Le code complet avec une vidéo de démonstration est donné à la fin; ici, nous en expliquons quelques parties importantes.
Tout d'abord, nous devons initialiser la bibliothèque de clavier
#comprendre
Ensuite, dans le code ci-dessous, nous avons initialisé les axes X et Y du module Joystick pour les broches analogiques A0 et A1 respectivement.
const int X_pin et const int Y_pin respectivement
La valeur analogique de la broche VRX est lue et si la valeur est de 1023, alors la commande «up» est donnée et si la valeur est 0 alors la commande «down» est donnée.
De même, la valeur analogique de la broche VRY est lue et si la valeur est 1023 alors la commande pour «droite» est donnée et si la valeur est 0 alors la commande pour «gauche» est donnée.
Le joystick a également un bouton-poussoir sur le dessus de sorte que ce bouton (SW) est également lu et si le bouton est enfoncé, la valeur sera 0 alors la commande pour «entrer» est donnée.
Enfin, gravez le code dans Arduino et connectez l'Arduino à l'ordinateur.
Ensuite, vérifiez les « Périphériques et imprimantes» dans votre panneau de contrôle, vous pourrez voir « Arduino Leonardo» sous la section des périphériques, comme indiqué dans l'image ci-dessous. Vous êtes maintenant prêt à jouer avec le joystick.
Nous pouvons contrôler toutes les commandes de jeu à l'aide de ce joystick. Le joystick a deux potentiomètres à l'intérieur, l'un pour le mouvement sur l'axe X et l'autre pour le mouvement sur l'axe Y. Chaque potentiomètre reçoit 5v de l'Arduino. Ainsi, lorsque nous déplaçons le joystick, la valeur de tension changera et la valeur analogique sur les broches analogiques A0 et A1 changera également. Ainsi, le joystick agira comme une manette de jeu.
Voici donc comment un joystick normal peut être converti en contrôleur de jeu en utilisant Arduino Leonardo et peut être utilisé pour jouer à des jeux ayant toutes les commandes pour se déplacer vers la gauche, la droite, le haut et le bas. Comme indiqué précédemment, plus d'un joystick peut être interfacé pour obtenir plus de commandes autres que ces quatre fonctions de base.