Programando Arduino utilizando Visuino

Programando Arduino utilizando Visuino

Este projeto foi desenvolvido como trabalho da matéria de IOT da Universidade Regional de Blumenau (FURB), tem como objetivo demonstrar a utilização do Programa Visuino para implementação do Arduino e do Proteus para simular a execução do mesmo.

O objetivo do trabalho seria reproduzir a tela demonstrada neste vídeo utilizando a ferramenta de desenvolvimento visual chamado Visuino.


De inicio é necessário realizar o download da ferramenta Visuino e criar um novo projeto, para isso basta abrir o Visuino e salvar seu projeto.

Após criar seu projeto você deve adicionar os seguintes componentes ao seu projeto:

  • Real Time Clock 1307 (Responsável por obter o horário de seu computador);
  • Decode Date (Responsável por decodificar a data);
  • Formatted Text (Responsável por formatar a data);
  • Pulse Generator (Responsável por disparar um pulso para seus componentes);
  • Counter (Um contador de pulsos);
  • Compare Value (Responsável por fazer a comparação entre dois valores);
  • Humidity Thermometer (Responsável por capturar a umidade e temperatura atual);
  • Display Nokia 5110 (Display gráfico para apresentar os dados, foco deste trabalho);

Para encontrar estes componentes no Visuino basta procurá-los na barra da direita, conforme as figuras 01 e 02.

Figura 01 – Real Time Clock 1307
Figura 02 – Decode Date

Após encontrá-los, basta arrastar este componentes para sua área de trabalho do Visuino. Para que o mesmo, esteja disponível para realizar as conexões físicas dos componentes, conforme a figura 03.

Figura 03 – Adicionando componente para área de trabalho

Após adicionar todos os componentes em tela, é necessário criar as “arestas” que serão as ligações dos componentes com os pinos do Arduino, para fazer isto basta clicar nos “quadrados” de cadas componente e ligar nos pinos correspondentes que que estão ligados no Proteus. Como demonstram as figuras 04 e 05.

Figura 04 – Ligando o componente de data
Figura 05 – Ligando a saída do componente de data para o decodificador.

Na figura 05 é exibido a ligação do componente Real Time Clock com o componente de decodificação de datas, que por sua vez possui uma entrada do tipo data e saídas do tipo inteiro. Desta maneira que você trabalhará com o Visuino, basicamente criando componentes e utilizando suas entradas e saídas, podendo manipulá-las ao seu gosto.

Para manipularmos o valores de saída do Decode Date iremos utilizar um Formatted Text, assim informando o formato que desenhamos no texto e quais o parâmetros esperamos receber em nosso texto. Como mostra a figura 06.

Figura 06 – Criando e configurando um formatted text.

Como mostra as setas da figura 06:

  • 1. Devemos primeiro criar um Formatted Text e inserir o seguinte texto “%0:%1:%2” no campo Text (Funcionará como um “string format” atribuindo o valor de cada Unsigned Element para o texto);
  • 2. Clicar sobra as “chaves” do componente;
  • 3. Clicar duas vezes sobre o item “Unsigned Element”, repetir o processo três vezes, adicionando um para hora, minuto e segundo.

Após realizar os passos acima, basta ligar as saídas do Decode Date aos seus respectivos itens do Formatted Text.

Agora precisamos de um componente para apresentar este texto, para isso adicionaremos um Display Nokia 5110 ao nosso projeto e ligaremos ao Arduino, conforme mostra a figura 07.

Figura 07 – Conectando o display

Já poderíamos apresentar o texto sem problemas no display, porém, queremos ficar alternando entre data e hora, sendo assim precisamos repetir o passo da figura 06, criando um novo Formatted Text e inserido em seu texto o seguinte formato “%0/%1/%2”. Responsável pela formatação da data. Conforme a figura 08.

Figura 08 – Criando segundo Formatted Text

Em nosso Display, agora criaremos dois textos para receberem nossa data e hora. Precisamos criar dois Text Field para que consigamos realizar a troca de exibição das mesmas. Para isso basta configura o display conforme a figura 09 e 10.

Figura 09 – Criando os textos dentro do display

Ao criar os textos dentro do próprio display, é importante marcá-los com a opção Enable com o valor SinkPin, para que seja possível manipular a visibilidade de ambos. Seu projeto deve agora estar parecido com a figura 10.

Figura 10 – Display configurado

Agora devemos criar toda a validação que cuidará da visualização dos textos, para isso, iremos criar e configurar alguns componentes conforme a lista abaixo.

  • Pulse Generator – Configurar com a frequência igual a 2;
  • Counter – Nenhuma configuração adicional;
  • Compare Integer Value – Neste caso serão realizadas algumas configurações para cada compare como mostra a figura 11;
Figura 11 – Configurando os Compares

Após realizadas a configurações de todos os Compares conforme a figura 11, você deve realizar as conexões dos mesmos conforme a figura 12.

Figura 12 – Realizando as conexões de controle de visualização

Por último adicionaremos a propriedade Fill Screen para o display, assim limpando o display para cada troca de data e hora, após adicionar basta ligá-lo ao primeiro Compare . Conforme a figura 13.

Figura 13 – Criando e conectando o Fill Screen

O projeto está pronto, agora iremos exportar para a IDE do Arduino para compilar e executar no Proteus, para isso basta clicar em “Arduino” e clicar em “Send to Arduino IDE”, você notará que abrirá a IDE do Arduino, agora basta compilar e copiar a pasta em que foi gerado o arquivo de compilação. Conforme as Figuras 14 e 15.

Figura 14 – Enviando para o Arduino IDE
Figura 15 – Compilando o projeto

Como o objetivo deste artigo era apenas demonstrar o funcionamento do Visuino, mostraremos o projeto no Proteus, todos os projetos estão disponíveis no Github. Podemos ver o projeto criado em execução no Gif 01.

Gif 01 – Executando projeto

Já no Gif 02 podemos observar o projeto completo da matéria de IOT em execução (Também disponível no GitHub).

Gif 02 – Projeto final em execução.

Autores: Bruno G. Vigentas, José Henrique Teixeira, Gabriel Panca Ribeiro e Gustavo Westarb.

Deixe um comentário :)

%d bloggers like this: