Nie jestem zbyt dobrze zaznajomiony z językiem C i zastanawiałem się, czy istnieje sposób, w jaki można użyć Pythona do programowania Arduino. Najprawdopodobniej wymagałoby to innego IDE, aby móc samodzielnie debugować skrypty.
programming
python
JVarhol
źródło
źródło
Odpowiedzi:
Bardzo trudno będzie uruchomić jakikolwiek skrypt Pythona bezpośrednio na Arduino. Powodem jest to, że jest to język interpretowany, więc oprócz zwykłego skryptu tekstowego potrzebujesz tłumacza na pokładzie. Prawdopodobnie na to wszystko nie wystarczy.
Najlepszym rozwiązaniem byłoby prawdopodobnie znalezienie sposobu na skompilowanie skryptu Python do natywnego kodu maszynowego (tak działa C / C ++). Wierzę, że istnieją projekty, które mogłyby zrobić coś takiego na innych platformach, ale (o ile mi wiadomo) nie ma takich, które by to zrobiły z powodzeniem dla Arduino.
Więcej przydatnych informacji na temat tego pytania można znaleźć na stronie Przepełnienie stosu: czy istnieje sposób na „skompilowanie” kodu Pythona w Arduino (Uno) .
źródło
Tak, możliwe jest (nieco) zaprogramowanie Arduino za pomocą Pythona. Jednym z takich projektów w Github jest Python Arduino Prototyping API v2 . Zapewnia bardzo podstawowe funkcje, takie jak cyfrowe we / wy i analogowe we / wy.
Można to wykorzystać do bardzo prostych projektów.
* Ten projekt to trochę włamanie do „programowania” płyty za pomocą połączenia szeregowego. Przekazuje polecenia przez połączenie szeregowe do szkicu uruchomionego na płycie, który następnie „wykonuje” polecenie Python.
źródło
Istnieje projekt, który przenosi maszynę wirtualną Python do mikrokontrolerów, w tym Arduino Mega .
Oto cytat z Ardunio Mega README , który daje wyobrażenie o tym, jak to może być (choć tego nie testowałem!):
źródło
Z dużym powodzeniem stosowałem pyserial w kontrolowaniu pinów na arduino. Twoja stacja robocza (laptop itp.) Uruchamia skrypt Pythona, który następnie komunikuje się w czasie rzeczywistym z arduino.
Nie jest to dokładnie to samo, co uruchamianie skryptu bezpośrednio na arduino, ale robiłem o wiele więcej, niż myślałem, że arduino może sobie z tym poradzić (analiza muzyki, trafienie w interfejs API REST itp.).
źródło
Inną opcją do rozważenia jest Arduino Yun . Oprócz układu AVR, który ma większość Arduinos, zawiera on także układ MIPS z systemem Linux. Ponieważ jest to linux, możesz łatwo uruchomić kod Pythona, a każdy pakiet czysto pythonowy może być łatwo zainstalowany.
Jednak wszystkie interesujące możliwości wejścia / wyjścia dotyczą układu AVR, a nie układu MIPS. Projekty takie jak Autobahn i LininoIO rozwiązują ten problem, uruchamiając specjalny program na układzie AVR, który wykonuje operacje wejścia / wyjścia zgodnie z instrukcjami z układu MIPS.
źródło
Wiemy, że jest to otwarty problem w programowaniu Arduino i ogólnie w świecie osadzonym. Na rynku dostępne są różne rozwiązania, takie jak MicroPython, ale większość z nich jest dedykowana do konkretnych płyt i nie pozwala na utrzymanie systemu w czasie rzeczywistym. Pracujemy nad rozwiązaniem! VIPER to wirtualna maszyna Pythona dla Arduino DUE i wszystkich 32-bitowych architektur ARM, działająca na systemie operacyjnym czasu rzeczywistego. Oznacza to, że możesz opracowywać skrypty Pythona, które mogą być wyeksportowane przez Arduino DUE, UDOO, Spark (wszystkie płyty), a także na nowych płytach nukleonowych ST. Ponadto, jeśli potrzebujesz wysokiej wydajności i jesteś biegły w C, możesz opracowywać moduły w czasie rzeczywistym dla VIPER, które mogą być wywoływane i zarządzane przez skrypty Pythona.
Możesz zobaczyć VIPER w akcji tutaj http://bit.ly/kickviper
źródło
Możesz nauczyć się od C (AVR), jak działają czujniki, ale wymaga to dużo więcej czasu. Arduino IDE Code i Python Code dla Arduino używają funkcji C Code, aby uprościć sprawę. Python i Arduino IDE, jeśli używają Firmaty, używają komunikacji szeregowej i myślisz, że sam kodujesz.
źródło
Tak. Python może być używany do programowania Arduino, po prostu importując pyfirmata, które mogą arduino interfejsować z Pythonem.
źródło
Obawiam się, że Arduino IDE nie używa języka C / C ++. Pochodzi z Processing IDE i ma dość uproszczoną składnię podobną do C / Java.
źródło