start:arduino:manette_ps2
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
start:arduino:manette_ps2 [2022/05/09 16:40] – [Explications broches de sorties] gerardadmin | start:arduino:manette_ps2 [2023/01/27 16:08] (Version actuelle) – modification externe 127.0.0.1 | ||
---|---|---|---|
Ligne 22: | Ligne 22: | ||
=== Signaux PS2 :=== | === Signaux PS2 :=== | ||
- | Le contrôleur sans fil PS2 communique avec Arduino en utilisant un protocole qui est essentiellement SPI. La station de jeu envoie un octet en même temps qu' | + | Le contrôleur sans fil PS2 communique avec Arduino en utilisant un protocole qui est essentiellement SPI. |
+ | La station de jeu envoie un octet en même temps qu' | ||
+ | Il y a une horloge (SCK) pour synchroniser les bits de données sur deux canaux : DATA et CMD. De plus, il existe un canal " | ||
L' | L' | ||
+ | ==== Interfaçage de la manette | ||
+ | {{ : | ||
+ | Nous avons interfacé la manette PS2 avec un Arduino. À chaque pression sur un bouton, l' | ||
+ | |||
+ | === Détails de connexion :=== | ||
+ | |||
+ | La ligne CLK et les lignes ATT du récepteur PS2 sont maintenues normalement hautes. L'ATT fonctionne comme la ligne Slave Select sous SPI. Vous le tirez vers le bas pour dire au contrôleur que vous lui parlez, puis le renvoyez vers le haut une fois qu'un cycle de communication est terminé. CMD est la ligne de données vers le contrôleur et DATA est les données provenant du contrôleur. Ici, dans notre application, | ||
+ | |||
+ | <code c PS2_Arduino.ino> | ||
+ | #include < | ||
+ | PS2X ps2x; /* create PS2 Controller Class*/ | ||
+ | byte Type = 0; | ||
+ | byte vibrate = 0; | ||
+ | int rx=0, | ||
+ | |||
+ | void setup(){ | ||
+ | | ||
+ | | ||
+ | Type = ps2x.readType(); | ||
+ | | ||
+ | |||
+ | Serial.println(" | ||
+ | | ||
+ | Serial.println(" | ||
+ | delay(1000); | ||
+ | |||
+ | } | ||
+ | } | ||
+ | void loop(){ | ||
+ | |||
+ | | ||
+ | |||
+ | | ||
+ | |||
+ | ly = ps2x.Analog(PSS_LY); | ||
+ | lx = ps2x.Analog(PSS_LX); | ||
+ | ry = ps2x.Analog(PSS_RY); | ||
+ | rx = ps2x.Analog(PSS_RX); | ||
+ | |||
+ | | ||
+ | Serial.println(" | ||
+ | | ||
+ | Serial.print(" | ||
+ | | ||
+ | | ||
+ | | ||
+ | Serial.print(" | ||
+ | | ||
+ | Serial.println(" | ||
+ | | ||
+ | | ||
+ | | ||
+ | Serial.println(" | ||
+ | | ||
+ | Serial.println(" | ||
+ | | ||
+ | | ||
+ | | ||
+ | Serial.println(" | ||
+ | | ||
+ | Serial.println(" | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | if(ps2x.Button(PSB_START)) | ||
+ | | ||
+ | if(ps2x.Button(PSB_SELECT)) | ||
+ | | ||
+ | if(ps2x.Button(PSB_PAD_UP)) | ||
+ | | ||
+ | if(ps2x.Button(PSB_PAD_RIGHT)) | ||
+ | | ||
+ | if(ps2x.Button(PSB_PAD_LEFT)) | ||
+ | | ||
+ | if(ps2x.Button(PSB_PAD_DOWN)) | ||
+ | | ||
+ | if(ps2x.Button(PSB_L1)) | ||
+ | | ||
+ | if(ps2x.Button(PSB_R1)) | ||
+ | | ||
+ | if(ps2x.Button(PSB_L2)) | ||
+ | | ||
+ | if(ps2x.Button(PSB_R2)) | ||
+ | | ||
+ | if(ps2x.Button(PSB_L3)) | ||
+ | | ||
+ | if(ps2x.Button(PSB_R3)) | ||
+ | | ||
+ | if(ps2x.Button(PSB_GREEN)) | ||
+ | | ||
+ | if(ps2x.Button(PSB_BLUE)) | ||
+ | | ||
+ | | ||
+ | | ||
+ | if(ps2x.Button(PSB_PINK)) | ||
+ | | ||
+ | delay(700); | ||
+ | } | ||
+ | else; | ||
+ | } | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Liens Manette PS2 <--> Arduino | ||
+ | |||
+ | [[https:// | ||
+ | |||
+ | [[https:// | ||
+ | |||
+ | |||
+ | ===== PS2 - Touches ===== | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | |||
+ | Les fonctions les plus pratiques de cette librairie sont : | ||
+ | |||
+ | ***ps2x.config_gamepad(clock, | ||
+ | La fonction définit la broche du contrôleur et la sensibilité à la pression et aux vibrations des moteurs. Si vous voulez que les touches soient insensibles à la pression ou que les moteurs n' | ||
+ | |||
+ | ***ready(); | ||
+ | La fonction détermine le type de contrôleur détecté. 0 signifie que le contrôleur n'est pas détecté correctement, | ||
+ | |||
+ | ***read_gamepad(boolean motor1, byte motor2); | ||
+ | La fonction commencer à lire l' | ||
+ | |||
+ | ***Button (but type); | ||
+ | la fonction renvoie 1 lorsque la touche spécifique de l' | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | |||
+ | |||
+ | ===== Robot Arduino avec manette PS2 (Joystick PlayStation 2) ===== | ||
+ | |||
+ | [[http:// | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | |||
+ | ===== Radiocommande PS2 arduino nrf24l01 ===== | ||
+ | |||
+ | [[https:// |
/home/chanteri/www/fablab37110/data/attic/start/arduino/manette_ps2.1652107257.txt.gz · Dernière modification : 2023/01/27 16:08 (modification externe)