Hudson Brendon
Aug 5, 2016 · 3 min read

O arduino é uma plataforma de prototipagem eletrônica que nos últimos anos vem ganhando muito espaço entre os entusiastas dos mais diversos segmentos. Simples e barato, desenvolver com arduino é um processo bastante prático e divertido, facilitando a inserção de qualquer leigo no mundo da programação e eletrônica. Seguindo essa idéia, por que não se utilizar do python, uma linguagem simples e tão divertida quanto o arduino, para controlar o mesmo? Sim, isso é possível.

Pyserial

O arduino não executa código python, assim como em outras linguagens, temos bibliotecas para facilitar a comunicação entre o código nátivo baseado em C/C++ e o código em python. Entre as inúmeras bibliotecas disponíveis atualmente para tal, eu escolhi a pyserial, uma biblioteca bastante simples e madura, que proporciona comunicação via porta serial.

Instalação

Em sistemas como o ubuntu apartir da versão 14.04, a pyserial já está vindo por padrão no sistema. A instalação resume-se à:

$ pip install pyserial

Conectando

Utilizaremos nessa demonstração um Arduino Uno. Para criar uma conexão com o arduino, precisaremos de uma porta, e uma velocidade, a velocidade padrão do uno é 9600, e a porta, é montada ao conectar o arduino no computador, a porta utilizada aqui será a /dev/ttyUSB0 no windows geralmente é a COM4, com isso pronto, criamos uma instância da classe Serial, no qual chamaremos de conexao, dessa forma:

>>> conexao = serial.Serial('/dev/ttyUSB0', 9600)

Se tudo deu certo, o comando abaixo retornará, True.

>>> conexao.isOpen()
True

O método isOpen, como o próprio nome diz, verifica se a conexão está aberta, caso retorne False, verifique se todas as variáveis envolvidas estão OK, já tive problemas com a permissão da porta, isso pode acontecer com você também.

Com a conexão funcionando, podemos escrever e ler informações no arduino, para isso, contamos com dois métodos a nossa disposição, o read, que ler informações das portas do arduino, e o write, que escreve informações nas portas do arduino.

Explore a documentação, à vários e vários métodos interessantes para serem usados.

Exemplo prático

Para colocar em prática, iremos construir um pequeno programa pisca-pisca para exemplificar melhor, começaremos montando o esquema no arduino que é bem simples, resumindo-se à:

A perna maior (anodo positivo) do LED entra na porta 13 e a perna menor (katodo negativo) do LED entra no GND ao lado. Com tudo pronto, gravaremos um pequeno programa no arduino, é com ele que o python irá interagir:

int led1 = 13; // Porta onde o led será inseridovoid setup(){
Serial.begin(9600); // Velocidade padrão do Uno
pinMode(led1, OUTPUT); // Porta onde o led será inserido, configurado como saida
}
void loop(){
char leitura = Serial.read(); // Variavel que receberá os valores enviados pelo programa em python
if(leitura == '1'){
digitalWrite(led1, HIGH); // Liga a porta 13 se o valor recebido for 1
}
else if(leitura == '2'){
digitalWrite(led1, LOW); // Desliga a porta 13 se o valor recebido for 2
}
}

Com o programa na memória, execute:

>>> conexao.write('1')

O LED deverá acender, e para apagá-lo execute:

>>> conexao.write('2')

O LED deverá apagar. Para automatizar o processo, utilizaremos do módulo time do python, transcreva o código abaixo em um arquivo e execute.

import serial
import time
conexao = serial.Serial('/dev/ttyUSB0', 9600) # Configuração da conexãodef pisca(tempo=1):
while True:
conexao.write('1') # Escreve 1 no arduino (LED acende)
time.sleep(tempo) # Aguarda n segundos
conexao.write('2') # Escreve 2 no arduino (LED apaga)
time.sleep(tempo) # Aguarda n segundos
if __name__ == '__main__': # Executa a função
pisca()

Conclusão

Como visto aqui, a pyserial se mostra uma maravilhosa biblioteca para se trabalhar com arduino, simples e eficaz, pode ser adotada nos mais variados projetos, provando com isso que python e arduino é um excelente casamento.

Grupy RN

Grupo de usuários Python do Estado de Rio Grande do Norte

Hudson Brendon

Written by

Developer and content creator

Grupy RN

Grupy RN

Grupo de usuários Python do Estado de Rio Grande do Norte

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade