Hallo Alle,
für Mein Projekt werde ich drei Sensoren benutzen, die schon von einem
Extern Firma inbetriebgenommen wurden.
Auf ruhelage(Waagerecht) habe ich für die Sensoren folgende Werte:
ADXL345: X= 32 Y = 87 Z = 49
LIS302DL: X= 0 Y = 3 Z = 7
MMA7455L: X= 6 Y = 28 Z = 60
Ich weiß dass die Sensoren kalbrieren werden müssen, so dass Sie auf
einer Ruhelegae X= 0, Y= 0 und Z= g sein soll. aber ich weiße nicht, was
ich mit diesen Werte anfangen soll.
Kann mir jemanden bitte erklären, wie ich die Sensoren zumindest nur
einen Sensor Kalibrieren soll, damit er verknünpftige Werte anzeigen
kann?
Zum Beispiel für den ADXL345 das Dattenblat hat folgende Parameter:
0 g OFFSET
Each axis
0 g Output for XOUT, YOUT −150 0 +150 mg
0 g Output for ZOUT −250 0 +250 mg
und die externe Firma meinte zu mir dass sie die Kalibrierung nicht
durcgeführ haben.
Danke in voraus
Christian
christian Schmidt schrieb:> Kann mir jemanden bitte erklären, wie ich die Sensoren zumindest nur> einen Sensor Kalibrieren soll, damit er verknünpftige Werte anzeigen> kann?
Na vom Prinzip her hast du doch nen super Kalibrator. Nennt sich Erde
und hat exakt 1g plus minus irgendwas bekanntes.
Deine Sensoren sind in jeder Achse nur in einer Richtung empfindlich.
Durch einfaches drehen von maximum zu minimum für jede Achse bekommst du
somit die Werte für 0g und 1g. Den Rest kannst du mit der
Steigungsformel ausrechnen.
oszi40 schrieb:> Den Rest könnte man> rechnerisch korrigieren. Frage bleibt nur wie Du definiert die> Beschleunigung kalibrieren kannst. Notebook+ Achterbahn?
genau meine frage war wie Rechnerisch soll ich das bitte machen?
Der Rächer der Transistormorde schrieb:> Durch einfaches drehen von maximum zu minimum für jede Achse bekommst du> somit die Werte für 0g und 1g. Den Rest kannst du mit der> Steigungsformel ausrechnen
die werte sind warscheinlisch für 0g und wie gehe ich bitte dann weiter
vor
um den Rest auszurechnen?
christian Schmidt schrieb:> die werte sind warscheilisch für 0g und wie gehe ich bitte dann weiter> vor> um den Rest auszurechnen?
Ganz einfach.
1. Sensor wagerecht (zur Erdbeschleunigung) ausrichten, Messwert 1
notieren.
2. Sensor senkrecht ausrichten, Messwert 2 notieren.
3. Sensor um exakt 180 Grad drehen, Messwert 3 notieren.
4. Datenblatt nehmen (0 g Output for XOUT, YOUT −150 0 +150 mg)
5. Mathematik 8. Klasse benutzen.
6. fettich Maister!
Joe G. schrieb:> Ganz einfach.>> 1. Sensor wagerecht (zur Erdbeschleunigung) ausrichten, Messwert 1> notieren.> 2. Sensor senkrecht ausrichten, Messwert 2 notieren.> 3. Sensor um exakt 180 Grad drehen, Messwert 3 notieren.> 4. Datenblatt nehmen (0 g Output for XOUT, YOUT −150 0 +150 mg)> 5. Mathematik 8. Klasse benutzen.> 6. fettich Maister!
gut die Kalibrierung mit diesen Offset Parameter soll nur einmal
durchgeführt werden oder soll das bei jeden Auslesen der
Beschleunigungswerte immer ausgeführt werden?
Joe G. schrieb:> Ja.
ok und was ist denn wenn man bitte mit
±2 g, 10-bit resolution 230 256 282 LSB/g
±4 g, 10-bit resolution 115 128141 LSB/g
±8 g, 10-bit resolution 57 6471 LSB/g
±16 g, 10-bit resolution 29 32 35 LSB/g laut Dateblatt arbeiten will?
Es tut mir leid aber ich möchte nur mehr Klarheit haben.
Wie du leicht erkennst, besteht zwischen der Auflösung und dem
Messbereich ein linearer Zusammenhang (fast, bis auf einen
Rundungsfehler). Es reicht also die Kalibrierung für einen Messbereich
(optimal der Empfindlichste +-2g) durchzuführen.
> oder soll das bei jeden Auslesen der> Beschleunigungswerte immer ausgeführt werden
Gute Idee, ich würde immer auf 0/0/1g kalibrieren, dann kann ich mir das
Messen und den Sensor sparen.
christian Schmidt schrieb:> die werte sind warscheinlisch für 0g und wie gehe ich bitte dann weiter> vor> um den Rest auszurechnen?
Die Werte können nicht für 0g sein, denn du hast bei ruhendem Sensor
IMMER 1g in irgendeine Richtung. Der Sensor kann ja a priori nicht
wissen, in welcher Richtung aus seiner Sicht jetzt unten ist, daher kann
man auch die Schwerebeschleunigung nur mit den Daten des
Beschleunigungssensors alleine da nicht rausrechnen. Anders ausgedrückt:
ein Lot (ein Gewicht an einer Schnur) zeigt immer in irgendeine
Richtung, egal wie rum die Aufhängung im Raum verdreht ist, und das
Gewicht erzeugt in der Schnur immer die gleiche Kraft, egal wie rum die
Aufhängung des Lots verdreht ist. Alles was dein Beschleunigungssenor
anders macht, ist, dass er dir diese 'Kraft' bereits auf seine lokalen
Koordinatenachsen aufgeschlüsselt rausgibt.
Die Frage ist, ob die Sensoren exakt eben eingebaut wurden oder nicht.
Wenn nicht, dann misst du mit deinen Sensoren die Verdrehung des Sensors
in Bezug auf die Senkrechte, definiert durch die Erdbeschleunigung.
Diesen Fehler könnte man noch mechanisch ausgleichen, ansonsten muss man
eben eine entsprechende Rotationsmatrix aus den Kalibrierwerten
errechnen, die das Korrdinatensystem entegen der Einbauverdrehung
zurückdreht.
Die andere Frage ist, ob du in den Sensoren einen Offsetfehler hast.
D.h. obwohl der Sensor tatsächlich exakt waagrecht in Bezug auf die
Schwerebeschleunigung steht (zb mit Libelle oder Wasserwaage
kontrolliert), liefert er nicht 0 in 2 Achsen sondern davon abweichende
Werte.
Und das dritte ist, dass ein exakt waagrecht ausnivellierter Sensor
eigentlich die Werte (0, 0, -1) oder (0, 0, 1) liefern sollte, bzw.
entsprechende Vielfache davon, wenn eine 1.0 durch ein entsprechendes
Vielfaches dargestellt wird (zb 256), der Sensor das aber nicht tut und
anstelle von erwarteten (0, 0, 256) dann eben zb (0, 0, 248) liefert,
bzw. bei entsprechenden Drehungen um 90° bzw. 180° (sodass die jeweils
anderen Achsen exakt senkrecht nach unten schauen), dann eben wieder
andere Werte, zb (0, 252, 0)
Theoretisch gäbe es dann noch die Möglichkeit, dass die 3 Messachsen im
Sensor nicht exakt orthogonal zueinander stehen (also nicht 90°) sondern
davon abweichen, aber ich denke, diesen Fehler können wir ausschliessen.
Dafür hat schon der Hersteller des Sensors gesorgt.
Aber: So ein Beschleunigungssensor ist kein Wunderwuzzi, den man einfach
anschliesst und man hat keine Sorgen mehr. Man muss sich schon ein wenig
damit beschäftigen, welche Fehler es geben kann, was sie physikalisch
aussagen und sich überlegen, wie man sie feststellt und rechnerisch
korrigieren kann.
Karl Heinz Buchegger schrieb:
> Die andere Frage ist, ob du in den Sensoren einen Offsetfehler hast.> D.h. obwohl der Sensor tatsächlich exakt waagrecht in Bezug auf die> Schwerebeschleunigung steht (zb mit Libelle oder Wasserwaage> kontrolliert), liefert er nicht 0 in 2 Achsen sondern davon abweichende> Werte
Der Sensor auf Waagerecht liefert er normalerweise folgender Werte:
X = 45 umgerechnet um signed 18
Y = 65493 umgerechnet um signed 41
Z = 102 umgerechnet um signed 24
Karl Heinz Buchegger schrieb:
> Die Frage ist, ob die Sensoren exakt eben eingebaut wurden oder nicht.> Wenn nicht, dann misst du mit deinen Sensoren die Verdrehung des Sensors> in Bezug auf die Senkrechte, definiert durch die Erdbeschleunigung.> Diesen Fehler könnte man noch mechanisch ausgleichen, ansonsten muss man> eben eine entsprechende Rotationsmatrix aus den Kalibrierwerten> errechnen, die das Korrdinatensystem entegen der Einbauverdrehung> zurückdreht.
Die Sensoren wurden eben eingebaut, bitte siehe Anhang
Karl Heinz Buchegger schrieb:
> Und das dritte ist, dass ein exakt waagrecht ausnivellierter Sensor> eigentlich die Werte (0, 0, -1) oder (0, 0, 1) liefern sollte, bzw.> entsprechende Vielfache davon, wenn eine 1.0 durch ein entsprechendes> Vielfaches dargestellt wird (zb 256), der Sensor das aber nicht tut und> anstelle von erwarteten (0, 0, 256) dann eben zb (0, 0, 248) liefert,> bzw. bei entsprechenden Drehungen um 90° bzw. 180° (sodass die jeweils> anderen Achsen exakt senkrecht nach unten schauen), dann eben wieder> andere Werte, zb (0, 252, 0)
genau, dass möchte ich gern als Beschleunigungswerte zu haben. Wenn man
die ausgelesenen werte meiner Beshleunigungssensoren sieht, wie kann ich
dann machen damit ich die erwartenden werte habe.
Karl Heinz Buchegger schrieb:> Und das dritte ist, dass ein exakt waagrecht ausnivellierter Sensor> eigentlich die Werte (0, 0, -1) oder (0, 0, 1) liefern sollte, bzw.> entsprechende Vielfache davon, wenn eine 1.0 durch ein entsprechendes> Vielfaches dargestellt wird (zb 256), der Sensor das aber nicht tut und> anstelle von erwarteten (0, 0, 256) dann eben zb (0, 0, 248) liefert,> bzw. bei entsprechenden Drehungen um 90° bzw. 180° (sodass die jeweils> anderen Achsen exakt senkrecht nach unten schauen), dann eben wieder> andere Werte, zb (0, 252, 0)
Wenn zum Beispiel einen Sensor folgende Werte liefert auf die Ruhelage(0
, 0 , 248) dann egibt er (248*4)/1024 = 0,96g das ist ganz normal.
Mein Problem ist mein Sensor liefert X = 45 umgerechnet um signed 18
Y = 65493 umgerechnet um signed 41
Z = 102 umgerechnet um signed 24
was kann ich bitte mit diesen Werte anfangen, wie kann ich den Sensor
ordenlich kalibrieren, damit ich vielleicht (0,0,248) habe.
Weil mein sensor auf eben eingebaut wurde.
Danke
Allerdings muss man sich auch überlegen was man alles kalibrieren muss,
und wie genau die kalibration am ende sein soll.
wenn man bspw. einen schrittmotor an dem neigungssensor anbringt und den
dann durchfährt, so ist oftmals keine genauigkeit von besser als 0.5-1°
zu erwarten bei handelsüblichen sensoren, wenn man nur die sensitivität
und den offset der achsen kalibriert. Weiterhin stehen die Achsen nicht
unbedingt im 90° winkel zueinander (oder es gibt andere formen des
übersprechens) und auch nichtlinearitäten der einzelnen achsen. D.h. da
wären dann nochmal drei winkel (erste achse so wie sie ist, zweite achse
in der x-y achse verkippt und die dritte hat dann zwei winkel als
freiheitsgrade) die durch einen fit durch eine größere menge datenpunkte
bestimmt werden können.
Für den Anfang kann man verschiedene sensorpositionen aufnehmen und über
die bedingung dass alles 1g ergeben müsste schonmal gut offset und
skalierung der achsen bestimmen. ein solches verfahren ist in
http://link.springer.com/chapter/10.1007/11526858_19 bspw. beschrieben.
je mehr datenpunkte, desto besser natürlich. google gibt da auch noch
andere beispiele, finden sich teilweise auch in den datenblättern.
Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.
Wichtige Regeln - erst lesen, dann posten!
Groß- und Kleinschreibung verwenden
Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang