Table des matières

, , , ,

Arduino: Joystick

Il est possible de modifier le firmware de la puce de communication FTDI présente sur la carte Arduino pour qu'elle soit reconnue comme un périphérique USB HID de type joystick. C'est ce que permet de faire le projet UnoJoy d' Alan Chatham.

Cette manipulation est réversible, on pourra flasher le firmware original depuis l'IDE.

Cloner le projet

git clone https://github.com/AlanChatham/UnoJoy.git
cd UnoJoy

Le système se compose de 3 parties:

  1. outils logiciels de flashage: dfu-tools sous Linux pour flasher le firmware sur la puce de communication de la carte Arduino;
  2. Le firmware
  3. La bibliothèque UnoJoy pour Arduino à ajouter au Sketch

Flasher le firmware

Installer le paquet dfu-programmer

sudo apt install dfu-programmer

Activer le mode DFU1):

Flasher le firmware en exécutant le script:

$ cd UnoJoy
$ sudo ./TurnIntoAJoystick.sh

La commande retourne les messages suivants:

.
Abracadabra!
Trying to program for Arduino Uno R1/R2...
Validating...
2596 bytes used (63.38%)

Unplug your Arduino and plug it back in. It's a joystick now!

Déconnecter/reconnecter la carte sur le port USB. Si on affiche à présent les périphériques USB, on peut voir dans la liste un device “Silicon Labs UnoJoy Joystick”

$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 04f2:b541 Chicony Electronics Co., Ltd Integrated Camera
Bus 001 Device 002: ID 8087:0a2b Intel Corp. 
Bus 001 Device 008: ID 10c4:82c0 Silicon Labs UnoJoy Joystick
Bus 001 Device 004: ID 275d:0ba6  USB OPTICAL MOUSE 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Dans cet exemple présent sur le bus 001 périphérique 008, on peut afficher ces informations détaillées avec la commande:

lsusb -D /dev/bus/usb/001/008

Tester

Tester/recalibrer le périphérique avec l'application jstest-gtk:

sudo apt install jstest-gtk

Références

1)
Device Firmware Update