Joystick connecté

Dispositif

Périodiquement, le dispositif transmet à un serveur (dans la salle) la valeur du joystick (par ex. : haut gauche, haut droit, etc.). Sur écran, un jeu est déployé (utilisation vidéoprojecteur), et les actions ont une répercussion en temps réél.

Les jeux proposés seront choisis pour éveiller la curiosité sur des points forts du numérique, mathématiques, ou autre (collaboration, action à distance). Un exemple de jeu : l’écran affiche une balle, dont la direction résulte de l’orientation générale définie par l’ensemble des joysticks. La balle prend la direction moyenne choisie par le joystick.

Utilisation

L’utilisation du dispositif peut servir de fil rouge pour une sensibilisation aux enjeux et métiers du numériques. Il permet d’illustrer à la fois des défis techniques (construction, programmation, utilisation), des défis sociaux (concurrence, coordination, ..), mais aussi énergétiques (coût, batterie, …).

Le dispositif peut être utiliser pour faire de la sensibilisation sur les technologies du numerique auprès des lycéens. D’autres jeux, plus orientés mathématiques, pourraient être envisagés pour illustrer d’autres concepts mathématiques.

Détails techniques

Le matériel

Pour construire le joystick connecté, il est nécessaire d’avoir les éléments suivants :

  • esp8266 : micro-controlleur avec antenne WiFi et un pin analog

  • Joystick : donne la direction X et Y en analogique

  • controlleur centrale (reception données joystick et animation du jeu);

  • deux transistors NPN et duex resistances de bases de 30kOhms.

Enjeux technologique :

  • le micro-contrôleur a une entrée analogique alors que le joystick a deux sorties analogiques : comment multiplexer les sorties en temps en utilisant des transistors NPN ?

  • comment faire l’acquisition de données d’un capteur analogique ?

  • comment faire la transmission en temps réél de données à un contrôleur central ?

L’esp se connecte à un point d’accès prédéfini. La valeur du joystick est envoyée périodiquement (10x par secondes) à un serveur central (sur pc/raspberry pi dans la salle) connecté au même WiFi local. Le jeu est écrit en javascript et tourne dans le navigateur. L’utilisation d’un protocole tel que MQTT permet la centralisation des données et l’interaction avec un programme interactif en javascript (via websockets). Possibilité de changer des paramètres en direct (le type de jeu, l’impact du joystick, etc.).

Schéma du montage (en pdf) :

Code

Le code utilise l’ESP8266_RTOS_SDK en s’inspirant de l’exemple analog to digital converter (adc) et du protocole mqtt (mqtt over tcp).

Démo