Como programar e controlar um Arduino com Python

Como programar e controlar um Arduino com Python

Python conquistou o mundo da codificação de assalto. Junto com a ascensão dessa nova linguagem, a cena da eletrônica DIY também floresceu. Placas de desenvolvimento e computadores de placa única de empresas como Arduino e Raspberry Pi mudaram a maneira como as pessoas criam produtos eletrônicos caseiros. Não seria incrível se você pudesse programar um Arduino com Python?





como faço para alterar minha conta do google padrão no cromo

Não há sentimento melhor do que combinar duas coisas legais. Infelizmente, é impossível programar diretamente um Arduino com Python, pois as placas não têm opção para interpretação integrada da linguagem. O que é possível, entretanto, é o controle direto sobre USB usando um programa Python.





Este artigo mostrará como configurar um Arduino UNO (embora qualquer placa compatível com Arduino possa funcionar aqui) para ser programado e controlado a partir da linha de comando usando programas Python. Este tutorial foi escrito para Windows 10, mas também funciona para Mac e Linux. Você pode até usar esse fluxo de trabalho para controlar um Arduino diretamente de um Raspberry Pi para a experiência definitiva de duplo-faça-você-mesmo.





Configurando Seu Arduino para Python

Para o projeto de hoje, usaremos um Arduino Uno, junto com a interface pyFirmata para Python. Você pode usar quase qualquer placa compatível com o Arduino para isso, embora no momento da escrita apenas o Arduino Uno, Mega, Due e Nano sejam suportados pela interface pyFfirmata. Se você já é um guru do Python, pode adicionar seu próprio suporte de placa ao pyFirmata - certifique-se de atualizar o GitHub se o fizer!

Se ainda não o fez, instale o Arduino IDE. Se você é completamente novo no mundo dos microcontroladores, nosso guia do iniciante para Arduino irá ajudá-lo a colocar tudo no lugar.



Conecte sua placa Arduino e abra o IDE. Certifique-se de ter a placa e a porta corretas selecionadas no Ferramentas cardápio. Carregue o StandardFirmata esboço de exemplo e carregue-o no quadro. Isso permitirá que você controle o Arduino diretamente, desde que ele esteja conectado ao computador via USB. Desde que o esboço seja carregado em seu quadro sem erros, você está pronto para seguir em frente.

Python e controle de linha de comando

Usaremos Python 3.4 para controlar nosso Arduino, já que o módulo que você instalará especifica isso como a versão compatível mais recente. Qualquer versão anterior deve funcionar bem, e versões posteriores têm funcionado. Você pode baixar o Python 3.4 para Windows 10 do Python Software Foundation local. Se você deseja executar várias versões do Python, nosso guia para ambientes virtuais Python poderá ajudá-lo.





Depois de instalar o Python, queremos adicioná-lo à variável PATH do seu sistema. Isso nos permitirá executar o código Python diretamente da linha de comando, sem a necessidade de estar no diretório em que foi instalado. Você pode fazer isso abrindo o Painel de controle , Procurando por Ambiente e clique em Edite as variáveis ​​de ambiente do sistema . Na parte inferior da janela, selecione variáveis ​​ambientais . Isso abrirá esta janela:

Se você já vê CAMINHO na lista, clique em editar e adicione seu Pitão e Python / Scripts diretório. Se você não tiver uma variável PATH, clique em novo e adicione-o. Observe que o Python foi instalado diretamente no C: aqui. Se você instalou em outro lugar, você precisará modificá-lo para refletir isso. Clique em OK de volta na cadeia de janelas e você está quase pronto para controlar seu Arduino com Python!





The Magic Grease

Você precisará de uma peça final do quebra-cabeça para fazer o Python falar bem com nosso Arduino. Isso vem na forma de uma interface Python chamada pyFirmata . Esta interface, criada por Tino de Bruijn é disponível para download do github, embora você possa instalá-lo diretamente da linha de comando, digitando:

pip install pyfirmata

Se tudo correr bem, deve instalar e ficar assim:

Se falhar, passe a adicionar Python ao Variável de ambiente seção e certifique-se de ter fornecido o caminho correto para o diretório Python.

Fazendo acontecer

Agora tudo está configurado e você pode criar um programa Python para seu Arduino para testá-lo. Abra um IDE de sua escolha. Estaremos usando Eclipse hoje, mas você poderia facilmente usar qualquer editor de texto ou até mesmo um IDE na nuvem.

Crie um novo script e salve-o como blink.py . Rompendo a tradição com o programa de LED piscando padrão, você vai criar um programa que avisa ao usuário a quantidade de vezes que ele deseja que o LED pisque antes de executá-lo. É um programa curto, que você pode baixe aqui se você quiser ir direto ao assunto, mas vamos decompô-lo.

Em primeiro lugar, você deseja importar o que precisa do pyFirmata módulo, junto com o padrão Python Tempo módulo.

laptop toshiba conectado não carrega
from pyfirmata import Arduino, util
import time

Agora você deseja configurar a placa Arduino. Este artigo presume que você está usando um Arduino uno placa, embora várias outras placas Arduino sejam suportadas. Consulte o github pyFirmata para obter detalhes sobre o suporte a bordo.

Verifique qual porta COM você está usando no Arduino IDE e insira-a em seu código como a variável borda .

board = Arduino('COM3')

Agora você configurará o prompt do usuário. Aqueles familiarizados com Python reconhecerão tudo aqui. Você imprime uma pergunta na tela usando o entrada função e armazene a resposta como uma variável. Depois que o usuário fornece um número, o programa informa quantas vezes o LED piscará.

loopTimes = input('How many times would you like the LED to blink: ')
print('Blinking ' + loopTimes + ' times.')

Para fazer o LED piscar o número apropriado de vezes, você usa um para loop . Se você é novo em Python , tome cuidado com o recuo, pois ao contrário de outras linguagens os espaços fazem parte da sintaxe. Observe que o pino 13 é o LED integrado para o Arduino Uno, você precisará modificá-lo se sua placa for diferente.

for x in range(int(loopTimes)):
board.digital[13].write(1)
time.sleep(0.2)
board.digital[13].write(0)
time.sleep(0.2)

Você vai lançar o loopTimes variável para um inteiro aqui, já que a entrada do usuário será automaticamente armazenada como uma string. Nesta demonstração simples, estamos assumindo que o usuário irá inserir um valor numérico. Qualquer outra entrada como 'oito' gerará um erro.

Salve seu script e abra o Prompt de comando .

Luzes piscando e outras revelações

Tudo está pronto para ser executado, tudo o que você precisa fazer é navegar até onde o script está e executá-lo. Faça isso digitando cd [caminho para o diretório do script] e então digitando python blink.py .

Se estiver tudo bem, seu programa iniciará com um pequeno atraso quando o Arduino for inicializado, solicitará um número e piscará várias vezes usando o LED integrado.

A saída do programa deve ser semelhante a esta:

Assim que você pressionar Enter após o número de piscadas escolhido, o Arduino deverá executar seus pedidos.

Pequenos começos

Este projeto tem sido um começo básico para a comunicação entre o Python e uma placa Arduino. Essa abordagem é muito diferente do fluxo de trabalho usual de upload de scripts para o próprio Arduino, mas abre uma maneira totalmente nova de trabalhar com a plataforma, especialmente se você gosta da linguagem de programação Python.

Se você usar um Servidor Linux em casa, esse método de comunicação com placas Arduino poderia estender esse servidor em um sistema DIY Home Automation completo. Ao combinar scripts Python que controlam o microcontrolador com um circuito de automação DIY, sua caixa de armazenamento NAS pode assumir um novo conjunto de funções úteis.

jogos para jogar em mensagens de texto

Para tornar a experiência DIY definitiva, por que não construa sua própria caixa NAS e usá-lo para controlar também seus eletrodomésticos? Imagine como seria legal apertar o play em seu servidor Plex e ter as luzes desligadas automaticamente!

Você já está controlando o Arduino usando Python? Existem soluções alternativas incríveis que simplesmente não conhecemos ainda? Deixe-nos saber na seção de comentários abaixo!

Compartilhado Compartilhado Tweet O email 5 dicas para turbinar suas máquinas Linux VirtualBox

Cansado do fraco desempenho oferecido pelas máquinas virtuais? Aqui está o que você deve fazer para aumentar o desempenho do VirtualBox.

Leia a seguir
Tópicos relacionados
  • faça você mesmo
  • Programação
  • Arduino
  • Automação residencial
  • Pitão
Sobre o autor Ian Buckley(216 artigos publicados)

Ian Buckley é jornalista freelance, músico, performer e produtor de vídeo que mora em Berlim, Alemanha. Quando não está escrevendo ou no palco, ele está mexendo em eletrônicos ou códigos DIY na esperança de se tornar um cientista maluco.

Mais de Ian Buckley

Assine a nossa newsletter

Junte-se ao nosso boletim informativo para dicas de tecnologia, análises, e-books grátis e ofertas exclusivas!

Clique aqui para se inscrever