Programando Arduino com Python – Primeiros passos

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.

Figura 1 – Circuito para teste do blink – Arduino com Python

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:

Figura 2 – Exemplo StandardFirmata

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.

Figura 3 – Instalando a biblioteca PyFirmata pelo Windows Search

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.

Figura 4 – Criando novo arquivo no IDLE
#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:

Figura 5 – Salvando o arquivo

Por fim, executamos o arquivo clicando na aba Run, ou pela tecla F5

Figura 6 – Executando o arquivo

Realizando estes processos, seu arquivo Python será criado, salvo e por fim executado.

Figura 7 – Execução do código

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.

Arduino com Python
Figura 8 – Resultado do projeto – Arduino com Python

Despeço-me por aqui, espero que tenham gostado e recomendo a todos que continuem a experimentar a combinação Python/Arduino.

Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.
Comentários:
Notificações
Notificar
5 Comentários
recentes
antigos mais votados
Inline Feedbacks
View all comments
Danilo José de Lima
Danilo José de Lima
01/10/2022 13:07

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?

Luís Otávio Raimann
Luís Otávio Raimann
Reply to  Danilo José de Lima
21/12/2024 09:14

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!

Wanderson Gomes
Wanderson Gomes
02/07/2022 04:35

Sensacional! Muito obrigado por compartilhar.

Luiz Sampaio
Luiz Sampaio
04/04/2022 20:07

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.

marcelo
marcelo
30/03/2022 12:06

Muito bom espero que continue o seu desenvolvimento, desejo tudo de bom pra você campeão!!!!

Last edited 4 anos atrás by Marcelo Baptista dos Passos
Home » Arduino » Programando Arduino com Python – Primeiros passos

EM DESTAQUE

WEBINARS

VEJA TAMBÉM

JUNTE-SE HOJE À COMUNIDADE EMBARCADOS

Talvez você goste: