Cet article va essayer de vous montrer comment utiliser nos joysticks sous Linux et plus particulièrement avec Ubuntu.
Il contient des pistes et ne peut pas se montrer exhaustif, il vous faudra apprendre à connaître votre environnement.
Vérification de la présence du joystick
Plusieurs solutions peuvent être utilisées
- dans la liste des périphériques USB avec la commande shell: lsusb
Nos joysticks utilisent le VID 25c7 , le PID varie selon le modèle
user@linux-pc:~$ lsusb
Bus 002 Device 005: ID 046d:c534 xxxxxxx, Inc. Unifying Receiver
Bus 002 Device 007: ID 25c7:0111 <--- C'est lui
Bus 002 Device 003: ID 046d:08c9 xxxxxxx, Inc. QxxxxCxx Ultra Vision
Bus 002 Device 002: ID 8087:0024 Ixxxx Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub - dans le dossier /dev/input, les périphériques sont sous la forme js# (# étant un chiffre).
Regarder les js# présents lorsque le joystick est débranché, puis brancher le joystick: un nouveau périphérique js# doit être présent.
user@linux-pc:~$ ls /dev/input/js*
/dev/input/js0
A partir de ce moment, vous pouvez déjà utiliser les joysticks dans vos applications
Test du joystick
Si vous voulez vérifier le bon fonctionnement du joystick, il faut installer des utilitaires supplémentaires.
- En version shell avec la commande jstest.
- jstest n'est pas présent par défaut. Sous Ubuntu il faut ajouter le paquet joystick :
sudo apt install joystick
- Dans une fenêtre Terminal taper la commande jstest suivi du nom de périphérique js#.
Une ligne texte apparaît avec tous les axes et les boutons suivi de leur état.
Manipuler le joystick pour voir changer les valeurs
user@linux-pc:~$ jstest /dev/input/js0
Driver version is 2.1.0.
Joystick (Andig s.a.r.l. MCB-528 Combo:Joystick/Mouse v1.01) has 6 axes (X, Y, Z, Rx, Ry, Rz)
and 6 buttons (Trigger, ThumbBtn, ThumbBtn2, TopBtn, TopBtn2, PinkieBtn).
Testing ... (interrupt to exit)
Axes: 0: 0 1: 0 2:-11237 3: 0 4: 0 5: 0 Buttons: 0:off 1:off 2:off 3:off 4:off 5:off
Axes: 0: 0 1: 0 2:-12342 3: 0 4: 0 5: 0 Buttons: 0:on 1:off 2:off 3:off 4:off 5:off
- jstest n'est pas présent par défaut. Sous Ubuntu il faut ajouter le paquet joystick :
- En application graphique avec jstest-gtk
- Dans les versions récentes de Ubuntu, il n'y a pas de paquet installé par défaut pour un test graphique. Vous pouvez installer le paquet jstest-gtk avec la commande:
sudo apt install jstest-gtk
- Test: Lancer l'application jstest-gtk. Le joystick apparaît dans la fenêtre

- Double-Cliquer sur le joystick pour tester les axes et les boutons

- Il est possible de Calibrer le joystick (Calibration) ou de modifier l'ordre des axes et des boutons (Mapping)
- Dans les versions récentes de Ubuntu, il n'y a pas de paquet installé par défaut pour un test graphique. Vous pouvez installer le paquet jstest-gtk avec la commande:
Utilisation dans vos propres applications
Pour l'accès aux joysticks, vous pouvez vous référer à l'API Joystick de Linux
Toutefois vous devriez trouver assez facilement des exemples sur internet.
Voici quelques liens , mais comme toutes choses sur Internet, ils peuvent disparaître ou devenir périmés
- En C, voici un lien vers un exemple très simple de Jason White
- Avec Lazarus en Free Pascal, vous pouvez ajouter par exemple les composants 5dpo (composant Sdpojoystick)
- En python, voici un lien vers un exemple de rdb. Note: dans cet exemple la position des axes est affchée entre -1.000 et 1.000
- etc...

