Est-il possible de programmer un Arduino dans d'autres langues?

11

Est-il possible de programmer un Arduino avec d'autres langages qui ne sont pas basés sur C / C ++? Que faudrait-il pour ce faire? Je sais que d'autres IDE sont disponibles, je suis curieux de connaître les langages de programmation réels, comme pouvoir coder l'Arduino en Python, par exemple.

nathangiesbrecht
la source
J'ai édité la question pour préciser que je parle des langues, pas de l'IDE.
nathangiesbrecht
2
Si C # est votre truc, consultez le Netduino.
Kevin Mark
1
@KevinMark Il y a le petit problème qu'il pourrait ne pas être en mesure d'utiliser un Netduino (a besoin des ports ajoutés d'un Mega, par exemple).
Polar
@Polar Je pense que le Netduino Go a des options de connectivité supplémentaires.
Kevin Mark
1
@powtac String est spécifique à Arduino? Je me demande pourquoi j'en ai autant dans mon code alors ...
Polar

Réponses:

5

Il est certainement possible d'utiliser des langages alternatifs pour le développement avec Arduino, mais pas nécessairement en utilisant l'IDE standard. C'est comme, à la fin de la journée, le code C / C ++ est assemblé en code octet pour la puce AT sur la carte Arduino. Une langue que vous pourriez utiliser est Céu , une version de niveau supérieur de C / C ++. Le principal problème que vous aurez sera de trouver un compilateur pour votre langue de choix - à la fin de la journée, vous pourriez écrire le vôtre - cependant, cela nécessite une connaissance intime de C / C ++ de toute façon. Par conséquent, il est probablement préférable de s'en tenir à C / C ++, au moins pour le moment.

EDIT: Vous avez légèrement reformulé votre question, alors oui, il serait possible de programmer votre Arduino en Python (mauvais choix de langue, bien que ce soit juste mon avis), mais vous auriez besoin d'un IDE différent / d'un compilateur personnalisé pour les raisons au dessus de. En outre, vous devez être prudent lorsque vous liez des bibliothèques écrites dans un langage différent pour l'Arduino (car elles sont toutes en C / C ++).

Polaire
la source
Il n'est vraiment pas possible d'exécuter python sur l'arduino (sauf Arduino Mega, de toute façon). Le projet python-on-a-chip travaille sur un runtime python compact, et il nécessite au moins ~ 8 Ko de SRAM.
Connor Wolf
1
Python n'est vraiment, vraiment pas adapté aux petits environnements à mémoire limitée.
Connor Wolf
2
@ConnorWolf Deux points: 1) Mon utilisation de Python comme exemple était telle qu'elle était dans la question - je n'aime pas Python de toute façon. 2) Théoriquement, vous pouvez convertir le Python en C, puis vous évitez d'avoir besoin d'un runtime Python au-dessus du chargeur de démarrage.
Polar
1

Il semble qu'il n'y ait actuellement aucun moyen de coder facilement un Arduino dans autre chose que Assembly / C / C ++ (et Céu comme mentionné dans la réponse de Polar - bien que cela soit simplement traduit en C ++). Il existe cependant de nombreuses langues à partir desquelles vous pouvez communiquer avec l'arduino .

Cependant, en théorie, ce n'est pas impossible. Il vous suffit d'écrire un compilateur pour la puce et de définir les fonctions intégrées, puis de transmettre le code compilé via le port série. Ou vous pouvez écrire un traducteur python-vers-c ++ et le faire fonctionner.

Si vous avez un penchant pour .NET, vous voudrez peut-être consulter Netduino . Il semble également y avoir un environnement d'exécution Java pour l'AVR, appelé NanoVM . Il existe également dk-basic pour BASIC. Je n'ai essayé aucun de ces derniers, cependant.

Manishearth
la source