Wie sage ich es in Python ? (Einsteigerfragen)

  • Hallo, ich habs jetzt primitiver gemacht, aber es taugt für meine Anforderungen. Mit einer Arbeitsdatei.

    os.system('grep -H "4711" /var/tmp/eingabe* > /var/tmp/work')

    work = open('/var/tmp/work','r')

    usw...

  • Hallo ich habe ein paar Fragen hier erst mal der aktuelle Code:

    Übrigens das ist mein erstes mal mit Python... also wenn es irgendwelche Fehler gibt bitte sagen!



    Meine Fragen:


    1. GPIO.setup (Start, GPIO.IN) soll mal ersetzt werden. Also wenn eine bestimmte Uhrzeit ist soll das passieren was "Start" aktuell ausführt. Was gibt es und wie funktioniert es?


    2. Die Vorübergehenden Merker (GPIO 24-25)... ich weiß nicht ob ich die in diesem Skript noch verwenden werden aber das könnte sein deswegen frage ich nochmal lieber nochmal wie mache, denn ich verstehe die Erklärungen die man im Internet sind nicht hoffe hier wird mir besser geholfen.


    Danke schon mal im voraus!

  • Hallo,


    kannst du bitte dein Vorhaben etwas detaillierter beschreiben? Ich verstehe ehrlich gesagt deine Fragen 1 und 2 nicht so ganz.


    Mal was allgemeines zu Python:

    Beim importieren wird 'as' zum umbenennen benutzt. Du nennst 'GPIO' in 'GPIO' um. Es gibt verschiedene Arten Module zu importieren.

    Entweder du importierst RPi:

    Code
    import RPi
    
    # Zugriff auf GPIO:
    RPi.GPIO.setup(...)

    So kannst du dann alles nutzen was 'RPi' zur Verfügung hat.

    Wenn du nur 'GPIO' nutzen möchtest, dann kannst du das so machen:

    Python
    from RPi import GPIO
    
    # Zugriff auf GPIO:
    GPIO.setup(...)

    Man kann dann noch die Module umbenennen, zum Beispiel:

    Python
     from datetime import datetime as dt
    
    print(dt.now())


    Zur Gestaltung von Python-Programme kannst du dir mal den Style-Guid anschauen.

    Hier wo bei dir Sachen wie 'GPIO.setmode(GPIO:BCM)', 'Luftventil' und weiteres steht, da sollten nur Konstanten, Funktionen und Klassen definiert werden. Das nennt man auch Modulebene. Konstanten sind in deinem Fall die GPIO-Nummern.

    Die schreibt man in Python dann KOMPLETT_GROSS. Alle anderen Namen, mit Ausnahme von Klassen, die schreibt man in CamelCase-Schreibweise, schreibt man klein_mit_unterstrich.

    Dein Programm wird aus einer Funktion mit dem Name 'main' gesteuert. Dort wird dann zu Beginn auch die GPIO definiert und im Anschluss werden daraus weitere Funktionen aufgerufen.

    Wenn du GPIO verwendest, musst du sicherstellen damit nach dem Programmende die GPIO-Belegung aufgeräumt wird. Dazu musst du 'cleanup' aufrufen. Damit dass immer ausgeführt wird, egal wie dein Programm beendet wird, verwendet man 'try/finally'

    Der Aufbau ist dann nachher in etwa so:


    Zum Schluss noch ein Hinweis, gpiozero ist eine Bibliothek zum steuern von GPIO's und ist meiner Meinung nach viel einfacher in der Anwendung. Schau es dir mal an.


    Grüße

    Dennis

    ... ob's hinterm Horizont wirklich so weit runter geht oder ob die Welt vielleicht doch gar keine Scheibe ist?