proyectos - python y arduino pdf
¿Hay alguna manera de "compilar" el código de Python en un Arduino(Uno)? (2)
Empecé a trabajar en un compilador de "Little Python" a C ++ (llamado Pyxie , un juego de Py CC-Pyc-C), con el objetivo específico de compilar un subconjunto de pitón cuerdo a C ++ para que pueda ejecutarse en un arduino .
Esto está lejos de estar completo al momento de escribir (0.0.16), pero actualmente puede compilar un subconjunto muy pequeño de python, suficiente para que se ejecute el ejemplo de arduino "blink". Para sustentar esto, tiene un perfil de compilación, que esencialmente significa "compilar usando la cadena de herramientas arduino".
Un programa que puede compilar se ve así:
led = 13
pinMode(led, OUTPUT)
while True:
digitalWrite(led, HIGH)
delay(1000)
digitalWrite(led, LOW)
delay(1000)
Este analiza, realiza análisis (como inferencia de tipo, etc.), compila en C ++, que luego se compila en un archivo hexadecimal, que puede cargar en su dispositivo.
Hay un largo camino por recorrer antes de que sea útil , pero está progresando y tiene una hoja de ruta / etc.
- PyPI - http://pypi.python.org/pypi/pyxie
- Página de inicio - http://www.sparkslabs.com/pyxie/index.html
En particular, una diferencia clave de Micropython (y PyMite) es que está diseñado para compilar a dispositivos demasiado pequeños para ejecutar cualquiera de las implementaciones. (Esto también significa que es muy diferente de cosas como ShedSkin que, mientras que un compilador de Python a C ++ se dirige a entornos de ejecución más grandes)
Tengo un proyecto tipo robótica con un Arduino Uno , y para resumir, estoy experimentando con algunos algoritmos de inteligencia artificial. Sin embargo, necesito implementar algunos algoritmos de matriz de alto nivel que serían bastante simples usando NumPy / SciPy , pero son una pesadilla total en C o C ++. Incluso con las bibliotecas por ahí, esto es simplemente ridículo.
¿Hay alguna manera de que pueda hacer este proyecto en Python? Creo que escuché algo acerca de que el Mega tiene esta capacidad, pero tengo un Uno, y reemplazarlo no es una opción en este momento (eso retrasaría un poco el proyecto). También escuché algunas cosas sobre el uso de Python para comunicarme al Arduino a través de USB, pero no puedo tener el cable USB mientras está funcionando. Necesito poder subir el programa y terminarlo.
¿Hay alguna opción, o acabo de llegar a un callejón sin salida?
Hubo una charla sobre el uso de Python con la robótica en este año PyConAU llamado Ah! ¡Veo que tienes la máquina que dice ''BING''! por el Dr. Graeme Cross.
La única opción recomendada para usar Python en una placa de microcontrolador fue PyMite que creo que también se conoce con el nombre de Python-On-A-Chip .
Ha sido portado a una gama de placas, específicamente menciona el Arduino Mega que dijiste que no era una opción para ti, pero es posible que sea compatible con otras placas Arduino.
Sin embargo, debido a que es una versión de "baterías no incluidas" de Python, es más que probable que tengas un problema real al obtener Numpy / Scipy, etc. en funcionamiento.
Como han sugerido otros carteles, implementar en C podría ser el camino de menor resistencia.
Actualización: nuevamente, no específicamente para Arduino, pero pyMCU busca proporcionar python en un chip. El autor afirma que puede considerar desarrollar una versión Arduino de pyMCU si hay suficiente interés.