Comunicação Serial Com C# e Arduino - Parte 1 - Embarcados
Comunicação Serial Com C# e Arduino - Parte 1 - Embarcados
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
TQTVD SO
Desenvolv
Paulo/SP
Engenheir
Engenheir
Chip Card
Technolog
Divulgue s
Mais oport
Escolha de
Microproc
Sistema O
Linguagem
Tipo de Pr
Figura 2 - Iniciando um novo projeto
Simulador
31.307 visua
Translate
28.746 visua
Arduino U
23.057 visua
Comunica
19.869 visua
Arduino - E
15.629 visua
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:
Translate
Inserir outro boto, logo abaixo do btConectar, e mudar a sua propriedade Text para Enviar e Name para
btEnviar:
Agora vamos inserir um textBox, que receber os dados a serem enviados. Aps ser inserido, mudar a sua
propriedade Name para textBoxEnviar:
Translate
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:
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
Translate
Translate
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:
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
Insira outro Arduino ou crie uma porta COM virtual para vericar que atualizado automa camente o
comboBox:
Translate
Translate
Translate
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
Translate
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
Translate
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
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
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# .
Translate
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
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+
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
Translate