Forum: Mikrocontroller und Digitale Elektronik Winkelbestimmung mit Beschleunigungssensor


von Vala (Gast)


Lesenswert?

Hallo zusammen,

ich möchte mit dem ADXL330 3-Achsen-Beschleunigungssensor die Auslenkung 
einer beweglichen Stange bestimmen.
Dieser Sensor liefert Spannungen über 3 Ausgänge (für die 3 Achsen), die 
proportional zur Auslenkung sind.

Ich nutze dafür nur 2 der Ausgänge, bekomme also 2 Spannungen, eine von 
der x-Achse des Sensors und eine von der y-Achse.
Den Versuchsaufbau kann man sich wie eine alte Wanduhr vorstellen: Es 
gibt eine Art "Pendel", an welchem der Sensor angebracht ist, und ich 
möchte den Auslenkungswinkel berechnen, der zwischen "Pendel" und der 
Vertikalen liegt.

Das Programm zur Spannungsauslese ist fertig und ich bekomme bei 
Auslenkung einen schönen Spannungsverlauf ausgegeben.

Frage: Wie komme ich anhand dieser Spannungen (eine für die x- und eine 
für die y-Achse) nun auf den Winkel?
Das sollte eigentlich relativ simple Trigonometrie sein, allerdings 
komme ich grade nicht weiter.

Vielen Dank vorab!

von Karl H. (kbuchegg)


Lesenswert?

Vala schrieb:

> Das sollte eigentlich relativ simple Trigonometrie sein, allerdings
> komme ich grade nicht weiter.

rechtwinkeliges Dreieck und die Definitonen des Sinus bzw. Cosinus am 
Einheitskreis (und dem darin eingezeichneten rechtwinkeligem Dreieck, 
dessen Seiten den Sinus bzw. Cosinus repräsentieren). Mehr brauchst du 
nicht.

Oh. Und natürlich den Phythagoras, um deine Messwerte erst mal auf einen 
Gesamtvektor der Länge 1 zu normieren.
Und ich denke mal, je nach Betrachtungsweise des Problems, sind auch 
noch ähnliche Dreiecke im Spiel. Aber das ist jetzt schon mathematische 
Spitzfindigkeit :-)


Auf Papier die Situation aufzeichnen, und die Werte, die du gemessen 
hast einzeichnen. Dann wird das ganze so richtig trivial.

: Bearbeitet durch User
von Udo S. (urschmitt)


Lesenswert?

Vala schrieb:
> Es gibt eine Art "Pendel", an welchem der Sensor angebracht ist,

Wo genau ist er angebracht? Das Teil misst Beschleunigungen. Es misst 
auch die Beschleunigungen des Pendels.
Wenn du aus den Beschleunigungen einfach (Wie Karl Heinz oben angedeutet 
hat) deinen Winkel erfassen willst sollte des Sensor tunlichst GENAU auf 
der Drehachse des Pendels sitzen.

von Karl H. (kbuchegg)


Angehängte Dateien:

Lesenswert?

So sieht die zughehörige Zeichnung aus.
Damit sollte es eigentlich nicht mehr schwer sein, die entsprechenden 
Gleichungen aufzustellen.

Mir völlig unverständlich, wie man geometrische Probleme angehen kann, 
ohne sich zuvor eine Skizze gemacht zu haben.

: Bearbeitet durch User
von Udo S. (urschmitt)


Lesenswert?

Nur das er so (Sensor aussen am Pendel) beim Pendeln kaum eine 
tangentiale und dafür eine höhere radiale Beschleunigung messen wird.
Da das Pendel PENDELT gleicht sich der tangentiale Anteil der 
Gewichtskraft mit der tangentialen Momentanbeschleunigung halbwegs aus.
Ausser er setzt den Sensor in oder möglichst nahe an den Drehpunkt.

: Bearbeitet durch User
von Karl H. (kbuchegg)


Lesenswert?

Udo Schmitt schrieb:
> Nur das er so (Sensor aussen am Pendel) beim Pendeln

eingangsposting lesen.
Es handelt sich um eine drehbar gelagerte Stange, die ausgelenkt wird.


> dafür eine höhere radiale Beschleunigung messen wird.
im Umkehrpunkt (der sich in den Daten erkennen lässt), verschwindet auch 
diese Komponente.

von Udo S. (urschmitt)


Lesenswert?

Karl Heinz schrieb:
> eingangsposting lesen.
> Es handelt sich um eine drehbar gelagerte Stange, die ausgelenkt wird.

Stimmt, aber der TO hat auch das geschrieben:

Vala schrieb:
> gibt eine Art "Pendel", an welchem der Sensor angebracht ist

Karl Heinz schrieb:
> im Umkehrpunkt (der sich in den Daten erkennen lässt), verschwindet auch
> diese Komponente.

Richtig, aber damit kann er nur die maximale Auslenkung und (falls die 
Stange wirklich frei pendelt) nicht die Auslenkung in Abhängigkeit der 
Zeit bestimmen.

Na ja falls der TO sich nochmal meldet kann er ja mal genauer sagen um 
was es wirklich geht.

von Karl H. (kbuchegg)


Lesenswert?

Udo Schmitt schrieb:
> Karl Heinz schrieb:
>> eingangsposting lesen.
>> Es handelt sich um eine drehbar gelagerte Stange, die ausgelenkt wird.
>
> Stimmt, aber der TO hat auch das geschrieben:
>
> Vala schrieb:
>> gibt eine Art "Pendel", an welchem der Sensor angebracht ist

ok. geb ich zu, das ist nicht ganz eindeutig.
Ich habe es so aufgefasst, dass die Stange ausgelenkt und dann fixiert 
(im Drehpunkt geklemmt) wird.

Wenn das natürlich dynamisch schaukelt, dann sind wir wieder genau dort, 
wo wir schon 5-tausend mal waren: Ein Beschleunigungssensor ist bei 
nicht gleichförmig geradlinigen Bewegungen zu nichts zu gebrauchen.

(ok, das "nichts" ist etwas übertrieben)

von Vala (Gast)


Lesenswert?

Danke für die vielen Rückmeldungen!
Die Skizze von Karl Heinz trifft die Sache ziemlich genau.
Der Begriff Pendel war vielleicht etwas ungeschickt gewählt, ich wollte 
damit nur veranschaulichen, wie der Versuch aufgebaut ist.
Es liegt keine Oszillation in dem Sinne vor, sondern es soll im Prinzip 
über die ausgegebenen Spannungen in einer bestimmten (in diesem Moment 
statischen) Lage der Winkel bestimmt werden - ebenfalls wie Karl Heinz 
das interpretiert hat.

Für die Achsen einzeln klappt das auch gut über arcsinus bzw arccosinus.
Da ich aber für eine höhere Genauigkeit gerne beide Achsen nutzen würde 
und nicht nur eine, muss ich die beiden ja noch verrechnen...

von Karl H. (kbuchegg)


Lesenswert?

Vala schrieb:

> Für die Achsen einzeln klappt das auch gut über arcsinus bzw arccosinus.
> Da ich aber für eine höhere Genauigkeit gerne beide Achsen nutzen würde
> und nicht nur eine, muss ich die beiden ja noch verrechnen...

Ja, dann mach das.
Wie in der Skizze ersichtlich, errechnet man sich die Länge des 
Schwerkraftvektors (das ist der senkrechte) mittels Phythagoras und dann 
hat man 2 rechtwinkelige Dreiecke von denen man jeweils 3 Seiten (und 
einen Winkel). Mittels Trigonometrie errechnet man dann den gesuchten 
Winkel Alpha. Theoretisch sollten die beiden Ergebnisse identisch sein 
und nicht davon abhängen, welches der beiden rechwinkeligen Dreiecke man 
benutzt. Aber ob das in der Praxis auch so ist? :-)
Den phythagoras könnte man einsparen, wenn man über den Tangens geht, 
aber ich hab eine persönliche Abneigung gegen den Tangens, da der in 
bestimmten Lagen gegen plus/minus unendlich geht. Das sorgt dann wieder 
für Sonderfälle und dgl.. Dann lieber einmal die Hypothenuse ausrechnen 
und gut ists.

: Bearbeitet durch User
von Vala (Gast)


Lesenswert?

Also, was ich bisher mache ist:
(Alles jeweils für die x-Werte und die y-Werte getrennt)
Ich vermesse den Sensor einmal komplett über 360° und entnehme diesen 
Spannungswerten U jeweils Maximum und Minimum.
Daraus bekomme ich den Mittelwert U_M (von Maximum und Minimum) und die 
Abweichung des Mittelwerts zu Maximum und Minimum U_R.

Diesen Mittelwert U_M ziehe ich dann von allen Werten ab.
Den so entstehenden Wert teile ich durch die Abweichung U_R und ziehe 
den Arcsinus.

Als Gleichung also:

Winkel = arcsin[ (U - U_M)/U_R] *180/pi

Auf diese Weise zeigt mir die eine Achse ziemlich genau den 
Winkelbereich an, den ich durchmesse (anders gesagt: ich lenke die 
Stange in Grad-Schritten um insgesamt x Grad aus, dann ist die Differenz 
zwischen dem so berechneten Start- und Endwert ziemlich genau x - das 
scheint also zu klappen). Die Werte der anderen Achse sind 
Parabelförmig. Das ist natürlich abhängig von der Startausrichtung des 
Sensors.

D.h. ich erhalte auf diese Weise für die 2 Achsen jeweils eine 
Winkelverteilung.
Was ich jetzt noch machen möchte ist eben, diese zu verrechnen und 
letztlich einen möglichst exakten Winkel haben.

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.