J’ai parlé dans mes précédents articles sur la simulation ferroviaire de choses assez variées : logiciels, hardware, pupitre… Il est temps de définir clairement la structure d’un simulateur FerroviSim.
FerroviSim, c’est l’interfaçage d’un pupitre ou d’une réplique d’un pupitre de conduite avec un logiciel de simulation qui gère quand à lui l’affichage. Il est important de noter que ce logiciel (aussi appelé jeu de simulation) n’est pas développé par FerroviSim, il s’agit de jeux disponibles pour tous, qui existent indépendant du projet et qui se jouent normalement au clavier et à la souris.
Définissons les différents éléments constituant le système :
Le pupitre ou la réplique de pupitre

Il s’agit de ce que le conducteur du train a réellement entre les mains : une table avec différentes commandes pour conduire son train. Deux possibilités sont envisageables : soit utiliser des pièces de récupération, dans l’idéal un pupitre complet démonté d’une machine, soit reproduire soi même un tel pupitre. Dans le premier cas, il s’agit simplement de vider le pupitre de son câblage original. Celui-ci sera remplacé par un nouveau câblage. D’un autre côté, dans le cas du premier simulateur FerroviSim, je n’avais pas à ma disposition de pupitre SNCF. J’ai donc réalisé une réplique en menuiserie, agrémentée de quelques pièces d’origine. Cette étape sera détaillée sur ce site. En terme de vocabulaire, le pupitre et tous les manipulateurs et boutons qui le composent, sont la partie physique du simulateur. On parle alors de hardware.
Le logiciel de simulation

Il s’agit d’un programme tournant sur l’ordinateur qui gère l’affichage des voies et décors dans lequel le train circule. Ce logiciel simule également le comportement de l’engin moteur, c’est à dire qu’il calcule en fonction des actions du conducteur la vitesse du train, les pressions dans les freins, etc, etc. Dans le cas de FerroviSim, c’est le logiciel OpenRails qui est utilisé, pour des raison développées précédemment. Il est disponible gratuitement sur le site www.openrails.org. Cette partie purement informatique est appelée software.
L’interface

On l’a vu, l’objectif du projet est de commander OpenRails à l’aide d’un véritable pupitre (ou du moins d’une réplique), et d’un d’un clavier. Problème : OR est conçu pour être commandé au clavier et à la souris. Il faut donc trouver un moyen de connecter notre pupitre au jeu, qui n’est a priori par prévu. C’est ce que j’appellerai l’interface. Son rôle est donc dans un premier temps de recevoir toutes les actions du conducteur sur le pupitre, et de commander le jeu en conséquence.
Pour aller plus loin, si l’on souhaite également visualiser sur notre pupitre (donc en dehors de la fenêtre du jeu sur l’écran de l’ordinateur) des données telles la vitesse (Tachro par exemple) ou les pressions de freinage (manomètres), il faudra également que OpenRails puisse communiquer ces données au pupitre. Avec d’un côté la commande et de l’autre cette récupération de données, on cherche donc à faire un interfaçage bidirectionnel.
Toute la complexité du projet réside dans la réalisation de cet interfaçage. Il s’agit en effet de trouver une solution pour connecter le pupitre au jeu, sachant que le jeu n’est à priori pas fait pour. Mais comment faire ? Je vous disais que OpenRails se commande à l’origine comme un clavier : l’idée vient donc naturellement. Si notre pupitre « imite » le fonctionnement d’un clavier d’ordinateur, alors il sera possible de commander le jeu. On parle plus précisément d’émulation de clavier. En terme de solution technologique, certaines cartes électroniques programmables du commerce permettent cela. Reste à réaliser le retour d’information du jeu vers le pupitre (vitesse, pression…). Là c’est plus compliqué, mais plusieurs solutions existent, que je détaillerai par ailleurs. Toujours est il qu’il faudra intégrer à notre système un petit programme informatique qui gère cette fonction de retour d’information. On obtient donc la structure suivante pour notre système :

Il ne s’agissait là que d’une introduction à ces différents éléments de structure. Ils seront détaillés par la suite pour vous permettre de vous les approprier, et qui sait peut-être de définir ce qui sera votre futur simulateur de conduite ferroviaire personnel !