Czy można zaprogramować Arduino w innych językach?

11

Czy można zaprogramować Arduino w innych językach, które nie są oparte na C / C ++? Co by to było wymagane? Wiem, że inne IDE są dostępne, ciekawi mnie rzeczywiste języki programowania, na przykład możliwość kodowania Arduino w Pythonie, na przykład.

nathangiesbrecht
źródło
Zredagowałem pytanie, aby wyjaśnić, że mówię o językach, a nie IDE.
nathangiesbrecht
2
Jeśli C # to twoja sprawa, sprawdź Netduino.
Kevin Mark,
1
@KevinMark Jest niewielki problem, że może nie być w stanie korzystać z Netduino (na przykład potrzebuje dodatkowych portów Mega).
Polar
@Polar Uważam, że Netduino Go ma dodatkowe opcje łączności.
Kevin Mark,
1
@powtac Ciąg jest specyficzny dla Arduino? Zastanawiam się, dlaczego mam tak wiele w moim kodzie ...
Polar

Odpowiedzi:

5

Zdecydowanie możliwe jest użycie alternatywnych języków do programowania w Arduino, ale niekoniecznie przy użyciu standardowego IDE. Dzieje się tak, ponieważ na koniec dnia kod C / C ++ jest składany w bajt-kod dla mikroukładu AT na płycie Arduino. Jednym z dostępnych języków jest Céu , wersja C / C ++ wyższego poziomu. Głównym problemem, jaki będziesz mieć, jest znalezienie kompilatora dla swojego wybranego języka - na koniec możesz napisać swój własny - wymaga to jednak dogłębnej znajomości C / C ++. Dlatego prawdopodobnie najlepiej trzymać się C / C ++, przynajmniej na razie.

EDYCJA: Lekko przeformułowałeś swoje pytanie, więc tak, możliwe byłoby zaprogramowanie swojego Arduino w Pythonie (zły wybór języka, ale to tylko moja opinia), ale z innych powodów potrzebujesz innego IDE / niestandardowego kompilatora powyżej. Ponadto należy zachować ostrożność podczas łączenia bibliotek napisanych w innym języku dla Arduino (ponieważ wszystkie są C / C ++).

Polarny
źródło
Naprawdę nie jest możliwe uruchomienie Pythona na Arduino (poza Arduino Mega, w każdym razie). Projekt python-on-a-chip działa na kompaktowym środowisku wykonawczym Pythona i potrzebuje co najmniej ~ 8 KB SRAM.
Connor Wolf,
1
Python naprawdę nie jest odpowiedni dla małych środowisk z ograniczoną pamięcią.
Connor Wolf,
2
@ConnorWolf Dwa punkty: 1) Moje użycie Pythona jako przykładu było takie, jakie było w pytaniu - i tak nie lubię Pythona. 2) Teoretycznie można przekonwertować Pythona na C, a następnie uniknąć konieczności używania środowiska wykonawczego Python na bootloaderze.
Polar
1

Wygląda na to, że obecnie nie ma łatwego sposobu na kodowanie Arduino w niczym innym niż Assembly / C / C ++ (i Céu, jak wspomniano w odpowiedzi Polar - choć jest to tylko przetłumaczone na C ++). Istnieje jednak wiele języków, z których można komunikować się z arduino .

Jednak teoretycznie nie jest to niemożliwe. Wystarczy napisać kompilator dla układu i zdefiniować wbudowane funkcje, a następnie przesłać skompilowany kod przez port szeregowy. Lub możesz napisać tłumacz Pythona na c ++ i sprawić, by działał.

Jeśli masz zamiłowanie do .NET, możesz wypróbować Netduino . Wydaje się, że istnieje również środowisko wykonawcze Java dla AVR, zwane NanoVM . Istnieje również dk-basic dla BASIC. Jednak nie próbowałem żadnego z nich.

Manishearth
źródło