Home Soluzioni Comunicazione CANopen tra host e Smart Display con controllo di pulsanti e indicatori

Comunicazione CANopen tra host e Smart Display con controllo di pulsanti e indicatori

July 25,2023

Introduzione

Comunicazione CANopen tra host e Smart Display

Per controllare uno Smart Display sono necessari un'interfaccia di sistema e un protocollo di comunicazione. In questo articolo viene presentato un esempio pratico con Arduino, dal punto di vista del controllo lato host, per mostrare come l'HOST possa inviare comandi e modificare il colore di un Indicator sullo Smart Display. In questo esempio, nell'interfaccia UI viene inserito un pulsante touch e ad Arduino viene collegato un pulsante fisico. Premendo il pulsante fisico o il pulsante touch, il colore dell'Indicator visualizzato sullo schermo cambia e il LED esterno viene acceso o spento.

Questa applicazione mostra come utilizzare una scheda di sviluppo Arduino per controllare uno Smart Display CAN da 3,5 pollici, inclusa la programmazione del pulsante fisico, del pulsante touch, dell'Indicator visualizzato sullo schermo e del LED presente sulla scheda, oltre alla modalità con cui lo Smart Display riceve i comandi dall'HOST. Come controller host viene utilizzato un Arduino Mega 2560 dotato di CAN Bus Shield, che comunica con lo Smart Display tramite CANopen.

Lo schema a blocchi del sistema è riportato di seguito:

Comunicazione CANopen tra host Arduino e Smart Display

Schema a blocchi del sistema

Per questa applicazione sono necessari i seguenti componenti:

  1. Smart Display CANopen da 3,5 pollici
  2. Arduino Mega 2560
  3. CAN Bus Shield per Arduino Mega 2560
  4. CAN Bus Dongle
  5. Pulsante fisico
  6. LED
  7. Smart Display GUI Builder v0.4.2 o versione successiva
 

La demo è suddivisa in tre parti:

  1. Progettazione del progetto in GUI Builder
  2. Build e upload del progetto
  3. Programmazione dell'host Arduino
 

Progettazione del progetto in GUI Builder

Per prima cosa, creare un nuovo progetto e inserire il nome del progetto. Selezionare quindi il tipo di dispositivo; in questo esempio viene utilizzato un dispositivo da 3,5 pollici. Selezionare CANopen come protocollo di comunicazione e impostare l'orientamento del display su Landscape. Successivamente, selezionare Blank Template tra i template UI e fare clic su Create per creare il nuovo progetto, come mostrato di seguito.

Creazione di un progetto CANopen per Smart Display in GUI Builder

Una volta completate queste impostazioni, viene visualizzata una pagina vuota.

Pagina vuota del progetto Smart Display in GUI Builder

Per questo esempio applicativo, aggiungere all'area di lavoro un pulsante touch e un widget Indicator. Selezionare i widget necessari dal pannello dei controlli e trascinarli nell'area di lavoro, come mostrato di seguito.

Pulsante touch e widget Indicator nell'area di lavoro di GUI Builder

Build e upload del progetto

Dopo aver completato le impostazioni precedenti e la progettazione dell'interfaccia UI, il progetto è pronto per essere compilato e caricato. Fare clic su Device nella barra degli strumenti di GUI Builder e selezionare Device Property. Nella finestra Device Property è possibile utilizzare il baud rate predefinito oppure modificarlo in base ai requisiti dell'applicazione. Assicurarsi che il baud rate impostato nel programma Arduino corrisponda a quello configurato in GUI Builder. Una volta completate le impostazioni, fare clic su Upload per caricare il progetto sullo Smart Display, come mostrato di seguito.

Build e upload del progetto sullo Smart Display

Al termine dell'upload del progetto viene visualizzato il messaggio "Upload project completed". Fare clic su OK per chiudere la finestra, come mostrato di seguito.

Completamento dell'upload del progetto in GUI Builder

Al termine dell'upload, sullo Smart Display viene visualizzata la schermata di avvio, come mostrato di seguito.

Schermata di avvio dello Smart Display dopo l'upload

Dopo la schermata di avvio, lo Smart Display passa alla pagina dell'applicazione caricata, indicando che il progetto è stato compilato e caricato correttamente.

Pagina dell'applicazione caricata sullo Smart Display

Programmazione dell'host Arduino

In questo esempio viene utilizzato Arduino IDE v2.0.4 per programmare l'host Arduino. Per la comunicazione CAN Bus vengono utilizzate la libreria mcp2515_can.h e altre librerie di supporto. Per maggiori dettagli, fare riferimento al codice Arduino. Per stabilire la comunicazione tra l'host e lo Smart Display, è importante verificare gli indirizzi associati agli oggetti. Per ulteriori informazioni sulla comunicazione CAN Bus tra l'host e lo Smart Display, consultare il log di comunicazione in GUI Builder. Gli indirizzi degli oggetti necessari sono definiti nel programma Arduino IDE, come mostrato di seguito.

Indirizzi degli oggetti nel programma Arduino per la comunicazione CAN Bus

Nella struttura CANopen, l'index dello stile Button corrisponde a 0 (0x2000), mentre l'index dello stile Indicator corrisponde a 1 (0x2001). È importante tenere conto dell'index associato a ciascun oggetto. Se si conosce l'index di un oggetto, è possibile modificarne lo stato tramite il programma dell'host Arduino. Gli index corrispondenti agli oggetti possono essere individuati nelle informazioni dei comandi riportate nella tabella del log di simulazione mostrata di seguito:

Index dell'oggetto Button nel log di simulazione di GUI Builder

 

Index dell'oggetto Indicator nel log di simulazione di GUI Builder

Qui viene definito il tipo di dati di ciascun oggetto. Se è necessario aggiungere altri oggetti, nel programma devono essere definiti anche i relativi tipi di dati.

Definizione dei tipi di dati degli oggetti nel programma Arduino

La figura seguente mostra come ObjectFunCallback gestisce i valori ricevuti da ciascun oggetto. In base ai requisiti dell'applicazione, è possibile modificare il codice o aggiungere la logica necessaria per gestire ulteriori oggetti.

Gestione dei valori degli oggetti tramite ObjectFunCallback

Quando l'host Arduino rileva una variazione dello stato del pulsante fisico, invia il valore corrispondente allo Smart Display tramite CANopen. Fare riferimento al codice seguente per gli ID e i sub-index utilizzati nella struttura dei comandi. Questa parte del programma aggiorna il valore dell'Indicator (object index 2) in base allo stato del pulsante fisico.

Comando CANopen per aggiornare l'Indicator in base al pulsante fisico

Definire gli indirizzi dei registri per tutti gli oggetti, configurare le modalità dei pin per i componenti esterni, come il pulsante fisico e il LED, impostandoli come ingressi o uscite, e configurare il baud rate, come mostrato di seguito:

Definizione degli indirizzi dei registri e configurazione dei pin in Arduino

Configurazione del baud rate per la comunicazione CAN Bus in Arduino

Infine, in loop() viene definita la logica necessaria per eseguire lo scenario previsto dall'applicazione. Quando viene premuto il pulsante fisico oppure il pulsante touch sullo Smart Display, il sistema modifica il colore dell'Indicator visualizzato sullo schermo e accende o spegne il LED esterno.

Logica del programma Arduino per il controllo di Indicator e LED

Dopo aver verificato e caricato correttamente il programma tramite Arduino IDE, premendo il pulsante fisico oppure il pulsante touch sullo Smart Display si accende il LED e il colore dell'Indicator diventa verde. Quando l'Indicator è rosso e il LED è spento, significa che non è premuto né il pulsante fisico né il pulsante touch, come mostrato di seguito.

Controllo dell'Indicator e del LED tramite pulsante fisico e pulsante touch

Il programma descritto sopra può essere scaricato dal link GitHub. Negli esempi sono inoltre disponibili ulteriori file e informazioni relativi a questo progetto demo. La configurazione hardware effettiva è mostrata di seguito.

Configurazione hardware della demo CANopen con Arduino e Smart Display

Una volta completati questi passaggi, è possibile utilizzare il pulsante fisico oppure il pulsante touch sullo Smart Display per controllare lo stato dell'Indicator visualizzato sullo schermo e il LED esterno, completando così questa demo di comunicazione CANopen con Smart Display.

Conclusione

Questo esempio illustra il funzionamento e l'utilizzo di GUI Builder e consente agli utenti di comprendere come sviluppare applicazioni di controllo lato host tramite CAN Bus. Mostra inoltre come l'host invia e riceve comandi per controllare lo Smart Display. Attraverso questo esempio, gli sviluppatori possono comprendere meglio la comunicazione CANopen e le modalità di controllo tra l'host e lo Smart Display, utilizzandole come riferimento per lo sviluppo di applicazioni basate su Smart Display.

Qualche domanda sulle soluzioni di visualizzazione per la propria azienda? Contatti!

Iscrizione

Ricevere e-mail sugli aggiornamenti delle notizie da Winstar

Contatti

Prezzo/Scheda tecnica/Richiesta generale

Supporto tecnico

Si prega di contattarci per qualsiasi informazione tecnica

go top
Contatti
close

Valorizziamo la tua privacy

Facendo clic su "Consenti tutti i cookie", accetti la memorizzazione dei cookie sul tuo dispositivo per migliorare la navigazione del sito, analizzare l'utilizzo del sito e assistere nei nostri sforzi di marketing e prestazioni. Puoi trovare ulteriori informazioni su questo argomento nella nostra politica. Informativa sulla privacy

Valorizziamo la tua privacy

Winstar e alcune terze parti utilizzano i cookie su www.winstar.com.tw. I dettagli relativi ai tipi di cookie, al loro scopo e alle terze parti coinvolte sono descritti di seguito e nella nostra Informativa sui cookie. Fare clic su "Consenti tutti" per acconsentire all'uso dei cookie e ottenere la migliore esperienza possibile sui nostri siti web. Puoi anche impostare le tue preferenze o rifiutare i cookie (ad eccezione dei cookie strettamente necessari).

Gestisci le preferenze di consenso

Sempre attivo
Cookie essenziali

Questi cookie sono essenziali per permetterti di navigare nel sito web e utilizzare le sue funzionalità, come impostare le tue preferenze sulla privacy, effettuare il login o compilare moduli.

Cookie di analisi

Questi sono noti anche come "cookie statistici"; raccolgono informazioni su come utilizzi un sito web, come quali pagine hai visitato e quali link hai cliccato. Vedi dettagli.