Home Soluzioni Controllo del cambio pagina dello Smart Display tramite Custom CAN ID con Arduino

Controllo del cambio pagina dello Smart Display tramite Custom CAN ID con Arduino

August 26,2023

Introduzione

Smart Display supporta diversi protocolli di comunicazione CAN, tra cui CANopen e Custom CAN ID. CANopen è un protocollo di comunicazione standardizzato che definisce profili di comunicazione, profili dei dispositivi e modelli a oggetti per diversi tipi di dispositivi, offrendo un metodo standardizzato per configurare, monitorare e controllare i dispositivi su un bus CAN. Quando invece i dispositivi sul bus CAN presentano funzioni o requisiti specifici che non possono essere gestiti dai protocolli standard esistenti, Custom CAN ID consente di definire la comunicazione CAN in base ai requisiti dell'applicazione, offrendo una maggiore flessibilità di configurazione.

Questo articolo illustra come utilizzare una scheda Arduino, un modulo CAN bus e un sensore per cambiare pagina su uno Smart Display da 7 pollici tramite Custom CAN ID. Vengono descritti i componenti hardware utilizzati nel progetto, la compilazione del programma Arduino e l'implementazione del cambio pagina sullo Smart Display mediante Custom CAN ID.

Attraverso questa dimostrazione, gli sviluppatori possono comprendere meglio la comunicazione e il controllo tramite Custom CAN ID tra la scheda Arduino, il modulo CAN bus e lo Smart Display e utilizzare l'esempio come riferimento per lo sviluppo di applicazioni Smart Display basate sulla comunicazione CAN.

Fig. 1 Schema a blocchi del sistema

Fig. 1 Schema a blocchi del sistema

Questo progetto utilizza Arduino Mega 2560 come controller host e Arduino IDE v2.0.4 per lo sviluppo del programma. Per comunicare con lo Smart Display tramite l'interfaccia CAN bus, l'host Arduino viene collegato a uno shield CAN bus. Lo shield utilizza un controller CAN MCP2515 e un transceiver CAN MCP2551 per consentire la comunicazione CAN bus tra l'host Arduino e lo Smart Display.

Per questa applicazione sono necessari i seguenti componenti:

  • Smart Display da 7 pollici
  • Arduino Mega 2560
  • Shield CAN bus per Arduino Mega 2560
  • Dongle CAN bus
  • Sensore con pulsante fisico
  • LED
  • Smart Display GUI Builder v0.4.5 o versione successiva
 

La dimostrazione è suddivisa in tre fasi:

  • Progettare il progetto in GUI Builder.
  • Compilare e caricare il progetto.
  • Programmare l'host Arduino.
 

Progettare il progetto in GUI Builder

Per iniziare, avviare la versione più recente di Smart Display GUI Builder e creare un nuovo progetto. Inserire il nome del progetto; la cartella del progetto verrà selezionata automaticamente.
Selezionare il tipo di dispositivo, in questo caso un dispositivo da 7 pollici, e scegliere "Custom CAN ID" come protocollo di comunicazione. L'orientamento del display è impostato per impostazione predefinita in modalità orizzontale. Successivamente, selezionare un template UI vuoto e fare clic sul pulsante "Create" per creare il nuovo progetto, come mostrato nella Figura 2.

Fig. 2

Fig. 2

Dopo aver creato il progetto vuoto, verrà visualizzata la schermata mostrata nella Figura 3.

Fig. 3

Fig. 3

Per questa dimostrazione è necessaria una seconda pagina. Fare clic sul pulsante "Page", quindi sul pulsante con il simbolo più per aggiungere una nuova pagina.

Fig. 4

Fig. 4

Lo stile dello sfondo può essere modificato dal pannello "Resource".

Fig. 5

Fig. 5

Selezionare lo stile dello sfondo desiderato dal menu "background" sul lato destro dell'interfaccia.

Fig. 6

Fig. 6

Compilare e caricare il progetto

Dopo aver completato il layout e i passaggi precedenti, il progetto è pronto per essere compilato e caricato. Fare clic sul pulsante "Device" e selezionare "Device Property". Verificare le impostazioni del protocollo e del baud rate e modificarle se necessario. Assicurarsi che il baud rate impostato in GUI Builder corrisponda a quello configurato nel programma Arduino. Una volta completate le impostazioni, fare clic su "Connect to Device". Dopo aver stabilito correttamente la connessione con il dispositivo, fare clic su "Upload" per caricare il progetto, come mostrato nella Figura 7.

Fig. 7

Fig. 7

Al termine del caricamento del progetto, fare clic su "OK", come mostrato nella Figura 8.

Fig. 8

Fig. 8

Al termine del caricamento, sullo Smart Display verrà visualizzata la schermata di avvio, come mostrato nella Figura 9.

Fig. 9

Fig. 9

Successivamente, lo Smart Display passa dalla schermata di avvio alla pagina del progetto, indicando che il progetto è stato compilato e caricato correttamente tramite GUI Builder, come mostrato nella Figura 10.

Fig. 10

Fig. 10

Programmare l'host Arduino

La libreria mcp2515_can.h viene utilizzata per la comunicazione Custom CAN ID, mentre la libreria SPI.h viene utilizzata per la comunicazione Serial Peripheral Interface (SPI). La libreria mcp2515_can.h consente di comunicare con il controller MCP2515 CAN (Controller Area Network), comunemente utilizzato nei sistemi embedded.

La libreria fornisce funzioni per inizializzare l'MCP2515, configurare i parametri di comunicazione CAN, come bit rate, filtri e maschere, trasmettere e ricevere messaggi CAN e verificare la presenza di errori. Nel programma Arduino IDE, le impostazioni necessarie per la comunicazione CAN sono definite nel codice mostrato nella Figura 11, inclusi CAN ID, parametri di controllo e relative variabili. Questo segmento di codice inizializza inoltre le variabili globali, le costanti e gli array necessari nelle fasi successive del programma, insieme ai rispettivi tipi di dati.

Fig. 11

Fig. 11

Questo segmento di codice contiene la funzione setup(), che viene eseguita una sola volta all'avvio del programma. Serial.begin() inizializza la comunicazione seriale con il Serial Monitor impostando il baud rate a 115200. Il pin del LED integrato viene configurato come uscita mediante pinMode(), mentre il pin del pulsante fisico viene configurato come ingresso. Successivamente, viene utilizzato un ciclo while per inizializzare il controller CAN MCP2515 e viene richiamata CAN.begin() con CAN_250KBPS per impostare il bit rate CAN a 250 kbps.

Fig. 12

Fig. 12

La funzione changePageFunction() invia comandi CAN tramite l'MCP2515 per cambiare pagina sullo Smart Display, utilizzando messaggi CAN contenenti specifici byte di dati. La funzione invia innanzitutto un comando "device mode" per portare lo Smart Display in modalità di configurazione, seguito da un comando "change page" con il numero della pagina desiderata. Infine, invia nuovamente un comando "device mode" per riportare lo Smart Display in modalità di visualizzazione.

Fig. 13

Fig. 13

Questo segmento di codice contiene la funzione loop(), che viene eseguita ripetutamente dopo il completamento della funzione setup().
Il programma legge il valore di tensione del pulsante fisico mediante analogRead() e lo memorizza nella variabile buttonValue. Se buttonValue è maggiore del valore THRESHOLD, significa che il pulsante fisico è stato premuto. Il programma incrementa quindi di 1 la variabile nowPage e visualizza il valore corrente di nowPage nel Serial Monitor utilizzando sprintf() e Serial.println().
Successivamente, il programma passa il valore corrente di nowPage a changePageFunction() per passare alla pagina di visualizzazione specificata. Se nowPage è diverso da 0, digitalWrite() accende il LED integrato sul pin 13; in caso contrario, il LED viene spento. La variabile lastDebounce viene aggiornata con il tempo corrente mediante millis() per registrare il momento dell'ultima pressione del pulsante. Il programma continua a leggere buttonValue all'interno di un ciclo while fino al rilascio del pulsante fisico.
Infine, delay(100) introduce un ritardo di 100 ms al termine del ciclo, in modo che i messaggi CAN bus vengano trasmessi a intervalli appropriati.

Fig. 14

Fig. 14

Per ulteriori dettagli, consultare il codice Arduino. Quando si stabilisce la comunicazione tra l'host e lo Smart Display, assicurarsi che le relative impostazioni di comunicazione CAN siano configurate correttamente. Per maggiori informazioni sulla comunicazione tra l'host e lo Smart Display, consultare il log di comunicazione in GUI Builder.

Dopo aver verificato e caricato correttamente il programma in Arduino IDE, è possibile cambiare le pagine del display utilizzando il pulsante fisico. Quando lo Smart Display visualizza la prima pagina, il LED rimane spento. Premendo il pulsante fisico, il display passa alla seconda pagina e il LED si accende, come mostrato nella Figura 15.

Fig. 15

Fig. 15

Con questo passaggio si completa la dimostrazione del cambio pagina dello Smart Display tramite Custom CAN ID.

Per scaricare il programma, il video dimostrativo e le relative risorse, consultare la pagina del progetto GitHub. La configurazione hardware effettiva è mostrata nella Figura 16.

Fig. 16

Fig. 16

Conclusioni

Questo esempio mostra come utilizzare una scheda Arduino con un controller CAN MCP2515 per cambiare le pagine di uno Smart Display tramite Custom CAN ID. L'host Arduino legge l'input proveniente da un pulsante fisico e invia comandi CAN allo Smart Display tramite l'MCP2515 per cambiare le pagine visualizzate.

Attraverso questo esempio, gli sviluppatori possono acquisire una conoscenza di base della comunicazione Custom CAN ID e del controllo tra un host Arduino e uno Smart Display, utilizzandolo come riferimento per lo sviluppo di altre applicazioni Smart Display basate sulla comunicazione CAN.

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.