Ist es möglich, einen Arduino in anderen Sprachen zu programmieren?

Ist es möglich, ein Arduino mit anderen Sprachen zu programmieren, die nicht auf C/C++ basieren? Was wäre dazu erforderlich? Ich weiß, dass andere IDEs verfügbar sind, ich bin neugierig auf aktuelle Programmiersprachen, wie zum Beispiel die Möglichkeit, das Arduino in Python zu codieren.

Ich habe die Frage bearbeitet, um zu verdeutlichen, dass ich über Sprachen spreche, nicht über die IDE.
Wenn C# Ihr Ding ist, schauen Sie sich Netduino an.
@KevinMark Es gibt das kleine Problem, dass er möglicherweise kein Netduino verwenden kann (benötigt zum Beispiel die hinzugefügten Ports eines Mega).
@Polar Ich glaube, der Netduino Go hat zusätzliche Konnektivitätsoptionen.
Sind die Arduino-spezifischen Objekte wie Stringdurch C-Zeug ersetzbar?
@powtac String ist Arduino-spezifisch? Ich frage mich, warum ich dann so viele in meinem Code habe ...
@Polar Siehe arduino.cc/en/Reference/StringObject , soweit ich weiß, ist es nicht mit anderen String-Typen kompatibel. Ich habe einmal versucht, andere Methoden auf ein String-Objekt anzuwenden, und dann festgestellt, dass sie nicht funktionieren.
@powtac Sie könnten einfach einen Wrapper für String in C/C++ schreiben, um die gleiche Funktionalität zu erhalten.

Antworten (2)

Es ist definitiv möglich, alternative Sprachen für die Entwicklung mit Arduino zu verwenden, nur nicht unbedingt mit der Standard-IDE. Das liegt daran, dass der C/C++-Code am Ende des Tages zu einem Byte-Code für den AT-Chip auf dem Arduino-Board zusammengesetzt wird. Eine Sprache, die Sie verwenden könnten, ist Céu , eine höhere Version von C/C++. Das Hauptproblem, das Sie haben werden, besteht darin, einen Compiler für die Sprache Ihrer Wahl zu finden - am Ende des Tages könnten Sie Ihren eigenen schreiben -, dies erfordert jedoch ohnehin eine gründliche Kenntnis von C/C++. Daher ist es wahrscheinlich am besten, zumindest vorerst bei C/C++ zu bleiben.

BEARBEITEN: Sie haben Ihre Frage leicht umformuliert, also ja, es wäre möglich, Ihr Arduino in Python zu programmieren (schlechte Sprachwahl, obwohl das nur meine Meinung ist), aber Sie würden aus den Gründen eine andere IDE / einen benutzerdefinierten Compiler benötigen Oben. Außerdem müssten Sie vorsichtig sein, wenn Sie Bibliotheken verknüpfen, die in einer anderen Sprache für den Arduino geschrieben wurden (da sie alle C/C++ sind).

Es ist wirklich nicht möglich, Python auf dem Arduino auszuführen (außer dem Arduino Mega sowieso). Das Python-on-a-Chip- Projekt arbeitet an einer kompakten Python-Laufzeitumgebung und benötigt mindestens ~8 KB SRAM.
Python ist wirklich, wirklich nicht für kleine, speicherbeschränkte Umgebungen geeignet.
@ConnorWolf Zwei Punkte: 1) Meine Verwendung von Python als Beispiel war wie in der Frage - ich mag Python sowieso nicht. 2) Theoretisch könnten Sie Python in C konvertieren und dann würden Sie die Notwendigkeit einer Python-Laufzeitumgebung über dem Bootloader vermeiden.

Es sieht so aus, als gäbe es derzeit keine Möglichkeit, ein Arduino einfach in etwas anderem als Assembly/C/C++ (und Céu , wie in Polars Antwort erwähnt - obwohl dies nur in C++ übersetzt wird) zu codieren. Es gibt jedoch viele Sprachen, aus denen Sie mit dem Arduino kommunizieren können .

Theoretisch ist es jedoch nicht unmöglich. Sie müssen nur einen Compiler für den Chip schreiben und die eingebauten Funktionen definieren und dann den kompilierten Code über die serielle Schnittstelle übertragen. Oder Sie können einen Python-zu-C++-Übersetzer schreiben und diesen zum Laufen bringen.

Wenn Sie eine Vorliebe für .NET haben, sollten Sie sich die Netduino ansehen . Es scheint auch eine Java-Laufzeitumgebung für den AVR namens NanoVM zu geben . Es gibt auch dk-basic für BASIC. Ich habe jedoch keines davon ausprobiert.