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.

../../_images/virtual-controller.png

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.