ÍNDICE DE CONTEÚDO
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:
1 |
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
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.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#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.
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!!!!