GIOP Interrupt von Sensoren

L I V E Stammtisch ab 20:30 Uhr im Chat
  • Hallo

    Gibt es eine Möglichkeit in Pyhton Inputs von Sensoren via Eventhandler abzufragen? (Ohne übermässig Rechenleistung zu verbrauchen.)

    Beim Olimex A20 soll es die Möglichkeit nicht gehen. Wie sieht es mit dem Beaglebone und Raspi B aus?

    Gruss

  • Nun meego,

    dazu müsste man erst mal definieren, was Du unter einem Sensor verstehst.
    Per Definition ist z.B. ein Taster/Schalter nach meinem Verständnis kein Sensor.
    Ein Sensor dient m.E. zum Erfassen physikalischer oder chemischer Eigenschaften.
    So gesehen kann ein Sensor gar keine eigenständige Aktion (=Interrupt) ausführen.

    Das, was Du vermutlich meinst, geht eher in die Richtung Schwellenwert.
    Das hängt dann vom verwendeten Bauteil ab.
    So kannst Du z.B. ein elektronisches Thermostat in Form eines DS1621 verwenden, das über solche einstellbaren Grenzwerte verfügt.
    Ein normaler Temeratur-Sensor wie der DS18B20 kann das z.B. nicht.

    Zum Thema Interrupt kannst Du auch hier was nachlesen oder mal die SuFu nutzen.

    BTW: Buttons klickt man an - Zitronen kann man pressen ;) ... arme, versaubeutelte deutsche Sprache

    cheers,
    -ds-

  • Was ich meine ist einen Eventhandler in Python, der ohne Schleife auskommt. Auf einem englischen Board hat einer die Frage so beantwortet:

    "Sensors will have to be read manually though, because there still is no interrupt driven solution for the a20."

    und

    "Yes, the raspi has event based gpios. I experienced massive timing problems with the a20s gpios compared to the raspi. And "little slower" is not true, it kills the performance really bad, if you want to keep the delay very low. Sometimes you can even miss an event."

    Der A20 ist von Olimex.

    Bezüglich Button: Der registriert ja auch eine physikalische Veränderung der Aussenwelt.

    BTW, Bedeutungen:
    [2] starken Druck ausüben, indem etwas in etwas hineingedrückt wird (eben der Button in sein Gehäuse)
    Herkunft:
    Das mittelhochdeutsche Wort prëssen ist dem lateinischen pressare → la (drücken, pressen) entlehnt.[1]

  • Nun, ich glaube ich weiss schon auf was Du hinaus willst.

    Ja, Du kannst eine ISR auf den Statuswechsel eines oder mehrerer GPIOs legen.
    Die Krux ist, dass ein "normaler" Sensor nur auf Anforderung seine Daten sendet, es sei denn er ist auf einer kleinen Platine montiert, deren Elektronik es erlaubt, einen oberen und/oder unteren Schwellenwert einstellen kannst.

    Um Dein Ultraschall-Beispiel aufzunehmen: der "normale" Betrieb dieses Sensors erfolgt wie hier beschrieben.
    Wenn Du eine entsprechende Elektronik drum herum bastelst, die einen Pin auf high oder low legt, wenn der Abstand weniger oder mehr als 30 cm beträgt, kannst Du diesen an einen der freien GPIOs anschliessen und per ISR drauf reagieren.


    //EDIT:
    Dieser PIR wäre z.B. auch so ein Kandidat für eine ISR.


    cu,
    -ds-

  • Ja, Du kannst eine ISR auf den Statuswechsel eines oder mehrerer GPIOs legen.
    Die Krux ist, dass ein "normaler" Sensor nur auf Anforderung seine Daten sendet, es sei denn er ist auf einer kleinen Platine montiert, deren Elektronik es erlaubt, einen oberen und/oder unteren Schwellenwert einstellen kannst.


    //EDIT:
    Dieser PIR wäre z.B. auch so ein Kandidat für eine ISR.

    Ich verstehe. Dieser PIR bietet die Elektronik also von Haus aus an?
    Weisst du, ob der Beaglebone Black auch solche Eventhandler kennt?


  • Ich verstehe. Dieser PIR bietet die Elektronik also von Haus aus an?
    Weisst du, ob der Beaglebone Black auch solche Eventhandler kennt?

    Yepp, der PIR und auch bei den MQ-x Gas-Sensoren kannst Du Schwellwerte einstellen, die dann einen der Anschluss-Pins auf LOW setzen, wenn der eingestellte Wert überschritten wird.
    Ob der Beagle Black das kann, weiss ich nicht.

    Aber schau mal ->hier ...
    Da hat Chris1705 einen Beaglebone verkauft - schreib dem mal ne PN und frag ihn. Der könnte das wissen.

    cheers,
    -ds-

  • Yepp, der PIR und auch bei den MQ-x Gas-Sensoren kannst Du Schwellwerte einstellen, die dann einen der Anschluss-Pins auf LOW setzen, wenn der eingestellte Wert überschritten wird.
    Ob der Beagle Black das kann, weiss ich nicht.

    Aber schau mal ->hier ...
    Da hat Chris1705 einen Beaglebone verkauft - schreib dem mal ne PN und frag ihn. Der könnte das wissen.

    cheers,
    -ds-

    Danke, da werde ich gerne nachfragen. Und dabei gleich mal in Erfahrung bringen, wieso er ihn wieder verkauft hat. Bin immer noch unentschieden mit was ich in die Materie einsteigen soll. Dein Tipp war ein Arduino.

    Cheers

    Einmal editiert, zuletzt von meego (5. November 2013 um 16:25)

  • Ja ... und den Arduino finde ich nach wie vor für Einsteiger das non plus ultra.
    Da gibts die Library, Du brauchst nichts programmieren sondern kannst für die Standard-Teile (LCDs, Sensoren, ...) die Sketches verwenden und direkt laufen lassen.
    Also das optimale Teil um µController kennen zu lernen ;) ...

    ciao,
    -ds-

  • Andererseits habe ich eben auch 2 Courserakurse in Python gemacht und würde die Sprache ganz gerne weiter praktisch anwenden. SimpleCV (Computer Vision: http://www.simplecv.org) würde sich da eben auch noch anbieten.

    Finanziell sieht es ungefähr gleich aus: Uno und Motorshield kosten fast dasselbe, wie Raspi/BBB und Zusatz.
    Oder gibt's für den Uno eine wesentlich billigere Chinaquelle?

  • Na mit Python kannst Du ja weiter machen ...

    (China-) Quellen gibts haufenweise:
    Das hier ist allerdings ein deutscher Anbieter, dann gibts noch ChipWorld und emall4you, oder Development-Tools oder Profit-Vanity (der allerdings nicht wirklich preiswert ist) und, und, und, ...

    ciao,
    -ds-

  • Na Du wirst ja wohl einen Laptop oder einen PC haben, auf dem Du Python lernen kannst ...

    Von den Dingern aus Deinen Links kenne ich leider gar nichts, sorry.
    Ich würde da sowieso eher zu so was, so was oder so was in der Richtung tendieren.

    // EDIT:
    meego: magst Du vielleicht mal die Überschrift korrigieren. Irgendwie irritiert es mich immer wieder, wenn ich statt GPIO im Titel GIOP lese ;)


    cheers,
    -ds-

  • Naja ... langweilig wird Dir mit dem Arduino sicher auch nicht.
    Diese Sketches sind ja auch eine Art Programmiersprache - die gilt es zu lernen und evtl. die Sketches zu ändern.

    Zumindest weisst Du im Laufe der Zeit, was Du da tust und das erhöht die Überlebens-Chance eines evtl. dann folgenden RPi imho ganz erheblich :fies:


    cu,
    -ds-

Jetzt mitmachen!

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