Code Arduino et vidéo : joystick à deux axes

Code Arduino et vidéo : joystick à deux axes

Dans ce tutoriel, nous allons explorer comment utiliser un joystick XY à deux axes avec Arduino. Ce joystick peut être utilisé comme manette de jeu ou pour contrôler des bras robotiques, entre autres applications. L'accent principal sera mis sur la détection de la position du joystick et de l'état de son bouton-poussoir, qui peuvent être affichés sur le moniteur série.

XY-Dual access joystick

Tout au long du tutoriel, nous allons implémenter un programme simple qui lit les positions X et Y du joystick et les affiche dans le moniteur série Arduino. Lorsque le joystick est enfoncé, l'état de l'interrupteur sera également détecté. Pour une explication détaillée du code, assurez-vous de regarder la vidéo aux horodatages spécifiés (dans la vidéo à 00:00).

Le matériel expliqué

Les principaux composants de ce projet sont le module de joystick à deux axes et la carte Arduino. Le module de joystick comprend deux résistances variables, l'une pour l'axe X et l'autre pour l'axe Y, qui fournissent des valeurs analogiques en fonction de la position du joystick. Le bouton-poussoir du joystick sert à détecter quand il est enfoncé.

Lorsque vous déplacez le joystick, les potentiomètres modifient leur résistance, qui est convertie en valeurs comprises entre 0 et 1023. Cela nous permet de déterminer avec précision la position du joystick. Le bouton-poussoir est connecté à une broche d'entrée numérique de l'Arduino, ce qui nous permet de lire son état sans avoir besoin d'une résistance externe grâce à la résistance pull-up interne.

Détails de la fiche technique

FabricantGénérique
Numéro de pièceModule de joystick à deux axes
Tension logique / E/S5 V
Tension d'alimentation5 V
Plage de tension de sortie0 à 5 V
RésolutionAnalogique 10 bits (0-1023)
Type d'interrupteurBouton-poussoir
ColisModule standard

  • Assurez-vous que le module joystick est correctement alimenté (5 V).
  • Connectez les sorties X et Y du joystick aux broches analogiques A0 et A1, respectivement.
  • Utilisez la broche numérique 6 pour le bouton du joystick.
  • Utilisez une configuration en pull-up pour la broche du commutateur.
  • Surveillez les valeurs de sortie pour vous assurer qu'elles vont de 0 à 1023.

Instructions de câblage

Arduino wiring for XY-Dual access joystick
Arduino wiring for XY-Dual access joystick
Arduino X-Y-Joystick wiring
Arduino X-Y-Joystick wiring

Pour câbler le joystick à double axe à l'Arduino, commencez par connecter la broche de masse du joystick au rail de masse de votre plaque d'essai. Ensuite, connectez la broche 5V du joystick au rail positif de la plaque d'essai. Les deux broches variables du joystick, étiquetées X et Y, doivent être connectées aux broches analogiquesA0etA1sur l'Arduino, respectivement.

Pour l'interrupteur à bouton-poussoir sur le joystick, connectez-le à la broche numérique6sur l'Arduino. Cette connexion utilise la résistance pull-up interne, vous n'avez donc pas besoin d'une résistance externe. Enfin, si vous souhaitez surveiller l'état de l'interrupteur avec une LED, connectez la patte la plus longue de la LED à la broche numérique13et la patte la plus courte est reliée à la masse via une résistance de 680 ohms.

Exemples de code et guide pas à pas

Dans le code Arduino, nous définissons la broche de l'interrupteur et spécifions les dimensions de l'écran pour la mise en correspondance des valeurs du joystick. La fonction setup initialise la communication série et définit le mode de la broche de l'interrupteur.

void setup() {
  Serial.begin(9600); // initialize serial communication
  pinMode(sw, INPUT_PULLUP); // setting pin sw as input
  pinMode(13, OUTPUT); // LED pin
}

Dans la fonction loop, nous lisons les valeurs analogiques des positions X et Y et les adaptons aux dimensions d'écran définies. L'état de l'interrupteur est également lu et affiché dans le Moniteur série.

void loop() {
  int x = analogRead(A0); // read analog value for X
  int y = analogRead(A1); // read analog value for Y
  int sStat = digitalRead(sw); // read switch state
  // Print values to Serial Monitor
  Serial.print("X: ");
  Serial.print(xPos);
  Serial.print(" Y: ");
  Serial.println(yPos);
}

Enfin, le code vérifie si l'interrupteur est appuyé, allumant ou éteignant la LED en fonction de l'état de l'interrupteur. Cela fournit un retour visuel lorsque le bouton du joystick est activé.

if(sStat == LOW) {
    Serial.println("Switch pressed");
    digitalWrite(13, HIGH); // Turn LED ON
  } else {
    digitalWrite(13, LOW); // Turn LED OFF
  }

Pour voir comment les valeurs du joystick évoluent en temps réel, téléversez le code sur votre Arduino et ouvrez le Moniteur série. Les valeurs se mettront à jour toutes les demi-secondes, affichant les positions X et Y actuelles ainsi que l'état de l'interrupteur (dans la vidéo à 01:30).

Démonstration / À quoi s'attendre

Lorsque vous déplacez le joystick, les valeurs X et Y devraient changer en conséquence, allant de 0 à 1023. Si vous appuyez sur le bouton du joystick, la LED reliée à la broche 13 s'allumera, indiquant que l'interrupteur est actif. Si le joystick est centré, vous devriez voir des valeurs autour de 512 pour les deux axes, selon l'étalonnage du joystick.

Horodatages vidéo

  • 00:00- Introduction au joystick à deux axes
  • 01:30- Explication du code et de son fonctionnement
  • 02:45- Instructions de câblage
  • 03:15- Sortie attendue et tests

Images

Arduino wiring for XY-Dual access joystick
Arduino wiring for XY-Dual access joystick
XY-Dual access joystick
XY-Dual access joystick
XY-Dual access joystick
XY-Dual access joystick
XY-Dual access joystick
XY-Dual access joystick
XY-Dual access joystick
XY-Dual access joystick
XY-Dual access joystick
XY-Dual access joystick
Arduino X-Y-Joystick wiring
Arduino X-Y-Joystick wiring
58-This is the Arduino code for a dual-axis joystick.
Langue: C++
Copié !

Ce dont vous pourriez avoir besoin

Ressources et références

Aucune ressource pour le moment.

Fichiers📁

Aucun fichier disponible.