Introduction
J'ai réalisé mon stage d'ingénieur à NPS Driven, une entreprise spécialisée dans l’intégration de moteurs Diesel dans les secteurs agricoles, industriels et marins.
Ma mission, en tant que seul développeur de l'équipe, était de
programmer un tableau de bord permettant de communiquer avec des moteurs
des marques
John Deere et
Doosan. Ce tableau de bord
doit être capable d'afficher les différentes mesures relevées par les
capteurs du moteur, telles que la pression d'huile, la température du
réfrigérant, le régime.
Il doit également être capable d'envoyer des ordres au moteur, tels
qu'un changement de régime, le lancement d'une routine de maintenance,
etc.
Contrairement aux tableaux de bord classiques, ce tableau de bord doit supporter la dernière norme environnementale de l'Union Européenne, la norme Stage V.
Tech stack
L'appareil servant de tableau de bord retenu par l'entreprise est un COBO CANVIEW 4. Il est programmable en C et l'interface graphique est constructible grâce à un éditeur What You See Is What You Get appelé VT3. Ce modèle est attractif car il supporte les bus de données CAN et plus particulièrement le protocole de communication J1939, utlisé par tous les moteurs standardisés.
Faisceau de communication
Premièrement, j'ai dû réaliser un faisceau de communication. Celui-ci permet de relier le tableau de bord avec les différents moteurs. En effet, la connectique diffère selon leur application (moteur à destination industrielle ou moteur à destination marine). Le faisceau de communication est donc conceptuellement un bus CAN avec des connecteurs différents, dont un connecteur USB. Celui-ci permet de surveiller le trafic échangé sur le bus CAN depuis un ordinateur et de mettre à jour le tableau de bord.

Programmation
La programmation de l'interface est faite en deux temps.
Tout d'abord, il faut définir tous les messages qui sont envoyés et reçus sur le bus CAN. La majorité de ces définitions peut être trouvée dans les standards SAE J1939. Malheureusement, les différentes marques de moteurs et même les différents modèles de moteurs d'une même marque ne suivent pas toujours les standards. Il faut donc parfois définir des messages personnalisés. Ces messages sont pour la plupart récupérables dans la documentation du constructeur du moteur. Cependant, il arrive que certains messages ne soient pas correctement documentés (comme les messages concernant la réduction catalytique sélective dans les moteurs Doosan). Dans ce cas, une phase de rétro-ingénierie est nécessaire pour déterminer le format des messages.
Une fois les messages définis, il suffit de créer les différents écrans de l'appareil. Une boucle d'évenement permet de communiquer périodiquement avec l'unité centrale du moteur en envoyant et reçevant des messages J1939. De la même manière, l'interface graphique est rafrachie à une fréquence fixée et est mise à jour avec les dernières valeurs récupérées dans les messages J1939 échangés.
Démonstration
La vidéo suivante montre le tableau de bord en action sur un moteur Doosan. Tout d’abord, le contrôle du régime moteur est testé. Ensuite, une sonde est débranchée du moteur pour générer un message d’erreur et allumer des voyants sur le tableau de bord. Le menu permettant la gestion de la régénération (une opération de maintenance du moteur) est affiché. Enfin, le changement de langue depuis les paramètres est montré.