Home Soluções Comunicação CANopen entre host e Smart Display com controle de botões e indicadores

Comunicação CANopen entre host e Smart Display com controle de botões e indicadores

Jul 25, 2023

Introdução

Comunicação CANopen entre o host e o Smart Display

O controle de um Smart Display requer uma interface de sistema e um protocolo de comunicação. Sob a perspectiva do controle pelo host, este artigo apresenta um exemplo prático com Arduino para demonstrar como o HOST envia comandos para alterar a cor de um indicador no Smart Display. Neste exemplo, um botão touch é inserido na interface gráfica e um botão físico é conectado ao Arduino. Ao pressionar o botão físico ou o botão touch, a cor do indicador exibido na tela é alterada e o LED externo é ligado ou desligado.

Esta aplicação demonstra como utilizar uma placa de desenvolvimento Arduino para controlar um Smart Display CAN de 3,5 polegadas, incluindo a programação do botão físico, do botão touch, do indicador exibido na tela e do LED da placa, além de mostrar como o Smart Display recebe os comandos enviados pelo HOST. Um Arduino Mega 2560 equipado com um shield CAN Bus é utilizado como controlador host e se comunica com o Smart Display via CANopen.

O diagrama de blocos do sistema é apresentado abaixo:

Comunicação CANopen entre o host Arduino e o Smart Display

Diagrama de blocos do sistema

Os seguintes componentes são necessários para esta aplicação:

  1. Smart Display CANopen de 3,5 polegadas
  2. Arduino Mega 2560
  3. Shield CAN Bus para Arduino Mega 2560
  4. Dongle CAN Bus
  5. Botão físico
  6. LED
  7. Smart Display GUI Builder v0.4.2 ou posterior
 

Esta demonstração está dividida em três etapas:

  1. Projetar o projeto no GUI Builder
  2. Compilar e carregar o projeto
  3. Programar o host Arduino
 

Projetar o projeto no GUI Builder

Primeiro, crie um novo projeto e insira um nome para ele. Em seguida, selecione o tipo de dispositivo; neste exemplo, é utilizado um dispositivo de 3,5 polegadas. Selecione CANopen como protocolo de comunicação e defina a orientação da tela como Landscape. Depois, selecione Blank Template entre os modelos de interface disponíveis e clique em Create para criar o novo projeto, conforme mostrado abaixo.

Criação do projeto CANopen no Smart Display GUI Builder

Após concluir essas configurações, uma página em branco será aberta.

Página em branco do projeto no Smart Display GUI Builder

Para este exemplo de aplicação, adicione um botão touch e um widget Indicator à área de trabalho. Selecione os widgets necessários no painel de controles e arraste-os para a área de trabalho, conforme mostrado abaixo.

Adição dos widgets Button e Indicator no GUI Builder

Compilar e carregar o projeto

Após concluir as configurações anteriores e o design da interface, o projeto estará pronto para ser compilado e carregado. Clique em Device na barra de ferramentas do GUI Builder e selecione Device Property. Na janela Device Property, é possível utilizar a taxa de transmissão padrão (baud rate) ou ajustá-la de acordo com os requisitos da aplicação. Certifique-se de que o baud rate configurado no programa Arduino seja o mesmo definido no GUI Builder. Após concluir as configurações, clique em Upload para carregar o projeto no Smart Display, conforme mostrado abaixo.

Configuração e upload do projeto para o Smart Display

Quando o carregamento do projeto for concluído, será exibida a mensagem "Upload project completed". Clique em OK para fechar a janela, conforme mostrado abaixo.

Confirmação da conclusão do upload do projeto

Após a conclusão do upload, o Smart Display exibirá a tela de inicialização, conforme mostrado abaixo.

Tela de inicialização do Smart Display

Após a tela de inicialização, o Smart Display passará para a página da aplicação carregada, indicando que o projeto foi compilado e carregado com sucesso.

Página da aplicação carregada no Smart Display

Programar o host Arduino

Este exemplo utiliza o Arduino IDE v2.0.4 para programar o host Arduino. A biblioteca mcp2515_can.h e outras bibliotecas auxiliares são utilizadas para a comunicação CAN Bus. Para mais detalhes, consulte o código Arduino. Ao estabelecer a comunicação entre o host e o Smart Display, é importante verificar os endereços associados aos objetos. Para obter mais informações sobre a comunicação CAN Bus entre o host e o Smart Display, consulte o log de comunicação no GUI Builder. Os endereços necessários dos objetos são definidos no programa do Arduino IDE, conforme mostrado abaixo.

Programação do host Arduino para comunicação CANopen

Na estrutura CANopen, o index do estilo Button corresponde a 0 (0x2000), enquanto o index do estilo Indicator corresponde a 1 (0x2001). É importante observar o index de cada objeto. Quando o index de um objeto é conhecido, seu estado pode ser alterado por meio do programa do host Arduino. Os indexes correspondentes aos objetos podem ser identificados nas informações de comando apresentadas na tabela de logs de simulação abaixo:

Index do Button no log de simulação CANopen

 

Index do Indicator no log de simulação CANopen

O tipo de dados de cada objeto é definido nesta parte do programa. Caso seja necessário adicionar outros objetos, os respectivos tipos de dados também deverão ser definidos no programa.

Definição dos tipos de dados dos objetos CANopen

A figura a seguir mostra como ObjectFunCallback processa os valores recebidos de cada objeto. O código pode ser modificado ou ampliado com lógicas adicionais de processamento de objetos de acordo com os requisitos da aplicação.

Processamento dos valores dos objetos com ObjectFunCallback

Quando o host Arduino detecta uma alteração no estado do botão físico, ele envia o valor correspondente ao Smart Display via CANopen. Consulte o código a seguir para verificar os IDs e sub-indexes utilizados na estrutura de comando. Esta parte do programa atualiza o valor do Indicator (object index 2) de acordo com o estado do botão físico.

Atualização do Indicator via CANopen conforme o estado do botão físico

Defina os endereços dos registradores para todos os objetos, configure os modos dos pinos dos componentes externos, como o botão físico e o LED, como entrada ou saída, e defina o baud rate, conforme mostrado abaixo:

Definição dos endereços dos registradores e configuração dos pinos do Arduino

Configuração do baud rate para comunicação CAN Bus

Por fim, a lógica necessária para este cenário de aplicação é definida na função loop(). Quando o botão físico ou o botão touch do Smart Display é pressionado, o sistema altera a cor do Indicator exibido na tela e liga ou desliga o LED externo.

Lógica de controle do botão e do Indicator na função loop

Após verificar e carregar o programa com sucesso por meio do Arduino IDE, ao pressionar o botão físico ou o botão touch do Smart Display, o LED é ligado e a cor do Indicator muda para verde. Quando o Indicator está vermelho e o LED está desligado, isso indica que nem o botão físico nem o botão touch estão sendo pressionados, conforme mostrado abaixo.

Controle do LED e do Indicator pelos botões físico e touch

O programa descrito acima pode ser baixado pelo link do GitHub. Os exemplos também incluem arquivos e informações adicionais sobre este projeto de demonstração. A configuração real do hardware é apresentada abaixo.

Configuração de hardware do projeto Arduino e Smart Display CANopen

Após concluir essas etapas, o botão físico ou o botão touch do Smart Display pode ser utilizado para controlar o estado do Indicator exibido na tela e o LED externo, concluindo esta demonstração de comunicação CANopen com o Smart Display.

Conclusão

Este exemplo demonstra a operação e a aplicação do GUI Builder e ajuda os usuários a entender como desenvolver aplicações de controle pelo host utilizando CAN Bus. Também mostra como o host envia e recebe comandos para controlar o Smart Display. Com este exemplo, os desenvolvedores podem compreender melhor a comunicação e o controle CANopen entre o host e o Smart Display e utilizá-lo como referência para o desenvolvimento de aplicações com Smart Display.

Tem perguntas sobre as soluções de displays para a sua empresa? Entre em contato conosco!

Assinar

Receba e-mails sobre novas atualizações da Winstar

Entre em contato conosco

Preço/Ficha de dados/Consulta geral

Suporte técnico

Entre em contato conosco para qualquer informação técnica

go top
Contato
close

Valorizamos sua privacidade

Ao clicar em "Permitir todos os cookies", você concorda com o armazenamento de cookies no seu dispositivo para melhorar a navegação no site, analisar o uso do site e auxiliar nossos esforços de marketing e desempenho. Você pode encontrar mais informações sobre esse assunto em nossa política. Política de privacidade

Valorizamos sua privacidade

A Winstar e certos terceiros utilizam cookies no site www.winstar.com.tw. Os detalhes sobre os tipos de cookies, sua finalidade e as partes terceiras envolvidas estão descritos abaixo e em nossa Política de Cookies. Clique em “Permitir todos” para consentir o uso de cookies e obter a melhor experiência possível em nossos sites. Você também pode definir suas preferências ou rejeitar cookies (exceto os estritamente necessários).

Gerenciar preferências de consentimento

Sempre ativo
Cookies essenciais

Esses cookies são essenciais para permitir que você navegue pelo site e utilize seus recursos, como definir suas preferências de privacidade, fazer login ou preencher formulários.

Cookies de análise

Também conhecidos como "cookies estatísticos", esses cookies coletam informações sobre como você utiliza um site, como quais páginas você visitou e em quais links você clicou. Veja os detalhes.