Skip to content

Berechnung der aktuellen Lage

Josef Spitzlberger edited this page Oct 2, 2020 · 2 revisions

Positionsbestimmung durch einen 3-Achsen-Beschleunigungssensor

Ein 3-Achsen-Beschleunigungssensor wird verwendet, um die Position des Wohnwagens zu bestimmen und anzuzeigen. Der von mir verwendete Adafruit-Sensor ADXL345 hat eine sehr hohe Empfindlichkeit (< 1°). Diese wird aber auch deshalb benötigt, weil die tatsächlichen Neigungswinkel recht klein sind. Bei einem 8 Meter langen Wohnwagen muss es z.B. möglich sein, an den Ecken Abweichungen von weniger als 5 cm zu messen.

Der Sensor misst die Erdbeschleunigung in drei Achsen. Nur zwei der drei Achsen werden zur Bestimmung der Position verwendet. Der Abweichungswinkel wird aus den verschiedenen Beschleunigungswerten über eine Sinusfunktion bestimmt. Daraus lässt sich dann die tatsächliche Abweichung an den Ecken in cm berechnen, sofern die Abmessungen des Wohnwagens und die Abstände des Sensors zu den Aussenwänden und zur Achse bekannt sind.

Die Schwierigkeit bei der Auswertung der Sensordaten liegt gerade in der Empfindlichkeit des Sensors. Dieser nimmt selbst kleinste Vibrationen wahr. Selbst eine aktivierte Gefriertruhe im Nachbarraum beeinflusste meinen Sensor und konnte gemessen werden. Da es aber auf Genauigkeit ankommt, muss die Auswertesoftware in der Lage sein, Ausreißer zu ignorieren und über mehrere Messungen zu mitteln. So habe ich das Skript für den CaravanPi aufgebaut.

Nützliche Zusatzfunktionen im CaravanPi

Es muss auch eine Möglichkeit geben, den Sensor zu kalibrieren, da auch bei sorgfältigstem Einbau nicht gewährleistet werden kann, dass der Sensor tatsächlich exakt waagrecht montiert werden kann. Beim CaravanPi wird dies durch einen Taster am Gehäuse ermöglicht. Dazu richtet man den Caravan einmal herkömmlich möglichst waagrecht aus. Dann drückt man den Taster. Das Kalibrierungsskript wartet zunächst kurz um eventuelle Schwingungen abflachen zu lassen und misst dann. Die Sensorwerte werden als die Werte für "horizontal" gespeichert und in Zukunft verwendet.

Mit der Software des CaravanPi ist es auch möglich, die aktuelle Position in Querrichtung des Wohnwagens als "vorübergehend horizontal" zu markieren. Dies erleichtert die Verwendung der LEDS zur weiteren Ausrichtung. Diese Funktion kann z.B. dann genutzt werden, wenn der Wohnwagen eine Nacht lang nicht "millimetergenau" horizontal ausgerichtet werden kann oder soll.

Mathematische Grundlagen

CaravanPi - Geometrie

Die Berechnung der aktuellen Lage erfolgt nach folgendem Ansatz: Geht man eine schiefe Ebene abs_b Schritte in Richtung des Winkels α, so ergibt sich die Höhendifferenz zur Horizontalebene so:

sin(α) = h_α / abs_b => h_α = abs_b * sin(α)

Geht man dann im rechten Winkel abs_l Schritte weiter, muss die zusätzliche Höhendifferenz addiert werden, die sich so errechnet:

h_β = abs_l * sin(β)

Insgesamt ergibt sich damit:

sin(γ)= (h_α + h_β) / (√(abs_b2 + abs_l2))

Diese Berechnung geht vereinfachend davon aus, dass die windschiefe Ebene von oben gesehen ein Rechteck darstellt. Dazu muss das windschiefe Viereck tatsächlich die Form eines Parallelogramms haben.

Das trifft beim Wohnwagen natürlich nicht zu. Der Boden bzw. das Dach des Wohnwagens ist ein Rechteck. Die sich daraus ergebende Ungenauigkeit kann in unserem Fall jedoch vernachlässigt werden.

CaravanPi Wiki

1 Installationsanleitung

2 Bauanleitung

Grundaufbau

Sensoren, etc. installieren

Anzeigen installieren

Raspberry stabilisieren

Platine entwerfen

3 ursprüngliche Entwicklung

4 Dokumentation

5 Updates

ab hier altes WIKI, muss noch umgezogen werden

XX = in Bearbeitung NEU = neue Funktion in letzter Version

Einbau im Caravan

Inbetriebnehmen und Kalibrieren

CaravanPi Updates

Erweiterungen

Grafische Auswertungen

Statuswebsite

weitere Sensoren

Clone this wiki locally