Forum: Mikrocontroller und Digitale Elektronik Beschleunigungsmessung via Beschleunigungssensor + Auswertung für Bildsicherung


von Chr B. (b-man)


Lesenswert?

Hallo erstmal an Alle!

Also vorweg ich wollte einen von diesen drei Sensoren verwenden.
-----------------------------------------
FREESCALE SEMICONDUCTOR
MMA7456LT

STMICROELECTRONICS
LIS3LV02DL

oder den LIS2L02AS4
-----------------------------------------

Wenn ich diese Sensoren richtig verstehe, dann kann ich die 
Beschleunigung in X, Y, Z messen. Sprich wenn ich in in Y-Richtung 
bewege gibt er mir eine Beschleunigung in Y-Richtung aus. Ist das 
richtig?

Jetzt meine Frage, wenn ich aus dem Sensor die digitalen Daten in meinen 
Controller einlese, wie rechne ich diese dann in die tatsächliche 
Beschleunigung um? Oder brauch ich keine Umrechnung? Kann ich auch die 
Neigung ausrechnen oder sogar die Positionsänderung von seiner 
Ausgangslage ermitteln?

Warum das Ganze?:

Ich möchte diesen Sensor an ein Bild anbringen. Wenn dieses Bild nun 
weggenommen wird soll er ausschlagen (Alarmsicherung für Tagsüber und 
Nachts). Wenn eine Person nur gegen das Bild stößt wäre es ja als eine 
Art Schwingung auszuwerten (z.B. Beschleunigung in x-Richtung und 
dannach Beschleunigung in y-Richtung). Ist es ein Problem wenn das Bild 
schräg an der Wand hängt? Muss der Controller gerade angebracht werden?

Welche der drei Controller könnt ihr mir für dieses Problem empfehlen?

thx

Mfg

bman

von Friedrich (Gast)


Lesenswert?

Hallo b-man!

Aus den Sensoren kannst Du die Beschleunigung direkt auslesen. Beachte: 
Die Erdbeschleunigung von 1g lässt wirkt damit automatisch in Z-Richtung 
(x,y in der Ebene). Wenn Du daher z.B. in z=0,7g misst und in y=0,7g 
misst hast du 45DEG Neigung.

Wenn wir von den Bauteilen reden:
Die genannten Teile sind Sensoren ohne weitere Intelligenz.
Für die Auswertung benötigst Du einen Mikrocontroller(oder Prozessor 
oder PC)
Der muss dann die oben beschriebene Auswertung des 
Beschleunigungssignals durchführen. Um an die Daten des Sensors zu 
kommen gibt es verschiedene Möglichkeiten:
a) analog, setzt voraus das der Controller ein A/D interface hat das 
ausreichend genau und schnell ist
b) digital, setzt voraus dass der Controller das zum Sensor passende 
digitale Interface besitzt (e.g. I2C)

Aufbau:
Der Sensor muss nicht zwangsläufig auf der selben Patine sitzen wie der 
Controller. Wenn du aber die Signale auswerten willst solltest Du am 
Anfang der Auswertung dem Algorithmus mitteilen was "Normalbedingung" 
ist, das kann man über eine Definition (Z=oben, x=rechts, y=hinten, alle 
lotrecht oder senkrecht ausgerichtet) oder über eine Kalibrierung (Nimm 
aktuellen Zustand auf, das its jetzt Normalzustand).

Weitere Fragen?

fj

von Chr B. (b-man)


Lesenswert?

Also ich wiederhole,

wenn ich dich richtig verstanden habe, dann ist der digitale Wert den 
ich einlese direkt die Beschleunigung. Also ich muss im Controller 
keinen Algorithmus schreiben, womit ich die Beschleunigung extra 
ausrechnen muss?

Zweite frage, das g steht das für 9,81m/s? Sorry aber das frag ich mich 
schon die ganze Zeit=) Weil wenn ich mich waagerecht bewege, wirkt ja 
eigentlich nur ein g von oben. Wie ermittelt der Controller die 
beschleunigung in waagerechte richtung? Oder habe ich das g falsch 
verstanden? Das g ist mir noch nit ganz kla, kannst du mir helfen?

Wie würde ich denn den Winkel berechnen wenn er nicht so offensichtlich 
ist, wie in deinem Beispiel? Über die Beschleunigungsvektoren?

Kann ich den Weg ausrechnung um den sich mein Sensor verschoben hat oder 
wird das zu ungenau?

Sorry für doofe Fragen, aber diesen Sensor verwende ich zum ersten mal=)

mfg

von ich (Gast)


Lesenswert?

Bewegung wird nicht erfasst nur Beschleunigung.

von Chr B. (b-man)


Lesenswert?

ich schrieb:
> Bewegung wird nicht erfasst nur Beschleunigung.

Moment, wenn ich weiß in welche Richtung er beschleunig, dann kann ich 
doch auf eine Bewegung in die Richtung schließen. Theoretisch müsste ich 
doch sogar über die Beschleunigung auf den Weg schließen 
können(Integral).

von Friedrich (Gast)


Lesenswert?

Die Sensoren liefern die Beschleunigung.
Sie unterscheiden aber nicht zwischen Beschleunigung und Beschleunigung.
Erdbeschleunigung ist Beschleunigung, ist 9,81m/s2.
Wenn Du erste Integration über Zeit machst kommt dabei eschwindigkeit 
raus, zweite Integration darüber gibt Weg (so haps ich noch ausm Studium 
im Kopf) - soviel mal zur Theorie (ein bischen googeln hilft da auch 
noch).
Bleibt die Frage was Du auswerten willst (Weg, Geschwindigkeit, 
Beschleunigung, Winkel, ...). Am besten Du machst Dir Darüber Gedanken 
darüber was du benötigst, dann wird es für Dich (vielleicht) einfacher.

Beschleunigung in den Richtungen:
Der SENSOR hat ja drei Achsen, je eine in der Raumrichtung. Eine 
davon, die in oben/unten Richtung wird im Ruhezustand durch die 
Erdbeschelunigung von 9,81m/s = 1g "belastet". die beiden andern Achsen 
links/rechts und vor/zurück sind im statischen Zustand unbeschleunigt, 
also NULL. Wenn due die beschleunigst kommt da ein Wert raus. Ebenso 
auch auf der Z-Achse (oben/unten), allerdings immer noch relativ zu 1g: 
im freien Fall wirkt auf den Sensor keine Erdbeschleunigung mehr = 0g = 
NULL.

Winkelberechnung: Die von mir getroffenen Aussagen bezogen sich auf ein 
statisches System, im dynamischen System sieht das etwas anders aus. Ich 
bin aber leider kein Dr. der Mathematik der dir das ableiten könnte.

rgds fj

von R. W. (quakeman)


Lesenswert?

Ich habe den LIS3LV02DL schon benutzt und der ist per SPI oder I2C sehr 
einfach anzusprechen.

Chr Bman schrieb:
> wenn ich dich richtig verstanden habe, dann ist der digitale Wert den
> ich einlese direkt die Beschleunigung. Also ich muss im Controller
> keinen Algorithmus schreiben, womit ich die Beschleunigung extra
> ausrechnen muss?
Er liefert dir einen vorzeichenbehafteten 12Bit Wert pro Axe zurück 
(-2048..0..+2047). Das sind dann 4096 Werte, was in der +-2g Einstellung 
dann ~0,97mg Auflösung sind. Laut Datenblatt ist selbst bei niedrigster 
Samplefrequenz von 40Hz die Auflösung bestenfalls 1mg.

> Zweite frage, das g steht das für 9,81m/s? Sorry aber das frag ich mich
> schon die ganze Zeit=) Weil wenn ich mich waagerecht bewege, wirkt ja
> eigentlich nur ein g von oben. Wie ermittelt der Controller die
> beschleunigung in waagerechte richtung? Oder habe ich das g falsch
> verstanden? Das g ist mir noch nit ganz kla, kannst du mir helfen?
g steht für die Erdanziehungskraft, wie du schon vermutet hast.

> Wie würde ich denn den Winkel berechnen wenn er nicht so offensichtlich
> ist, wie in deinem Beispiel? Über die Beschleunigungsvektoren?
Genau

> Kann ich den Weg ausrechnung um den sich mein Sensor verschoben hat oder
> wird das zu ungenau?
Kannst du natürlich machen. Hat man ja schon im Physikunterricht so 
gelernt. Wie genau das ganze natürlich wird kann dir vorher keiner 
sagen. Aber für eine grobe Ermittlung des Weges sollte es schon reichen. 
:)

Ciao,
     Rainer

von Guido Körber (Gast)


Lesenswert?

Zum Diebstahlschutz mittels Beschleunigungssensor haben wir hier eine 
kleine Technote:
http://www.codemercs.com/uploads/tx_sbdownloader/AN8.pdf

von Bilderklau (Gast)


Lesenswert?

Hallo bman,
schau Dir doch mal den BMA150 von Bosch-Sensortec an
(www.bosch-sensortec.de - MEMS products - acceleration - digital...)
er hat einen "Wake-Up"-Modus, in dem er sehr wenig Strom verbraucht
und aus dem er bei Überschreiten von gewissen Beschleunigungswerten
aufwacht.
Der Sensor kann jetzt den uC wecken, der prüft, ob die Bewegung
andauert. Wenn nein (nach Sekunden, Minute): Bild wird weggetragen,
Alarm. Wenn ja (nur drangestoßen, oder Erdbeben, Lastwagen) wieder Ruhe,
der uC kann den Sensor wieder "vorbereiten" und sich selbst wieder
schlafen legen.

von Gast123 (Gast)


Lesenswert?

Wenn der Dieb schlau ist bewegt er sich im Augenblickder Beschleunnigung 
sehr schnell und dann schön gleichmässig und du denkst es war ein Stoss 
:)

von Karl H. (kbuchegg)


Lesenswert?

Chr Bman schrieb:

> Warum das Ganze?:
>
> Ich möchte diesen Sensor an ein Bild anbringen. Wenn dieses Bild nun
> weggenommen wird soll er ausschlagen (Alarmsicherung für Tagsüber und
> Nachts).

Was spricht eigentlich dagegen dafür einen ordinären Taster zu benutzen, 
den man nicht sieht.
Bild hängt an der Wand: Taster geschlossen
Bild wird abgenommen: Taster geöffnet -> Sirene geht los.

Dafür braucht man noch nicht einmal einen µC

Oder eine Reflexlichtschranke oder ...

Ein Beschleunigungssensor ist in meinen Augen so ziemlich das 
ungeeignetste und technisch aufwändigste, um so etwas zu bauen.
Aber selbst wenn, würde ich das ganze mechanisch machen:
Ein kegelförmiges Pendel führt durch ein Loch in einem senkrecht dazu 
stehendem Blech. Wird die Apperatur bewegt, schlägt das Pendel am Blech 
an -> Stromkreis wird geschlossen -> Sirene geht los.
Genauso haben die Tilt-Pendel in Flipper Automaten funktioniert. Durch 
Höhenverstellung des Pendels kann die Spaltgröße des Pendels zum Loch 
und damit die Sensitivität des 'Sensors' eingestellt werden.

von bman (Gast)


Angehängte Dateien:

Lesenswert?

Ich hatte mich jetzt erst einmal für den MMA7456L von Freescale 
entschieden(der ist sehr günstig und besitzt einen Standbymode), werde 
mir den von Bosch aber auch einmal genauer anschauen. Danke!=) Was 
würdest du (Bilderklau) von dem Freescale halten?

Hallo kbuchegg,

ich sicher das Bild doppelt ab. Über Halleffekt und G-Sensor. Natürlich 
werde ich das ganze Pulsen um Strom zu sparen. Den Controller habe ich 
sowieso, da es eine Basisstation gibt, die mit der Station am Bild 
kommuniziert und per SMS den Hausmeister alarmiert.

Einen Taste oder einen Kontakt haben ich nicht genommen, da ich das 
ganze zeitlich Pulse und somit das System überbrückbar wäre(müssen Strom 
sparen, haben nur einen Akku). Ich denke mit einer Verbindung geht es 
bestimmt auch, aber zusätzlich würde ich immer einen zweiten Sensor 
nehmen. Doppelt hält halt besser=)

Der zweite Grund warum ich keinen Kontakt o. Taster genommen habe ist 
die Herausforderung. Mit diesen Sensoren kann ich noch ein bisschen mehr 
spielen=) Das ist der zweite Grund.

Trotzdem dir vielen Dank;-)

Find es echt super das hier so viele Leute Tips geben, an alle die schon 
geschrieben haben oder noch schreiben VIELEN DANK!!

mfg

von Bilderklau (Gast)


Lesenswert?

Hallo bman,
erstmal: ich hatte in meinem Beitrag einen Dreher drin: wenn
die Bewegung andauert - NEIN heißt natürlich, daß es nur eine
Störung war, JA heißt, das Bild wird weggetragen, war aber aus
dem Zusammenhang wohl klar.

Der BMA150 gefällt mir spontan besser als der Freescale, da er
eben diesen Wake-Up-Modus hat.

Der Feescale-Sensor hat im Normalbetrieb eine Motion-Detect-
Funktion, die aber für Deine Zwecke nicht richtig zum tragen kommt:

Wenn Du aus Gründen der Akkulaufzeit den Sensor nur periodisch
in Betrieb nimmst, die Beschleunigung prüfst und ihn wieder schlafen
schickst, wäre es Zufall, wenn in dieser An-Zeit ausgerechnet die
Motion-Detection anschlägt. Außerdem müßtest Du den Sensor in recht
kurzen Abständen abfragen, einige Sekunden.

Der Bosch-Sensortec-Typ braucht das nicht, er meldet sich, wenn
was los ist und weckt den Rest Deiner Schaltung.

von bman (Gast)


Lesenswert?

Ich glaube du fängst an mich zu überzeugen=)

von Uhu U. (uhu)


Lesenswert?

Wie stellst du dir eigentlich das Gerät vor? Soll das Bild anfangen zu 
schreien, wenn es weggetragen wir? Sprich, soll die Alarmanlage in den 
Rahmen eingebaut werden?

Oder willst du den Alarm an eine stationäre Anlage weitermelden? Wenn 
ja, mußt du das Alarmsignal irgendwie vom Rahmen an die statonäre Anlage 
übermitteln.

Wie willst du das machen? Per Funk?

Mir scheint, daß du die wichtigste Regel des Ingenieurwesens mißachtest:

  So einfach wie möglich und so kompliziert wie nötig

von bman (Gast)


Lesenswert?

Es gibt eine Basisstation.

Es sollen aber später mehrere Bilder gesichert werden. Die Basisstation 
hat den Alarm und versendet eine SMS an den Hausmeister. Das ganze ist 
eine Studienarbeit. Der lerneffekt muss ja groß sein=)
Natürlich hast du recht, in der Firma sieht das ganze später anders aus. 
Da sollte es kostensparend und effektiv sein=)

mfg

von Uhu U. (uhu)


Lesenswert?

Wie soll die Basisstation das Alarmsignal übermittelt bekommen?

> Da sollte es kostensparend und effektiv sein=)

Es geht dabei nicht nur um die Kosten, sondern auch darum, daß die 
Fehlermöglichkeiten mit der Komplexität zunehmen.

Fehler in der Alarmanlage sind die Werkzeuge der Diebe...

von bman (Gast)


Lesenswert?

Die Übertragung findet mit diesem AVR RFM12 
(http://www.mikrocontroller.net/articles/AVR_RFM12) statt. Für den 
Funkteil ist leider ein anderer Student zusändig. Wenn du 
Verbesserungsvorschläge haste gerne her damit=) Ich leite sie 
aufjedenfall weiter. Ich kann nur sagen, dass ich mich mit diesem 
Bauteil nicht beschäftigt habe. Ich werde mit der Sensorik rumspielen. 
Die Stationen sind aufjedenfall später nur per Codewort zu deaktivieren, 
welches per Handy an die Basisstation geht bzw. direkt an der 
Basisitation per Tastenkombination eingegeben werden kann (ob beides 
wird sich wahrscheinlich erst später rausstellen).

Ich möchte aufjedenfall mit 2 Sensoren arbeiten, falls der Dieb es 
schaffen sollte einen zu überbrücken, stellt sich die Frage in wiefern 
er mit einem zweiten rechnet. Der sollte natürlich recht unauffällig 
sein.

mfg

bman

von Uhu U. (uhu)


Lesenswert?

Je mehr Details du nennst, um so stärker wird bei mir der Eindruck, daß 
das ein Beispiel dafür ist, wie man sowas auf keinen Fall machen darf.

Na ja, vielleicht ist das ja auch der Hintergedanke dessen, der sich den 
Unsinn ausgedacht hat...

von Ricardo (Gast)


Lesenswert?

Gib's auf hier in diesem Forum ist keiner gewillt dir zu helfen!

mfg

von bman (Gast)


Lesenswert?

ich würde mal sagen, wir werden sehen=)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.