Inhalt vom main.py in Microphyton am Mikrokontroller ESP8266

Python auf Einplatinencomputer wie Raspberry Pi, Banana Pi / Python für Micro-Controller
Antworten
jospyt
User
Beiträge: 4
Registriert: Donnerstag 29. April 2021, 12:18
Wohnort: Kaarst

Hallo,
Ich mache meine ersten Gehversuche mit Micropython (bisher auch keine nennenswerte Python Erfahrung) auf dem Microcontroller ESP8266.
In https://docs.micropython.org/en/latest/ ... ot-process steht:
it’s recommended to keep your application(s) in separate files, and have just the following in main.py:

Code: Alles auswählen

import my_app
my_app.main()
This will allow to keep the structure of your application clear, as well as allow to install multiple applications on a board, and switch among them.

Angenommen meine Applikation heißt „LED_on.py“:
  • wie soll der Inhalt von main.py konkret in diesem Falle aussehen?
  • ist my_app ein Module, das importiert werden muss?
  • was bedeutet der Anteil .main()?
  • wo ist der Bezug zu meiner Applikation „LED_on“?
Es sind wahrscheinlich sehr einfache Fragen, ich hoffe ich erhalte hier die Antworten. Herzlichen Dank im Voraus!

Beste Grüße
Benutzeravatar
sparrow
User
Beiträge: 4187
Registriert: Freitag 17. April 2009, 10:28

Da wir hier von absoluten Basics reden, empfehle ich dringend das Durcharbeiten eines Tutorials um die Grundlagen von Python zu lernen. Ein guter Einstieg ist das Tutorial in der offziellen Dokumentation. Es gibt dann bestimmt Abweichungen zu MicroPython aber ein grundlegendes Verständnis baut man damit auf.

Namen schreibt man in Python komplett klein_mit_unterstrich. Ausnahme sind Klassen (PascalCase) und Konstanten (KOMPLETT_GROSS).
Dein Modul sollte also led_on heißen, nicht LED_on.

Gut, dass du deine Applikation so geschrieben hast, dass sie ohne Seiteneffekt importiert werden kann. Sie benutzt also keine globalen Variablen und auf Modulebene stehen nur die Importe und die Definitionen von Funktionen, Klassen und Konstanten und der mit

Code: Alles auswählen

if __name__ == "__main__":
    main()
gegen importe geschützte Aufruf deiner Einstiegsfunktion.

So kannst du deine Apllikation einfach genau so importieren wie im Beispiel gezeigt. Aus my_app wird einfach led_on.
Benutzeravatar
Dennis89
User
Beiträge: 1153
Registriert: Freitag 11. Dezember 2020, 15:13

Hallo,

ich weis nicht wie gelernte Programmierer das machen würden. Aber wenn man gerade dabei ist programmieren zu lernen, dann spricht doch erst mal nichts dagegen das Programm in 'main.py' zu schreiben. Meine Programme die ich zu Beginn mit Python geschrieben habe, waren zumindest nicht so umfangreich, dass man die Übersicht verliert. Und jetzt, ~2 Jahre später, finde ich es immer noch Übersichtlich das Hauptprogramm in 'main.py' zu schreiben und ggf. dann mal eine oder zwei Klassen aus einer anderen Datei importieren.
Ein Vorteil sehe ich jetzt aber doch noch. Wenn ich mir meinen Code auf der Festplatte speichere, dann nenne ich 'main.py' immer um, damit ich weis was dahinter steckt. Das würde dann wegfallen.

Naja ich würds erst einmal hinten anstellen und schauen das ich einfachen funktionierenden Code hinbekomme. (Es sei denn es kommen hier noch ein paar und ein gutes Argument, dann gewöhne ich mich auch um)

Grüße
Dennis
"When I got the music, I got a place to go" [Rancid, 1993]
__deets__
User
Beiträge: 14528
Registriert: Mittwoch 14. Oktober 2015, 14:29

Ich bin ein erfahrener Programmierer, und ich arbeite mit micropython. Und den Tipp halte ich für Quatsch. Es gibt wenig Grund, die main so klein zu halten. Klar sind Module zur Strukturierung und Code-Wiederverwendung gut. Aber eine so künstlich verknappte Main muss nicht sein. Ob der Import-guard von sparrow unter yPy weiß ich nicht, aber da man die Main.py eh nicht anders ausführen kann, ist er (in diesem Kontext) auch unwichtig in meinen Augen.
Phyton-Kater
User
Beiträge: 1
Registriert: Sonntag 2. April 2023, 17:56

Hallo zusammen,

ich arbeite hier mit MicroPython auf dem ESP32, einem Nachfolger vom ESP8266
und gehe auf folgende Weise vor:

main.py Hauptscript für den Anwendungscode,
d.h. hier schreibe ich das Programm, dem ich dann mit "Speichern unter" einen Namen.py gebe.

Für Anfäger empfehle ich die Entwicklungsumgebung (IDE) "Thonny" ( https://tonny.org )

Im übrigen gelten für Variablen-Namen die folgenden Regeln:
  • nur Zahlen, Buchstaben und Unterstriche
  • das erste Zeichen muss ein Buchstabe oder Unterstrich sein
  • der Variablen-Name unterscheidet zwischen Groß- und Kleinschreibung
Antworten