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

11

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 gespannt auf aktuelle Programmiersprachen, wie zum Beispiel die Möglichkeit, das Arduino in Python zu codieren.

nathangiesbrecht
quelle
Ich habe die Frage bearbeitet, um zu verdeutlichen, dass ich über Sprachen spreche, nicht über die IDE.
Nathangiesbrecht
2
Wenn C # Ihr Ding ist, schauen Sie sich das Netduino an.
Kevin Mark
1
@ KevinMark Es gibt das kleine Problem, dass er möglicherweise kein Netduino verwenden kann (benötigt zum Beispiel die zusätzlichen Ports eines Mega).
Polar
@Polar Ich glaube, das Netduino Go hat zusätzliche Konnektivitätsoptionen.
Kevin Mark
1
@powtac String ist Arduino-spezifisch? Ich frage mich, warum ich dann so viele in meinem Code habe ...
Polar

Antworten:

5

Es ist definitiv möglich, alternative Sprachen für die Entwicklung mit Arduino zu verwenden, nur nicht unbedingt mit der Standard-IDE. Dies ist so, als würde der C / C ++ - Code am Ende des Tages zu einem Bytecode für den AT-Chip auf der Arduino-Karte zusammengesetzt. Eine Sprache, die Sie verwenden können, ist Céu , eine übergeordnete Version von C / C ++. Das Hauptproblem besteht darin, einen Compiler für die Sprache Ihrer Wahl zu finden - am Ende des Tages können Sie Ihre eigene Sprache schreiben - dies erfordert jedoch ohnehin eine genaue Kenntnis von C / C ++. Daher ist es wahrscheinlich am besten, zumindest vorerst bei C / C ++ zu bleiben.

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

Polar
quelle
Es ist wirklich nicht möglich, Python auf dem Arduino auszuführen (außer dem Arduino Mega). Das Python-on-a-Chip- Projekt arbeitet mit einer kompakten Python-Laufzeit und benötigt mindestens ~ 8 KB SRAM.
Connor Wolf
1
Python ist wirklich, wirklich nicht für kleine Umgebungen mit eingeschränktem Speicher geeignet.
Connor Wolf
2
@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 die Notwendigkeit einer Python-Laufzeit über dem Bootloader vermeiden .
Polar
1

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

Doch in der Theorie ist es nicht unmöglich. Sie müssen nur einen Compiler für den Chip schreiben, die integrierten Funktionen definieren und dann den kompilierten Code über die serielle Schnittstelle übertragen. Oder Sie können einen Python-zu-C ++ - Übersetzer schreiben und das zum Laufen bringen.

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

Manishearth
quelle