Anda di halaman 1dari 38

Manual do Usurio Toolkit LabINO Ferramenta de Programao Grfica para Arduino

Uberlndia-MG 01/2013

1. Apresentao
O LabINO um kit de ferramentas destinado a programao grfica para Arduino via comunicao assncrona RS-232/USB. O toolkit foi desenvolvido na plataforma de programao LabVIEW, utilizando as diversas opes de ferramentas disponveis no software. O LabINO possui suporte a vrios tipos de sensores analgicos, atuadores, motores, Display LCD 16x2 ou 20x4, dois sensores ultrasnicos, atuar como Arduino master e ter at 10 Arduinos Slave. A programao textual, como a linguagem C, compilada e executada linha por linha, j a programao com o LabINO grfica utilizando blocos de funes, a linguagem interpretada e compilada e sua execuo por fluxo de dados, essa execuo traz muitos benefcios que podem ser logo percebidos na programao, por exemplo, a facilidade de criar cdigos com execuo paralela, sem ter todas as dificuldades da linguagem textual. O Arduino controlado via Cabo e comunicao RS-232 Serial ou alguma comunicao sem fio Serial. Para que ele possa funcionar, a comunicao entre ele e o computador deve ser constante e sem interferncias, podendo utilizar os mais diversos hardwares de comunicao tal seja o boud rate de 115200. Para comunicarem entre si, foi criado um protocolo de comunicao, o protocolo permite que o usurio sinta que todos os comandos estejam executando ao mesmo tempo. Utilizar um computador para fazer o controle do Arduino muito interessante em vrias reas da computao e engenharia, o arduino por natureza necessita de outas placas (Shields) para executar tarefas que ele no possui, como acessar a internet, enviar e-mails, painel grfico, dados do mouse, teclado e joystick, salvar arquivos de texto, entre outros. vasta a gama de aplicaes do LabINO/LabVIEW com o arduino.

2. Instalao
2.1 Verses LabVIEW
O toolkit foi desenvolvido na plataforma LabVIEW verso 2010, a instalao do toolkit somente possvel se o LabVIEW instalado em sua maquina for verso 2010 ou superior. 1) Execute o pacote de instalao. Clique 2 vezes no cone:

Logo aps o menu de instalao ir aparecer.

Para instalar, clique no boto instalar, logo outra tela ir aparecer.

2) Leia os Termos de Uso e caso esteja de acordo, selecione a caixa Li e aceito os termos de uso. Os termos de uso so importantes, assumir o compromisso assumir que ir realmente seguir com os termos. OBS: O software de instalao compilado e construdo para cada usurio tendo assim a necessidade de informar o CPF no momento da validao, isso uma forma de evitar pirataria. 3) Informe o CPF e a Chave de Acesso que foi informada. O local de instalao j definido automaticamente, no altere, a no ser que esse local no exista. 4) Clique em Instalar.

Apos a instalao uma mensagem ser exibida.

Se essa mensagem aparecer um sua tela, o toolkit foi instalado normalmente. 5) Clique em Ok. Uma nova tela ir aparecer.

6) Clique em Instalar.

Uma mensagem ir aparecer em sua tela, clique em Ok e Concluir. A instalao foi bem sucedida. Para comear a utilizar o LabINO inicie o LabVIEW e v no diagrama de blocos, com boto direito clique na parte branca da tela.

Aps a instalao, temos que fazer o upload do firmware LabINO para o Arduino. Clique no arquivo zipado IDE LabINO que foi copiado em sua rea de trabalho, descompacte ele e clique em arduino.exe.

No software Arduino abra o menu: FILE > Examples > LabINO >FirmewareMaster A seguinte tela ir se abrir.

Clique em Upload (seta indicada pelo circulo vermelho). Caso pea qual porta serial o Arduino esteja conectado, informe-a. Apos alguns segundos o upload foi efetuado.

Para se utilizar Arduinos no modo slave, tende-se fazer o upload do firmeware. O suporte a arduino slave feito por endereamento, cada arduino possui seu endereo, que varia de 0 a 9. No total so 10 Arduinos slaves e 1 master. Siga os mesmos passos anteriores, mas dessa vez clique em FirmewareSlave. FILE > Examples > LabINO >FirmewareSlave

0 a 9

O primeiro Arduino possui o endereo 0, os outros so de 1 a 9. Lembre-se de sempre alterar o endereo antes de fazer o upload ou a ligao dos terminais.

2.2

Ligao Paralera I2C Arduinos Slaves


utilizar alguns

Para ligar os arduinos em paralelo preciso componentes fceis de encontrar no mercado. Materiais: - 6 x Jumpers - 2 x Resistores 1k5 Ohms

Os jumpers vo variar pela quantidade de Arduinos Slaves voc utilizar, so 2 jumpers por Arduino. Veja de forma ilustrada o esquema de ligao:

3. Conhecendo o LabVIEW
A ferramenta LabVIEW, podemos considerar assim, extremamente segura de erros e bugs, ela utilizada principalmente por engenheiros, cientistas e estudantes. Sua programao feita em forma grfica, utilizando blocos de funes para realizar o controle ou aquisio do arduino. Vamos l!

A tela inicial do LabVIEW bastante simples e funcional, do lado esquerdo temos o menu de projetos, e lado direito algumas informaes teis, suporte online, entre outros.

Para iniciar um projeto, clique em Blank VI. Durante o texto ir aparecer a seguinte sigla: VI VI significa em ingls Virtual Instrument (Instrumento Virtual), isso se deve a capacidade que o LabVIEW tem de criar instrumentos com seus componentes e blocos de funes.

O labVIEW possui duas telas fundamentais, so elas o Painel Frontal e o Diagrama de Blocos. O painel frontal a parte visual e interativo Homem Maquina, onde os componentes visuais so inseridos. H uma vasta gama de componentes visuais, com vrios formatos e designe.

Clicando com o boto direito na tela, uma caixa ir aparecer. Esses so os componentes visuais do LabVIEW, so vrios os tipos de variveis. Na paleta Numeric so os componentes visuais numricos, na paleta boolean so os componentes booleanos e assim por diante.

O Diagrama de Blocos a parte de programao grfica, algumas vezes reconhecidas como Linguagem G (G de Grfica). Ento podemos entender que o programa em geral um equipamento, que possui sua estrutura externa com controles e no interior os componentes que fazem o equipamento funcionar.

Com o boto direito, clique na parte branca da tela e ir aparecer a caixa de funes, cada verso e licena do LabVIEW possui sua caixa de funes, geralmente cada verso possui a sua. Na caixa de Funes esto os blocos principais para criar seus cdigos, como estruturas loop, for loop, case, entre outros. Vamos a paleta Structures:

Vamos entender as Structures: 1 For loop Quantas vezes vai executar o lao FOR Indica quantas rodadas o lao FOR executou Condio para finalizar o lao FOR 2 While loop Indica quantas rodadas o lao While Loop executou Condio para finalizar o lao While Loop 3 Timed Structure While Loop Controlar frequncia,

Terminal de erros

Sada de erros quando loop for finalizado Condio para finalizar o lao 4 Case Varivel que define o comportamento do caso Caso true executa um cdigo, caso false executa outro cdigo 5 Flat Sequence Executa os cdigos em sequncia como linguagem textual 6 Math Script uma estrutura de suporte a cdigos do Matlab Input Output 7- Event Structure Executa cdigo com determinados eventos, como pressionar um boto, ou mudar uma aba de uma pagina. 8 - In Place Element Forma fcil de acessar Arrays e clusters, onde necessrio abrir a linha de fluxo e separar os elementos para fazer eventuais modificaes. 9- Formula Node Executa cdigos textuais, uma linguagem desenvolvida pela NI.

Paleta Cluster, Class e Variant uma paleta de clusters, cluster uma forma de unir vrias variveis em uma nica linha, facilitando o transporte e organizao visual dos cdigos.

Paleta Numeric a pelara que contm os blocos matemticos do labVIEW.

Paleta Boolean Contm os blocos de lgica booleana.

Paleta String Essa paleta trata do processamento de Strings (palavras, caracteres, ...). Converso de String para numricos, entre outros.

Paleta de Comparaes Faz comparaes entre duas variveis e retorna valores booleanos: verdadeiro ou falso.

Paleta Time Possui componentes relacionados ao tempo, como data, hora, Delay, Wait, entre outros.

Paleta Graphics e sound Paleta contem elementos para criar grficos, figuras, imagens, emisso de beep, captura de som de microfones, gravao e reproduo.

4. Introduo ao LabINO
O LabINO uma ferramenta de programao desenvolvida para o Arduino, foi projetada para todos os tipos de usurios, alunos, hobbystas ou profissionais. Surgiu a ideia em 2012, de se criar uma programao de fcil entendimento e com vrios recursos, o LabVIEW possui todas essas qualidades e foi escolhido para ser a plataforma de desenvolvimento, sua linguagem grfica e de fcil visualizao/interpretao. O Arduino uma plataforma de desenvolvimento destinados a todos os tipos de pessoas, sua facilidade de programao e desenvolvimento de hardware proporciona ao os usurios um entendimento da parte funcional do software/hardware. Possui vrias bibliotecas com suporte a vrios tipos de sensores e atuadores. Vamos descobrir um pouco do Arduino:

Existem vrios modelos de Arduinos, o toolkit foi desenvolvido com base no microcontrolador Atmega 328PU, qualquer placa de desenvolvimento com esse microcontrolador possui suporte ao Firmeware do LabINO. Caractersticas do Arduino com Atmega 328: -12 Entradas e Sadas Digitais -6 Entradas Analgicas de 10 bits -6 Portas PWM de 8 bits -1 Comunicao Serial (TX e RX) -Memria de 30000 byte

Comunicao
A comunicao entre Arduino/Computador/LabVIEW muito importante para boa utilizao. A comunicao entre si feita por RS232 de 115200 boud rate, a velocidade de comunicao mxima aceita pelo Arduino, o controle feito por protocolo de comunicao e apenas funciona com a comunicao limpa entre computador e Arduino, independentemente do tipo de transmisso dos dados. Isso quer dizer que; para o Arduino funcionar, sempre ele deve estar conectado ao computador com a velocidade de 115200, via cabo ou sem fio. Caso o Arduino seja desconectado indevidamente, um erro pode ocorrer.

A paleta LabINO

Essa a Paleta LabINO, na primeira pagina temos os blocos principais; Configurao, Iniciar, e Finalizar. Logo, temos as pastas de outras funes.

Paleta/Sub-Paleta
LabINO

Blocos

Contedo
Config Close Init

Funo
Config: Configurar o comportamento do Arduino. Close: Finalizar a comunicao com Arduino. Init: Iniciar comunicao com o Arduino. Analog Read: Leitura Analog. Analog Write: Escrita Alanog. Digital Read: Leitura Digital. Digital Write: Escrita Digital. PWM Write : Escrita PWM. LDR: Converso analgica para Lux. LM35: Converso analgica para Temperatura. Ultrasonic: Leitura de Distncia (cm). Blink: Piscar Indicador. Clear: Limpar Display. Display: Ligar ou desligar. Print: Escrever na tela. Scroll: Mover para os lados Init: Iniciar Joy Stick. Close: Finalizar Joy Stick. Read: Ler Joy Stick. Init: Iniciar Mouse. Close: Finalizar Mouse. Read: Ler Mouse. Init: Iniciar Teclado. Close: Finalizar Teclado. Read: Ler Teclado. Servo Read: Ler ngulo Atual. Servo Write: Envia ngulo. Clear: Limpa toda Memria Read: Ler Memria Write: Escreve na Memria Speaker: Beep na porta PWM

Digital & Analog

Sensores

Analog Read Analog Write Digital Read Digital Write PWM Write LDR LM35 Ultrasonic

LCD

Joy Stick Mouse Teclado Servo EEPROM Atuadores

Blink Clear Display Print Scroll Init Close Read Init Close Read Init Close Read Servo Read Servo Write Clear Read Write Speaker

Rede

Bluetooth

Ping Apple Ping Apple: Retorna tempo. Ping Windows Ping Windows: Retorna Send e-mail tempo. Send e-mail: Envia e-mail com todas caractersticas. Init, Close Init, Close: Inicia/Finaliza. Read Read: Ler String. Write Write: Escreve String.

Serial

Read Write Read Bool Read Num Read String Insert Bool Insert Num Insert String Init Exit Flush Char to Num Num to Char Save txt Analog to V Conv. Temp Map Memoria Stat. PID Random

Read: Ler String. Write: Escreve String. Read Bool: Ler valores bool. Read Num: Ler valores num. Read String: Ler String. Insert Bool: Insere bool. Insert Num: Insere num. Insert String: Insere String. Init: Inicia fila. Exit: Finaliza fila. Flush: Limpa fila. Char to Num: Converte Num to Char: Converte Save txt: Salva arquivos .txt. Analog to V: Converte valores analgicos em volts. Conv. Temp: Converte temperatura. Map: Mapeia um valor numrico. Memoria Stat.: Dados sobre a memria do PC. PID: Proporcional Integral Derivativo. Random: Gera nmeros Randomicos. Config: Configurar Expanso Init: Iniciar Expanso Analog Read: Leitura Analog. Analog Write: Escrita Alanog. Digital Read: Leitura Digital. Digital Write: Escrita Digital. PWM Write : Escrita PWM. Clear: Limpar Grfico LCD. Set Title: Informar Titulo. Set Value: Enviar valor. Write: Enviar ngulo

Fila

String

Clculos

Exp. Arduino

Config Init Analog Read Analog Write Digital Read Digital Write PWM Write Clear Set Title Set Value Write

Digital & Analog

LCD Grafico Servo

Tabela de Blocos de Funes do LabINO

Tabela de Delay Natural


Alguns dos blocos de funes do LabINO e no Arduino possui algum tipo de Delay (Atraso), isso se deve a comunicao entre PC e Arduino que causa algum tipo de atraso na transmisso dos dados, nada de alarmante, isso natural da modelo de transmisso. Veja a tabela:

Nome Analog Read Digital Read Ultra-sonic Read Servo Read EEPROM Read Bluetooth Read Serial Read Analog Read Digital Read

Bloco

Delay (ms) 20 20 1 20 20 20 20 20 20

Tabela de Delay (Atrasos)

5. Programao
Agora vamos ver como se programar com o kit de ferramentas LabINO. Vou mostrar a vocs os exemplos que esto junto ao toolkit, esses exemplos so fceis de programar e se conseguir o hardware para realiza-los. Lembrando a programao na linguagem C do Arduino, temos duas funes fundamentais para programa-lo, so o void setup() e o void loop(). O void setup() configura os parmetros e comportamento, iniciar sensores, comunicao, atuadores entre outros. O void loop() executa os cdigos infinitamente at algo o pare, esses cdigos so ordens que voc passou para o Arduino realizar. Com o LabINO praticamente igual, existe quatro partes fundamentais, CONFIGURAR > INICIAR > EXECUTAR > FINALIZAR.

CONFIGURAR

INICIAR

EXECUTAR

FINALIZAR

A forma que o cdigo executado e os dados so transportados podemos dizer que por fluxo, o fluxo sempre ocorre da esquerda para direita e de cima para baixo. Inicio

Para controla e visualizar informaes existem dois tipos de componentes, Control e Indicator.

Vamos ao primeiro Exemplo Bsico, Leitura Analgica: Para realizarmos a leitura analgica precisamos dos seguintes componentes: 1 x potencimetro 10k Ohms 1 x protoboard 3 x jumpers A ligao dos terminais feita da seguinte forma:

No Painel Frontal: 1 x Waveforma graph 1 x Dial 1 x Boto stop (inclui automaticamente durante programao) 1 x Visa resource name (inclui automaticamente durante programao) 1 x Raised box (para acabamento)

No diagrama de Blocos:
I. II. III. IV. Utilizando a paleta LabINO, selecione o bloco CONFIG e coloque-o na tela. Selecione o bloco INIT e coloque-o na tela. Interligue os dois pela Sada de Configurao e Entrada de Configurao. No bloco INIT clique com boto direito no terminal Porta Serial Arduino, v at Create/Control. Isso criar no Painel Frontal um Visa Resource Name, onde selecionado a porta Serial que o Arduino est conectado. Na paleta Structures, selecione a estrutura While Loop e modele-a na tela depois logo aps o bloco INIT. Na paleta LabINO, entre na sub-paleta Digital & Analog e selecione o bloco Analog Read, coloque-o dentro do While Loop. Interligue a sada do bloco INIT na entrada do bloco ANALOG READ, e da mesma forma a Sada de Erro na Entrada de Erro. No bloco Analog Read, com o boto direito clique no terminal Porta Analgica, logo em Create, depois Constante. Selecione a Porta Analgica 0. Arraste para dentro do While Loop, o cone do grfico e do Dial. Interligue o grfico e dial na sada do bloco Analog Read -> Valor Analgico. Na paleta LabINO selecione Destroy e coloque-o fora do While Loop. Interligue os terminais de Sada Arduino Sada Erro no bloco Destroy. Na paleta Clusters selecione Unblundle By Name e coloque-o dentro do loop e conecte-o com a linha de erros depois do bloco Analog Read, selecione no Unbundle Status. Na paleta Boolean selecione a porta lgica AND e interligue a sada do Unbundle em um dos dois terminais de entrada da porta lgica. Na porta lgica, em um dos terminais de entrada, clique com boto direito, v em Create, e crie um novo Control. Esse boto vai servir para finalizar o loop, ou ento se houver algum erro, automaticamente o loop ser finalizado, posteriormente o programa.

V. VI. VII. VIII.

IX. X. XI. XII. XIII.

XIV. XV.

Pronto, o programa est feito! Para ter certeza que tudo est interligado perfeitamente e sem nenhum erro, voc pode recorrer ao controle , que fica do lado esquerdo e na parte de cima, caso ele esteja com uma seta branca, seu programa est pronto para ser executado, caso esteja assim seu cdigo possui um erro. Para visualizar o erro clique na seta e uma nova tela ir aparecer com os erros, clique duas vezes e automaticamente ir te levar ao local do erro.

Vamos ver como ficou o cdigo:

Vamos ao segundo Exemplo Bsico, Leitura Digital: Bom, neste exemplo vamos criar um cdigo para leitura Digital, a leitura digital apenas retorna dois tipos de valores: true (verdadeiro) ou false (falso). como ligar uma lmpada, quando estiver acessa true, se estiver desligada false. J que o programa anterior parecido com esse, apenas vou indicar os componentes a serem usados neste exemplo: 1 x push button 1 x resistor de 330 Ohms 3 x Jumpers A ligao dos terminais feita da seguinte forma:

No Painel Frontal: 1 x Visa resource name (inclui automaticamente durante programao) 1 x LED 1 x Boto stop (inclui automaticamente durante programao)

No Diagrama de Blocos:

Vamos ao terceiro Exemplo Bsico, Blink: Neste exemplo vamos aprender como piscar um LED do arduino, parece bem simples e na verdade . Bom, mas temos que comear sempre de exemplos bsicos e chegar aos complexos, vamos ver como se configura o pino digital para ser sada ou entrada, os parmetros do bloco Digital Write e bloco Delay. Vamos precisar dos seguintes componentes: 1 x LED 2 x Jumpers Ou se preferir, apenas ligar o LED no terminal 13. A ligao dos terminais feita da seguinte forma:

No Painel Frontal: 1 x Visa resource name (inclui automaticamente durante programao) 1 x Boto stop (inclui automaticamente durante programao)

No Diagrama de Blocos:

I. II. III.

IV.

V. VI.

VII. VIII.

Coloque no Diagrama de Blocos, os blocos principais, interligue os como na imagem acima. No bloco Config, passe o mouse no terminal do Pino Digital 13 e clique com boto direito, v em Create, e depois Contante, Na constante que apareceu, clique e mude para Sada. Os terminais do arduino so padronizados como Entrada, isso evita que queime algum componente caso uma ligao fique errada. O bloco Digital Write possui alguns parmetros que podem ser cruciais em um programa para que a comunicao seja fluente. Os parmetros so: qual pino Digital e o modo de envio. No terminal Pino Digital, crie uma constante e selecione o Pino 13, e no Modo crie uma constante e coloque Reenviar, isso para enviar sempre a varivel true (1 ou verdadeiro) ou false (0 ou false) a cada rodada do loop, se colocar No Reenviar, apenas vai ser enviado quando o valores booleano forem trocado. Ex. De true para false ou vice-versa. No terminal High/Low criar uma constante, passe-a para True. Na paleta Time, selecione o bloco Time Delay. Quando coloca-lo no diagrama de blocos, uma tela ir aparecer. A unidade est em segundos (1,000), se desejar colocar em micro-segundos basta apenar colocar nas centenas depois da virgula o tempo em ms. Ex. (0,050) 50 ms. Faa novamente o IV e V, apenas alterando a varivel High/Low para False. Termine de interligar os terminais.

Vamos ao quarto Exemplo Bsico, Fade: Neste exemplo vamos aprender como variar a luminosidade de um LED pela porta PWM. Para isso vamos utilizar a estrutura FOR e um pouco de programao em paralelo. Vamos precisar dos seguintes componentes: 1 x LED 2 x Jumpers Ou se preferir, apenas ligar o LED no terminal 10. A ligao dos terminais feita da seguinte forma:

No Painel Frontal: 1 x Visa resource name (inclui automaticamente durante programao) 1 x Boto stop (inclui automaticamente durante programao) 1 x Slide

No diagrama de Blocos:

Vamos entender: No primeiro for loop, temos o bloco PWM com a porta PWM 10 selecionada, e o valor PWM indicado pela quantidade de loop que ser executado, que 255 vezes. 255 o valor de 8 bits suportado pelas portas PWM (0 a 255). Dentro do primeiro for, tambm tem um delay de 10 ms conectado a linha de erro e uma varivel local Armaz. Outra varivel local stop. Para criar uma varivel local, primeiro necessrio colocar no Painel Frontal um elemento numrico para controle, no diagrama de blocos clique com boto direito no cone do elemento numrico e v at Create, local variable. Para mudar sua forma clique com o boto direito e v at Change To Write, ou Change To Read. O outro for loop praticamente a mesma coisa, o for vai executar 255 vezes, s que dessa vez dai decrementando o valor PWM, para isso temos que fazer uma conta simples, que : valor = (255 loops rodados), isso 255 0 = 255 , 255 1 = 254 e assim por diante, at o loop finalizar. Logo, existe outro While loop, que executa paralelamente ao o While loop maior, isso bom pois um no depende o fluxo do outro para ser executado. Esse loop foi criado apenas para indicar no Painel frontal, qual intensidade de luz est sendo aplicado ao LED. Utilizando uma varivel local, um delay de 1 ms, e outra varivel local do stop, pode-se informar os valores.

Outros Exemplos
J vimos anteriormente 4 exemplos de programao com LabINO e j temos uma noo como programar em blocos. Nos prximos exemplos a explicao vai ficar cada vez menor e voc ir entender normalmente.

JoyStick + Servo
Neste exemplo vamos ver como controlar um servo motor utilizando um JoyStick de computador: Componentes: 1 x JoyStick de Computador 1 x Servo Motor Jumpers Esquema de conexo:

No Painel Frontal:

Diagrama de Blocos:

Display LCD
Esse exemplo mostra como conectar e programar um Display LCD. Esquema de conexo:

Painel Frontal:

Diagrama de Blocos:

Expanso + Display LCD + LCD Nokia + LDR + Microphone


Esquema de Conexo:

Painel Frontal:

Diagrama de Blocos:

Contato:
Para adquirir o toolkit envie um e-mail de solicitao para: vendaslabino@gmail.com Para Informaes, duvidas, erros ou contato com o desenvolvedor, envie um e-mail para: labinocontato@gmail.com Informaes sobre o http://www.labinobrasil.com toolkit LabINO no site:

Referncias:
National Instruments LabVIEW: http://www.ni.com/labview/pt/ Arduino: http://arduino.cc LabINO: http://www.labinobrasil.com

Toolkit LabINO Desenvolvendo Ferramentas para o Sucesso 1-2013 Uberlndia-MG