• Première étape
  • Matériel et accessoires ; GPIO
  • Projets
  • Logiciel
    • Serveur Web
  • Arduino & ESP8266
  • Automatisation de la maison
  • Sonstiges
    • News
Facebook Twitter YouTube
Tutorials for Raspberry Pi Tutorials for Raspberry Pi
  • Matériel et accessoires ; GPIO
  • Projets
  • Logiciel
  • Serveur Web
  • Première étape
  • Automatisation de la maison
  • Anglais
  • Allemand
Tutorials for Raspberry Pi Tutorials for Raspberry Pi
Home»Projets»Contrôlez votre Raspberry Pi à l’aide d’une manette Xbox 360 sans fil

Contrôlez votre Raspberry Pi à l’aide d’une manette Xbox 360 sans fil

Facebook Twitter LinkedIn Tumblr Email Reddit
Raspberry Pi Xbox 360 Wireless Controller
Share
Facebook Twitter LinkedIn Email Tumblr Reddit Telegram WhatsApp

En plus du contrôle du Raspberry Pi via des télécommandes infrarouges, un émetteur 433 Mhz, des messagers et bien d’autres, il est également possible de lire une manette Xbox 360 sans fil à partir du Raspberry Pi. Cela permet d’utiliser le gamepad comme une souris externe (en mode bureau) ou dans des scripts et donc de contrôler les GPIO. Dans RetroPie, la manette Xbox peut également être utilisée comme support d’entrée pour les jeux sur le Raspberry Pi.

Dans ce tutoriel, plusieurs de ces possibilités sont présentées. De l’installation du logiciel requis, à l’utilisation comme souris, en passant par la commutation des GPIO et la commande d’un servomoteur avec le joystick.

 

Accessories

Pour utiliser le Raspberry Pi avec la manette Xbox 360, vous n’avez pas besoin de beaucoup d’accessoires:

  • Contrôleur sans fil Xbox 360
  • Récepteur USB Xbox 360

Chaque framboise Pi avec au moins un port USB libre peut être utilisée, par exemple, la Raspberry Pi, plus puissante.

Si vous voulez reconstruire le petit projet ci-dessous, vous avez également besoin:

  • Servo Motor
  • Jeu de 4 LEDs de 5mm : Rouge, vert, bleu, jaune
  • Résistances 4x 330Ω
  • Breadboard
  • Câble jumper

 

Logiciel Raspberry Pi pour la manette Xbox 360

Pour les distributions Linux, il existe un pilote développé, en particulier pour communiquer avec les contrôleurs (sans fil) de la Xbox.

Nous installons d’abord le pilote afin qu’il puisse communiquer avec le contrôleur :

sudo apt-get install xboxdrv

Le récepteur USB peut maintenant être connecté. Avec l’Isusb, vous pouvez vérifier s’il a été détecté :

pi@raspberrypi:~ $ lsusb
Bus 001 Device 005: ID 045e:0291 Microsoft Corp. Xbox 360 Wireless Receiver for Windows
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

 

Vous pouvez maintenant allumer le contrôleur et tester s’il est détecté. Pour ce faire, démarrez le conducteur en utilisant :

sudo xboxdrv --detach-kernel-driver

Ensuite, appuyez sur les touches pour modifier le journal, qui indique quelle(s) touche(s) est/sont actionnée(s) et sa/leur valeur.

Sur la page de documentation, toutes les commandes sont accompagnées d’une brève explication. Par exemple, il est possible d’allumer / de faire clignoter (–led NUM) ou de faire vibrer (-r 255,255) les LED de la manette Xbox 360. Au total, il est possible d’utiliser et d’adresser ou de lire jusqu’à 4 contrôleurs radio.

Utiliser le Contrôleur Xbox 360 comme une souris Raspberry Pi

Une caractéristique que j’aime particulièrement est l’option de la souris. Comme j’ai rarement connecté un clavier au Raspberry Pi (j’utilise presque exclusivement le SSH et parfois le Remotedesktop) et encore plus rarement une souris, je trouve très pratique d’utiliser la manette sans fil de la Xbox 360 comme souris pour le Raspberry Pi. Tout ce dont nous avons besoin est déjà installé.

Un seul autre paramètre doit être spécifié:

sudo xboxdrv --detach-kernel-driver --silent --mouse

Vous pouvez également modifier la vitesse et la sélection des boutons (comme décrit dans la documentation). Si la commande doit être exécutée au démarrage du système, vous pouvez soit écrire un script de démarrage automatique, soit utiliser la crontab.

L’affectation (standard) suivante des touches pour l’utilisation comme souris s’applique:

  • A : Clic gauche
  • B : Clic droit
  • X : clic de souris central
  • Y : Entrez
  • Joystick gauche : Mouvement de la souris
  • Joystick droit : Roue de défilement
  • D-Pad : Touches fléchées
  • Commencez : Transmettre
  • Retour : Retour
  • LB : Page up
  • RB : Page en bas

Utilisez le contrôleur Xbox 360 pour lancer des scripts et des commandes

Une façon d’utiliser le pilote dans vos propres scripts est la lecture manuelle des valeurs de sortie. Afin de nous épargner cet effort, nous pouvons revenir à une bibliothèque Python déjà créée.

git clone https://github.com/FRC4564/Xbox
cd Xbox

Ci-joint est également un exemple (sample.py), qui peut être consulté si nécessaire.

J’ai donc construit un petit exemple avec un servo-moteur et 4 LEDs comme inspiration. Le câblage est assez simple (résistance aux LEDs), donc seulement montré ici comme une structure schématique:

Raspberrya Pi Xbox 360 Steckplatine

 

Le code pour cela est le suivant (créer un fichier avecsudo nano xbox360_example.py et avec CTRL + O, X sauvegarder et quitter):

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
import RPi.GPIO as GPIO
import math
import xbox
 
GPIO_LED_GREEN  = 23
GPIO_LED_RED    = 22
GPIO_LED_YELLOW = 27
GPIO_LED_BLUE   = 17
 
GPIO_SERVO_PIN  = 25
 
 
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
 
GPIO.setup(GPIO_LED_GREEN, GPIO.OUT)
GPIO.setup(GPIO_LED_RED, GPIO.OUT)
GPIO.setup(GPIO_LED_YELLOW, GPIO.OUT)
GPIO.setup(GPIO_LED_BLUE, GPIO.OUT)
GPIO.setup(GPIO_SERVO_PIN, GPIO.OUT)
 
 
def updateServo(pwm, angle):
    duty = float(angle) / 10.0 + 2.5
    pwm.ChangeDutyCycle(duty)
 
def angleFromCoords(x,y):
    angle = 0.0
    if x==0.0 and y==0.0:
        angle = 90.0
    elif x>=0.0 and y>=0.0:
        # first quadrant
        angle = math.degrees(math.atan(y/x)) if x!=0.0 else 90.0
    elif x<0.0 and y>=0.0:
        # second quadrant
        angle = math.degrees(math.atan(y/x))
        angle += 180.0
    elif x<0.0 and y<0.0:
        # third quadrant
        angle = math.degrees(math.atan(y/x))
        angle += 180.0
    elif x>=0.0 and y<0.0:
        # third quadrant
        angle = math.degrees(math.atan(y/x)) if x!=0.0 else -90.0
        angle += 360.0
    return angle
 
if __name__ == '__main__':
    joy = xbox.Joystick()
    pwm = GPIO.PWM(GPIO_SERVO_PIN, 100)
    pwm.start(5)
    
    while not joy.Back():
        
        # LEDs
        led_state_green  = GPIO.HIGH if joy.A() else GPIO.LOW
        led_state_red    = GPIO.HIGH if joy.B() else GPIO.LOW
        led_state_yellow = GPIO.HIGH if joy.Y() else GPIO.LOW
        led_state_blue   = GPIO.HIGH if joy.X() else GPIO.LOW
            
        GPIO.output(GPIO_LED_GREEN, led_state_green)
        GPIO.output(GPIO_LED_RED, led_state_red)
        GPIO.output(GPIO_LED_YELLOW, led_state_yellow)
        GPIO.output(GPIO_LED_BLUE, led_state_blue)
        
        # Servo
        x, y = joy.leftStick()
        angle = angleFromCoords(x,y)
        if angle > 180 and angle < 270:
            angle = 180
        elif angle >= 270:
            angle = 0
        updateServo(pwm, angle)
        
    
    joy.close()
    pwm.stop()

Ensuite, vous pouvez exécuter le code (sudo nano xbox360_example.py) et utilisez les boutons pour allumer et éteindre les LED ou utilisez le joystick gauche pour commander le servo-moteur. Pour arrêter, appuyez sur le bouton BACK.

Dans la vidéo suivante, vous pouvez également regarder ce petit projet:

En outre, il est possible de faire bien d’autres choses avec le Raspberry Pi et le contrôleur Xbox 360. Par exemple, utilisez la Recallbox ou la commande d’un robot à l’aide du joystick et changez les modes avec les boutons.

Eh bien, quels seront vos prochains projets prévus avec le contrôleur ? 🙂

python
Share. Facebook Twitter Pinterest LinkedIn Tumblr Email
Previous ArticleComment configurer serveur Web Raspberry Pi Node.js et contrôler GPIOs
Next Article Pulsation de Raspberry Pi / Mesure du pouls

Related Posts

Enregistrer les données des capteurs Raspberry Pi avec ThingSpeak et les analyser

Construire un capteur de porte / fenêtre Raspberry Pi avec Reed Relais

Utiliser Raspberry Pi comme récepteur radio (autoradio FM, PC de voiture)

Apprendre à programmer sur le Raspberry Pi – Partie 1 : Introduction

Un commentaire

  1. John on 13. janvier 2024 19:46

    La manette PS fait référence à la manette officielle de la PlayStation, connue sous le nom de DualShock. Voici quelques informations générales sur la manette PS :

    1. DualShock 4 : La manette PS ( https://manetteps.store ) la plus récente est le DualShock 4, conçu pour la PlayStation 4 (PS4). Il présente un design ergonomique avec des boutons, des sticks analogiques, des gâchettes et des boutons supplémentaires pour une expérience de jeu complète.

    2. Fonctionnalités : Le DualShock 4 dispose d’un pavé tactile cliquable situé à l’avant, qui peut être utilisé pour différentes interactions dans les jeux. Il possède également une barre lumineuse à l’arrière qui peut afficher différentes couleurs pour représenter des informations spécifiques.

    3. Connectivité : La manette PS se connecte à la console PlayStation via une connexion sans fil Bluetooth ou en utilisant un câble USB. Elle peut également être utilisée avec d’autres appareils compatibles, tels que les ordinateurs et les smartphones.

    4. Batterie rechargeable : Le DualShock 4 est alimenté par une batterie rechargeable intégrée. Il peut être chargé en le branchant directement à la console PS4 via un câble USB ou en utilisant une station de recharge dédiée.

    5. Compatibilité : La manette PS4 est compatible avec la PlayStation 4, mais elle peut également être utilisée avec la PlayStation 5 (PS5) pour jouer à des jeux rétrocompatibles. Cependant, certaines fonctionnalités spécifiques du contrôleur peuvent ne pas être disponibles lorsque vous l’utilisez avec la PS5.

    Il convient de noter que Sony, le fabricant de la PlayStation, continue de développer de nouvelles manettes et fonctionnalités pour ses consoles. Par conséquent, les informations fournies ici se rapportent principalement à la manette PlayStation la plus récente (DualShock 4) au moment de ma dernière mise à jour de connaissances en septembre 2021.

    Reply

Leave A Reply Cancel Reply

Comment obtenir Google Chromium pour le Raspberry Pi

Accès à distance à Raspberry Pi en utilisant SSH et Putty

Ecran LCD Raspberry Pi : Affichage 16×2 caractères (HD44780)

Mesure de la distance infrarouge avec Raspberry Pi (Sharp GP2Y0A02YK0F)

Circuit lumineux Raspberry Pi avec GPIO partie 2

Comment établir une connexion Raspberry Pi à distance de bureau

ABONNEZ-VOUS MAINTENANT
Et recevez de nouveaux tutoriels dans votre boîte de réception.
Cliquez ici pour soumettre!

Merci!

Nous vous contacterons bientôt.

Tutorials for Raspberry Pi
Facebook Twitter YouTube
  • Politique de confidentialité
  • Conditions de service & Politique sur les cookies

Type above and press Enter to search. Press Esc to cancel.