Installation du pilote
J’utilise une manette sans-fil de Xbox 360 prévue pour PC. Pour installer les pilotes :
sudo apt-get install xboxdrv
On vérifie que la manette est prête à être utilisée :
sudo xboxdrv
Comme indiqué, s’il y a une erreur Error couldn't claim the USB interface: LIBUSB_ERROR_BUSY, il faut exécuter la commande sudo rmmod xpad puis relancer xboxdrv, ou lancer xboxdrv avec l’option --detach-kernel-driver.
On peut démarrer la manette si ce n’était pas déjà, et cette commande affiche les événements qu’elle reçoit. Si aucun événement ne s’affiche, il faut peut-être resynchroniser en appuyant 3 secondes sur le bouton du récepteur, puis sur celui de la manette.
Source : http://mattdyson.org/blog/2013/01/using-an-xbox-360-wireless-controller-with-raspberry-pi/
Utilisation avec Python
Pour l’utiliser avec Python, j’utilise ce script écrit par Zephod : https://github.com/zephod/lego-pi/blob/master/lib/xbox_read.py
Pour l’utiliser en tant que librairie, on le met dans un dossier lib avec un fichier __init__.py qui peut être vide. Ce fichier sert à indiquer que le dossier est un package importable.
L’arborescence des fichiers est :
. ├── lib │ ├── __init__.py Vide │ ├── xbox_read.py Script de Zephod pour traiter les évenements └── test.py Script principal
Le fichier test.py contient :
#!/usr/bin/python from lib import xbox_read for event in xbox_read.event_stream(deadzone=12000): print event
On lui donne les droits en exécution et on le lance :
chmod +x test.py sudo python test.py
Source : https://github.com/zephod/lego-pi
http://tomre.es/post/lego-xbox-raspberry-pi/
http://mattdyson.org/blog/2013/01/using-an-xbox-360-wireless-controller-with-raspberry-pi/
Contrôle de GPIO
En guise de Hello World, on va allumer une LED à l’appui du bouton A de la manette. Voici le schéma de montage associé :
On garde la même arborescence de fichier que précédemment :
. ├── lib │ ├── __init__.py Vide │ ├── xbox_read.py Script de Zephod pour traiter les évenements └── led.py Script principal
Pour interagir avec les entrées/sorties GPIO, on utilise le module RPi.GPIO. Je n’ai pas eu besoin de l’installer sur le Raspberry mais si jamais, voici les instructions d’installation.
#!/usr/bin/python
import RPi.GPIO as GPIO
from lib import xbox_read
import time
#-------------[ CABLAGE ]--------------------
LED_PIN = 04
#-------------[ INITIALISATION DES GPIOS ]--------------
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.setup(LED_PIN, GPIO.OUT)
#-------------[ ECOUTE DU CONTROLEUR ]--------------
print 'En avant Guingamp !'
# En attente d'evenement de la manette
for event in xbox_read.event_stream(deadzone=12000):
if event.key == 'A':
GPIO.output(LED_PIN, event.value)
if event.value == 1:
print 'Bip'
Documentation de RPi.GPIO : https://sourceforge.net/p/raspberry-gpio-python/wiki/Examples/


Merci ! Super tuto 🙂