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: > ADXL345: X= 32 Y = 87 Z = 49 z.B. http://www.analog.com/en/mems-sensors/mems-inertial-sensors/adxl345/products/product.html Dann lege die Sensoren auf eine gut ausgerichtet Fläche und miss mehrfach ob sie wirklich den gleichen Wert anzeigen. Den Rest könnte man rechnerisch korrigieren. Frage bleibt nur wie Du definiert die Beschleunigung kalibrieren kannst. Notebook+ Achterbahn?
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.
>Kann mir jemanden bitte helfen? >Aber bitte sofort. >Schnell bitte. Irgendwie scheinen da ein paar Grundlagen zu fehlen...
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.