J’ambitionne de développer des postes de conduite de locomotive, et incidemment de contrôle des appareils de voie, équipés d’une connexion sans fil.
Dans cette optique, je suis en train d’examiner les technologies adaptées, que ce soit au niveau du coût, de la facilité de mise en œuvre ou des fonctionnalités.
En ce qui concerne la communication radio, j’ai récemment mis en œuvre des modules XBee série 1 de Digi. Les modules série 1 implémentent le protocole IEEE 802.15.4, sur lequel le ZigBee repose, alors que les modules série 2 implémentent un protocole propriétaire de Digi. Les modules série 2 offrent plus de possibilités mais les modules série 1 suffisent largement pour l’application envisagée. Donc autant rester sur un standard. Dans les deux cas, la bande des 2,4GHz est employée et les modules permettent un débit de 250 kBits/s. Ces modulent brillent par leur simplicité de mise en œuvre et la fiabilité de la connexion sans fil. Un module coûte une vingtaine d’Euros. Certes il y a moins cher mais dans ce domaine il est préférable de miser sur la qualité et le support du fabricant. Digi fournit régulièrement des mise à jour de firmware et le logiciel de configuration, XCTU, est suivi et qui plus est disponible pour Mac OS X [1]. Je développerai prochainement la mise en œuvre de ces modules que ce soit sur Arduino ou sur PIC.
L’interaction avec l’utilisateur sera effectuée au moyen d’un encodeur rotatif en quadrature, je développerai également la mise en œuvre de ce composant ainsi que la raison de ce choix dans un futur article, et d’un écran LCD graphique couleur. Le choix d’un écran LCD graphique couleur n’est pas simple. Il existe une myriade de modèles mais on retiendra surtout l’interface de pilotage de l’écran. Cette interface est soit du SPI, donc une transmission série bit à bit des données à afficher, soit une interface parallèle. Des essais fait avec un écran de 2,2" à interface SPI [2] ont montré que les performances sont insuffisantes pour disposer d’une interface graphique réactive. Même en montant la fréquence de l’horloge de transfert SPI à 16MHz ou plus, le rafraichissement complet de l’écran prend un temps conséquent et ne permet pas une fréquence de rafraichissement adéquate.
L’écran envisagé est un LCD graphique de 3,2" également disponible auprès de plusieurs distributeurs pour un tarif également très raisonnable [3]. De plus, cet écran vient avec une dalle tactile qu’il est très tentant de mettre en œuvre. De cette manière, le poste de conduite sera assez minimaliste, toute l’interaction passant par l’écran tactile et l’encodeur rotatif [4].
Le microcontrôleur doit être un modèle musclé pour permettre une gestion aisée des graphisme : une taille de mémoire flash et une taille de SRAM confortables, une puissance importante, un nombre de broches suffisant et une grande facilité de mise en œuvre.
Dans cette catégorie, on trouve le Teensy 3.1, une breakout board embarquant un microcontrôleur FreeScale à base d’ARM Cortex M4 et cadencé à 96MHz. La taille de la flash est de 256ko et celle de la SRAM de 64ko, ce qui est très confortable dans un contexte embarqué. Il s’agit de plus d’une carte miniature de 3,5cm sur 1,8cm qui permet une intégration facile. Etant donné ses caractéristiques, son prix est également très raisonnable : on la trouve entre 18€ et 20€. Elle peut se programmer dans l’environnement Arduino et dispose de la bibliothèque graphique UTFT qui facilite grandement l’utilisation des écrans graphiques LCD.
Intégration dans l’installation existante
Un poste de conduite filaire a déjà été développé par Pierre et Philippe et construit à 8 exemplaires. Les postes s’interfacent avec le gestionnaire central via un bus CAN dédié et une connectique particulière qui véhicule également l’alimentation du poste.
L’intégration de postes sans fil demande donc de concevoir une carte qui effectuera une passerelle entre le bus CAN et les postes sans fil. Cette carte recevra les ordres d’affichage destinés aux postes via le CAN, construira des trames ZigBee qui seront expédiés aux postes. En sens inverse, elle recevra les commandes des postes en ZigBee et construira les trames CAN correspondantes à destination du gestionnaire central.
Afin de valider le fonctionnement dans les parasites émis par les locomotives, nous avons, au cours de la séance d’essais de la carte 4 alimentation de présérie [5], testé une installation consistant en une passerelle CAN-ZigBee unidirectionnelle construire autour d’un PIC 18F26K80 et d’un module XBee d’une part et d’un second module ZigBee et d’un Arduino Uno d’autre part. Le programme sur l’Arduino Uno décode les trames des ordres destinés aux postes de conduite et les affiche en clair sur la console d’un portable.
L’essai a été couronné de succès et confirme la viabilité des modules XBee dans ce contexte.
L’étape suivante consistera à ajouter une passerelle XBee-CAN pour connecter un des poste de conduite actuels par radio.