Forum: Mikrocontroller und Digitale Elektronik Neigungsmessung mit Beschleunigungssensor


von Micha (Gast)


Lesenswert?

Hi, ich wollte nein paar Neigungsmessungen so +/- 30 Grad Bereich mit 
einer Auflösung von ca. 0,1 Grad oder besser machen.
Dafür suche ich einen Sensor welcher statische Beschleunigung messen 
kann.
Das soll damit ja wohl gehen. Nur leider habe ich (noch) keinen Plan von 
der Materie. Wie stelle ich das damit an? Kennt sich einer aus ?
Grüße Micha

von Enno (Gast)


Lesenswert?

versuchs mal mit dem ADXL, schau am besten bei ebay nach, da der sonst 
nur selten und recht teuer zu kriegen ist.

von Peter R. (gelb)


Lesenswert?

MMA7260 von Freescale und ähnliche statische Sensoren gibt es 
verschiedentlich im Internet, z. B. bei http://www.sander-electronic.de

Bisschen Trigonometrie-Berechnungen mit den 3 Ausgangsspannungen, dann 
geht das.

Grüße, Peter

von Micha (Gast)


Lesenswert?

Hi, ja hab schon paar gefunden. Nur wie muss ich das mit den "+/- g" 
verstehen ? Erdbeschleunigung ? was brauche ich da für meinen Fall ?
Grüße Micha

von Enno (Gast)


Lesenswert?

ja g ist Erdbeschleunigung. Wenn du also 0,5g erhälst musst du den 
Cosinus von 0,5 nehmen, da die Ankathete dein Ausgangswert ist und die 
Hypothenuse die Erdbeschleunigung.

von Micha (Gast)


Lesenswert?

Hmm.
cos-alpha = Hyp/Ank.

wie komme ich da bei z.B. 0,5g auf den Winkel ?
Sorry für die blöden Fragen :-)
Micha

von Klaus R. (klaus2)


Lesenswert?

Du garnicht.

Klaus.

von Michael H* (Gast)


Lesenswert?

> cos-alpha = Hyp/Ank.
da denken wir bitte nochmal drüber nach.

von Micha (Gast)


Lesenswert?

ja :-)
hast ja recht.
Cos-alpha = Ank/Hyp
war ein Test :-)

von Micha (Gast)


Lesenswert?

Q Peter,

hab mir grad mal den MMA7260 angeschaut. Der kostet auf ner Platine 
keine 20 EUR bei Ebay. Das klingt ja ganz gut. Hast du mit dem schon mal 
was gemacht ?

von Peter R. (gelb)


Lesenswert?

@  Micha (Gast)

Habe die MMA7260QT vor 1 Jahr gekauft, aber erst noch vor, sie zu 
verwenden.

In der empfindlichsten Einstellung liefern sie 800mV/G, der Nullpunkt 
liegt bei 1,65V +/-10%, muss also abgeglichen werden. (am besten in 
einem Null-G-Parabelflug, hihi)

Bei gerader Lage meldet also der Z-Teil + oder -800mV und die anderen 0 
(immer bezogen auf den Nullpunkt). Wenn er ganz senkrecht gekippt ist, 
geht Z auf 0 und X oder Y melden die + oder - 800mV oder es gibt eine 
Mischung aus X und Y.

Es würde mich interessieren, welche Gradauflösung  mit 10 Bit 
AD-Wandlern (AVR!) erreicht wird. Bin aber heute zu faul zum Rechnen.

Wenn du ein Ergebnis hast, lass es doch wissen.

Grüße, Peter

von Micha (Gast)


Lesenswert?

Ich habe leider noch nicht begriffen wie ich mit den "g" Werten auf 
meinen Winkel komme? Kennst du dich da aus...?
ja und 10 bit ist 1024 oder was meinst du jetzt ?

von Micha (Gast)


Lesenswert?

90 grad / 1024 = 0,087 Grad Auflösung. Mal grob gesagt 0,1 Grad. das 
würde mir schon reichen.
Kennt sich keiner mit den Zeug hier richtig aus ? :-)

von so nicht (Gast)


Lesenswert?

Ja, doch sicher haben wir eine Ahnung. Sind aber mindestens so faul und 
demotiviert wie du....

von Harald (Gast)


Lesenswert?

Wenn Du einen z.B. einen +/-1.7G Sensor hast, der in Mittellage 2.5V 
ausgibt, bei -1.7G=0V und bei +1.7G = 5V dann hättest Du bei 
+1G=(2.5V/1.7)+2.5V = 3.97V und bei -1G=(2.5V/1.7)+2.5V = 1.03V

+/-1G hast Du dann, wenn Du den Sensor genau 90° seitlich kippst. Der 
Verlauf der Spannung folgt dabei der Sinus-Funktion im Bereich 0..90°. 
Im Bereich von ca. +/-15° ist der Verlauf der Sinus-Kurve recht linear, 
da kann man - je nach Anforderung an die Genauigkeit - fast ohne 
Kompensation der Ausgangsspannung leben.
Darüber hinaus KANN man die Ausgangsspannung entsprechend kompensieren. 
Wenn man das z.B. mit einem Mikrocontroller macht, dann muss man 
eingangsseitig schon sehr fein auflösen (z.B. mit 14 bit), um 
ausgangsseitig noch eine annehmbare Auslösung (z.B. 8..10 bit) erzielen 
zu können.

Prüfe doch einfach, ob Du diese Kompensation für deine Applikation 
überhaupt benötigst.

Übrigens noch Unterschied zwischen Neigungssensor und 
Beschleunigungssensor:
Der liegt nur in der Dämpfung des Elements, diese ist naturgemäß bei 
MEMS-Zellen (sprich Halbleiter-Lösungen) so gut wie nicht vorhanden. 
Eine nachfolgende Dämpfung per Tiefpass kann meistens das gewünschte 
Resultat erzielen aber nicht immer: Wenn das Sensorelement in 
entsprechende Resonanzen gerät (z.B. durch Mikro-Schwingungen bei 
Straßenfahrt oder dergleichen) kann dieses in Resonanz geraten. Diese 
Schwingung des Sensorelements kann für eine Meßwert-Verfälschung sorgen, 
welche definitiv nicht von außen kompensierbar ist. Aus diesem Grund 
gibt es für reine Neigungssensoren oftmals noch als veraltet 
erscheinende Messverfahren wie Ölpendel oder kapazitiv erfasste 
Elektrolyte zwischen Glasplatten. Diese Verfahren haben prinzipbedingt 
eine hohe Dämpfung und eignen sich daher besonders für eine 
Neigungsmessung.

von Micha (Gast)


Lesenswert?

@ so nicht
wuste garnicht das ich faul und demotiviert bin. das ist mir neu !
dann lass doch mal was vom stapel, wenn du dich auskennst. denke eher du 
gehörst du den spinnern die hier den gerne mal den oberlehrer raushängen 
lassen und sonst nichts können außer sprüche kloppen

von Peter R. (gelb)


Lesenswert?

@  Micha (Gast)

Da hab ich oben den ganzen Sensor beschrieben, aber es braucht ja nur 
z.B. den Z-Teil, X und Y braucht man hier nicht.

Werte vom Sensor sind im Bereich 1,65V +/- 0,8V für 0 Grad bis +/- 90 
Grad.

AD-Wandler auf 0..2,5V auslegen, weil es 2,5V Referenzen gibt und die 
maximale Spannung vom Sensor bei 1,65+0,8=2,45V liegt. Die Wandlerwerte 
liegen bei 10 Bit zwischen 348 und 1004 (676 +/- 328)

Wandlerwerte normieren auf +/-1, damit sie mit Acrcus Sinus weiter 
verrechnet werden können: Z = (676 - Wandlerwert) / 328.

Winkel = arcsin(Z)

Winkelfunktionen müssten von einem Mikrocontroller zu schaffen sein.

Die Auflösung beträgt etwa 0,2° bis 30° Neigung.

Grüße, Peter

von Micha (Gast)


Lesenswert?

@ Harald und Peter, danke für die Erklärungen. Im großen ganzen habe ich 
das jetzt geschnallt. Ich denke mit der Genauigkeit ohne Kompensation 
kann ich leben. Das alles nochmal genau zu berechnen macht bei meinen 
Anwendungen keinen großen Unterschied. Ich brauche das nur als 
Winkelmesser um paar Rohre zu biegen. Die Biegungen nochmals bischen zu 
korrigieren ist einfacher als hier ein riesen Aufwand zu betreiben.
Nochmal zu dem Sensor. Ich brauche nur eine Achse und ein Sensor mit 2,5 
V Mittellage wäre optimal für mich. Denn könnte ich so wie er ist an 
meine SPS hängen und wäre fertig. Kennst du / Ihr da zufällig einen ? 
Wenn nicht klingle ich mich morgen mal bei den Händlern durch.
Grüße Micha

von Bertram S. (bschall)


Lesenswert?

Datenblatt eines ADXL lesen und du weist bescheid!
z.B. Tilt = asin(acceleration)

von Hugga Bugga (Gast)


Lesenswert?

>Tilt = asin(acceleration)

Aha, wie beim Flipper ;-P

von Harald (Gast)


Lesenswert?

z.B.
http://www.gemac-chemnitz.de/pages/d_html/produkte/sensors/de-sensanalog.htm

Da gibt es welche mit 0..10V, wahrscheinlich ideal für SPS. Allerdings 
sind die auf keinen Fall kostenlos, nur als Vorwarnung.

von Micha (Gast)


Lesenswert?

Gemac ist ne Sache für sich. Da hab ich heute erst einen Testsensor 
zurück geschickt. Ich habe zwei Sensoren NS7. Dieser soll eine 8 bit 
paralell Wort entsprechend der Neigung ausgeben. Ich habe das getestet. 
Bei mir leider ohne Erfolg. Die Null und die 255 kamen ganz sauber. Nur 
dazwischen flatterte das Meßergebnis hin und her wie so ein 
Hundeschwanz. Darauf hin hab eich bei Gemac angerufen und es wurde mir 
sehr freundlich versucht zu helfen. Ich habe sogar ein neues Exemplar 
zum Testen bekommen. Bei dem hatte ich das gleiche Ergebniss. Das 
Problem war eigentlich nur, das es kein vernünftiges Datenblatt gibt. 
Ich bin mir sicher das die Dinger funzen, aber leider konnte mir keiner 
so richtig sagen, was ich falsch mache. Und ein Entwickler sagte mir das 
es in dem 2 seitigen Datenblatt einen Fehler geben sollte. Ging aber 
auch nach der neuen Einstellung nicht. Naja nichts für ungut. Es wird 
einem da versucht zu helfen auch wenn nicht die Umsätze in tausender 
Stückzahlen winken. Das fand ich echt gut, das Datenblatt jedoch grotten 
schlecht. Ja und die Preise sind auch nicht gerade mehr Marktfähig. Für 
eine Achse mit 8 bit Auflösung um die 100 EUR ( und nix mit Sample ) ist 
nicht mehr zeitgemäß
Grüße Micha

von Guido Körber (Gast)


Lesenswert?

Also um 0,1 Grad Auflösung zu bekommen braucht man schon einen Sensor 
der bei 1g 10 Bit macht, das ist schon nicht ganz einfach zu 
beherrschen. Integrierte Sensoren, die den A/D Wandler bereits mit drin 
haben sind meist bei 8 Bit pro g oder schlechter.

Wir bauen einen 3 achsigen Sensor mit USB Schnittstelle der 10 Bit bei 
+/-2g macht, also 8 Bit pro g. Dazu haben wir auch ein Beispielprogramm 
mit dem man 2D Winkel messen kann, Sourcecode inklusive, kann man sich 
also runterladen um anzuschauen wie sowas geht:
http://www.accelerationsensor.de

Nicht vergessen darf man, dass durch den cos alpha die Winkelauflösung 
um so schlechter wird je weiter man sich von der Horizontalen entfernt. 
Für präzise Winkelmessungen sind eher flüssigkeitsgefüllte Sensoren mit 
kapazitiver Messung sinnvoll.

von Gast (Gast)


Lesenswert?

"Linux-Unterstützung in Vorbereitung" - heisst das die wirds nie geben 
oder habt ihr dafür schon nen angepeilten Termin?

von jl (Gast)


Lesenswert?

Aber immer darauf achten was gemessen wird. Sollte sich das Objekt 
bewegen bzw selbst beschleunigen, so gibt es eine Überlagerung der 
gemessenen Beschleunigung durch den Winkel und der 
Bewegungsbeschleunigung. Gerade bei Pendelbewegungen (oder schlimmer 
Doppelpendel) wird das harrig.

Die Spezifikation "statisch" sollte man also immer genau treffen. 
(Messobjekt steht für 10s, 1s, 100ms still um die Messung 
durchzuführen).


JL

von Guido Körber (Gast)


Lesenswert?

"Linux-Unterstützung in Vorbereitung"  Leider noch kein Termin, uns ist 
der Linux-Programmierer ausgefallen, Ersatz sollte aber hoffentlich in 
Kürze vorhanden sein. Da das Thema so komplex nicht ist, wird es wohl 
nicht mehr allzulange dauern.

von Gast (Gast)


Lesenswert?

@Guido: Ok, danke. Es soll ja Firmen geben, die schon seit Jahren 
Linux-Unterstützung ankündigen, daher die Frage.

Zum Thema:
Warum rechnet ihr nicht mit arctan(y/x) den Gravitationsvektor aus? Dann 
wär wenigstens die Genauigkeit nicht mehr winkelabhängig. Und wenn ich 
weiss wo unten ist, ist die Neigung ja auch ein Kinderspiel :-)

von Guido Körber (Gast)


Lesenswert?

Ja, durch Einbeziehung der Z-Achse könnte man die Genauigkeit noch 
steigern, das ist wahr. Da es aber nur ein Demoprogramm ist, hat uns die 
Lösung erst mal gereicht, man kann das ja so schon schön auf der Messe 
vorführen. Fertig benutzbare Programme für so einen Sensor zu schreiben 
ist ohnehin schwer, da jede Anwendung ihre Anforderungsdetails hat.

von Gast (Gast)


Lesenswert?

Sorry, war jetzt nicht als Kritk gemeint, sondern als Anstoss für die 
Diskussion weiter oben!

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.