Você está na página 1de 20

por Fbio Souza em tera-feira, 05 de agosto de 2014.

Uma interface entre o arduino e um computador muitas vezes importante durante o desenvolvimento de
projeto ou para controle de disposi vos atravs de uma interface grca. Pode-se usar uma aplicao no
computador para Aquisio e exibio de dados em forma de grco durante algum experimento em
laboratrio ou estudo. Como j foi visto aqui no ar go sobre o Arduino Uno e sobre comunicao Serial com
Arduino, a comunicao entre a placa e o computador feira atravs de uma porta serial emulada atravs
do driver da USB. J foi exibido aqui uma aplicao de comunicao serial desenvolvida com a plataforma
JAVA. Neste ar go vamos ensinar como desenvolver uma aplicao para Windows usando a plataforma .Net
usando o ambiente Visual Studio da Microso , com a linguagem C#. Ser desenvolvido um terminal simples,
onde se poder enviar e receber caracteres atravs de uma interface grca. Esse ar go tambm servir de
base para desenvolvermos uma aplicao envolvendo botes e outros elementos visuais.
Voc pode baixar a verso express dessa ferramenta diretamente no site da plataforma. Selecione a opo
Express 2013 for Windows Desktop. Aps o download faa a instalao, que um processo bem simples
porm um pouco demorado, basta seguir os passos de instalao.
Ao Iniciar o Visual Studio ser exibida sua tela inicial e para iniciar um novo projeto deve-se acessar o menu
FILE > New Project. Como vamos trabalhar com a linguagem C#, deve-se selecionar a opo Visual C# no

Junte-se a Comunidade Embarcados:


Realizar Login Registrar-se

TQTVD SO

Desenvolv
Paulo/SP

Engenheir

Engenheir
Chip Card
Technolog

Divulgue s

Mais oport

Email

Escolha de
Microproc

Sistema O

Linguagem

Tipo de Pr
Figura 2 - Iniciando um novo projeto

Primeiro passo iniciar um novo projeto Windows Forms Applica on em C#:

Simulador

31.307 visua

Translate

Junte-se a Comunidade Embarcados:


Realizar Login Registrar-se

28.746 visua

Arduino U

23.057 visua

Comunica

19.869 visua

Arduino - E

15.629 visua

Figura 2 - Congurando um novo projeto

Agora vamos inserir os componentes no Form. O primeiro a ser inserido ser um boto e deve-se mudar a
sua propriedade Name para btConectar e a sua propriedade Text para Conectar, conforme exibido a
seguir:

Figura 3 - Inserindo um boto para conexo

Inserir um comboBox logo a frente do boto btConectar, inserido anteriormente:

Translate

Junte-se a Comunidade Embarcados:


Realizar Login Registrar-se

Figura 4 - Inserindo uma comboBox

Inserir outro boto, logo abaixo do btConectar, e mudar a sua propriedade Text para Enviar e Name para
btEnviar:

Figura 5 - Inserindo um boto para envio de dados

Agora vamos inserir um textBox, que receber os dados a serem enviados. Aps ser inserido, mudar a sua
propriedade Name para textBoxEnviar:

Translate

Junte-se a Comunidade Embarcados:


Realizar Login Registrar-se

Figura 6 - Inserindo um textbox para inserir dados para envio

Agora vamos inserir um textBox maior, que exibir os dados recebidos. Mudar as propriedades Name para
textBoxReceber, Mul line para True e ScrollBar para Ver cal. A aparncia do Form car da seguinte
forma:

Figura 7 - Textbox para recpo de dados

Prximo passo inserir um componente mer que ser responsvel pela atualizao das portas COM
disponveis no PC. Selecione o componente mer e clique dentro do Form. Ser exibido logo abaixo o
componente mer1. Troque a propriedade Name para merCOM e Interval para 1000, conforme exibido a
seguir:

Translate

Junte-se a Comunidade Embarcados:


Realizar Login Registrar-se

Figura 8 - mer para atualizao de COMs disponveis

Por l mo vamos inserir o componente de comunicao serial, o SerialPort. Selecione o componente


SerialPort e depois clique dentro do Form. Ser exibido este componente ao lado do merCOM:

Figura 9 - Inserindo o componente SerialPort responsvel pela comunicao serial

Com os componentes inseridos no Form, vamos para a codicao.


Antes de conectar a porta Serial, necessrio vericar as portas COMs disponveis para uso, e qual a porta o
usurio deseja conectar. Para isso vamos atualizar a cada segundo a ComboBox com as portas disponveis.
Vamos criar um mtodo privado dentro da classe Form1, que ser chamado de atualizaListaCOMs. Clique
com o boto direito no Form e selecione a opo View code. Insira o mtodo atualizaListaCOMs(), conforme
exibido no cdigo a seguir:

Translate

Junte-se a Comunidade Embarcados:


Realizar Login Registrar-se

Translate

Junte-se a Comunidade Embarcados:


Realizar Login Registrar-se

Para testar a aplicao necessrio clicar no boto Start ou pressionar a tecla F5. Se ver alguma porta
disponvel para comunicao, esta ser listada dentro da comBox, conforme exibido a seguir:

Figura 10 - Teste de atualizao das portas COMs disponveis

Na imagem acima nota-se que apenas a COM5 estava disponvel. Caso uma placa Arduino seja inserida,
necessrio que atualize automa camente a lista. Para isso vamos usar o merCOM que est congurado
para gerar um evento a cada segundo. Inicialmente deve-se habilitar o mer logo aps a inicializao do
Form e colocar o mtodo de atualizao dentro do evento merCOM_ ck, conforme exibido a seguir:
Obs.: Para gerar o evento merCOM_ ck basta dar duplo clique no componente merCOM na aba design.

Translate

Junte-se a Comunidade Embarcados:


Realizar Login Registrar-se

Insira outro Arduino ou crie uma porta COM virtual para vericar que atualizado automa camente o
comboBox:

Translate

Junte-se a Comunidade Embarcados:


Realizar Login Registrar-se
No exemplo acima foi criada uma COM virtual com o auxlio do programa VSPE, que pode ser baixado aqui.
Agora j se pode escolher em qual porta a aplicao vai conectar. O evento click do btConectar ser usado
para fazer a conexo. Para criar esse evento, selecione a aba de design do Form e d um duplo clique no
boto conectar. Ser gerado o evento e agora deve-se inserir o cdigo para conexo. O boto conectar
tambm servir para desconectar quando a porta j es ver conectada, conra o cdigo a seguir:

Translate

Junte-se a Comunidade Embarcados:


Realizar Login Registrar-se

Translate

Junte-se a Comunidade Embarcados:


Realizar Login Registrar-se

Figura 12 - Teste de conexo

necessrio colocar uma proteo para que o programa no seja fechado e deixe a porta COM aberta,
dessa forma impedindo que outros programas possam us-la. Para isso vamos fechar a porta dentro do
evento Form1_FormClosed:

Translate

Junte-se a Comunidade Embarcados:


Realizar Login Registrar-se

Translate

Junte-se a Comunidade Embarcados:


Realizar Login Registrar-se

O processo para conexo e fechamento da porta serial j est feito, e o prximo passo fazer o programa
enviar para o Arduino o que for digitado dentro do textBoxEnviar. Para isso, dentro do evento btEnviar_Click,
deve-se inserir o seguinte cdigo:

A recepo de dados requer um pouco mais de ateno. Inicialmente deve-se criar um evento
serialPort1_DataReceived e uma varivel global do po String. O processo de recepo acontece em uma
Thread diferente da atualizao dos componentes. A atualizao do textBoxRebecer deve ser feita fora do
evento de recepo da serial. Para isso criamos uma funo trataDadoRecebido. Conra como car o
cdigo completo da aplicao:

Translate

Junte-se a Comunidade Embarcados:


Realizar Login Registrar-se

Translate

Junte-se a Comunidade Embarcados:


Realizar Login Registrar-se

Para testar a aplicao junto ao Arduino, vamos fazer o upload do seguinte sketch:

Nesse programa o Arduino simplesmente retornar o dado que ele receber. Dessa forma, quando enviarmos
dados pelo programa, estes sero exibidos no computador por meio do textBoxRecebe. A gura abaixo
exibe os dados enviados e recebidos pela aplicao:

Translate

Junte-se a Comunidade Embarcados:


Realizar Login Registrar-se

Figura 13 - Teste de envio recebimento de dados do Arduino

Agora que a aplicao est completa, ou seja, j conseguimos enviar e receber dados, vamos a um exemplo
funcional. Conforme foi exibido no Ar go sobre comunicao serial no Arduino, vamos aproveitar o exemplo
que acender o led atravs do comando vindo pela serial. Carregue o seguinte exemplo no Arduino:

Execute a aplicao, conectando a porta na qual o Arduino est ligado e envie o caractere A. Verique
o resultado no LED conectado ao pino 13 da placa Arduino:

Translate

Junte-se a Comunidade Embarcados:


Realizar Login Registrar-se

Figura 14 - Envio de comando apra o Arduino

O download da aplicao completa pode ser feito atravs do link: Aplicao C# para interface serial com
Arduino.
Lembre-se, voc deve ser registrado e estar logado no site para fazer o download.

A ferramenta Visual Studio da Microso permite criar facilmente uma interface de comunicao Serial entre
o Arduino e um computador (com sistema operacional Windows). A par r do exemplo apresentado, pode-se
fazer aplicaes para enviar e receber comandos para o Arduino ou outro disposi vo conectado a uma porta
serial. No prximo ar go vamos fazer uma aplicao envolvendo botes e outros componentes que deixaro
nossa interface mais elegante.
Con nue lendo sobre o mesmo assunto no ar go Parte 2 de Comunicao Serial com C# .

Arduino - Primeiros Passos


Arduino - O documentrio
Placas Arduino - trajetria at o UNO
Arduino UNO
Arduino - Entradas/Sadas digitais
Arduino - Entradas Analgicas
Arduino - Sadas PWM
Arduino - Comunicao Serial
Arduino - ArduBlock
Arduino no Proteus 8.1
Simulador de Arduino: Virtual Breadboard
Arduino Leonardo
Arduino MEGA 2560

Translate

Junte-se a Comunidade Embarcados:


Realizar Login Registrar-se

Arduino - Controle de uma lmpada com LDR


Placa Arduino da Robocore - BlackBoard
Criando suas prprias bibliotecas para Arduino
Arduino UNO - Taxa de amostragem do conversor A/D
Arduino UNO - Sensor de temperatura interno
Medindo o nvel de gua com Arduino
Comunicao Serial com C# e Arduino - Parte 1
Comunicao Serial com C# e Arduino - Parte 2
Arduino: Expandindo os I/Os - Parte 1
Arduino Esplora
Arduino - Teclado touch capaci vo
Arduino - Interface com acelermetro e giroscpio
Arduino: RS-232/RS-485 - Hardware
Trinket - Uma pequena poderosa placa compa vel com Arduino
Nova Arduino Zero Pro - Disponvel no site arduino.org
Embrio: Uma ferramenta de programao visual para Arduino
Comunicao serial com Arduino u lizando Qt5 Console Applica on
U lizando microcontroladores para controle de conversores DC-DC personalizados, parte II
Mveis de escritrio + IoT - Uma impressora de recibo com NFC e Wi
LightBlue Bean - Placa compa vel com Arduino
BR-Arduino.org: Sua nova fonte de conhecimento sobre Arduino
Shield Arduino YN
Arduino Yn
Novo Shield Arduino Wi-Fi com controlador Atmel
Python + Arduino - Comunicao Serial
Arduino vs Raspberry Pi: entenda as diferenas
Papilio - Arduino + FPGA
Intel Galileo Gen 2 - Placa Arduino
Arduino TRE Developer Edi on - Lanamento!
Novo Arduino - Arduino Zero lanado
Intel Galileo - Placa Arduino
Arduino TRE
Arduino Due
Comunicao Serial Java + Arduino
UDOO - Arduino, Linux e Android em uma mesma placa

Referncias
SerialPort Class
Classe SerialPort

Comunicao Serial com C# e Arduino - Parte 1 por Fbio Souza. Esta obra est sob a licena Crea ve
Commons Atribuio-Compar lhaIgual 4.0 Internacional.

Translate

Junte-se a Comunidade Embarcados:


Realizar Login Registrar-se

Atua com desenvolvimento de projetos eletrnicos, consultoria e treinamentos na rea de sistemas embarcados.

Tweetar

Curtir

122

Como
bem
sabemos o sistema operacional Android
hoje domina o mercado de smartphones
mas mais que isto, ul mamente ele vem
aparecendo bastante na rea de
sistemas...
veja+

Voc sabe como as placas Arduino


evoluram? Sabe qual a l ma reviso
das placas USB bsicas? Este ar go exibir
a evoluo das placas bsicas da
plataforma...
veja+

Sobre
Eventos
Vdeos
Downloads
Login
Contato

Antes de apresentar a
CubieTruck,
interessante falar das duas placas que
vieram antes dela. Em 2012 foi lanada a
primeira placa chamada CubieBoard. O
desenvolvimento...
veja+

Seja Colaborador
Oportunidades
Sites e Blogs

Anuncie Conosco

Embarcados - Todos os Direitos Reservados

Translate