PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Microcontroller die mit Python zu programmieren sind



Kael
29.03.2018, 16:08
Ja ich noch mal direkt. Da mein Prototyp so ganz gut läuft - ich allerdings gern als Hauptsprache Python beibehalten würde, dachte ich frage mal hier ob jemand Microcontroller kennt welche sich mit Python programmieren lassen. (Dahingehend kenne ich schon den Micropython Controller - ich rede aber auch von anderen, ggf günstigeren alternativen) womit sich simple Schaltungen realisieren lassen.

Ceos
29.03.2018, 20:37
du verstehst python falsch, das ist eine scriptsprache und nicht direkt zum binären programmieren gedacht, es gibt zwar python to exe module die dir eine exe compilen und auch linux binarys aber ich wüsste nicht dass sich jeamnd die mühe geamcht hat einen multicontroller compiler für python zu programmieren

du brauchst immer eine für den entsprechenden controller compilierte micropython binary

um es verständlicher zu machen:

üblicherweise schreibt man code und jagt dass durch einen compiler der das ganze in controller spezifische commands umsetzt

python ist eine script sprache und interpretiert nur den script unzd führt ihn auf der unterliegenden hardware aus
python hat also eine art "wörterbuch" oder "bedienungsanleitung" hat damit es weis wie ein bestimmter befehl der in pythoncode eingegebn wird auf dem controller ausgeführt werden muss um das gewünscht eergebnis zu produzieren

Kael
30.03.2018, 18:34
Ja - allerdings gibt es auch Micropython welches ja dafür gemacht wurde, damit man mit solch einer Sprache auch entsprechend konfigurierte MC ansetzen kann.

HaWe
30.03.2018, 19:09
da läuft auf dem µC dann eben ein Micropython Interpreter, der nur weniger kann als die Vollversion, aber auch die Script-Befehle einzeln in Maschinencode übersetzt.
Wie bei Java, da gibt es ebenfalls verschieden leistungsfähige Interpreter- und JIT-Compiler-Engines, je nach Devices, auf denen es laufen soll.

33383

White_Fox
30.03.2018, 19:25
Wobei es auch für Java mittlerweile eine Mikrocontrollerversion gibt-nennt sich Embedded Java.

HaWe
30.03.2018, 19:27
jap, und auch für Arduino gibt es ja Java, und für Lego RCX, NXT und -ntl- EV3.
Man muss den Interpreter/die VM nur eben irgendwie drauf kriegen.

i_make_it
30.03.2018, 19:52
µC's mit Interpretersprache und Laufzeitumgebung gibt es ja schon länger (Basic Stamp 1992, C-Control 1994).
Das Problem ist halt, das zur Laufzeit der Interpreter läuft und das Befehlsscript verarbeitet. Damit werden die Systeme unglaublich langsam.
Da ich mit dem Rugwarrior vom MIT schon mit Interactive-C gearbeitet hatte, habe ich mir damals mal eine C-Control I von Conrad geholt und das selbe Programm einmal im CCBASIC (Interpreter) und in Interactive-C (Compiler) geschrieben. Da lagen Welten zwichen der erreichbaren Geschwindigkeit.

Wenn man das gegenüberstellt, fragt man sich warum braucht man Phyton auf einem µC?
Das ist wie bei einem Rennwagen (der nur für das eine Entwickelt wurde) bei der Hälfte Zylinder die Zündkerze rauszuschrauben und dann Damit zu fahren.
Kann man machen, aber ist es sinnvoll?

HaWe
30.03.2018, 20:54
je nach VM und Programm (Java, C#/ Mono, Lego-VMs, Python) ist nativer Code 1-1000 mal schneller als VMs.
Gerade der Java-JIT Compiler und auch C#/Mono sind dabei fast ebenso schnell wie native Linux Executables - Python ist auf dem Pi durchaus schon mal 1000x langsamer.
Vorteil: oft können gerade mit Python extrem umfangreiche Bibliotheken super-einfach eingebunden werden, mit C++ vergleichsweise kaum zu erreichen.
Das gilt aber sicher eher für Linux, weniger für embedded VMs für MCUs mit wenig Flash und RAM.

Ceos
30.03.2018, 21:12
Ja - allerdings gibt es auch Micropython welches ja dafür gemacht wurde, damit man mit solch einer Sprache auch entsprechend konfigurierte MC ansetzen kann.

... der nur für bestimmte microplattformen compiliert worden ist und nicht nur spezifische controller ... oder habe ich da deine frage falsch verstanden??
.

HaWe
31.03.2018, 09:59
... oder meinst du µCs, bei denen Python schon im Auslieferungszustand aufgespielt ist?
Da kenne ich selber nur ESP12-E/F Module von Wemos https://www.ebay.de/itm/WeMos-D1-MINI-ESP8266-ESP12-WiFi-Modul-Board-Arduino-Lua-Python-Javascript/302427099630?hash=item466a0f51ee:g:JbIAAOSwe09Zn8y V
und den Adafruit Feather M0 Express mit CircuitPython https://learn.adafruit.com/adafruit-feather-m0-express-designed-for-circuit-python-circuitpython/overview

ansonsten kenne ich nur die MicroPython Download Page für div. MCUs zum selber-aufspielen: http://micropython.org/download
(esp8266, ESP32, WiPy, STM32F4xxxx, Nucleo, Espruino)