Beschleunigungssensor erzeuge Interrupt wenn Beschleunigungswert überschritten wird.

  • Hallo,

    seit mehreren Tagen suche ich nach einer Lösung für das folgende Problem:

    Bau eines Gerätes zur Schlaglochsuche mit einem

    1. Raspberry
    2. Beschleinuigungssensor
    3. GPS-Empfänger

    Die Lösung sollte folgende Funktione erfüllen:

    • Der Raspberry befindet sich im Schlafmodus bis der Beschleunigungssensor erkennt dass ein bestimmter Beschleunigungswert (z.B. 2g) überschritten wird.
    • Der Beschleunigungssenser setzt einen Interrupt ab, der den Raspberry aufweckt.
    • Das Programm registriert den Beschleunigungswert und liest die aktuelle GPS-Posistion aus.
    • das Programm schreibt diese Werte (Beschleunigung und GPS-Position) in eine Datei.

    Meine Frage ist jetzt:

    Wie kann ich den Beschleunigungssensor so programmieren, dass er einen Interrupt über den PIn INT1 oder INT2 an den Raspberry schickt?

    Die Sensoren ADXL345 oder MPU6050 kenne ich.

    Das GPS-Module is GY-NEO6MV2 ist auch kein Problem.

    Es wäre schön wenn ich hier Hilfe finden könnte.

    Vielen Dank im Vorraus

    Kurt

  • Beschleunigungssensor erzeuge Interrupt wenn Beschleunigungswert überschritten wird.? Schau mal ob du hier fündig wirst!

  • Das Problem hier ist der PI. Der unterstützt so etwas nicht. Es gibt da keinen Deep sleep. Der ESP32 zb kann sowas. Und die MPU6050 unterstützt so einen Modus AFAIK auch nicht. Der ADXL345 kann das, wie auf Seite 20 des Datenblatts beschrieben.

  • Selbst wenn der PI 'Deep Sleep' unterstützen würde, waren er beim Aufwachen viel zu langsam.

    Ein ESP8266 und natürlich ach ein ESP32 kann das.

    Hier müsste das Signal der zu hohen Beschleunigung nur den Rest-Pin auslösen.

    Ein Problem könnte der GSSN-Signal sein, denn das müsste da schon bereitstehen, da ansonsten das Warten auf eine saubere Position zu lange dauert.

    Computer ..... grrrrrr

  • Hallo _deets_ und Rap-Berlin,

    danke für Eure Antworten.

    Ja das ist schade aber das ist ok.

    Ich denke ich löse es so, dass das Programm in kurzen Abständen den Beschleunigungssensor ausliest und prüft ob ein Schwellwert des Betrages des Vektors überschritten wird.

    Dann liest es die zugeörige GPS Position aus und speichert es in einer Datei.

    Eleganter wäre es wenn ich einen threshold im adxl345 definiere und dann bei einem solchen Ereignis die GPS Position ermittle.

    Aber ich weis nicht ob man den threshold für +/- Werte definieren kann. Das heist : wenn der Z-Wert z. B. +2g oder - 2g ist soll ein Signal kommen.

    Aber ich denke das wird dann zu kompliziert.

Jetzt mitmachen!

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