¿Es posible programar un Arduino en otros idiomas?

11

¿Es posible programar un Arduino con otros lenguajes que no estén basados ​​en C / C ++? ¿Qué se requeriría para hacerlo? Sé que hay otros IDE disponibles, tengo curiosidad por los lenguajes de programación reales, como por ejemplo poder codificar el Arduino en Python.

nathangiesbrecht
fuente
He editado la pregunta para aclarar que estoy hablando de idiomas, no del IDE.
nathangiesbrecht
2
Si C # es lo tuyo, echa un vistazo a Netduino.
Kevin Mark
1
@KevinMark Existe el pequeño problema de que es posible que no pueda usar un Netduino (necesita los puertos adicionales de un Mega, por ejemplo).
Polar
@Polar Creo que el Netduino Go tiene opciones de conectividad adicionales.
Kevin Mark
1
@powtac String es específico de Arduino? Me pregunto por qué tengo tantos en mi código entonces ...
Polar

Respuestas:

5

Definitivamente es posible usar lenguajes alternativos para el desarrollo con Arduino, simplemente no necesariamente usando el IDE estándar. Esto es así, al final del día, el código C / C ++ se ensambla en código de bytes para el chip AT en la placa Arduino. Un lenguaje que podría usar es Céu , una versión de nivel superior de C / C ++. El problema principal que tendrá es encontrar un compilador para su idioma de elección; al final del día, podría escribir el suyo propio; sin embargo, esto requiere un conocimiento íntimo de C / C ++ de todos modos. Por lo tanto, probablemente sea mejor seguir con C / C ++, al menos por el momento.

EDITAR: ha reformulado un poco su pregunta, por lo que sí, sería posible programar su Arduino en Python (mala elección de idioma, aunque esa es solo mi opinión), pero necesitaría un IDE diferente / un compilador personalizado por las razones encima. Además, debe tener cuidado al vincular bibliotecas escritas en un idioma diferente para Arduino (ya que todas son C / C ++).

Polar
fuente
Realmente no es posible ejecutar python en el arduino (excepto el Arduino Mega, de todos modos). El proyecto python-on-a-chip está trabajando en un tiempo de ejecución de python compacto, y necesita al menos ~ 8 KB de SRAM.
Connor Wolf
1
Python realmente no es adecuado para entornos pequeños con limitaciones de memoria.
Connor Wolf
2
@ConnorWolf Dos puntos: 1) Mi uso de Python como ejemplo fue como estaba en la pregunta: de todos modos, no me gusta Python. 2) Teóricamente, podría convertir Python en C y luego evitaría la necesidad de un tiempo de ejecución de Python en la parte superior del gestor de arranque.
Polar
1

Parece que actualmente no hay forma de codificar fácilmente un Arduino en otra cosa que no sea Assembly / C / C ++ (y Céu como se menciona en la respuesta de Polar, aunque esto solo se traduce a C ++). Sin embargo, hay muchos idiomas desde los cuales puedes comunicarte con el arduino .

Sin embargo, en teoría no es imposible. Solo necesita escribir un compilador para el chip y definir las funciones integradas, y luego transmitir el código compilado a través del puerto serie. O puede escribir un traductor de python a c ++ y hacer que funcione.

Si tiene afición por .NET, puede consultar el Netduino . Parece que también hay un entorno de tiempo de ejecución Java para el AVR, llamado NanoVM . También hay dk-basic para BASIC. Sin embargo, no he probado ninguno de estos.

Manishearth
fuente