Manette PS2 et Arduino || PS2 controler

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 + logiciel 1.0 + câble usb
– Manette PS2
– Platine d’essai (breadbord)
– PC
– Fer à souder + étain
– 2 résistance de 5.6 Kohm
– 1 résistance de 860 ohm
– 1 résistance de 10 Kohm
– Gaine thermorétractable
– 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 !

38 Responses

  1. 20syl 20syl

    at |

    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?

    Reply
  2. amine amine

    at |

    J ai fait tout les étapes mais l analogue ne fonction pas ni le moniteur de ardui ^^

    Reply
  3. Thomas Thomas

    at |

    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

    Reply
  4. Antoine Antoine

    at |

    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 !

    Reply
  5. philtj philtj

    at |

    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.

    Reply
  6. vinpwey vinpwey

    at |

    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 ?

    Reply
  7. Ironpecheur Ironpecheur

    at |

    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

    Reply
  8. valentin valentin

    at |

    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

    Reply
  9. Florian Florian

    at |

    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).

    Reply
  10. Antoine Antoine

    at |

    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,

    Reply
  11. Bastien Bastien

    at |

    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

    Reply
  12. c15man c15man

    at |

    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?

    Reply
  13. Nabil Nabil

    at |

    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.

    Reply
  14. soinard soinard

    at |

    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

    Reply
  15. bousket bousket

    at |

    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

    Reply
    1. bousket bousket

      at |

      En totu cas, ca marche avec une 680. Encore merci pour le tuto, tu peux supprimer le post

      Reply
  16. Mickaël B. Mickaël B.

    at |

    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.

    Reply
    1. bousket bousket

      at |

      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 🙂

      Reply
  17. Jean Jean

    at |

    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…)

    Reply
    1. Milhorne Milhorne

      at |

      @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 …

      Reply
  18. trigone trigone

    at |

    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.

    Reply
  19. electro927 electro927

    at |

    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)?

    Reply
  20. DJELLAL DJELLAL

    at |

    bonjour au moment du televersement indications erreurs bibliothèque non valide merci

    Reply
  21. Electrodydy Electrodydy

    at |

    Bonjour, j’aimerais m’inspirer de sa pour fabriquer un convertisseur manette ps2 vers PC est ce possible ????

    Reply

Laisser un commentaire