comunicação serial com c# e arduino - parte 1 - embarcados
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çãoTRANSCRIPT
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
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
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 »
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 »
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 »
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 »
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 »
Junte-se a Comunidade Embarcados: Realizar Login Registrar-se
Translate »
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 »
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 »
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 »
Junte-se a Comunidade Embarcados: Realizar Login Registrar-se
Translate »
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 »
Junte-se a Comunidade Embarcados: Realizar Login Registrar-se
Translate »
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 »
Junte-se a Comunidade Embarcados: Realizar Login Registrar-se
Translate »
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 »
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 »
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 »
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 »
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 »