Manette virtuelle
La manette virtuelle est une application web qui émule une manette de jeu et peut être utilisée depuis n’importe quel appareil connecté au même réseau Wi-Fi que votre esieabot. L’utilisation de la manette virtuelle se fait ensuite de la même manière que la manette physique. Vous pouvez l’utiliser pour créer des programmes de contrôle à distance de votre esieabot dans le langage de votre choix.
Installation
Pour installer la manette virtuelle, exécutez la commande suivante sur votre esieabot : sudo apt install esieabot-virtual-controller. Vous devriez ensuite pouvoir vous connecter à la manette virtuelle à l’adresse suivante : http://ip-de-votre-esieabot/esieabot-virtual-controller
Utilisation
La manette virtuelle possède un joystick de 2 axes et 4 boutons. Ils sont numérotés de la manière suivante :
Axe 0 : axe horizontal du joystick, de -32 767 à 32 767
Axe 1 : axe vertical du joystick, de -32 767 à 32 767
Bouton 0 : bouton A
Bouton 1 : bouton B
Bouton 2 : bouton X
Bouton 3 : bouton Y
Tester la manette virtuelle
Comme pour la manette physique, vous pouvez tester la manette virtuelle avec la commande jstest. Cette commande fait partie du paquet joystick. S’il n’est pas installé sur votre esieabot, vous pouvez l’installer avec la commande suivante :
sudo apt install joystick
Ensuite, vous pouvez tester la manette virtuelle avec la commande suivante :
jstest /dev/input/js0
Note
Si vous avez à la fois la manette physique et la manette virtuelle connectées, elles seront toutes les deux reconnues comme des joysticks. Vous pouvez les différencier avec la commande ls /dev/input/. L’une des manettes sera sur le port « js0 » et l’autre sur le port « js1 ». Vous pouvez tester les deux avec la commande jstest en remplaçant « js0 » par « js1 » pour tester l’autre manette. Vous pouvez quitter le test en appuyant sur Ctrl+C.
Fonctionnement interne
La manette virtuelle fonctionne grâce à un programme qui tourne en arrière-plan sur votre esieabot et qui émule une manette de jeu. Ce programme utilise la bibliothèque « uinput » pour créer un périphérique d’entrée virtuel qui est reconnu par le système comme une manette de jeu. Une page web statique est ensuite servie par le serveur web intégré à votre esieabot.
Votre navigateur web communique ensuite via WebSocket avec le programme en arrière-plan. La communication entre le navigateur et le programme passe par NGINX, qui sert à la fois de serveur web et de proxy pour les WebSockets.