Beschleunigungssensor

Gast #2821660
Lesenswert?

Hallo liebe Community,

Erstmal zu meinem Wissenstand,

ich hab Grundkenntnisse in C und im Zusammenhang damit grundlegende 
Erfahrung mit Sensoren.

D.h. Ich habe mal leds Blinken lassen, 7Seg Anzeigen- und LCDs 
beschriftet, Temperaur Sensoren ausgelesen und den ein oder anderen 
Taster verwendet. Allerdings stehe ich momentan in meinem Praktikum vor 
einer Aufgabe die mich zur weißglut bringt.

Und damit kommen wir zu meinem Problem: Ich habe ein hübsches kleines 
9DOF Razor IMU (Arduino). Ich würde jetzt gerne eine Beschleunigung 
auslesen. Das Heisst für mich, wnn ich das Board bewege soll die 
Beschleunigung zu sehen sein un wenn es wieder da liegt soll der Wert 
wieder Richtung 0 gehen.

Ich bin mir nicht sicher ob mein Grundverständnis für 
Beschleunigungssensoren richtig ist denn momentan sehe ich nur Werte die 
der jeweiligen Rotation der Achse ensprechen(Eine Test Firmware ist 
aufgespielt).

Mir geht es hier jetzt garnicht um Codebeispiele oder ähnliches, eher 
darum das ich eine Vorstellung habe wie es funktionieren sollte.

Muss ich den Beschleunigungssensor mit zb Gyro in irgendeiner Art 
"koppeln" oder ... ich bin einfach ein bisschen verzweifelt....

Ich hoffe ihr lest das hier auch wenn es recht viel Text ist und ich 
hoffe, dass ich mein Problem verständlich formuliert habe.

Viele Grüße
jlange

ps.: ich bin auch froh über Stichwörte mit denen ich über Google weiter 
komme.

pps/pss.: Das alles soll später mal zur Positionsbestimmung dienen 
ähnlich wie hier http://www.youtube.com/watch?v=6ijArKE8vKU (ich hoffe 
links sind erlaubt.)
#2821669
Lesenswert?

ja soweit die Test Firmware nicht völliger mist ist Sollte es nicht das 
gyroskop sein... Das gibt nochmal Andere Werte.

Und das ist ja auch was ich nicht verstehe, ich dachte der 
Beschleunigungs Sensor sollte standartmäßig Werte zurück geben wie ich 
sie haben möchte.


Vielleicht muss ich in den sauren Apfel beissen und es mal selber 
Programmieren...


Ps.: nicht dass es zu verwirrungen kommt ich hab mich hier angemeldet =)

Viele Grüße
#2821754
Lesenswert?

also  nur für dein Verstädnnis

Beschleunigungssensor (G in m/s²) X Y Z    ... im ideal Fall 0 0 -1G 
wenn du jetzt in die jeweilige Achse wackelst siehst du den Ausschlag 
der einwirkenden Karft.  (-1g weil auf die Richtung Boden 
gerichtete/entgegengerichtete Achse die Erdbschleunigung von 9,81m/sec 
wirkt)

wenn du das Board seitlich hinstellst hast du dann 0 -1G 0
wenn du es schräg hinstellst dann wirkt die Kraft auf mehreren Achsen 
und du musst dir ein Raumzeigermodell vorstellen.

Gyroskope messen die Drehrahte (DPS °/sec - degree per second)... also 
die Geschwindigkeit der Drehung.

wenn du jetzt das Board kurz umd 90 drehst und dann stehen bleibst, dann 
gibts ein ausschlag von bis zu 2000°/s abhängig von deiner in dieser 
Bewegung ausgeführten Drehgeschwindgkeit.


ROLL PITCH und YAW  sind die Winkel des Körpers, die errechnest du mit 
hilfe eines AHRS Algorithmus der entweder das Magnetometer einbezieht 
oder nicht.


Was du beschreibst:

>Das Heisst für mich, wnn ich das Board bewege soll die
>Beschleunigung zu sehen sein un wenn es wieder da liegt soll der Wert
>wieder Richtung 0 gehen.

ist wenn du das board in die hand nimmst und wieder hinlegst so wie es 
war, dann müsstee der ausgangszustand normalerweise wieder dargestellt 
werden.

Wenn du es aber immernoch in der hand hälst, dann ist ja logisch das die 
G-Kraft der Erde immer noch auf die Achsen einwirkt.

wenn du nicht die statische Erdbeschleunigung in deiner Messung haben 
willst, kannst du diese rausrechnen (leichte Vektorrechnung). Dann misst 
du nur die relative Beschleunigung.



PS. ich hab noch ein razor 9dof Board das ich gerne verkaufen würde :D
#2821832
Lesenswert?

Sven ...

einfach danke scon mal =) deine Definitionen waren super und haben mir 
auf jeden fall geholfen. Werd mich morgen mal auf der Seite umschaun =)

vielen dank

edit: eine frage fällt mir da grad noch ein...
in der Arduino Entwicklungsumgebung kann man ja nur .ino und pde oder so 
ähnlich öffnen ....

aber es gibt ein par beispiele die sind in .c datein ... wie bring ich 
die denn auf das board.....
#2821879
Lesenswert?

1
The board comes programmed with the 8MHz Arduino bootloader (stk500v1)
2
and some example firmware that demos the outputs of all the sensors. Simply
3
connect to the serial TX and RX pins with a 3.3V FTDI Basic Breakout, open a
4
terminal program to 57600bps and a menu will guide you through testing the
5
sensors. You can use the Arduino IDE to program your code onto the 9DOF, just
6
select the 'Arduino Pro or Pro Mini  (3.3v, 8mhz) w/ATmega328' as your board.

das ist dass einzige was mir sagen könnte wie das geht allerdings weiß 
ichn icht, was sie mit dem terminal programm meinen .... also doch 
vielleicht die cmd aber ich weiß nicht wie ich das dann hoch laden 
kann....
Gast #2821896
Lesenswert?

>... im ideal Fall 0 0 -1G

Wir haben hier mal mit einem I²C Beschleunigungssensor gespielt. Der hat 
aber nur auf "echte" Beschleunigungen reagiert. Also in Ruhe auf dem 
Tisch:
0, 0, 0 und nicht 0, 0, -1. Irgendwie stand der auf Delta.
#2821984
Lesenswert?

dieser war dann wohl g-kompensiert also die erdbeschleunigung 
rausgerechnet.

Das macht man folgendermaßen (vereinfacht erklärt)

Man hat eine G-Matrix  3x3

es wird ein Vektor errechnet welcher die einwirkende G-Kraft auf die 
einzelnen Achsen darstellt also ohne relativbeschl..
bspw:
0 0 1
0 1 0
1 0 0

Dann eine zweite Matrix wo die Messwerte reinkommen.

G G G
G G G
G G G

Dann wird der Messwertmatrix die Erdbeschleunigungsmatrix rausgerechnet,
so erhält man dann im groben die G-Kompensierte Matrix.

Ich kann für das Tehema folgende Literatur empfehlen :

1) Der Vater der inertial-sensorik:
http://www.verlag.fraunhofer.de/bookshop/artikel.jsp?v=220250
In dem buch sind alle Algorithmen und verfahrensweisen einfach erklärt! 
Auch wenn es sich kompliziert anhört :) ... Ein muss für jeden der eine 
IMU bauen will und den Algorithmus schreiben möchte samt Kompensierung, 
Offset etc...


2) auch ganz cool, einfacher erklärter systemaufbau:
http://www.diplom.de/Entwicklung-Implementierung-Softwareplattform-referenzlose-Low-cost-Indoornavigation-Basis-modularen-Systemarchitektur/16193.html
#2822277
Lesenswert?

so ich hab mir jetzt mal nen schlitte gebau um die beschleunigung besser 
testen zu können und ich glaube ich habs endlich hinbekommen =)

allerdings wir meine erdbeschleunigung leider mit um die 200 angezeigt 
aber das liegt momentan wohl daran dass das die rohdaten sind...

damit bin ich so vorerst zufrieden =)

Damit würde ich hier vorerst schlussmachen und vielleicht auf ein ganz 
neues Problem kommen....

Bei meinem Gyroskop veränderns sich die werte nicht egal wie schnell 
oder langsam ich es auf nur jede erdenkliche art bewege die werte 
bleiben gleich...

gibt es das problem vielleicht heufiger?
#2822321
Lesenswert?

... gibts ne möglichkeit das zu testen xD?
Also beim gyro bekomm ich immer diesenoutput:

x= -11823, y= -11823, z= -11823

egal was ich mache...

edit: ok habe grade die selftest funktion gefunden... irgendwas stimmt 
mit dem Gyro nicht... muss jetzt mal schaun ob ich rausfinden was...



ps.: hier hab ich mal die werte die ich jeweils bei meinem 
Beschleunigungssensor bekomme (in den 3 positionen)

x=  22, y= -28, z= 196
x=  -1, y=-277, z=  -9
x=-271, y= -13, z= -41

das sieht eigendlich schon gut aus.
#2822408
Lesenswert?

Hmm in ruhe bekommst du diese beschleunigungswerte?

Kann es sein das du die Offsettwerte geändert hast?

Accel_X, Accel_y, Accel_z, Gyro_X, Gyro_Y, Gryo_Z

-161  141  1108  -2  5  -3
-172  151  1087  0  3  -3
-156  151  1087  0  3  -3
-156  151  1116  -1  4  -3
-166  134  1116  -2  4  -2

schau mal so siehts bei mir aus.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren