GPIO Im Hintergrund abfragen

  • Hallo liebe Member,

    ich habe eine recht allgemeine Frage zum Thema GPIO, was ich will erklär ich euch am besten mal an meinem Beispiel.

    Ich hab vor nen RPI als Medienserver und -renderer im Auto laufen zu lassen. Dazu wird ins KfZ ein kleiner WLan Router gebaut, Minidlna + GMediaRender auf's Raspi. Alles ganz klassisch. ;) Dazu soll sich dann ein Arduino gesellen, der das Signal "Spannung weg" = "Zündung aus" abfängt, den RPi dann nach einer voreingestellen Zeit runterfährt (also sowas wie: wenn Spannung an GPIO13 führe Runterfahrscript aus) und nach einer Weiteren kurzen Zeit die Stromzufuhr vom Akkupack unterbricht.

    So, jetzt zu der Frage: Natürlich ist es die Hauptaufgabe des RPi Musik abzuspielen, das heißt, da kann kein Programm im Vordergund laufen, was die ganze Zeit die GPIO Schnittstelle überwacht. Ich hab mich schon etwas umgesehen und etwas zum Thema "Interrupt Handling" eingelesen, was sicher für solche Zwecke kein schlechter Einstieg ist.

    Nun gibt es ja diverse Möglichkeiten, das zu Realisieren, das einfachste wäre ja das Progamm aufzurufen und ein "&" dahinter zu schreiben. Dann gäbe es ja noch cron. Oder vielleicht nen eigenen Dienst. Sicher sind auch nicht alle Programmiersprachen gleich geeignet.

    Ihr seht, Ideen sind da, allerdings fehlt ein Gesamtkonzept. Ich habe durchaus Erfahrungen sowohl mit Linux als auch mit der Programmierei (leider gerade nicht mit Python, aber das lern ich wenn's sein muss), bin aber auf beiden Gebieten kein ausgemachter Crack (nur um das Niveau der Antworten etwas zu steuern. ;)).

    Ich freu mich schon auf viele kreative Antworten von Euch!

    Feuer Frei. :thumbs1:

  • Hallo jan_Ide,

    Zitat

    So, jetzt zu der Frage: Natürlich ist es die Hauptaufgabe des RPi Musik abzuspielen, das heißt, da kann kein Programm im Vordergund laufen, was die ganze Zeit die GPIO Schnittstelle überwacht. Ich hab mich schon etwas umgesehen und etwas zum Thema "Interrupt Handling" eingelesen, was sicher für solche Zwecke kein schlechter Einstieg ist.


    ...das ist doch schon Deine Antwort ...:D

    Les Dich mal hier bißchen ein.

    PIGPIO
    Z.b.

    Code
    gpioSetAlertFunc	Request a gpio level change callback

    gruß root

  • Na Moment. So wie ich das bis jetzt verstenden hab, ist das aber nur die halbe Wahrheit. Denn das Programm, in dem ich den Befehl nutze (ist C, oder?), läuft ja weiter im Vordergund. Die GPIO Abfrage soll quasi beim Booten gestartet werden und dann ständig im Hintergrund laufen. Oder hab ich was falsch verstanden?

    Mal als Beispiel:

    Ich sitz an meiner SHH Konsole und mach grad "Sachen". Im Hintergund läuft ein Programm, dass, sagen wir GPIO 3 auf High überwacht. Wenn der nun betätigt wird, kommt in der Konsole ne Meldung: GPIO 3 Betätigt. Ich weiß nicht, wie ich ein entsprechendes Progamm in den Hintergrund bekomme und beim Booten starte. Und ob das auch mit Shellscripten geht, das wäre ja das einfachste.

    Das ist ein Grunsätzliches Problem, welches ich schon des Öfteren auch schon an anderen Stellen hatte.

  • ok, dann les mal das :Daemon durch
    ab "Eingabe-Taster"
    Der spielt hier mit Status Led's und macht mit nem Taster nen shutdown.
    Anstatt shutdown dann was anderes machen.
    Evtl hilft Dir das.
    gruß root

  • Na ausgezeichnet, mit dem was da steht kann man ja super arbeiten, danke. Das man die Scripte einfach in /etc/rc.local eintragen kann hätte ich auch ergoogeln können. :blush:

  • na super....:)

    Was soll's .... aller Anfang... ;)
    Was glaubst Du, wie oft ich gesucht und nix gefunden habe..... weil's direkt vor das Nase lag :lol::lol::lol:
    btw... diese pigpio lib ist auch für Python...

    gruß root

    Einmal editiert, zuletzt von root (13. August 2014 um 14:39)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!