Compis.
La idea es saber si mi joystick lo ha detectado raspbian, saber si los botones funcionan y que número de botón es cada uno para lo cual hago lo siguiente...
Como root lanzo el siguiente comando para saber si el sistema ha detectado nuestro joystick
cat /proc/bus/input/devices
obteniendo el siguiente resultado
Una nuestro joystick es detectado, un fichero especial de evento debería haber sido creado para cada joystick de nuestro sistema. Podemos ver estos ficheros especiales en /dev/input:
ls /dev/input/js*
Ahora podemos pasar el path de ese fichero especial como argumento a jstest, para testear nuestros botones y ejes. Por ejemplo, para testear en nuestro caso nuestro joystick lanzamos el siguiente comando:
jstest /dev/input/js0
En mi caso obtengo un mensaje de que no encuentra el comando
así que vamos a intentar instalar el comando lanzando el siguiente comando...
apt-get install joystick
Se instala sin problemas y una vez instalado vuelvo a lanzar el comando de antes
jstest /dev/input/js0
y cojonudo!! Ahora me sale lo siguiente
donde pulsando los botones de mi joystick veo si funciona o no, así como a qué botón corresponde!!!!
Ahora solo hace falta saber usarlo en los emuladores, jeje.
Añadir que en mi caso el joystick que he conectado a la raspberry me ha devuelto lo siguiente y los botones corresponden a
root@arcadePI:/home/pi# jstest /dev/input/js0
Driver version is 2.1.0.
Joystick (Generic X-Box pad) has 8 axes (X, Y, Z, Rx, Ry, Rz, Hat0X, Hat0Y)
and 11 buttons (BtnX, BtnY, BtnTL, BtnTR, BtnTR2, BtnSelect, BtnThumbL, BtnThumbR, ?, ?, ?).
Testing ... (interrupt to exit)
Axes: 0: 0 1: 0 2:-32767 3: 0 4: 0 5:-32767 6: 0 7: 0 Buttons: 0:off 1:off 2:off 3:off 4:off 5:off 6:off 7:off 8:off 9:off 10:off
Boton xbox 8
start 7
select 6
A 0
B 1
X 2
Y 3
LR 4
RR 5
LT Ejes/Axis 2 32767
RT Ejes/Axis 5 32767
Presionar joystick izquierdo --> 9
Presionar joystick derecho --> 10
Mando izquierdo --> Ejes/axis 0 (para izquierda y derecha) y 1 (para arriba y abajo) -32767 0 32767
Mando derecho --> Ejes/axis 3 (para izquierda y derecha) y 4 (para arriba y abajo) -32767 0 32767
D-Pad --> Ejes/axis 6 (para izquierda y derecha) y 7 (para arriba y abajo) -32767 0 32767