comunicação serial com c# e arduino - parte 1 - embarcados

20
por Fábio Souza em terça-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 disposivos através de uma interface gráfica. Pode-se usar uma aplicação no computador para Aquisição e exibição de dados em forma de gráfico durante algum experimento em laboratório ou estudo. Como já foi visto aqui no argo sobre o Arduino Uno e sobre comunicação Serial com Arduino, a comunicação entre a placa e o computador é feira através de uma porta serial emulada através do driver da USB. Já foi exibido aqui uma aplicação de comunicação serial desenvolvida com a plataforma JAVA. Neste argo vamos ensinar como desenvolver uma aplicação 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 através de uma interface gráfica. Esse argo também servirá de base para desenvolvermos uma aplicação envolvendo botões e outros elementos visuais. Você pode baixar a versão express dessa ferramenta diretamente no site da plataforma. Selecione a opção Express 2013 for Windows Desktop. Após o download faça a instalação, que é um processo bem simples porém um pouco demorado, basta seguir os passos de instalação. 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 opção Visual C# no

Upload: nefilin28

Post on 24-Jan-2016

151 views

Category:

Documents


4 download

DESCRIPTION

este trabalho consiste na comunicação serial com arduino e a liguagem de progração C# com equipamentos embarcados utilizando o visual studio como IDE de Programação

TRANSCRIPT

Page 1: Comunicação Serial Com C# e Arduino - Parte 1 - Embarcados

por Fábio Souza em terça-feira, 05 de agosto de 2014.

Uma interface entre o arduino e um computador muitas vezes é importante durante o desenvolvimento deprojeto ou para controle de disposi�vos através de uma interface gráfica. Pode-se usar uma aplicação nocomputador para Aquisição e exibição de dados em forma de gráfico durante algum experimento emlaboratório ou estudo. Como já foi visto aqui no ar�go sobre o Arduino Uno e sobre comunicação Serial comArduino, a comunicação entre a placa e o computador é feira através de uma porta serial emulada atravésdo driver da USB. Já foi exibido aqui uma aplicação de comunicação serial desenvolvida com a plataformaJAVA. Neste ar�go vamos ensinar como desenvolver uma aplicação para Windows usando a plataforma .Netusando o ambiente Visual Studio da Microso�, com a linguagem C#. Será desenvolvido um terminal simples,onde se poderá enviar e receber caracteres através de uma interface gráfica. Esse ar�go também servirá debase para desenvolvermos uma aplicação envolvendo botões e outros elementos visuais.

Você pode baixar a versão express dessa ferramenta diretamente no site da plataforma. Selecione a opçãoExpress 2013 for Windows Desktop. Após o download faça a instalação, que é um processo bem simplesporém um pouco demorado, basta seguir os passos de instalação.

Ao Iniciar o Visual Studio será exibida sua tela inicial e para iniciar um novo projeto deve-se acessar o menuFILE > New Project. Como vamos trabalhar com a linguagem C#, deve-se selecionar a opção Visual C# no

Page 2: Comunicação Serial Com C# e Arduino - Parte 1 - Embarcados

Figura 2 - Iniciando um novo projeto

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

TQTVD SOFTWARE LTDA - R

Desenvolvedor Back-end naPaulo/SP

Engenheiro Eletrônico na D

Engenheiro de Aplicações pChip Card & Security na InfiTechnologies - São Paulo/SP

Divulgue sua oportunidade

Mais oportunidades

Email

Escolha de MicrocontroladoMicroprocessador

Sistema Operacional Embar

Linguagem de programação

Tipo de Processador

Simulador de Arduino: Virt

31.307 visualizações

Junte-se a Comunidade Embarcados: Realizar Login Registrar-se

Translate »

Page 3: Comunicação Serial Com C# e Arduino - Parte 1 - Embarcados

Figura 2 - Configurando um novo projeto

Agora vamos inserir os componentes no Form. O primeiro a ser inserido será um botão e deve-se mudar asua propriedade Name para “btConectar” e a sua propriedade Text para “Conectar”, conforme exibido aseguir:

Figura 3 - Inserindo um botão para conexão

Inserir um comboBox logo a frente do botão btConectar, inserido anteriormente:

Arduino UNO

Comunicação Serial Java + A

Arduino - Entradas Analógic

28.746 visualizações

23.057 visualizações

19.869 visualizações

15.629 visualizações

Junte-se a Comunidade Embarcados: Realizar Login Registrar-se

Translate »

Page 4: Comunicação Serial Com C# e Arduino - Parte 1 - Embarcados

Figura 4 - Inserindo uma comboBox

Inserir outro botão, logo abaixo do btConectar, e mudar a sua propriedade Text para “Enviar” e Name parabtEnviar:

Figura 5 - Inserindo um botão para envio de dados

Agora vamos inserir um textBox, que receberá os dados a serem enviados. Após ser inserido, mudar a suapropriedade Name para “textBoxEnviar”:

Junte-se a Comunidade Embarcados: Realizar Login Registrar-se

Translate »

Page 5: Comunicação Serial Com C# e Arduino - Parte 1 - Embarcados

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 aparência do Form ficará da seguinteforma:

Figura 7 - Textbox para recpção de dados

Próximo passo é inserir um componente �mer que será responsável pela atualização das portas COMdisponíveis no PC. Selecione o componente �mer e clique dentro do Form. Será exibido logo abaixo ocomponente �mer1. Troque a propriedade Name para “�merCOM” e Interval para 1000, conforme exibido aseguir:

Junte-se a Comunidade Embarcados: Realizar Login Registrar-se

Translate »

Page 6: Comunicação Serial Com C# e Arduino - Parte 1 - Embarcados

Figura 8 - �mer para atualização de COMs disponíveis

Por úl�mo vamos inserir o componente de comunicação serial, o SerialPort. Selecione o componenteSerialPort e depois clique dentro do Form. Será exibido este componente ao lado do �merCOM:

Figura 9 - Inserindo o componente SerialPort responsável pela comunicação serial

Com os componentes inseridos no Form, vamos para a codificação.

Antes de conectar a porta Serial, é necessário verificar as portas COMs disponíveis para uso, e qual a porta ousuário deseja conectar. Para isso vamos atualizar a cada segundo a ComboBox com as portas disponíveis.Vamos criar um método privado dentro da classe Form1, que será chamado de atualizaListaCOMs. Cliquecom o botão direito no Form e selecione a opção View code. Insira o método atualizaListaCOMs(), conformeexibido no código a seguir:

Junte-se a Comunidade Embarcados: Realizar Login Registrar-se

Translate »

Page 7: Comunicação Serial Com C# e Arduino - Parte 1 - Embarcados

Junte-se a Comunidade Embarcados: Realizar Login Registrar-se

Translate »

Page 8: Comunicação Serial Com C# e Arduino - Parte 1 - Embarcados

Para testar a aplicação é necessário clicar no botão Start ou pressionar a tecla F5. Se �ver alguma portadisponível para comunicação, esta será listada dentro da comBox, conforme exibido a seguir:

Figura 10 - Teste de atualização das portas COMs disponíveis

Na imagem acima nota-se que apenas a COM5 estava disponível. Caso uma placa Arduino seja inserida, énecessário que atualize automa�camente a lista. Para isso vamos usar o �merCOM que está configuradopara gerar um evento a cada segundo. Inicialmente deve-se habilitar o �mer logo após a inicialização doForm e colocar o método de atualização 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.

Junte-se a Comunidade Embarcados: Realizar Login Registrar-se

Translate »

Page 9: Comunicação Serial Com C# e Arduino - Parte 1 - Embarcados

Insira outro Arduino ou crie uma porta COM virtual para verificar que é atualizado automa�camente ocomboBox:

Junte-se a Comunidade Embarcados: Realizar Login Registrar-se

Translate »

Page 10: Comunicação Serial Com C# e Arduino - Parte 1 - Embarcados

No exemplo acima foi criada uma COM virtual com o auxílio do programa VSPE, que pode ser baixado aqui.

Agora já se pode escolher em qual porta a aplicação vai conectar. O evento click do btConectar será usadopara fazer a conexão. Para criar esse evento, selecione a aba de design do Form e dê um duplo clique nobotão conectar. Será gerado o evento e agora deve-se inserir o código para conexão. O botão conectartambém servirá para desconectar quando a porta já es�ver conectada, confira o código a seguir:

Junte-se a Comunidade Embarcados: Realizar Login Registrar-se

Translate »

Page 11: Comunicação Serial Com C# e Arduino - Parte 1 - Embarcados

Junte-se a Comunidade Embarcados: Realizar Login Registrar-se

Translate »

Page 12: Comunicação Serial Com C# e Arduino - Parte 1 - Embarcados

Figura 12 - Teste de conexão

É necessário colocar uma proteção para que o programa não seja fechado e deixe a porta COM aberta,dessa forma impedindo que outros programas possam usá-la. Para isso vamos fechar a porta dentro doevento Form1_FormClosed:

Junte-se a Comunidade Embarcados: Realizar Login Registrar-se

Translate »

Page 13: Comunicação Serial Com C# e Arduino - Parte 1 - Embarcados

Junte-se a Comunidade Embarcados: Realizar Login Registrar-se

Translate »

Page 14: Comunicação Serial Com C# e Arduino - Parte 1 - Embarcados

O processo para conexão e fechamento da porta serial já está feito, e o próximo passo é fazer o programaenviar para o Arduino o que for digitado dentro do textBoxEnviar. Para isso, dentro do evento btEnviar_Click,deve-se inserir o seguinte código:

A recepção de dados requer um pouco mais de atenção. Inicialmente deve-se criar um eventoserialPort1_DataReceived e uma variável global do �po String. O processo de recepção acontece em umaThread diferente da atualização dos componentes. A atualização do textBoxRebecer deve ser feita fora doevento de recepção da serial. Para isso criamos uma função trataDadoRecebido. Confira como ficará ocódigo completo da aplicação:

Junte-se a Comunidade Embarcados: Realizar Login Registrar-se

Translate »

Page 15: Comunicação Serial Com C# e Arduino - Parte 1 - Embarcados

Junte-se a Comunidade Embarcados: Realizar Login Registrar-se

Translate »

Page 16: Comunicação Serial Com C# e Arduino - Parte 1 - Embarcados

Para testar a aplicação junto ao Arduino, vamos fazer o upload do seguinte sketch:

Nesse programa o Arduino simplesmente retornará o dado que ele receber. Dessa forma, quando enviarmosdados pelo programa, estes serão exibidos no computador por meio do textBoxRecebe. A figura abaixoexibe os dados enviados e recebidos pela aplicação:

Junte-se a Comunidade Embarcados: Realizar Login Registrar-se

Translate »

Page 17: Comunicação Serial Com C# e Arduino - Parte 1 - Embarcados

Figura 13 - Teste de envio recebimento de dados do Arduino

Agora que a aplicação está completa, ou seja, já conseguimos enviar e receber dados, vamos a um exemplofuncional. Conforme foi exibido no Ar�go sobre comunicação serial no Arduino, vamos aproveitar o exemploque acenderá o led através do comando vindo pela serial. Carregue o seguinte exemplo no Arduino:

Execute a aplicação, conectando a porta na qual o Arduino está ligado e envie o caractere ‘A’. Verifiqueo resultado no LED conectado ao pino 13 da placa Arduino:

Junte-se a Comunidade Embarcados: Realizar Login Registrar-se

Translate »

Page 18: Comunicação Serial Com C# e Arduino - Parte 1 - Embarcados

Figura 14 - Envio de comando apra o Arduino

O download da aplicação completa pode ser feito através do link: Aplicação C# para interface serial comArduino.

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 comunicação Serial entreo Arduino e um computador (com sistema operacional Windows). A par�r do exemplo apresentado, pode-sefazer aplicações para enviar e receber comandos para o Arduino ou outro disposi�vo conectado a uma portaserial. No próximo ar�go vamos fazer uma aplicação envolvendo botões e outros componentes que deixarãonossa interface mais elegante.

Con�nue lendo sobre o mesmo assunto no ar�go Parte 2 de Comunicação Serial com C# .

Arduino - Primeiros Passos

Arduino - O documentário

Placas Arduino - trajetória até o UNO

Arduino UNO

Arduino - Entradas/Saídas digitais

Arduino - Entradas Analógicas

Arduino - Saídas PWM

Arduino - Comunicação Serial

Arduino - ArduBlock

Arduino no Proteus 8.1

Simulador de Arduino: Virtual Breadboard

Arduino Leonardo

Arduino MEGA 2560

Junte-se a Comunidade Embarcados: Realizar Login Registrar-se

Translate »

Page 19: Comunicação Serial Com C# e Arduino - Parte 1 - Embarcados

Arduino - Controle de uma lâmpada com LDR

Placa Arduino da Robocore - BlackBoard

Criando suas próprias bibliotecas para Arduino

Arduino UNO - Taxa de amostragem do conversor A/D

Arduino UNO - Sensor de temperatura interno

Medindo o nível de água com Arduino

Comunicação Serial com C# e Arduino - Parte 1

Comunicação Serial com C# e Arduino - Parte 2

Arduino: Expandindo os I/Os - Parte 1

Arduino Esplora

Arduino - Teclado touch capaci�vo

Arduino - Interface com acelerômetro e giroscópio

Arduino: RS-232/RS-485 - Hardware

Trinket - Uma pequena poderosa placa compa�vel com Arduino

Nova Arduino Zero Pro - Disponível no site arduino.org

Embrio: Uma ferramenta de programação visual para Arduino

Comunicação serial com Arduino u�lizando Qt5 Console Applica�on

U�lizando microcontroladores para controle de conversores DC-DC personalizados, parte II

Móveis de escritório + IoT - Uma impressora de recibo com NFC e Wifi

LightBlue Bean - Placa compa�vel com Arduino

BR-Arduino.org: Sua nova fonte de conhecimento sobre Arduino

Shield Arduino YÚN

Arduino Yún

Novo Shield Arduino Wi-Fi com controlador Atmel

Python + Arduino - Comunicação Serial

Arduino vs Raspberry Pi: entenda as diferenças

Papilio - Arduino + FPGA

Intel Galileo Gen 2 - Placa Arduino

Arduino TRE Developer Edi�on - Lançamento!

Novo Arduino - Arduino Zero lançado

Intel Galileo - Placa Arduino

Arduino TRE

Arduino Due

Comunicação Serial Java + Arduino

UDOO - Arduino, Linux e Android em uma mesma placa

Referências

SerialPort Class

Classe SerialPort

Comunicação Serial com C# e Arduino - Parte 1 por Fábio Souza. Esta obra está sob a licença Crea�veCommons Atribuição-Compar�lhaIgual 4.0 Internacional.

Junte-se a Comunidade Embarcados: Realizar Login Registrar-se

Translate »

Page 20: Comunicação Serial Com C# e Arduino - Parte 1 - Embarcados

Tweetar

veja+

Comobem

sabemos o sistema operacional Androidhoje domina o mercado de smartphonesmas mais que isto, ul�mamente ele vemaparecendo bastante na área desistemas...

veja+

Você sabe como as placas Arduinoevoluíram? Sabe qual é a úl�ma revisãodas placas USB básicas? Este ar�go exibiráa evolução das placas básicas daplataforma...

veja+

Antes de apresentar aCubieTruck, é

interessante falar das duas placas quevieram antes dela. Em 2012 foi lançada aprimeira placa chamada CubieBoard. Odesenvolvimento...

Atua com desenvolvimento de projetos eletrônicos, consultoria e treinamentos na área de sistemas embarcados.

Sobre

Eventos

Vídeos

Downloads

Login

Contato

Seja Colaborador

Oportunidades

Sites e Blogs

Anuncie Conosco

Embarcados - Todos os Direitos Reservados®

122CurtirCurtir

Junte-se a Comunidade Embarcados: Realizar Login Registrar-se

Translate »