Panier d’achat

Aucun produit dans le panier.

Module PS2 Double Axe XY Joystick Arduino

25.00 د.م.

8 en stock

Quantité Discount (%) Prix
1 - 29 25.00 د.م.
30+ 28 % 18.00 د.م.
UGS : CM028 Catégories : , Étiquette :

Tutoriel: Utilisation d’un PS2 Joystick avec Arduino


Le joystick est un capteur de position qui renvoie deux valeurs analogiques représentant sa position X,Y. Il peut servir d’interface pour naviguer dans un menu ou bien pour piloter un objet en direction ou en vitesse. On le retrouve couramment sur les manettes pour jeux vidéo, les télécommandes de modélisme ou encore sur les tableaux de bord machines industrielles.


Matériel

  • Ordinateur
  • Arduino UNO
  • Câble USB A Mâle/B Mâle
  • Joystick PS2

Principe de fonctionnement

Le joystick est composé de deux potentiomètres couplés mécaniquement placés de manière à détecter les composantes horizontale et verticale du joystick. Ainsi les valeurs de résistance des potentiomètres varient indépendamment en fonction de la position du joystick.


Schéma

Le joystick renvoie deux valeurs analogiques que nous brancheront naturellement sur les entrées analogiques du microcontrôleur.

utilisation joystick ave arduino

Code

Le joystick s’utilise comme l’association de deux potentiomètres et d’un bouton poussoir. Nous allons donc définir deux entrées analogiques pour récupérer les valeurs de position et une entrée digitale pour le bouton intégré au Joystick. Pratiquement, les valeurs analogiques brutes ne seront pas utilisés directement. Elle serviront à piloter des variables avec leurs propres domaines de définition (valeurs extrêmes, précision, type, etc.). Ceci étant dit, il peut être intéressant de définir une fonction qui permettra de convertir la valeur brute en valeur utilisable. Dans notre exemple, nous choisissons une plage de valeur allant de -100 à 100, qui peut être interprétée comme la vitesse d’un moteur avec une valeur négative représentant un sens de rotation opposé et 100 représentant la vitesse maximale.

/* 

* Réaliser par Micro-Electroniques Générales au Maroc 
* Visite notre site megma.ma 

*/ //Constants #define NUM_JOY 2 #define MIN_VAL 0 #define MAX_VAL 1023 //Parameters const int joyPin [2] = {A0, A1}; const int joyBtn  = 2; const int joyOffset  = 0; //Variables int joyVal [NUM_JOY] = {0, 0}; void setup() {  //Init Serial USB  Serial.begin(9600);  Serial.println(F("Initialize System"));  //Init Joystick  for (int i = 0; i < NUM_JOY; i++) pinMode(joyPin[i], INPUT); } void loop() {  readJoystick();  delay(500); } void readJoystick( ) { /* function readJoystick */  ////Test routine for Joystick  for (int i = 0; i < NUM_JOY; i++) {    joyVal[i] = analogRead(joyPin[i]);    Serial.print(F("joy")); Serial.print(i); Serial.print(F(" : ")); Serial.println(joyVal[i]);  }  for (int i = 0; i < NUM_JOY; i++) {    Serial.print(F("Conv")), Serial.print(i); Serial.print(F(" : ")); Serial.println(joyRawToPhys(joyVal[i]));  }  if (!digitalRead(joyBtn)) {    Serial.println(F("Joy Button pressed"));  } } int joyRawToPhys(int raw) { /* function joyRawToPhys */  ////Joystick conversion rule  float phys = map(raw, MIN_VAL, MAX_VAL, -100 + joyOffset, 100 + joyOffset) - joyOffset; //  return phys; }

Résultat

Une fois le code chargé dans le microcontrôleur vous devriez voir les valeurs de X et Y évoluer en fonction de la position du Joystick. On observe aussi qu’en position de repos, la conversion des valeurs brutes n’est pas égale à zéro. Il est possible de corriger cet écart en ajoutant un offset au paramètre de conversion.


Applications

  • Créer une télécommande pour piloter votre microcontrôleur

Sources


Plus d’informations visite notre page Facebook.


 

Avis

Il n’y a pas encore d’avis.

Soyez le premier à laisser votre avis sur “Module PS2 Double Axe XY Joystick Arduino”

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Tous les résultats de recherche
×