No soy muy hábil con el lenguaje C y me preguntaba si hay una forma en que Python pueda usarse para programar un Arduino. Esto probablemente requeriría un IDE diferente para poder depurar los scripts ellos mismos.
No soy muy hábil con el lenguaje C y me preguntaba si hay una forma en que Python pueda usarse para programar un Arduino. Esto probablemente requeriría un IDE diferente para poder depurar los scripts ellos mismos.
Respuestas:
Va a ser extremadamente difícil ejecutar cualquier tipo de script Python directamente en Arduino. La razón es que es un lenguaje interpretado, por lo que necesitaría el intérprete a bordo además del script de texto sin formato. Probablemente no habrá suficiente memoria para todo eso.
Su mejor opción probablemente sea encontrar una manera de compilar un script de Python en código de máquina nativo (que es cómo funciona C / C ++). Creo que hay proyectos para hacer algo así para otras plataformas, pero (que yo sepa) ninguno que lo haga con éxito para Arduino todavía.
Puede encontrar más información útil sobre esta pregunta en Stack Overflow: ¿Hay alguna manera de "compilar" el código de Python en un Arduino (Uno) .
Sí, es (algo) posible programar el Arduino usando Python. Uno de esos proyectos en Github es la API v2 de Python Arduino Prototyping . Proporciona una funcionalidad muy básica como E / S digital y E / S analógica.
Esto se puede usar para proyectos muy simples.
* Este proyecto es un truco para "programar" la placa usando la conexión en serie. Pasa los comandos a través de la conexión en serie a un boceto que se ejecuta en la placa que luego "ejecuta" el comando Python.
Hay un proyecto que lleva una máquina virtual Python a microcontroladores, incluido el Arduino Mega .
Aquí hay una cita del Ardunio Mega README , que da una idea de cómo podría ser esto (aunque, ¡no lo he probado!):
La siguiente es una sesión de ejemplo 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)
He usado pyserial con gran éxito en el control de los pines del arduino. Su estación de trabajo (computadora portátil, etc.) ejecuta un script de Python que luego se comunica en tiempo real al arduino.
No es lo mismo que ejecutar el script directamente en el arduino, pero estaba haciendo un poco más de lo que pensaba que podía manejar el arduino (algunos análisis de música, presionar una API REST, etc.).
Otra opción a considerar es el Arduino Yun . Además del chip AVR que tiene la mayoría de los Arduinos, también incluye un chip MIPS con Linux. Como es Linux, puede ejecutar fácilmente el código de Python, y cualquier paquete de Python puro puede instalarse fácilmente.
Sin embargo, toda la capacidad de entrada / salida interesante está en el chip AVR, no en el chip MIPS. Proyectos como Autobahn y LininoIO resuelven este problema ejecutando un programa especial en el chip AVR que realiza operaciones de E / S bajo las instrucciones del chip MIPS.
Sabemos que este es un problema abierto en la programación de Arduino y en el mundo integrado en general. Hay varias soluciones disponibles en el mercado, como MicroPython, pero la mayoría de ellas están dedicadas a placas específicas y no permiten mantener el sistema en tiempo real. ¡Estamos trabajando en una solución! VIPER es una máquina virtual Python para Arduino DUE y todas las arquitecturas ARM de 32 bits que se ejecuta sobre un sistema operativo en tiempo real. Esto significa que puede desarrollar scripts de Python que Arduino DUE, UDOO, Spark (todos los tableros) pueden eximir y también en los nuevos tableros nucleares ST. Además, si necesita un alto rendimiento y es experto en C, puede desarrollar módulos en tiempo real para VIPER que pueden ser llamados y administrados por los scripts de Python.
Puedes ver VIPER en acción aquí http://bit.ly/kickviper
Podría aprender de C (AVR) cómo funcionan los sensores, pero necesita mucho más tiempo. El código IDE de Arduino y el código de Python para Arduino utilizan funciones de código C para simplificar las cosas. Python y Arduino IDE si usan Firmata, usan comunicación en serie y crees que te codificas a ti mismo.
Sí. Python puede usarse para programar un Arduino, simplemente importando pyfirmata, que puede interconectar el arduino con Python.
Tengo miedo de que Arduino IDE no use el lenguaje C / C ++. Se deriva de Processing IDE y tiene una sintaxis bastante similar a C / Java.