Contrôler Smart Display depuis un hôte via CANopen : exemple de contrôle d'une jauge
May 04, 2022
Introduction
Dans nos précédentes présentations de Smart Display, nous avons principalement abordé les fonctions et les caractéristiques du produit, sans détailler la manière dont il peut être piloté par un hôte dans l’application finale du client. Cet article prend l’exemple d’un cadran pour montrer comment les données provenant d’une commande physique et de l’hôte (Arduino) peuvent être transmises au module Smart Display afin de mettre à jour l’affichage.
Dans cet exemple, un Smart Display 4,3 pouces avec CAN Bus affiche un cadran sur 240 degrés piloté par un hôte. Celui-ci est constitué d’une carte Arduino Mega 2560, d’un CAN Bus Shield et d’un Rotary Angle Sensor. Les composants nécessaires sont les suivants :
Smart Display 4,3 pouces avec CAN Bus
Arduino Mega 2560
CAN Bus Shield
Rotary Angle Sensor
CAN Bus Dongle
GUI Builder
Schéma du système
Étape 1 : créer le projet dans GUI Builder
1.1 Créez un nouveau projet et sélectionnez dans GUI Builder le modèle vierge pour un écran 4,3 pouces.
1.2 Dans le panneau Resource, sélectionnez l’image de fond noire pour Background Style 0.
1.3 Dans la fenêtre Gauge Edit, définissez l’angle de rotation de l’aiguille.
►Commencez par cliquer sur le bouton Modify de Gauge Style 6.
►Une fois l’élément sélectionné, un aperçu du cadran s’affiche dans la fenêtre Gauge Editor, comme illustré ci-dessous.
►Cochez l’option "Show Details" pour afficher des informations supplémentaires sur la rotation de l’aiguille.
►Les angles minimum et maximum de l’aiguille peuvent être réglés à l’aide des boutons +/- dans la zone Degree, comme illustré ci-dessous.
►Le Value Range est défini par une valeur minimale et une valeur maximale. Lorsqu’une valeur est reçue via CAN Bus, elle est mise en correspondance avec les angles de rotation minimum et maximum de l’aiguille.
►Une fois le cadran configuré, vous pouvez vérifier son fonctionnement en déplaçant le curseur Test Value vers la droite. À mesure que la valeur augmente, l’angle de l’aiguille augmente également jusqu’à atteindre la valeur et l’angle maximum définis.
Étape 2 : compiler et charger le projet
2.1 Une fois les étapes précédentes terminées, accédez à l’onglet Page Info et faites glisser Gauge Style 6 au centre de l’écran.
2.2 Connectez le PC au Smart Display via USB2CAN, puis cliquez sur les icônes "Connect Device" et "Upload the Project". Les ressources et les paramètres de la page sont alors chargés sur le module Smart Display via GUI Builder, comme illustré ci-dessous :
2.3 L’écran passe de l’écran de démarrage à l’interface de fonctionnement. Lorsque l’écran suivant apparaît sur le Smart Display 4,3 pouces avec CAN Bus, le chargement du projet est terminé avec succès.
Étape 3 : programmer l’hôte Arduino
3.1 Accédez à l’onglet Page dans GUI Builder. Dans la structure CANopen, l’index de Gauge Style 6 correspond à object 0 (0x2000). Il est important de connaître l’index de l’objet concerné. À partir de cet index, l’hôte Arduino peut interroger ou modifier l’état de l’objet, comme indiqué dans l’exemple de code ci-dessous.
3.2 L’hôte Arduino peut utiliser la fonction "ConfigSmartDisplay" pour définir le type, la position x/y, le style, la configuration et l’image d’arrière-plan de object 0. Il est également possible de ne pas effectuer de configuration supplémentaire côté Arduino : le Smart Display lit alors les données d’objet déjà enregistrées dans la mémoire Flash embarquée (préalablement chargées via GUI Builder) et affiche à l’écran les objets configurés.
3.3 Lorsque l’hôte Arduino détecte une variation de la valeur du Rotary Angle Sensor, il transmet la valeur correspondante au Smart Display via CANopen.
Le programme ci-dessous présente les principaux ID et sub-index de la structure de commande. Il permet de mettre à jour la valeur du cadran (object index 0) en fonction de la valeur reçue du Rotary Angle Sensor.
En cliquant sur "Autoriser tous les cookies", vous acceptez le stockage de cookies sur votre appareil pour améliorer la navigation sur le site, analyser l'utilisation du site et aider dans nos efforts de marketing et de performance. Vous pouvez trouver plus d'informations à ce sujet dans notre politique. Politique de confidentialité