Commande d'un réseau par manette de jeu



1. Description du système

Il est possible de commander son réseau avec une manette de jeu sans fil reliée au PC par radio. Ceci est très pratique par exemple lorsque le réseau occupe plusieurs pièces ou lorsque des voies sont très éloignées du PC.

J'utilise une manette de chez Thrustmaster, modèle "Wireless Dual Trigger Gamepad" qui est constituée de la manette elle-même et d'un petit boitier "bluetooth" connecté en USB au PC et qui contient l'émetteur/récepteur radio à 2,4 GHz (voir photos ci-dessous).

Pour utiliser la manette, il faut concevoir le logiciel de commande pour que toutes les commandes se fassent par le clavier du PC et utiliser un logiciel d'émulation clavier pour la manette de jeu. Ainsi, la manette remplace le clavier du PC qui reste opérationnel même lorsque la manette est sous tension.

Pour l'émulation clavier, on peut utiliser le logiciel gratuit Joy To Key que vous pouvez télécharger en cliquant ici (le logiciel est fourni avec une courte notice d'installation et d'utilisation en Anglais).

La manette de jeu doit pouvoir générer les commandes suivantes:
- marche avant et arrière
- commande d'accélération et décélération
- commande d'arrêt d'urgence
- commande d'alimentation des cantons
- commande des aiguilles

Le tableau ci-dessous donne un exemple de la correspondance entre les touches clavier et les touches de la manette de jeu.

Commande clavier Commande manette
L LEFT
R RIGHT
U UP
D DOWN
1 à 9 1 à 9
C 10
Avec ce tableau de correspondance et un utilisant des combinaisons de touches ( 2 touches appuyées simultanément), il est possible de commander 9 cantons et 9 aiguilles.

Le tableau ci-dessous donne un exemple des commandes possibles avec une manette de jeu.

Action Commande clavier Commande manette
Marche avant C et L 10 et LEFT
Marche arrière C et R 10 et RIGHT
Accélération C et U 10 et UP
Décélération C et D 10 et DOWN
Arrêt d'urgence 5 et 7 5 et 7
Alim canton Cn n et U n et UP
coupure alim canton Cn n et D n et DOWN
Aiguille n en position directe n et L n et LEFT
Aiguille n en position déviée n et R n et RIGHT


2. Conception du logiciel

A titre d'exemple, voici une réalisation possible d'un TCO logiciel qui va commander le réseau minimal ci-dessous.



Les commandes à envoyer sont les suivantes:
- marche avant et arrière
- commande d'accélération et décélération
- commande d'arrêt d'urgence
- commande d'alimentation des voies 1 et 2
- commande simultanée des deux aiguilles (position directe ou déviée)

De plus, on va utiliser la carte USB Velleman VM 110 comme interface entre le PC et le réseau.

Le TCO décrit dans la page précédente utilisait la souris pour cliquer sur des boutons qui commandent le réseau. C'est la solution optimale en terme d'ergonomie mais elle n'est pas adaptée à une commande par manette.

Le programme TCO compatible manette va utiliser une boucle qui va scruter en permanence le clavier avec des tests conditionnels (if) qui vont déclancher une action lorsqu'une touche est appuyée.

La fonction Visual Basic qui permet de scruter le clavier s'appelle GetAsyncKeyState (n), n étant le code ASCII (nombre entier) de la touche clavier.

La touche A a pour code n=65, la touche B n=66 et ainsi de suite jusqu'à Z.
Le chiffre 1 du pavé numérique du clavier a pour code n=97, 2 a pour code n=98 et ainsi de suite jusqu'à 9.

A titre d'exemple, voici la commande qui va afficher "voie 1 on" sur l'écran du PC (label12) lorsqu'on appuie simultanément sur les touches A et 1.

If (GetAsyncKeyState(97) <> 0) And (GetAsyncKeyState(65) <> 0) Then
Label12.Caption = "voie 1 on"
End If

Voici une copie d'écran d'un exemple d'interface graphique pour TCO qui utilise les objets Visual Basic suivants:
- une "picture box" qui affiche une image du plan du réseau
- deux boutons de commande pour lancer le programme (commande par manette ou commande par clavier)
- des étiquettes (labels) qui affichent des informations à l'écran ainsi que le résultat des commandes par touche clavier ou manette.



3. Téléchargements

Vous pouvez télécharger le programme de commande par manette ci-dessus en cliquant ici.
Pour exécuter ce programme vous devez:
- posséder la carte USB Velleman VM 110 connectée sur un port USB du PC
- posséder une manette de jeu Thrustmaster, modèle "Wireless Dual Trigger Gamepad" connectée sur un port USB du PC
- avoir installé sur votre PC le logiciel Visual Basic ainsi que la DLL qui pilote la carte USB (K8055D.dll).

Vers la page suivante


Retour vers la page d'accueil