Do server side actions até os sistemas embarcados, Python mostra-se útil como uma linguagem muitas vezes recomendada para os primeiro passos na programação. Nesse artigo, faremos uma integração entre Python e Arduino, desde a integração até nosso próprio blink “pythonizado”.
Python, por quê?
É uma das linguagens mais utilizadas atualmente. Tem como proposta a sua fácil sintaxe e utilização, diferentemente de linguagens como C, na qual Python foi escrita, e até o próprio C++. Possui menor velocidade quando comparada as linguagens mencionadas, porém a sua simplicidade convenceu a realizarmos este teste.
Requisitos
Para esse exemplo, precisaremos de:
- Computador com Python instalado e configurado, preferencialmente em sua versão mais recente.
- Python Shell ou qualquer IDE/editor de código de sua opção.
- Arduino IDE.
- Protoboard
- Placa Arduino Uno
- Cabos Jumpers (Macho – Macho)
- Leds
Nota: Usaremos o Python Shell (IDLE), que já vem junto ao Python e o prompt de comando para a execução de comandos Pip.
Para começar
Como de praxe, vamos começar pelo básico, um blink LED. Com toda sua trivialidade, pode ser considerado até mesmo um projeto bobo, mas sua importância está em dar o primeiro passo rumo a um novo mundo.
A ideia aqui, é configurar tudo o que você precisa para prosseguir em projetos de Arduino feitos com Python sem deixar de realizar um projeto. Será o nosso Hello World.
Para evitar a já mencionada trivialidade, faremos um blink modificado, que terá uma entrada para o usuário decidir quantas vezes quer que o LED pisque.
Conecte a terminal menor do LED (catodo) ao resistor de 220Ω e ao GN. Em seguida, conecte o terminal maior ao pino de sua escolha, no meu caso, o pino 13, conforme o diagrama apresentado.
Configurações
Com nosso circuito já montado, conectamos o Arduino ao computador e abrimos a Arduino IDE. Acesse Arquivos > Exemplos > Firmata > StandardFirmata, conforme a imagem a seguir:
Com o código aberto, faça o upload para a placa. Agora podemos começar a programar, desta vez, em Python.
Instale o Python (se ainda não tiver), conforme as orientações para o seu sistema operacional, disponível no site oficial.
Abra seu o Python para instalar a biblioteca pyfirmata, necessária para realizar a comunicação entre o Arduino e o Python.
A instalação é realizada com o comando:
pip install pyfirmata O comando pode ser dado pelo próprio Windows Search, pressionando o botão Win e digitando a linha para instalação, clique no comando e o terminal inicializará e instalará a biblioteca PyFirmata. Ou se preferir digite o comando no cmd ou bash.
Nota: Para aqueles que possuem mais de uma versão do Python instalada, certifique-se de abrir o IDLE/IDE na versão que você instalou a biblioteca PyFirmata, caso contrário, você irá se deparar com o erro de módulo não encontrado.
Código – Programando Arduino com Python
Após conclusão da instalação, abra o IDLE ou seu editor de preferência. Digite o código abaixo. Ele dará todas as funcionalidades necessárias para nossa aplicação.
Abrindo o IDLE, selecione File e New File ou pressione CTRL+N para criar um novo arquivo.
#by Jp - 24.02.2022
import pyfirmata #Importamos a biblioteca PyFirmata que realiza a comunicação entre Python e Arduino
import time #Importamos também a biblioteca padrão Time, com o objetivo de setar as pausas e marcações temporais entre as piscadas.
pin = 13 #Definimos para o Python que nosso pino é o 13.
port = 'COM3' #Configuramos a porta como a porta COM4. Esta configuração deve ser alterada caso sua placa não se configure nesta porta.
board = pyfirmata.Arduino(port) #Criamos a variável board que realizará os comandos a partir daqui
numeroBlink = input('Insira o número de vezes que o LED deve piscar: ') #Temos um input, que pede ao usuário para inserir um número de piscadas para o LED realizar
print("Piscando " + numeroBlink + " vezes.") #Com este comando opcional, imprimimos na tela quantas vezes o led irá piscar.
for x in range(int(numeroBlink)):#A cada elemento no escopo da variável numeroBlink, realizar os seguintes comandos:
board.digital[13].write(1)#Utilizamos a variável board e seu método .Digital para dizer ao pino 13 que ele deve acender
time.sleep(1)#Colocamos uma pausa de 0.01 segundos
board.digital[13].write(0)#Utilizamos a variável board e seu método .Digital para dizer ao pino 13 que ele deve apagar
time.sleep(1)#Colocamos uma pausa de 0.01 segundos
Tendo criado o arquivo e adicionado o código é preciso salvar. Isso pode ser feito por CTRL+S, ou clicando em File e depois, Save, onde você será levado para salvar o arquivo no local de preferência com o nome de preferência:
Por fim, executamos o arquivo clicando na aba Run, ou pela tecla F5
Realizando estes processos, seu arquivo Python será criado, salvo e por fim executado.
Simples assim, executamos nosso código e temos então nosso blink melhorado feito exclusivamente com Python, sem a necessidade de inúmeras regras sintáticas ou blocos imensos de código, a facilidade não trivial é o que encanta.
Despeço-me por aqui, espero que tenham gostado e recomendo a todos que continuem a experimentar a combinação Python/Arduino.








Primeiramente, parabenizo o autor pois foi um artigo muito objetivo e claro. Será de grande ajuda para mim.
Fiquei com uma dúvida, pois ainda não testei: o programa só é executado enquanto o arquivo python estiver sendo executado no computador?
Se sim, o Arduino somente funcionará enquanto ligado ao computador?
Em caso afirmativo, vejo esta ideia como ótima para o ensino e boa para algumas aplicações, mas não daria certo usar o arduino como embarcado. Correto?
Como qualquer microcontrolador, o Arduino não entende a linguagem C++ ou Python, mas ele seguirá as instruções que o compilador (GCC, MinGW ou o interpretador CPython) gerou a partir do código (em Object File, na linguagem C++, por exemplo). Abraço!
Sensacional! Muito obrigado por compartilhar.
Olá, João. Gostei muito do post. Sou físico, trabalho no Centro Brasileiro de Pesquisas Físicas, na Urca, no Rio. Trabalhamos também com automação de equipamentos nos experimentos. Temos um programa de estágio para alunos do ensino médio. Se estiver pelo Rio, e se interessar, entre em contato. Meu email é sampaio at cbpf.br.
Muito bom espero que continue o seu desenvolvimento, desejo tudo de bom pra você campeão!!!!