Accueil Solutions Communication CANopen entre l’hôte et le Smart Display avec contrôle des boutons et indicateurs

Communication CANopen entre l’hôte et le Smart Display avec contrôle des boutons et indicateurs

Jul 25, 2023

Introduction

Communication CANopen entre l’hôte et le Smart Display

Le contrôle d’un Smart Display nécessite une interface système et un protocole de communication. Cet article présente, du point de vue du contrôle côté hôte, un exemple pratique basé sur Arduino afin d’expliquer comment le HOST envoie des commandes pour modifier la couleur d’un indicateur sur le Smart Display. Dans cet exemple, un bouton tactile est intégré à l’interface utilisateur et un bouton physique est connecté à l’Arduino. Lorsque le bouton physique ou le bouton tactile est actionné, la couleur de l’indicateur affiché à l’écran change et la LED externe est allumée ou éteinte.

Cette application montre comment utiliser une carte de développement Arduino pour contrôler un Smart Display CAN de 3,5 pouces, notamment comment programmer le bouton physique, le bouton tactile, l’indicateur affiché à l’écran et la LED de la carte, ainsi que la manière dont le Smart Display reçoit les commandes envoyées par le HOST. Un Arduino Mega 2560 équipé d’un shield CAN Bus est utilisé comme contrôleur hôte et communique avec le Smart Display via CANopen.

Le schéma fonctionnel du système est présenté ci-dessous :

Communication CANopen entre l’hôte Arduino et le Smart Display

Schéma fonctionnel du système

Les composants suivants sont nécessaires pour cette application :

  1. Smart Display CANopen de 3,5 pouces
  2. Arduino Mega 2560
  3. Shield CAN Bus pour Arduino Mega 2560
  4. Dongle CAN Bus
  5. Bouton physique
  6. LED
  7. Smart Display GUI Builder v0.4.2 ou version ultérieure
 

Cette démonstration se déroule en trois étapes :

  1. Concevoir le projet dans GUI Builder
  2. Compiler et charger le projet
  3. Programmer l’hôte Arduino
 

Concevoir le projet dans GUI Builder

Commencez par créer un nouveau projet et saisissez un nom de projet. Sélectionnez ensuite le type d’appareil ; cet exemple utilise un appareil de 3,5 pouces. Sélectionnez CANopen comme protocole de communication et définissez l’orientation de l’écran sur Landscape. Sélectionnez ensuite Blank Template parmi les modèles d’interface utilisateur, puis cliquez sur Create pour créer le nouveau projet, comme illustré ci-dessous.

Création d’un projet CANopen Smart Display dans GUI Builder

Une fois ces paramètres configurés, une page vierge s’affiche.

Page vierge du projet dans Smart Display GUI Builder

Pour cet exemple d’application, ajoutez un bouton tactile et un widget Indicator à l’espace de travail. Sélectionnez les widgets nécessaires dans le panneau de contrôle, puis faites-les glisser vers l’espace de travail, comme illustré ci-dessous.

Ajout d’un bouton tactile et d’un widget Indicator dans GUI Builder

Compiler et charger le projet

Une fois les paramètres précédents et la conception de l’interface utilisateur terminés, le projet peut être compilé et chargé. Cliquez sur Device dans la barre d’outils de GUI Builder, puis sélectionnez Device Property. Dans la fenêtre Device Property, vous pouvez conserver le débit en bauds par défaut ou le modifier en fonction des besoins de votre application. Assurez-vous que le débit en bauds configuré dans le programme Arduino correspond à celui défini dans GUI Builder. Une fois les paramètres configurés, cliquez sur Upload pour charger le projet sur le Smart Display, comme illustré ci-dessous.

Compilation et chargement du projet sur le Smart Display

Une fois le chargement du projet terminé, le message "Upload project completed" s’affiche. Cliquez sur OK pour fermer la fenêtre, comme illustré ci-dessous.

Fin du chargement du projet dans GUI Builder

Une fois le chargement terminé, le Smart Display affiche l’écran de démarrage, comme illustré ci-dessous.

Écran de démarrage du Smart Display après le chargement

Après l’écran de démarrage, le Smart Display passe à la page de l’application chargée, indiquant que le projet a été compilé et chargé avec succès.

Page de l’application chargée sur le Smart Display

Programmer l’hôte Arduino

Cet exemple utilise Arduino IDE v2.0.4 pour programmer l’hôte Arduino. La bibliothèque mcp2515_can.h, ainsi que plusieurs bibliothèques complémentaires, est utilisée pour la communication CAN Bus. Pour plus de détails, reportez-vous au code Arduino. Lors de l’établissement de la communication entre l’hôte et le Smart Display, il est important de vérifier les adresses associées aux différents objets. Pour plus d’informations sur la communication CAN Bus entre l’hôte et le Smart Display, consultez le journal de communication dans GUI Builder. Les adresses des objets nécessaires sont définies dans le programme Arduino IDE, comme illustré ci-dessous.

Programmation de l’hôte Arduino pour la communication CANopen

Dans la structure CANopen, l’index du style Button correspond à 0 (0x2000), tandis que l’index du style Indicator correspond à 1 (0x2001). Il est important de relever l’index de chaque objet. Lorsque l’index d’un objet est connu, son état peut être modifié à partir du programme de l’hôte Arduino. Les index correspondant aux différents objets peuvent être identifiés dans les informations de commande du tableau des journaux de simulation ci-dessous :

Index du Button dans le journal de simulation CANopen

 

Index de l’Indicator dans le journal de simulation CANopen

Le type de données de chaque objet est défini à cet emplacement. Si d’autres objets doivent être ajoutés, leurs types de données correspondants doivent également être définis dans le programme.

Définition des types de données des objets CANopen

La figure suivante montre comment ObjectFunCallback traite les valeurs reçues de chaque objet. Les utilisateurs peuvent modifier le code ou ajouter une logique de traitement pour d’autres objets en fonction des besoins de leur application.

Traitement des valeurs des objets avec ObjectFunCallback

Lorsque l’hôte Arduino détecte un changement d’état du bouton physique, il envoie la valeur correspondante au Smart Display via CANopen. Reportez-vous au code suivant pour identifier les ID et les sub-index utilisés dans la structure de commande. Cette partie du programme met à jour la valeur de l’Indicator (object index 2) en fonction de l’état du bouton physique.

Mise à jour de l’Indicator via CANopen selon l’état du bouton physique

Définissez les adresses de registre de tous les objets, configurez les modes des broches des composants externes, tels que le bouton physique et la LED, en entrée ou en sortie, puis définissez le débit en bauds, comme illustré ci-dessous :

Définition des adresses de registre et configuration des broches Arduino

Configuration du débit en bauds pour la communication CAN Bus

Enfin, la logique nécessaire à ce scénario d’application est définie dans la fonction loop(). Lorsque le bouton physique ou le bouton tactile du Smart Display est actionné, le système modifie la couleur de l’Indicator affiché à l’écran et allume ou éteint la LED externe.

Logique de contrôle du bouton et de l’Indicator dans la fonction loop

Après avoir vérifié et chargé avec succès le programme à l’aide d’Arduino IDE, une pression sur le bouton physique ou sur le bouton tactile du Smart Display allume la LED et fait passer l’Indicator au vert. Lorsque l’Indicator est rouge et que la LED est éteinte, cela signifie que ni le bouton physique ni le bouton tactile n’est actionné, comme illustré ci-dessous.

Contrôle de la LED et de l’Indicator avec les boutons physique et tactile

Le programme décrit ci-dessus peut être téléchargé via le lien GitHub. Les exemples contiennent également des fichiers et des informations complémentaires concernant ce projet de démonstration. La configuration matérielle réelle est présentée ci-dessous.

Configuration matérielle du projet Arduino et Smart Display CANopen

Une fois ces étapes terminées, le bouton physique ou le bouton tactile du Smart Display peut être utilisé pour contrôler l’état de l’Indicator affiché à l’écran ainsi que la LED externe, ce qui complète cette démonstration de communication CANopen avec le Smart Display.

Conclusion

Cet exemple présente le fonctionnement et l’utilisation de GUI Builder tout en permettant aux utilisateurs de comprendre comment développer des applications de contrôle côté hôte via CAN Bus. Il montre également comment l’hôte envoie et reçoit des commandes pour contrôler le Smart Display. Cet exemple permet ainsi aux développeurs de mieux comprendre la communication et le contrôle CANopen entre l’hôte et le Smart Display et peut servir de référence pour le développement de futures applications Smart Display.

Vous avez des questions sur les solutions d'affichage pour votre entreprise ? Contactez-nous!

Abonnez-vous

Recevez des e-mails sur les nouvelles mises à jour de Winstar

Contactez-nous

Prix/Fiche technique/Requête générale

Support technique

Contactez-nous pour toute information technique

go top
Contactez-nous
close

Nous valorisons votre confidentialité

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é

Nous valorisons votre confidentialité

Winstar et certains tiers utilisent des cookies sur www.winstar.com.tw. Les détails concernant les types de cookies, leur objectif et les tiers impliqués sont décrits ci-dessous et dans notre Politique relative aux cookies. Veuillez cliquer sur « Autoriser tout » pour consentir à l'utilisation de cookies et profiter de la meilleure expérience possible sur nos sites. Vous pouvez également définir vos préférences ou refuser les cookies (sauf les cookies strictement nécessaires).

Gérer les préférences de consentement

Toujours actif
Cookies essentiels

Ces cookies sont essentiels pour vous permettre de naviguer sur le site et d'utiliser ses fonctionnalités, telles que la définition de vos préférences en matière de confidentialité, la connexion ou le remplissage de formulaires.

Cookies analytiques

Également connus sous le nom de « cookies statistiques », ces cookies collectent des informations sur la façon dont vous utilisez un site Web, comme les pages que vous avez visitées et les liens sur lesquels vous avez cliqué. Voir les détails.