Le projet :
Le projet s’inscrit dans l’ensemble du projet
Locoduinodrome et en liaison tout particulièrement avec le développement des cartes satellites.
Il s’agit d’un TCO très interactif qui offrira une représentation précise et en temps réel de l’état du réseau.
Ainsi par exemple, les segments de voie qui sont occupés sont représentés par une couleur particulière avec l’icône de la locomotive concernée.
La représentation de la signalisation lumineuse elle aussi sera très fidèle à ce qui est affiché sur le réseau. Et cela vaut également pour les positions des aiguillages.
Il est également prévu que ce TCO puisse permettre de piloter certains accessoires du réseau comme les aiguillages et donc de modifier en conséquence la signalisation ferroviaire.
L'architecture générale :
Le TCO s’alimente des différentes informations qui circulent sur le bus CAN du réseau.Il peut bien sûr filtrer les seuls messages qui l’intéresse et dispose de sa propre base de données de correspondance de messages. Il peut donc mettre à jour la représentation graphique de chaque objet en fonction des informations qui circulent sur le bus.
Lorsque l’on agit sur l’un des éléments graphiques du TCO comme une aiguille, le message correspondant est envoyé sur le bus CAN et l’aiguillage change effectivement de position.
L'architecture logicielle est somme toute assez simple et grandement facilitée par l'usage du bus CAN. J'envisage en effet de placer sur le bus une passerelle CAN/WiFi qui serait également un serveur WebSocket.
C'est l’
ESP8266 dans sa version de prototypage
Node MCU E12 qui sera retenu. Il dispose en effet d’un grand nombre de bibliothèques qui seront utiles et ses performances sont de taille pour l'exercice.
Ainsi, tous les messages circulants sur le bus CAN du réseau seront envoyés à une page HTML (la représentation du TCO) gérée par du code en JavaScript en ayant largement recours à la POO. Chaque élément du réseau (aiguille, loco, feux...) étant lui-même un objet informatique. Tout résidant en mémoire et propulsé par le moteur V8 de Google, c'est un fonctionnement ultra rapide.
Ce TCO fonctionne avec tous les gestionnaires puisqu'il est indépendant de toutes plateformes pour peu, bien sûr que les informations transitent par un bus CAN.
Comme vous pourrez vous en rendre compte, l’intérêt des solutions techniques mises en œuvre dépasse largement le cadre d’un TCO et dont pourront s’inspirer de nombreux autres projets.
1° - On y trouve une passerelle CAN/WiFi-Ethenet
2° - Le Node MCU dispose d’un espace de stockage de fichiers qui sera utilisé ici pour héberger un serveur web assez complexe. Mais on pourrait tout aussi bien y stocker des fichiers son par exemple comme on le fait sur une carte SD.
3° - Pour communiquer entre l’ESP8266 et le navigateur web, nous utiliserons la technologie des websocket qui constitue aujourd’hui la plus performante des solutions d’échanges sur le web.
4° - Le TCO sera conçu comme une application à part entière disposant de ses propres bases de données objets stockées en mémoire RAM de l’ordinateur ou de la tablette. Là encore, l’assurance de performances accrues.
Parmi les nombreuses applications possibles, je pense à une centrale DCC++ hébergée sur l’ESP8266 à laquelle on pourrait accéder en CAN et Wifi. Une manière de contourner Processing assez « lourd » à mon sens pour le développent d’applications graphiques de commande comme peuvent l’être un TCO ou un contrôleur.