Home Soluções Controle de troca de páginas do Smart Display via Custom CAN ID com Arduino

Controle de troca de páginas do Smart Display via Custom CAN ID com Arduino

Aug 26, 2023

Introdução

O Smart Display oferece suporte a diversos protocolos de comunicação CAN, incluindo CANopen e Custom CAN ID. O CANopen é um protocolo de comunicação padronizado que define perfis de comunicação, perfis de dispositivos e modelos de objetos para diferentes tipos de equipamentos, oferecendo uma abordagem padronizada para configuração, monitoramento e controle de dispositivos em uma rede CAN. Por outro lado, quando os dispositivos conectados à rede CAN possuem funções ou requisitos específicos que não são atendidos pelos protocolos padrão existentes, o Custom CAN ID permite definir a comunicação CAN de acordo com os requisitos da aplicação, proporcionando maior flexibilidade de configuração.

Este artigo explica como utilizar uma placa Arduino, um módulo CAN bus e um sensor para alternar as páginas de um Smart Display de 7 polegadas via Custom CAN ID. São apresentados os componentes de hardware utilizados no projeto, a compilação do programa Arduino e a implementação da troca de páginas no Smart Display por meio do Custom CAN ID.

Com esta demonstração, os desenvolvedores podem compreender melhor a comunicação e o controle entre a placa Arduino, o módulo CAN bus e o Smart Display via Custom CAN ID, utilizando o exemplo como referência para o desenvolvimento de outras aplicações de comunicação CAN com Smart Display.

Fig. 1 Diagrama de blocos do sistema

Fig. 1 Diagrama de blocos do sistema

Este projeto utiliza um Arduino Mega 2560 como controlador host e o Arduino IDE v2.0.4 para o desenvolvimento do programa. Para se comunicar com o Smart Display por meio da interface CAN bus, o host Arduino é conectado a um shield CAN bus. O shield utiliza um controlador CAN MCP2515 e um transceptor CAN MCP2551 para viabilizar a comunicação CAN bus entre o host Arduino e o Smart Display.

Esta aplicação requer os seguintes componentes:

  • Smart Display de 7 polegadas
  • Arduino Mega 2560
  • Shield CAN bus para Arduino Mega 2560
  • Dongle CAN bus
  • Sensor com botão físico
  • LED
  • Smart Display GUI Builder v0.4.5 ou posterior
 

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

  • Desenvolver o projeto no GUI Builder.
  • Compilar e carregar o projeto.
  • Programar o host Arduino.
 

Desenvolver o Projeto no GUI Builder

Para começar, abra a versão mais recente do Smart Display GUI Builder e crie um novo projeto. Insira um nome para o projeto; a pasta do projeto será selecionada automaticamente.
Selecione o tipo de dispositivo, neste caso, um dispositivo de 7 polegadas, e escolha "Custom CAN ID" como protocolo de comunicação. Por padrão, a orientação da tela é definida no modo paisagem. Em seguida, selecione um modelo de interface em branco e clique em "Create" para criar o novo projeto, conforme mostrado na Figura 2.

Fig. 2

Fig. 2

Após a criação do projeto em branco, será exibida a tela mostrada na Figura 3.

Fig. 3

Fig. 3

Para esta demonstração, é necessária uma segunda página. Clique em "Page" e, em seguida, no botão de adição para incluir uma nova página.

Fig. 4

Fig. 4

O estilo do plano de fundo pode ser alterado no painel "Resource".

Fig. 5

Fig. 5

Selecione o estilo de plano de fundo desejado no menu "background", localizado no lado direito da interface.

Fig. 6

Fig. 6

Compilar e Carregar o Projeto

Após concluir o layout e as etapas anteriores, o projeto estará pronto para ser compilado e carregado. Clique em "Device" e selecione "Device Property". Verifique as configurações do protocolo e da taxa de transmissão (baud rate) e ajuste-as conforme necessário. Certifique-se de que a baud rate configurada no GUI Builder seja a mesma definida no programa Arduino. Após concluir as configurações, clique em "Connect to Device". Quando a conexão com o dispositivo for estabelecida com sucesso, clique em "Upload" para carregar o projeto, conforme mostrado na Figura 7.

Fig. 7

Fig. 7

Quando o carregamento do projeto estiver concluído, clique em "OK", conforme mostrado na Figura 8.

Fig. 8

Fig. 8

Após a conclusão do carregamento, a tela de inicialização será exibida no Smart Display, conforme mostrado na Figura 9.

Fig. 9

Fig. 9

Em seguida, o Smart Display passa da tela de inicialização para a página do projeto, indicando que o projeto foi compilado e carregado com sucesso por meio do GUI Builder, conforme mostrado na Figura 10.

Fig. 10

Fig. 10

Programar o Host Arduino

A biblioteca mcp2515_can.h é utilizada para a comunicação via Custom CAN ID, enquanto a biblioteca SPI.h é utilizada para a comunicação por Serial Peripheral Interface (SPI). A biblioteca mcp2515_can.h permite a comunicação com o controlador CAN (Controller Area Network) MCP2515, amplamente utilizado em sistemas embarcados.

A biblioteca fornece funções para inicializar o MCP2515, configurar parâmetros de comunicação CAN, como taxa de bits, filtros e máscaras, transmitir e receber mensagens CAN e verificar erros. No programa desenvolvido no Arduino IDE, as configurações necessárias para a comunicação CAN são definidas no código mostrado na Figura 11, incluindo o CAN ID, os parâmetros de controle e as variáveis relacionadas. Esse trecho de código inicializa as variáveis globais, constantes e arrays necessários posteriormente no programa, juntamente com seus respectivos tipos de dados.

Fig. 11

Fig. 11

Este trecho de código contém a função setup(), executada uma única vez quando o programa é iniciado. Serial.begin() inicializa a comunicação serial com o Serial Monitor a uma taxa de 115200 baud. O pino do LED integrado é configurado como saída por meio de pinMode(), enquanto o pino do botão físico é configurado como entrada. Em seguida, um loop while é utilizado para inicializar o controlador CAN MCP2515, e CAN.begin() é chamado com CAN_250KBPS para definir a taxa de bits da comunicação CAN em 250 kbps.

Fig. 12

Fig. 12

A função changePageFunction() envia comandos CAN por meio do MCP2515 para alternar as páginas do Smart Display, utilizando mensagens CAN com bytes de dados específicos. Primeiro, a função envia um comando "device mode" para colocar o Smart Display no modo de configuração. Em seguida, envia um comando "change page" com o número da página desejada. Por fim, envia novamente um comando "device mode" para retornar o Smart Display ao modo de exibição.

Fig. 13

Fig. 13

Este trecho de código contém a função loop(), que é executada repetidamente após a conclusão da função setup().
O programa utiliza analogRead() para ler o valor de tensão do botão físico e armazená-lo na variável buttonValue. Se buttonValue for maior que o valor de THRESHOLD, isso indica que o botão físico foi pressionado. Nesse caso, o programa incrementa a variável nowPage em 1 e exibe o valor atual de nowPage no Serial Monitor utilizando sprintf() e Serial.println().
Em seguida, o programa passa o valor atual de nowPage para changePageFunction() a fim de alternar para a página especificada. Se nowPage for diferente de 0, digitalWrite() acende o LED integrado no pino 13; caso contrário, o LED é apagado. A variável lastDebounce é atualizada com o tempo atual por meio de millis() para registrar o momento em que o botão foi pressionado pela última vez. O programa continua lendo buttonValue dentro de um loop while até que o botão físico seja liberado.
Por fim, delay(100) adiciona um atraso de 100 ms ao final do loop para que as mensagens CAN bus sejam transmitidas em um intervalo adequado.

Fig. 14

Fig. 14

Para mais detalhes, consulte o código Arduino. Ao estabelecer a comunicação entre o host e o Smart Display, verifique se as configurações relevantes da comunicação CAN estão definidas corretamente. Para obter mais informações sobre a comunicação entre o host e o Smart Display, consulte o log de comunicação no GUI Builder.

Após verificar e carregar o programa com sucesso no Arduino IDE, é possível alternar as páginas do Smart Display utilizando o botão físico. Quando o Smart Display exibe a primeira página, o LED permanece apagado. Ao pressionar o botão físico, a tela muda para a segunda página e o LED é aceso, conforme mostrado na Figura 15.

Fig. 15

Fig. 15

Com isso, é concluída a demonstração de alternância de páginas do Smart Display via Custom CAN ID.

Para baixar o programa, o vídeo de demonstração e os recursos relacionados, consulte a página do projeto no GitHub. A configuração real do hardware é mostrada na Figura 16.

Fig. 16

Fig. 16

Conclusão

Este exemplo demonstra como utilizar uma placa Arduino com um controlador CAN MCP2515 para alternar as páginas de um Smart Display via Custom CAN ID. O host Arduino lê o sinal de entrada de um botão físico e envia comandos CAN por meio do MCP2515 ao Smart Display para alternar entre as páginas de exibição.

Com este exemplo, os desenvolvedores podem obter uma compreensão básica da comunicação e do controle via Custom CAN ID entre um host Arduino e um Smart Display, utilizando-o como referência para o desenvolvimento de outras aplicações de comunicação CAN 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.