Manette PS2 et Arduino || PS2 controler

Manette_PS2_NRF24

Ce qui suit s’inspire de l’excellent travail de BILLPORTER
Je vais vous montrer comment récupérer les infos d’une manette PS2 grâce à Arduino. L’objectif est d’utiliser les données récupérées de la manette et de les exploiter dans un programme. Le plus intéressant sur une manette PS2, c’est sa paire de joystiks. Mais avec ce qui suit, on pourra exploiter toutes les touches de la manette. Pour ce faire, il faut :

Arduino (Amazon) + logiciel 1.0 + câble usb
Manette PS2 (Amazon)
Platine d’essai (Amazon)  (breadbord)
– PC
Fer à souder + étain (Amazon)
– 2 résistance (Amazon) de 5.6 Kohm
– 1 résistance (Amazon) de 860 ohm
– 1 résistance (Amazon) de 10 Kohm
Gaine thermorétractable (Amazon)
– Des fils

Etape 1 : Couper le fil de la manette (laisser au minimum 30 cm à partir de la manette pour avoir de la marge en cas d’erreur de coupe)
Etape 2 : Repérer les fils Rouge, Noir, Marron, Orange, Jaune, Bleu
Etape 3 : Les dénuderPs2_arduino_couper_fil_montage
Etape 4 : Les étamer.
Etape 5 : Souder une résistance de 5.6 kohm sur le fil bleu.
Etape 6 : Souder une résistance de 5.6 kohm sur le fil jaune.
Etape 7 : Souder une résistance de 860 ohm sur le fil orange.
Etape 8 : Souder un fil rigide sur le fil rouge.
(Un fil rigide étant plus pratique à manipuler, à brancher sur la platine d’essai que le fil souple et fin d’origine)

Etape 9 : Souder un fil rigide sur le fil noir.
Etape 10 : Souder un fil rigide sur le fil marron.
Etape 11 : Mettre la gaine thermorétractable sur les soudures.
Soudure étamer fil
Mettre les 6 fils sur une platine d’essai comme ceci :

mini platine d'essai breadbord ps2 controler

Maintenant, on va câbler entre l’Arduino et la platine d’essai comme suit :
fritzing schema ps2 arduino

Pin 10 ==> fil jaune
Pin 11 ==> fil orange
Pin 12 ==> fil marron
Pin 13 ==> fil bleu
Pin GND ==> fil noir
Pin 3.3V ==> fil rouge

Sur la platine d’essai, mettre une résistance de 10k Ohm entre le fil marron et le fil rouge.
Bien vérifier le câblage, puis brancher Arduino avec le câble usb au PC.
Télécharger cette librairie : GITHUB ARDUINO_PS2X
La placer dans le dossier « …/arduino-1.0\libraries » de votre logiciel arduino 1.0.
Lancer le logiciel Arduino 1.0.
Ouvrir le fichier « PS2X_Example.pde » (il se trouve dans le dossier « …/arduino-1.0\libraries\PS2X_lib\Examples\PS2X_Example »).logiciel arduino ps2_lib

Transférer le programme dans l’Arduino.
Ouvrir le moniteur série.
Si la led de la manette n’est pas allumée, appuyer sur la touche ANALOG.
Essayer les touches et constater si elles s’affichent sur le moniteur.
Voilà, le tutoriel s’achève. Si vous rencontrez des difficultés, n’hésitez pas à utiliser les commentaires. Je vous répondrais rapidement.

Bonne Bidouille !

Share

40 Responses

  1. Bonjour,
    Excellent tuto facile à mettre en oeuvre.
    Cependant j’aimerais savoir si il est possible de contrôler un logiciel de MAO avec cette manette?

  2. Bonjour, Je me demande l’utilité des résistances, En effet sur les documentations anglaises
    et sur un paquet d’images on ne voit nul part l’utilisation de ses résistances.
    Sur le site de BillPorter que tu mentionne en source, il n’a pas non plus l’aire d’en utiliser.
    Merci

  3. Bonjour, j’ai réalisé toutes les étapes et lorsque j’essaie avec l’exemple de la librairie je me retrouve avec ce message d’erreur : « No controller found, check wiring, see readme.txt to enable debug. visit http://www.billporter.info for troubleshooting tips
    Unknown Controller type found  »

    Je ne sais pas trop quoi faire pour faire marcher cette manette. Merci d’avance !

  4. Bonjour, j’ai vraiment beaucoup apprécié les explications fournies dans ce blog et d’autant plus qu’elles sont en Français. J’ai réussi par ce moyen à connecter une manette PS sans fil à ma carte arduino uno et le moniteur indique clairement son bon fonctionnement.
    Maintenant je cherche à commander via une platine keyes L298, 2 petit moteurs DC et j’avoue qu’étant débutant je ne sais pas comment utiliser ces valeurs qui apparaissent sur l’écran.
    Pouvez-vous m’indiquer un chemin à suivre pour la programmation de ce projet?
    Merci pour votre réponse si vous lisez ce message.

    • Salut et merci ça fait plaisir de voir que tu as réussi.

      Pour exploiter les données qui viennent de la manette il te faut te concentré sur l’arduino qui est récepteur. En effet sur cet arduino il y a des variables nommées : « numero1″ , »numero2 » etc.
      a la suite de ces variable tu commences a programmer de sorte a faire bouger tes moteur par l’intermédiaire de sorties arduino.

      Bon courage n’hésite pas si tu veux plus de précision.

  5. moi j’ai de gros bug sa me saoule je suis a 2 doit de jeter ma manette par la fenêtre
    tu peut m’aider stp ?

      • y aurait il moyen de te parler sur skype car je voie pas trop comment expliquer (des image serons mieux que des mot) voici le mien « vinp-wey »

  6. Bonjour,

    Je suis dans le même cas qu’Antoine, et je ne trouve pas mon erreur.
    J’ai exactement les même symptômes que lui, sauf que j’ai le bouton « Analog » qui s’éteint 5s après avoir appuyé dessus.

    J’ai refait le câblage 2 fois, vérifié mes soudures et les contacts, et rien ne suspect. Ah si, ptet un truc de suspect. La manette est une « Big Ben interactive »

    Sinon la version du soft est une 1.6, mon logiciel Arduino est une 1.0.5.

    Please Help!!! 🙂

    thanks by advance

    Ironpecheur

    • Bonjour,
      J’aurai aimé te sortir de cette galère, mais je n’ai jamais essayé avec une « Big Ben ».
      Ce que j’aurai fait si j’étais dans la même situation, c’est de joué avec les resistances. En les retirant ou en réduisant leurs valeurs.

      Bon courage et fais nous un retour si tu y arrives.

  7. Bonjour,

    Super tuto, j’attends la manette PS2 wireless qui devrait arriver d’une minute à l’autre pour pouvoir faire mon montage. Ton tuto va vraiment m’aider.
    J’ai deux questions, j’apprécierais vraiment ton retour là dessus si cela ne te dérange pas 🙂

    – Est-il possible d’appeler des fonctions au lieu d’activer un Servo? Je m’explique: actuellement, le fait de monter le joystick vers le haut va, par exemple, faire bouger le Servo 1 dans un sens.
    En revanche, si j’ai écris une fonction X qui fait bouger le Servo 1 dans un sens et le Servo 2 dans l’autre sens ainsi qu’un troisième Servo qui fait une autre action, le tout simultanément.
    Est-il possible d’appeler cette fonction lorsque je monte le joystick vers le haut? En d’autres mots, je souhaiterais que chaque bouton/mouvement du joystick fasse plusieurs actions plutôt que contrôler un Servo à la fois. Cela te semble réalisable?

    – Est-il possible d’enregistrer les mouvements du controller PS2? Je m’explique: après X temps de mouvements joysticks / boutons, l’Arduino aura reçu X ordres. Est-il possible d’enregistrer ces X ordres avec les délais entre chaque ordre exactement comme ils ont été réalisés sur le controller PS2 de façon à pouvoir, par exemple, enregistrer le parcours d’un robot une fois avec la manette et qu’il puisse re-faire ce parcours à l’identique sans l’aide du controller?

    Merci d’avance pour ta réponse

    • Bonjour Valentin,

      tout ce que tu dis semble réalisable, du moment que tu sache programmé.

      L’arduino récepteur reçois des valeurs de la manette et les stock dans des variables, après tu peux en faire ce que tu veux niveau programmation.

  8. Bonjour,

    Est-il possible de bidouiller une manette de play en y incorporant un emetteur pour utiliser la manette en mode sans fil? ( Pour l’utilisation d’un drone).

    • Bonjour Floriant,
      Pour exploiter les infos de la manette tu sera obligé de passer par un module ARDUINO.
      En effet, l’Arduino servira à récupérer les infos de la manette et pourra envoyer les commandes au drone par l’intermédiaire de l’émetteur.

      Je t’invite a lire cet article, ça te donnera une idée plus précise.

  9. Bonjour,

    Tout d’abord super tuto, merci de votre aide.
    Dans le cadre de la réalisation d’un projet je suis mené à récupérer les informations d’une manette de PS2 pour m’en servir de télécommande pour un avion.
    J’ai donc acheté une manette PS2 dualshock officielle pour me plier le plus possible au tutoriel et éviter tout problème de compatibilité et pour autant une fois les branchements finis Arduino me renvoie, avec les lignes de code DEBUG activées :
     »
    Controller mode not matched or no controller found
    Expected 0x41, 0x73 or 0x79, but got FF
    No controller found, check wiring, see readme.txt to enable debug. visit http://www.billporter.info for troubleshooting tips
    Unknown Controller type found
     »
    Est-ce que vous pourriez m’aider concernant ce problème ?

    D’avance merci de votre réponse,

  10. Salut, lorsque je vérifie le code pour le téléverser, il m’indique:

    PS2X_Example.ino:1:34: fatal error: PS2X_lib.h: No such file or directory

    Que dois-je faire? Je ne sais pas si j’ai tout téléchargé (j’ai cliqué sur Download ZIP à droite).. Pourtant le fichier PS2X_lib.h est dans le fichier..

    Merci pour ta réponse

  11. Bonjour,

    J’ai essayé de réaliser ce tutoriel. La manette sony officielle s’allume bien.
    Cependant lorsque j’ouvre le moniteur je n’obtiens pas de message d’erreur mais juste des caractères étranges, qui ne sont jamais les mêmes, exemple: ®ãÖ¦8(”GX8}ڋ,ÎߨJ]É\ÿ

    J’ai essayé diverses versions du logiciel, en vain.

    Auriez-vous une explication?

  12. bonjour j’aimerai savoir si je peux utiliser cette méthode avec un RF 433mhz et pas le nrf24
    svp répondez moi par e-mail
    je vous remercie d’avance pour votre aide
    salutation.

  13. Bonjour,

    Le tuto est intéressant est j’aimerais le faire mais qui est l’émetteur du récepteur. Je vois qu’il y a une sorte de module derrière ta manette et il y en faut bien une sur le robot. Tu peut m’expliquer stpl

    Merci d’avance

  14. Bonjour,
    merci pour ce super tuto ! Je ne trouve a pas a commander la resistance 860 ohm. Mais en regardant les codes couleurs sur les images, ce sont des 680 ohm (que je trouve a acheter). Laquelle est la bonne ? 680 ? 860 ? Et si c est la 860, mieux vaut plus ou moins resistant ? Puis je utiliser une 820 par exemple ? Je debute en electronique. Merci

  15. Bonjour, j’aimerai savoir s’il est possible de désactiver un ressort sur le joystick de gauche, afin qu’il soit en bas au repos. Ceci, afin de contrôler les gaz d’un drone. Merci d’avance pour votre réponse.

    • Je tente la meme 🙂 J ai pas encore regarde pour le ressort mais deja, la precision des joystick est pas terrible et il y a des zones mortes (au centre et sur les bords). Mieux vaut faire une manette avec une dualshock 4 je pense … Sinon c est vrai que ca a de la gueule comme manette pour un racer 🙂

  16. Bonjour,
    Merci pour ce tuto bien détaillé qui a probablement demandé quelques heures de boulot… Concernant l’IDE Arduino, je souhaiterai savoir si par hasard, cette applie a été testée avec une version autre, une version ultérieure à la 1.0. Jusqu’à présent, je n’ai pas réussi à la faire tourner avec la version 1.6.2 utilisée sur ma machine, bien qu’il semble que tout soit correctement installé (bibliothèques…) impossible de compiler, l’erreur : « fatal error: PS2X_lib.h: No such file or directory » est récurrente. J’ai parcouru la toile de long et en large, mais à part un éventuel problème d’installation de bibliothèque au mauvais endroit (ce qui n’est pas le cas) je n’ai pas encore trouvé de réponse corrective… Je n’ai pas fait non plus l’essai en 1.0, peut-être devrais-je commencer par là (of course…)

    • @jean
      ça fonctionne avec version Arduino 1.6.5
      les librairies que j’ai installées (dont PS2X_lib) se trouvent dans C:/mes documents/Arduino/libraries
      si ça peut t’aider …

  17. bonjour pour moi ca ne fonctionne pas….
    en debug j’ai ca :

    « Controller mode not matched or no controller found
    Expected 0x41, 0x73 or 0x79, but got 63
    No controller found, check wiring, see readme.txt to enable debug. visit http://www.billporter.info for troubleshooting tips
    Unknown Controller type found ».

    Une idée ?

    Merci d’avance.

  18. bonsoir. s’il vous plais avez vous déjà travailler sur un quadricopter? si oui,pouvait vous m’aidez avec un code (émetteur et récepteur) qui permettrai de commandé nos 4 moteur en respectant bien sur les différents types de vols (monter/dexendre, roulis, tangage, lacet)?

  19. Sommes-nous obligé d’utiliser précisément ces résistance car moi je n’ai que des valeurs proches de celles demandées, est-ce grave ou je peux faire mon montage sans risque ? Merci

  20. salut , dans le moniteur série s’affiche «  »No controller found, check wiring, see readme.txt to enable debug. visit http://www.billporter.info for troubleshooting tips » , je ne sais pas ou est le probleme … j’ai utilisé arduino nano et une resistance de 1.5 kohm au lieu de 860 ohm …. merci

Laisser un commentaire

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

Post comment