-
Notifications
You must be signed in to change notification settings - Fork 7
Berechnung der aktuellen Lage
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.
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.
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 - smart Caravan based on Raspberry Pi
(c) Josef Spitzlberger, Schloss Lustheim, Munich, Germany, 2019ff
CaravanPi Wiki
- Testaufbau
- Raspberry Pi OS installieren und initial konfigurieren
- MagicMirror installieren
- CaravanPi Skripte installieren
- MagicMirror vorbereiten & updaten
- OBSOLET V2 - Bottle Framework installieren
- Ein-/Aus-Schalter installieren
- Bewegungsmelder installieren
- Hupe/Buzzer installieren
- weitere Taster installieren
- OBSOLET V2 - Konfigurations-Website einrichten
- Temperatur Sensoren installieren
- Temperatur Sensoren anzeigen
- Gasflaschenwaage HX711 installieren
- Gasflaschenfüllstand anzeigen
- mehrere Gasflaschen Waagen anschließen
- I2C-Bus einrichten
- Klimasensor installieren
- Klimasensor BME280 anzeigen
- Klimasensor BME680 anzeigen
- GPIO Ports mit MCP23017 erweitern
- Lage-Sensor installieren
- Lage-Sensor anzeigen
- I2C Extender - langes Kabel
- Tank-Füllstände auslesen
- LEDs zur Lageanzeige
- RGB-LEDs am MCP23017 betreiben
- LED Einbau im Testaufbau
- Caravan ausrichten im Testaufbau
ab hier altes WIKI, muss noch umgezogen werden
XX = in Bearbeitung NEU = neue Funktion in letzter Version
- Stromversorgung Grundsätzliches
- Testgerät bauen
- Verkabeln am Caravan
- Gasflaschen-Waage bauen
- LEDs am Caravan anbringen
- Temperaturfühler im Kühlschrank anbringen
- Klimasensoren innen & außen anbringen
- Stromversorgung Raspberry Pi
- Stromversorgung Monitor
- WLAN im Caravan
- CaravanPi in Betrieb nehmen
- Gasflaschenwaage in Betrieb nehmen
- Defaultwerte für Lage, etc eintragen
- NEU XX Vorüberlegungen
- NEU XX MariaDB installieren
- NEU XX CaravanPi Datenbank anlegen
- NEU XX phpmyadmin installieren
- NEU XX Grafana installieren
- NEU XX Grafana auf MagicMirror anzeigen
- NEU XX Pythonzugriff auf MariaDB
- NEU XX Problembehandlung MariaDB, Grafana
- NEU XX Vorüberlegungen
- NEU XX Flask installieren
- NEU XX Status-Website einrichten
- NEU XX vorhandene Websites migrieren
- NEU XX 230V Eingang prüfen
- NEU XX 12V Batterie prüfen
- NEU XX Gassensor