Eu não sou muito habilidoso com a linguagem C e queria saber se existe uma maneira pela qual o python possa ser usado para programar um Arduino. Provavelmente, isso exigiria um IDE diferente para poder depurar os scripts eles mesmos.
Eu não sou muito habilidoso com a linguagem C e queria saber se existe uma maneira pela qual o python possa ser usado para programar um Arduino. Provavelmente, isso exigiria um IDE diferente para poder depurar os scripts eles mesmos.
Respostas:
Vai ser extremamente difícil fazer com que qualquer tipo de script Python seja executado diretamente no Arduino. O motivo é que é uma linguagem interpretada; portanto, você precisará do intérprete a bordo, além do script de texto sem formatação. Provavelmente não haverá memória suficiente para tudo isso.
Sua melhor aposta provavelmente seria encontrar uma maneira de compilar um script Python para código de máquina nativo (que é como o C / C ++ funciona). Acredito que existem projetos para fazer algo assim em outras plataformas, mas (até onde eu sei) nenhum que faça isso com sucesso no Arduino ainda.
Você pode encontrar informações mais úteis sobre esta questão no Stack Overflow: Existe uma maneira de "compilar" o código Python em um Arduino (Uno) .
Sim, é (um pouco) possível programar o Arduino usando Python. Um desses projetos no Github é a API de prototipagem do Python Arduino v2 . Ele fornece funcionalidades muito básicas, como E / S digital e E / S analógica.
Isso pode ser usado para projetos muito simples.
* Este projeto é um pouco complicado em "programar" a placa usando a conexão serial. Ele passa os comandos pela conexão serial para um esboço em execução no quadro que "executa" o comando Python.
Há um projeto que traz uma máquina virtual Python para microcontroladores, incluindo o Arduino Mega .
Aqui está uma citação do Ardunio Mega README , que dá uma idéia de como isso poderia ser (no entanto, eu não testei isso!):
A seguir, é apresentada uma sessão de exemplo usando ipm ::
ipm> import avr, sys ipm> avr.ddrA(0xff) ipm> avr.portA(0) # Pins 22-29 all at 0 V ipm> avr.portA(0xa5) ipm> sys.heap() (2622, 7424)
Eu usei pyserial com grande sucesso no controle dos pinos no arduino. Sua estação de trabalho (laptop, etc) executa um script python que se comunica em tempo real com o arduino.
Não é o mesmo que executar o script diretamente no arduino, mas eu estava fazendo um pouco mais do que eu pensava que o arduino poderia suportar (algumas análises de música, bater em uma API REST, etc.).
Outra opção a considerar é o Arduino Yun . Além do chip AVR que a maioria dos Arduinos possui, ele também inclui um chip MIPS executando Linux. Como é linux, você pode executar facilmente o código python, e qualquer pacote python puro pode ser facilmente instalado.
No entanto, toda a interessante capacidade de entrada / saída está no chip AVR, não no chip MIPS. Projetos como Autobahn e LininoIO resolvem esse problema executando um programa especial no chip AVR que executa operações de E / S sob instruções do chip MIPS.
Sabemos que esse é um problema em aberto na programação do Arduino e no mundo incorporado em geral. Existem várias soluções disponíveis no mercado, como o MicroPython, mas a maioria delas é dedicada a placas específicas e não permite manter o sistema em tempo real. Estamos trabalhando em uma solução! O VIPER é uma máquina virtual Python para Arduino DUE e todas as arquiteturas ARM de 32 bits que são executadas em cima de um sistema operacional em tempo real. Isso significa que você pode desenvolver scripts Python que podem ser executados pelo Arduino DUE, UDOO, Spark (todas as placas) e também nas novas placas do núcleo ST. Além disso, se você precisar de alto desempenho e tiver experiência em C, poderá desenvolver módulos em tempo real para VIPER que podem ser chamados e gerenciados pelos scripts Python.
Você pode ver o VIPER em ação aqui http://bit.ly/kickviper
Você pode aprender com C (AVR) como os sensores funcionam, mas isso requer muito mais tempo. O código IDE do Arduino e o código Python para Arduino usam as funções do código C para simplificar as coisas. O Python e o Arduino IDE, se usam o Firmata, usam a comunicação serial e você pensa que codifica a si próprio.
Sim. O Python pode ser usado para programar um Arduino, simplesmente importando pyfirmata, que pode fazer a interface do arduino com o Python.
Receio que o IDE do Arduino não use a linguagem C / C ++. É derivado do Processing IDE e possui uma sintaxe bastante semelhante a C / Java.