Mikrocontroller und Python

Python in C/C++ embedden, C-Module, ctypes, Cython, SWIG, SIP etc sind hier richtig.
Antworten
Firstmine_
User
Beiträge: 4
Registriert: Dienstag 28. Juni 2022, 14:36

Hey,

ich habe einen Mikrocontroller, einen Eleego heißt er glaube ich, ähnlich wie der arduino. Ich frage mich wie ich mit Daten die mir der Controller gibt in Python arbeiten kann. Ich schreibe z.B. in C(ich glaube dass ist die Sprache die arduino nutzt) das Programm dass den Controller direkt ansteuert, möchte dann aber nicht mein ganzes Programm auf C basiert lassen, da ich diese Sprache kaum kann. Ich würde dann gern mit Python weiterschreiben, jemand eine Idee wie ich das machen kann?

Liebe Grüße
-Till
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Willst du *auf* dem Controller mit Python arbeiten? Das geht ggf mit micropython, aber ob das unterstützt wird hängt dann am genauen Modell.

Oder du kannst die Daten seriell kommunizieren & auf einem PC dann abgreifen & verarbeiten - in Python
Firstmine_
User
Beiträge: 4
Registriert: Dienstag 28. Juni 2022, 14:36

__deets__ hat geschrieben: Dienstag 28. Juni 2022, 16:00 Willst du *auf* dem Controller mit Python arbeiten? Das geht ggf mit micropython, aber ob das unterstützt wird hängt dann am genauen Modell.

Oder du kannst die Daten seriell kommunizieren & auf einem PC dann abgreifen & verarbeiten - in Python
Ich möchte z.B. ein Script mit der Sprache des Controllers schreiben, sagen wir mal ich messe die helligkeit in meinen Raum. Mit python möchte ich dann sagen was mit den Daten passiert. Also ich habe dann einen niedrigen Wert bekommen, das heißt in meinen Raum wird es dunkel und mit python programmiere ich dann dass mein Licht angehen soll.

Was mich genau interessiert ist eigentlich nicht wie der Controller mit Python interagiert sondern ob man diese Scripts irgendwie zusammenführen kann oder ob ich mir die Daten in einer txt-datei o. DB speichern muss und diese dann über python abrufen muss.
Benutzeravatar
Dennis89
User
Beiträge: 1123
Registriert: Freitag 11. Dezember 2020, 15:13

Hallo,

wer würde denn in deinem Beispiel das Licht ansteuern? Auch der Microkontroller?

Ich denke es wäre ganz hilfreich, wenn du erählen könntest wie dein Vorhaben genau ablaufen soll. Für mich hört sich deine Beschreibung etwas zu kompliziert an, für dass das das Licht mit einem Sensor gesteuert werden soll. Aber ich will jetzt nichts an dem Beispiel fest machen.

Grüße
Dennis
"When I got the music, I got a place to go" [Rancid, 1993]
Firstmine_
User
Beiträge: 4
Registriert: Dienstag 28. Juni 2022, 14:36

Hey Dennis,

um das Licht ging es an sich gar nicht wie gesagt nur ein Beispiel. Mein Problem ist dass ich nicht wirklich C programmieren kann, deshalb möchte ich nur darin den Microcontroller ansteuern, denn dass kann ich schon ganz gut. In meinen Beispiel gibt mir der Controller dann einen Wert zurück, je niedriger der Wert desto dunkler der Raum. Das wars auch schon mit dem C Teil.

Mit Python möchte ich, weil ich diese Sprache viel besser beherrsche, nun darauf ein ganzes Programm aufbauen. Es soll z.B. eine Glühbirne angesteuert werden. Wie man genau dass umsetzt, ist hier nicht relevant, da es sich nur um ein Beispiel handelt. Ich interessiere mich lediglich dafür wie ich meine in C gesammelten Werte für die Python Entwicklung bereitstelle.

Davor habe ich meine Werte für die Helligkeit in meinen Raum in einem .txt file oder einer Datenbank gespeichert. Aus diesem File oder dieser Datenbank habe ich dann die Werte mit Python ausgelesen und meine Software in Python programmiert.

Gibt es einen einfacheren Weg, als sich jeden Wert nochmals zwischen zu speichern?

Ich hoffe dass war verständlicher.
-Till
Sirius3
User
Beiträge: 17710
Registriert: Sonntag 21. Oktober 2012, 17:20

Wie kommen denn Deine Helligkeitswerte in die Datei oder Datenbank?
An der Stelle kannst Du die Werte auch direkt mit Python verarbeiten.
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Die Daten müssen vom Controller schon runter. Via serieller Schnittstelle oder ggf WIFI oder Bluetooth, was auch immer der bietet. Weiß immer noch keiner. Dann kannst du die auch weiterverarbeiten.
Benutzeravatar
DeaD_EyE
User
Beiträge: 1012
Registriert: Sonntag 19. September 2010, 13:45
Wohnort: Hagen
Kontaktdaten:

Falls der Mikrocontroller ein AT-Mega ist, reicht der Speicherplatz nicht aus, um dort einen fetten MicroPython-Interpreter zu flaschen.
Es sollte mindestens 2 MiB Flash-Speicher vorhanden sein, 4 MiB sind die Regel beim ESP32.

Hier eine Übersicht aller unterstützen Boards: https://micropython.org/download/
Ich nutze z.B. diesen Mikrocontroller gerne: https://www.amazon.de/dp/B071P98VTG/
Der hat WLAN, Bluthooth Low Energy (Classic wird von Micropython nicht unterstützt) und ein paar Funktionen, die die anderen Controller nicht haben.

ESPNow wird auch bald in MicropPython integriert. Das ist ein proprietäres Wifi-Protokoll zum Austausch von Daten zwischen ESP32 und ESP8266.

Falls du hingegen keine Netzwerkfunktionalität benötigst, reichen auch Mikrocontroller ohne LAN/WIFI.
Da würde sich z.B. der Raspberry Pi Pico anbieten. Es gibt aber auch Boards mit dem RP2040 und LAN von Adafruit.
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server
Firstmine_
User
Beiträge: 4
Registriert: Dienstag 28. Juni 2022, 14:36

Sirius3 hat geschrieben: Dienstag 28. Juni 2022, 21:39 Wie kommen denn Deine Helligkeitswerte in die Datei oder Datenbank?
An der Stelle kannst Du die Werte auch direkt mit Python verarbeiten.
Über C dann auch. Ich speicher sie mit C dort und rufe Sie mit Python dann ab, geht der Prozess einfacher, dass der Zwischenspeicher nicht nötig ist?
__deets__
User
Beiträge: 14493
Registriert: Mittwoch 14. Oktober 2015, 14:29

Das ergibt keinen Sinn. Du kannst C + Python (so ohne weiteres, auf deinem Kenntnisstand) nicht mischen. Entweder du benutzt C, und kommunizierst mit einem angeschlossenen Computer. Oder du kannst vielleicht direkt mit micropython arbeiten, aber dazu muss man wissen, welchen konkreten Micro du hast.
harryberlin
User
Beiträge: 227
Registriert: Donnerstag 17. Dezember 2015, 12:17

wenn der Microcontroller z.B. Arduino Nano nur die Daten von Sensoren liefert, und der große Rest auf nen Raspberry läuft, schau dir mal Firmata an.
empty Sig
Antworten