Artigo Projeto Final
Interface de Controle com LabVIEW e Arduino Alexsandro Socorro, Anderson Félix, Anderson Mestre, Jeferson Galdino, Linneker Michalski e Marco Antonio
Fundação Universidade Federal de Rondônia, Núcleo de Tecnologia, Departamento de Engenharia Elétrica – DEE Bacharelado em Engenharia Elétrica – 6º Período – Disciplina de Teoria de Comunicações
– Resumo
O presente trabalho tem por objetivo o desenvolvimento de um protótipo de monitoramento através da interface gráfica do Arduino e o seu controle através do LabVIEW, com o uso da ferramenta de comunicação serial Visa, onde é possível realizar essa interação com o envio e recepção dos sinais. Tal objetivo vem da necessidade de se monitorar dados, automatizar processos e dispositivos, controla-los remotamente. A metodologia utilizada para a elaboração deste projeto incluiu uma pesquisa sobre o Arduino, o
LabVIEW, VISA (Virtual Instrument Software
Architecture) para compreender o funcionamento e usabilidade de cada componente e aplica-los de maneira mais otimizada. A partir deste ponto, empregar os materiais na construção do protótipo e verificar a estruturação da lógica de programação, a fim aplicar essa interface em monitoramento e controle. – I ndex ndex Terms
I.
Arduino, LabVIEW, Controle.
Introdução
Nos tempos atuais o conhecimento técnico se tornou bastante requisitado em função do imenso número de máquinas e equipamento cada vez mais diversos e complexos. Os produtos atuais estão se modificando e automatizando. Permitindo observar a interação de componentes como Arduino e LabVIEW, onde pode ser aplicado na interface de comunicação, monitoramento e controle de processos e/ou dispositivos, como: velocímetros, luminosidade, tanques reservatórios de água, caldeiras, automação industrial e residencial, entre outras aplicações. Em relação às ferramentas utilizadas na concepção do projeto, são apresentadas a seguir as características e funcionalidades:
Arduino
O Arduino é uma ferramenta para fazer sentir que o computador está mais ligado ao mundo
físico do que ao computacional (desktop). É uma plataforma de computação livre (open-source) baseada em uma placa de microcontrolador simples, e um ambiente de desenvolvimento para escrever o software para a placa. [1] Ou seja, é uma plataforma de prototipagem eletrônica de hardware (componente) e software (sistema) que está aberto a contribuição da sociedade. O conceito Arduino surgiu na Itália em 2005 com o objetivo de criar um dispositivo para controlar projetos e protótipos construídos de uma forma menos dispendiosa do que outros sistemas disponíveis no mercado. [2] O Arduino é uma plataforma de computação física (são sistemas digitais ligados a sensores e atuadores, que permitem construir sistemas que percebam a realidade e respondem com ações físicas), baseada em uma simples placa de Entrada/Saída microcontrolada e desenvolvida sobre uma biblioteca que simplifica a escrita da programação em C/C++. O Arduino pode ser usado para desenvolver artefatos interativos autônomos ou conectados ao computador ou a outro sistema em que possa interagir (LabVIEW, Adobe Flash, Processing, Max/MSP, Pure Data ou SuperCollider). [2] Um microcontrolador (também denominado MCU) é um computador em um chip, que contém processador, memória e periféricos de entrada/saída. É um microprocessador que pode ser programado para funções específicas, em contraste com outros microprocessadores de propósito gerais (como os utilizados nos PCs). Eles são embarcados no interior de algum outro dispositivo, para que possam controlar suas funções ou ações. [2] Dessa forma é logicamente programável (criação de programas), utilizando uma linguagem própria baseada em C/C++, que, quando implementada faz com que o hardware execute certas ações. Dessa forma se faz a configuração das etapas de processamento. O Arduino é um kit de desenvolvimento capaz de interpretar variáveis no ambiente e transformálas em sinal elétrico correspondente, através de sensores ligados aos seus terminais de entrada, e
atuar no controle ou acionamento de algum outro elemento eletroeletrônico conectado ao terminal de saída. [1] Ou seja, é uma ferramenta de controle de entrada e saída de dados, que pode ser acionada por um sensor (por exemplo, um resistor dependente da luz - LDR) e que, logo após passar por uma etapa de processamento, o microcontrolador, poderá acionar um atuador (um motor, por exemplo). Como se pode perceber funciona como um computador, onde os sensores de entrada como, por exemplo, o mouse e o teclado, e os de saída como a impressora e as caixas de som, funciona de maneira semelhante no Arduino só que ele faz interface com circuitos elétricos, podendo receber ou enviar informações/tensões neles. O grande diferencial desta ferramenta é que ela é multiplataforma e também é desenvolvida e aperfeiçoada por uma comunidade que divulga os seus projetos e seus códigos de aplicação, onde qualquer pessoa com conhecimento de programação pode modificá-lo e ampliá-lo de acordo com a necessidade, visando sempre a aperfeiçoamento dos produtos criados através do Arduino e criando aplicações mais complexas. Verificando a versatilidade para desenvolver objetos interativos, tendo como entradas uma variedade de sensores ou interruptores, e o controle de uma variedade de saídas físicas. Sendo assim, pode ser perfeitamente utilizado para implementar uma ferramenta de interface de controle e monitoramento. Foi desenvolvido utilizando uma placa Arduino UNO Rev. 3. Figura 1 - Arduino UNO Ver3 original
desenvolver qualquer aplicação de medição ou controle em muito menos tempo. [3]
Ambiente gráfico de desenvolvimento de sistemas LabVIEW
Da concepção de uma ideia à comercialização de um produto, a abordagem exclusiva da NI de desenvolvimento baseado em plataforma para aplicações em engenharia e ciências tem incentivado o progresso em uma ampla variedade de setores da indústria. O pilar central dessa abordagem é o LabVIEW, um ambiente de desenvolvimento criado especificamente para acelerar a produtividade de engenheiros e cientistas. Com sua sintaxe de programação gráfica, que torna simples visualizar, criar e codificar sistemas de engenharia, o ambiente LabVIEW é o que melhor ajuda os engenheiros a traduzir suas ideias em realidade, reduzir os tempos dos testes e oferecer informações com base nos dados coletados. Da construção de máquinas inteligentes à garantia da qualidade dos dispositivos conectados, o LabVIEW tem sido há décadas a solução preferida para a criação, implementação e teste da Internet das Coisas. [4]
LabVIEW
O LabVIEW (Laboratory Virtual Instrument Engineering Workbench) é uma linguagem de programação gráfica originária da National Instruments. Surgiu em 1986 para o Macintosh e atualmente existem também ambientes de desenvolvimento integrados para os Sistemas Operacionais Windows, Linux e Solaris. [5] Os principais campos de aplicação do LabVIEW é a realização de medições e a automação. A programação é feita de acordo com o modelo de fluxo de dados, o que oferece a esta linguagem vantagens para a aquisição de dados e para a sua manipulação. Os programas em LabVIEW são chamados de instrumentos virtuais ou, simplesmente, IVs. São compostos pelo painel frontal, que contém a interface, e pelo diagrama de blocos, que contém o código gráfico do programa. O programa é processado por um compilador, deste modo a sua performance é comparável à exibida pelas linguagens de programação de alto nível. A linguagem gráfica do LabVIEW é chamada de "G". [6]
Fonte: www.arduino.cc (2015)
LabVIEW (NI-NATIONAL INSTRUMENTS)
O software de projeto gráfico de sistemas NI LabVIEW é a base da plataforma da National Instruments. Com o LabVIEW, se tem um conjunto abrangente de ferramentas que permite
Os blocos de funções são designados por instrumentos virtuais. Isto é assim, pois em princípio cada programa (Sub-IV) pode ser usado como subprograma por qualquer outro ou pode, simplesmente, ser executado isoladamente. Devido à utilização do modelo do fluxo de dados, as chamadas recursivas não são possíveis,
entretanto, pode-se conseguir esse efeito através da aplicação de algum esforço extra. A programação dos IVs ocorrem com linhas (arames) de ligação e definem deste modo, o fluxo de dados. Cada IV pode possuir entradas e/ou saídas. A execução de um IV começa quando todas as entradas estão disponíveis; os resultados do processamento são então colocados nas saídas assim que a execução do subprograma (Sub-IV) tenha terminado. Desta maneira, a ordem pela qual as tarefas são executadas é definida em função dos dados, sem uma ordem pré-definida (por exemplo, "da esquerda para a direita"). Uma importante consequência destas regras é a facilidade com que podem ser criados processos paralelos no LabVIEW. Os sub-IVs sem interdependência dos respectivos dados são processados em paralelo. Os sub-IVs que não possuem entradas são executados no início do programa. Se o sub-IV não possuir saídas, os dados resultantes são ignorados ou, então, usados pelo exterior, ou seja, são escritos para o disco rígido ou para a rede, ou até mesmo enviado para impressão. Da mesma forma, um sub-IV sem entradas pode receber dados provenientes de aparelhos periféricos ou pode gerar os seus próprios dados (um exemplo é um gerador de números aleatórios). Os sub-IVs podem estar interligados, com uma certa complexidade. Muitas das funções próprias do LabVIEW são, por sua vez, IVs normais, que podem ser modificados pelo programador (o que não se recomenda). Os IVs se baseiam em uma série de funções básicas (primitivas) que não podem ser modificadas pelo programador (ao invés dos IVs). Muitas IVs e primitivas em LabVIEW são polimorfos, ou seja, a sua funcionalidade adaptase ao tipos de dado que recebem. Por exemplo, a função Build-Array pode ser usada para a criação de qualquer variável, ou seja, de strings, de inteiros e também de arrays e de clusters. Também é possível ao programador construir os seus próprios IVs polimorfos. No fundo, consistem de uma coleção de vários IVs com diferentes tipos de dados, entradas e saídas.
boa interface gráfica, onde a programação ocorre sem a necessidade de escrever qualquer linha de código. A apresentação gráfica dos processos aumenta a facilidade de leitura e de utilização. Uma grande vantagem em relação às linguagens baseadas em texto é a facilidade com que se criam componentes que se executem ações paralelamente. [7] Em projetos de grande dimensão é muito importante planejar a sua estrutura desde o início, como acontece nas outras linguagens de programação, para facilitar a montagem e interpretação do projeto executado.
NI -VISA
O Virtual Instrument Software Architecture (VISA) é um padrão para a configuração, programação e solução de problemas de sistemas de instrumentação que compreendem interfaces de GPIB, VXI, PXI, Serial, Ethernet, e/ou USB. O VISA fornece a interface de programação entre hardware (componentes) e os ambientes de desenvolvimento como o LabVIEW, o Lab Windows / CVI e Measurement Studio para o Microsoft Visual Studio. O NI-VISA é a implementação da National Instruments da entrada e saída padrão (VISA I/O standard). O NI-VISA inclui bibliotecas de software, serviços interativos, como NI I/O Trace (rastreamento) e o VISA Interactive Control (controle interativo), e programas de configuração por meio da automação e medição (Measurement & Automation Explorer) para todas as necessidades de desenvolvimento. O NI-VISA é padrão em toda a linha de produtos da National Instruments, facilitando a interoperabilidade, assim como desenvolvimento de softwares (programas) que não vão se tornar obsoletos com a evolução dos componentes (hardwares) da interface de instrumentação. [8] Figura 2: Fluxograma de aplicação do VISA
Os dados podem ser ligados ao Painel frontal através de manipuladores. Por exemplo, a inserção de números pode ser dependente de um manípulo e uma variável de saída booleana pode ser realizada por um LED colocado no painel. O painel frontal do LabVIEW é um meio confortável para construir programas com uma
Fonte: www.ni.com/visa/ (2015)
Compreendendo o funcionamento do código de controle, por meio do seguinte fluxograma:
Objetivos
II.
O objetivo deste projeto é a construção de um protótipo de interface de comunicação, monitoramento e controle de processos e/ou dispositivos. Assim como, compreender as ferramentas utilizadas na implementação do projeto, buscando analisar o uso da interface como instrumento de automação; aprimorando habilidades de instrumentação eletrônica e o reconhecimento de características especificas dos componentes utlizados; além de projetar a lógica de controle da interface de comunicação Arduino-LabVIEW através da ferramenta VISA.
Materiais e Métodos
III.
Relação de materiais utilizados: Quantidade
Material
2 1 1 3 1 1
Leds Potenciômetro Botão (Tipo: Apertar) Resistores 330 Ω Arduino LabVIEW (com ferramenta VISA)
(Tabela 1) Relação dos materiais
Compreendendo os estágios de funcionamento e o método de execução:
Controle (LabVIEW)
Inicia na comunicação serial da ferramenta VISA com o Arduino, através do sinal de entrada (E/S) e do número de vezes que um sinal em um canal de comunicação muda seu estado (baud rate), analisando os comandos inseridos; executando assim as ferramentas essenciais do VISA (Write: manda um sinal pro Arduino; e Read: lê o sinal que vem do Arduino); também utiliza-se conversores de Strings (sequencia de caracteres), que converte a String para números; utilizando posteriormente conversores de números para Strings; insere sinais de comparação para entrada de bits, onde qualquer sinal maior que zero será lido; aplicando um Delay (tempo de resposta entre as duas interfaces) para ter uma diferença de tempo entre as comunicações LabVIEWArduino; passando finalmente para a concatenação (junta todos os sinais de entrada em um só sinal de saída); executando assim a função desejada.
Esse fluxo de funções descreve uma relação bem simplificada que demonstra com clareza a execução do dispositivo. Em relação aos aspectos de montagem:
Montagem
Primeiramente foi simulada a montagem do circuito no programa Fritzing, o qual se obteve o esquema de montagem e o esquemático. Figura 3 - Esquema de montagem no Fritzing do Circuito
Fonte: Autor (2015)
Posteriormente, ajustou-se as características de controle do dispositivo com a linguagem de programação gráfica LabVIEW, resultando no esquema de blocos do Anexo 1. O que resulta no seguinte painel frontal, onde mostra o layout do projeto, para ajustes e instrumentação. Figura 4 – Painel frontal
V.
Conclusão
Foi observado que dispositivo funcionou conforme previsto onde a comunicação serial da ferramenta VISA foi aplicada na interface de controle LabVIEW que interagiu com o Arduino, resultando em um painel de controle para dispositivos de monitoramento e controle de processos e/ou dispositivos, podendo ser aplicado para diversos fins, como: velocímetros, controle de intensidade luminosidade, nível de tanques reservatórios de água, velocidade de aquecimento de caldeiras, automação industrial e residencial, entre outras aplicações. Verificando assim a aplicabilidade do projeto e o seu uso para mensurar com eficácia o desempenho de dispositivos e/ou processos, buscando assim otimiza-los.
VI.
Referências Bibliográficas
[1] Arduino Home Page. Disponível em: Fonte: Autor (2015)
IV.
Discussão e Resultados
O dispositivo funciona com a comunicação serial da ferramenta VISA aplicada na interface controlada pelo LabVIEW com o Arduino, resultando em um painel de controle para dispositivos de monitoramento e controle de processos e/ou dispositivos, como: velocímetros, luminosidade, tanques reservatórios de água, caldeiras, automação industrial e residencial, entre outras aplicações. Mostrando a interação entre diversos tipos de sinais, PWM, digital e analógico. Entendendo o funcionamento do controle do LabVIEW, através da montagem do circuito e respectiva estruturação da programação de blocos desejada. Realizou-se testes de funcionamento para visualização dos resultados, visando entender a interação entre os tipos de sinais e a interface gráfica, assim como utilizar o painel de controle do dispositivo (frontal) para realizar o monitoramento e controle do dispositivo a ele associado, automatizando esse processo a fim de aperfeiçoar a leitura e análise de dados.
[2] Guimarães, Pereira da Fonseca Erika / Beppu, Mathyan Motta – Apostila Arduino – Universidade Federal Fluminense, 2010. [3] Uma plataforma, infinitas possibilidades. National Instruments. Disponível em: [4] Página Oficial do LabVIEW da National Instruments - Disponível em: [5] O que é LabVIEW? Disponível em: [6] Ajuda do LabVIEW Disponível em : [7] Curso de LabVIEW (NI). Disponível em: [8] Whats Is VISA. Disponível em :