Comment contrôler un Arduino avec une manette PS2 sans fil

  • Le contrôleur PS2 est une option économique et ergonomique pour contrôler les robots.
  • Vous avez besoin d'un convertisseur de niveau logique pour connecter le contrôleur PS2 à Arduino.
  • La bibliothèque PS2X facilite l'intégration du contrôleur PS2 avec Arduino.
  • Le contrôleur dispose de 14 boutons et de deux sticks analogiques pour un contrôle précis.

livres sur arduino

L'interaction entre Arduino et un contrôleur PlayStation 2 est incroyablement intéressante pour les projets de robotique et d'automatisation. La manette sans fil PS2 est une manette polyvalente et très abordable, capable d'offrir une variété d'entrées analogiques et numériques. Même si en principe cela peut sembler une tâche complexe, l'intégration de ces deux systèmes est tout à fait abordable grâce aux différentes bibliothèques et outils déjà développés pour faciliter le processus.

Une manette PS2 sans fil est une option ergonomique et économique pour contrôler des robots, des véhicules 4×4 ou tout type de projet où une télécommande fluide et pratique est requise. L'utilisation de ce contrôleur avec Arduino est une solution choisie par de nombreux amateurs, car elle est non seulement bon marché, mais offre également une expérience de contrôle de haute précision grâce à ses deux sticks analogiques et un jeu de 14 boutons.

Avantages de l'utilisation d'un contrôleur PS2 avec Arduino

L'un des principaux avantages de manette ps2 est-ce que c'est Sans fil, ce qui vous permet d'offrir de la mobilité à vos projets sans la limitation des câbles. De plus, il est très confortable à utiliser grâce à sa conception ergonomique optimisée pour les longues sessions de jeu, ce qui le rend parfait pour contrôler des robots ou d'autres appareils pendant des périodes prolongées sans affecter la précision ou la réactivité.

Un autre aspect important est le coût. Un clone de manette PS2 peut être trouvé pour moins de 10 €. Pour ce prix, vous obtenez un contrôleur doté d’un grand nombre de boutons et d’entrées analogiques, ce qui en fait une option extrêmement attractive pour les projets de contrôle à distance.

Pour intégrer ce contrôleur à Arduino, en plus du contrôleur lui-même et du récepteur, il est courant d'utiliser un convertisseur de niveau logique qui permet d'ajuster les signaux 3,3 V du contrôleur PS2 au 5 V avec lequel Arduino fonctionne dans la plupart de ses versions.

Matériaux nécessaires

[amazon box=”B0C8V88Z9D” image_size=”large” description_items=”0″ template=”widget”]

  • Manette PS2 sans fil. Un clone de cette manette coûte entre 9 et 10 €.
  • Récepteur inalámbrico pour le contrôleur, normalement inclus dans le package.
  • Convertisseur de niveau logique. Ceci est nécessaire puisque l'Arduino fonctionne à 5V et le contrôleur PS2 fonctionne avec des signaux de 3,3V.
  • Arduino. Vous pouvez utiliser n'importe quel modèle, tel que Arduino Uno, Méga ou Mini.
  • Protoboard et des câbles pour établir les connexions entre le récepteur et l'Arduino.

Connexions et assemblage

Le récepteur sans fil qui accompagne la manette PS2 est l'élément clé de la communication entre les deux. Ce composant se connecte au Arduino via une série de broches, qui varient selon le récepteur, mais incluent généralement le alimentation (5V et GND), données, horloge et d'autres auxiliaires comme la goupille d'attention ou de vibration.

Une recommandation importante est de ne pas se fier au code couleur des câbles, car celui-ci peut varier selon le fabricant. Il est préférable d'utiliser un multimètre pour vérifier le fonctionnement de chacun d'eux, ce qui évitera d'éventuelles erreurs de connexion.

Une fois que vous avez correctement identifié les broches, vous pouvez utiliser un planche à pain pour souder ou connecter les différents signaux à l'Arduino, ou si vous préférez tout monter de manière compacte, vous pouvez également souder les câbles directement au récepteur, en vous assurant toujours que les connexions sont correctes.

Il est très important d'utiliser un convertisseur de niveau logique puisque, comme mentionné, le contrôleur PS2 fonctionne à 3,3 V, alors que la plupart des cartes Arduino fonctionnent à 5 V. Ce convertisseur permettra aux deux systèmes de « communiquer » entre eux sans causer de dommages.

Configuration et bibliothèque pour le contrôleur PS2

Pour contrôler la manette PS2 avec Arduino, il existe un bibliothèque fondamentale appelée PS2X_lib, créé par Bill Porter, qui facilite grandement l'utilisation de ce type de contrôles. Ce logiciel vous permettra de gérer tous les signaux que le contrôleur envoie via son récepteur sans fil.

L'installation de cette bibliothèque est très simple et vous pouvez la trouver sur GitHub. Une fois téléchargé et installé dans votre environnement de développement Arduino, vous pouvez commencer à travailler avec.

La prochaine étape sera de configurer les broches dans le code Arduino. Vous devrez vous assurer de définir correctement les broches. horloge, commande, données y précaution qui correspondent aux entrées et sorties de votre Arduino. Ceci est vital, car une affectation incorrecte des broches peut empêcher le contrôleur de répondre correctement.

L'extrait de code suivant montre comment configurer ces broches :

#include 
PS2X ps2x; // crear la clase para el mando PS2
int error; // variable para errores
#define PS2_CLK 34
#define PS2_CMD 24
#define PS2_ATT 32
#define PS2_DAT 22
// Configuramos los pines para el mando
error = ps2x.config_gamepad(PS2_CLK, PS2_CMD, PS2_ATT, PS2_DAT, true, true);

Une fois les broches configurées, vous pouvez commencer à lire les signaux que le contrôleur envoie via le code. La bibliothèque fournit des méthodes spécifiques pour vérifier si un bouton a été appuyé, ainsi que pour obtenir les valeurs analogique des joysticks du contrôleur.

Lecture des boutons

El manette ps2 a jusqu'à Boutons 14, réparti entre l'avant et l'arrière de la commande. Pour lire les boutons avant et arrière, vous pouvez utiliser le code suivant :

if (ps2x.Button(PSB_PAD_UP)) {
   Serial.println("Arriba");
} else if (ps2x.Button(PSB_PAD_DOWN)) {
  Serial.println("Abajo");
} else if (ps2x.Button(PSB_PAD_LEFT)) {
  Serial.println("Izquierda");
} else if (ps2x.Button(PSB_PAD_RIGHT)) {
  Serial.println("Derecha");
}

En plus des boutons de direction, vous pouvez lire l'activation des boutons d'action comme le Cercle, X, Carré et Triangle, de la même manière.

Lecture du joystick

Les manettes analogiques Le contrôleur PS2 fournit des valeurs continues que vous pouvez utiliser pour déplacer des moteurs ou contrôler la direction et la vitesse d'un robot, par exemple. Les valeurs vont de 0 à 255, 127 étant la valeur centrale lorsque les joysticks sont au repos.

int LX = ps2x.Analog(PSS_LX);
int LY = ps2x.Analog(PSS_LY);
int RX = ps2x.Analog(PSS_RX);
int RY = ps2x.Analog(PSS_RY);
Serial.print("Stick Values: ");
Serial.print(LX);Serial.print(",");
Serial.print(LY);Serial.print(",");
Serial.print(RX);Serial.print(",");
Serial.println(RY);

Avec ces valeurs, vous pouvez contrôler la vitesse des moteurs en fonction de la pression exercée sur les leviers de commande.

Exemples pratiques

Contrôler un Robot routier 4x4 avec une manette PS2 est un exemple classique des applications de ce type de manette. Ce montage devient particulièrement facile avec un Mega Arduino, puisqu'il offre plus de broches et plus de mémoire, ce qui permet de gérer plusieurs moteurs et capteurs en même temps.

Le code suivant montre un exemple de base de la façon de contrôler un mobile à l'aide des boutons de direction du contrôleur :

void loop() {
 ps2x.read_gamepad();
 if (ps2x.Button(PSB_PAD_UP)) {
  avance();
 } else if (ps2x.Button(PSB_PAD_DOWN)) {
  retroceso();
 } else if (ps2x.Button(PSB_PAD_LEFT)) {
  giroIzquierda();
 } else if (ps2x.Button(PSB_PAD_RIGHT)) {
  giroDerecha();
} else {
  paro();
 }
}

Il s'agit d'un exemple simple de la façon dont les différents boutons du contrôleur peuvent contrôler le mouvement du véhicule, mais l'utilisation de joysticks permettrait des mouvements plus fluides et plus précis, contrôlant à la fois la direction et la vitesse du robot.

Avec une intégration et une configuration correctes, ce contrôleur devient un outil très puissant pour contrôler presque tous les projets électroniques basés sur Arduino.

combiner un manette playstation 2 Avec Arduino, il ouvre un large éventail de possibilités pour contrôler des projets de robots, des systèmes automatisés ou même des systèmes plus simples tels que des bras robotiques. Le grand nombre de boutons et la précision des joysticks font de ce contrôleur un excellent choix pour ceux qui cherchent à ajouter une télécommande à leurs constructions avec une interface familière et ergonomique.