Hallo, ich habe ein Verständnis Problem. Ich möchte mit einem Digital Accelerometer ADXL345 die Beschleunigung eines Leiterwagens messen. Ich habe mir einen solchen IC besorgt und eine Leiterplatte angefertigt. Und nach dem lesen des Datenblatts lese ich diesen Sensor jetzt aus. Die Software funktioniert soweit das ich jedes Register lesen und schreiben kann. Wenn die Platine mit dem Sensor drehe bekomme ich aus den Registern für die X Y Z Achse einen wert zwischen 1 und -1. Nun zu meinem Verständnis Problem. Als erstes was sagt dieser Wert in den X Y Z Registern aus (welche Einheit)? Und zum zweiten noch viel wichtiger wie komme ich zur Beschleunigung? Hoffe ich habe alle notwendigen Fakten beschrieben damit ihr mir helfen könnt! Vielen Dank für Eure Hilfe Labrador
labrador schrieb: > Wenn die Platine mit dem Sensor drehe bekomme ich aus > den Registern für die X Y Z Achse einen wert zwischen 1 und -1. Der Sensor misst auch die Erdbeschleunigung, also das "Gewicht". Beschleunigung und Gravitation sind nicht unterscheidbar. Wenn der Sensor ohne daß du ihn beschleunigst hier -1 bis 1 liefert, dann ist der Wert wohl auf die Erdbeschleunigung (9,81m/s²) normiert. Das sollte dir aber das Datenblatt sagen.
:
Bearbeitet durch User
labrador schrieb: > Und zum zweiten noch viel wichtiger wie komme ich zur Beschleunigung? Bei z.B. ±16g und 10 bit Auflösung entspircht ein LSB 32g/2^10 1g=9.81m/s²
:
Bearbeitet durch User
Udo Schmitt schrieb: > Der Sensor misst auch die Erdbeschleunigung, also das "Gewicht". > Beschleunigung und Gravitation sind nicht unterscheidbar. > Wenn der Sensor ohne daß du ihn beschleunigst hier -1 bis 1 liefert, > dann ist der Wert wohl auf die Erdbeschleunigung (9,81m/s²) normiert. Ja und was heißt das für mich? ich bin leider auf diesen Gebiet ein totaler Neuling! Labrador
Drehe z.B. die x-Richtung zum Erdmittelpunkt. Das Ausgangssignal entspricht dann 9,81m/s^2. Das ist dann die Eichung deines Gerätes. (Abweichungen am Äquator u.ä. möchte ich hier nicht vertiefen.) Danach diese Achse in die Bewegungsrichtung und dabei genau senkrecht zur Erdbeschleunigung stellen und das Ergebnis entsprechend umrechnen. Joe
labrador schrieb: > Und zum zweiten noch viel wichtiger wie komme ich zur Beschleunigung? Die Daten, die der Sensor ausgibt, sind die Beschleunigung in den drei Raumrichtungen - welche steht im Datenblatt. Das was du dort mißt, ist die Erdbescheschleunigung. Wenn du dich damit auf dem Frühlingsfest mit dem Schlitten vom Freifallturm in die Tiefen fallen läßt, ist die Vektorsumme bis auf den im Datenblatt angegebenen Offset nahezu 0. Und die Einheit findest du - man will es kaum glauben - auch im Datenblatt.
labrador schrieb: > Ja und was heißt das für mich? > ich bin leider auf diesen Gebiet ein totaler Neuling! Dass du dich erst mal mit den physikalischen Gesetzen auseinandersetzen musst, bevor du sinnvolle Ergebnisse erhältst, die du auch verstehst. Wenn der Wagen waagrecht beschleunigt wird, dann wird der Sensor dir die senkrechte Erdbeschleunigung ausgeben und zusätzlich die Vektorkomponenten der horizontalen Beschleunigung je nachdem wie du deinen Sensor gedreht hast. Im Idealfall z.B. in X Richtung deine Beschleunigung, wenn der Sensor genau so gedreht ist daß seine X Achse in die Beschleunigungsrichtung zeigt. Willst du deinen Wert (der wohl in Erdbeschleunigung = g ausgegeben wird) in m/s² umrechnen, dann musst du ihn mit 9,81m/s² multiplizieren.
:
Bearbeitet durch User
Meiner Meinung nach wäre es viel genauer, wenn du die Geschwindigkeit an Hand der Raddrehzahl ermittelst und diese nach der Zeit ableitest.
Max H. schrieb: > Bei z.B. ±16g und 10 bit Auflösung entspircht ein LSB 32g/2^10 > 1g=9.81m/s² Entschuldige mich bitte aber ich bin etwas verwirrt. Mit LSB ist least significant bit gemeint? wie kommst du bei ±16g auf 32g/2^10? ich verstehe diesbezüglich das Datenblatt nicht! nufy schrieb: > Die Daten, die der Sensor ausgibt, sind die Beschleunigung in den drei > Raumrichtungen - welche steht im Datenblatt. Das was du dort mißt, ist > die Erdbescheschleunigung. Wenn du dich damit auf dem Frühlingsfest mit > dem Schlitten vom Freifallturm in die Tiefen fallen läßt, ist die > Vektorsumme bis auf den im Datenblatt angegebenen Offset nahezu 0. Und > die Einheit findest du - man will es kaum glauben - auch im Datenblatt. Ach so ich hatte verstanden das die die Winkel wären! Ich glaube ich habe mich etwas unglücklich ausgedrückt ich möchte erkennen wenn der Leiterwagen in Bewegung gerät, praktisch der Moment wenn der Leiterwagen vom stand in Bewegung wechselt. ist das möglich? Udo Schmitt schrieb: > Dass du dich erst mal mit den physikalischen Gesetzen auseinandersetzen > musst, bevor du sinnvolle Ergebnisse erhältst, die du auch verstehst. Ja das sehe ich ein welche Literatur kannst Du mir empfehlen? Vielen Dank für Eure Hilfe und Geduld Labrador
labrador schrieb: > Mit LSB ist least significant bit gemeint? Ja > wie kommst du bei ±16g auf 32g/2^10? ±16g Entspricht einem Bereich von 32g, dieser Wird bei 10bit in 2^10 Stufen geteilt.
labrador schrieb: > Ich glaube ich habe mich etwas unglücklich ausgedrückt ich möchte > erkennen wenn der Leiterwagen in Bewegung gerät, praktisch der Moment > wenn der Leiterwagen vom stand in Bewegung wechselt. Kannst du nur mit Beschleunigungssensoren nicht erkennen. Wenn der Wagen sich mit einer gleichförmigen Geschwindigkeit bewegt erfährt er auch keine Beschleunigung und du kannst den Zustand nicht von dem eines stehenden Wagens unterscheiden. labrador schrieb: > Ja das sehe ich ein welche Literatur kannst Du mir empfehlen? Physikbücher für Mittel und Oberstufe. Internet. Physikvideos. Such z.B. mal nach "physik beschleunigung videos" auf google.
Max H. schrieb: > ±16g Entspricht einem Bereich von 32g, dieser Wird bei 10bit in 2^10 > Stufen geteilt. Schade auf mein Haupt!!!! So wie du das jetzt erklärst absolut logisch! Danke
Wenn der Wagen steht, dann kannst du erkennen ob er beschleunigt wird. Die Geschwindigkeit selbst kannst du über eine Integration oder Summation der Beschleunigungswerte annähernd berechnen WENN du eben die Anfangsbedingung (Wagen ruht) hast. Eine Bewegung könntest du z.B. über mehrere Messungen des Standorts via GPS erkennen und auch messen.
Udo Schmitt schrieb: > Wenn der Wagen steht, dann kannst du erkennen ob er beschleunigt wird. Ja das würde mir reichen! Ich muß nur erkennen das der Wagen nicht mehr steht! Ist das mit so einem Sensor möglich? Wenn ja wie? Danke und LG Labrador
Udo Schmitt schrieb: > Die Geschwindigkeit selbst kannst du über eine Integration oder > Summation der Beschleunigungswerte annähernd berechnen WENN du eben die > Anfangsbedingung (Wagen ruht) hast. Mit so eine billigem Beschleunigungssensor würde ich mir keine guten Ergebnisse erwarten. labrador schrieb: > Ich muß nur erkennen das der Wagen nicht mehr steht! > Ist das mit so einem Sensor möglich? Der Sensor kann stillstand nicht von konstanter Geschwindigkeit unterscheiden. Alternativvorschlag: Man könnte eine Magneten an einem Rad anbringen und diesen mit einem Reedkontakt auswerten, wie bei einem Fahrradtacho.
:
Bearbeitet durch User
Max H. schrieb: > Alternativvorschlag: Man könnte eine Magneten an einem Rad anbringen und > diesen mit einem Reedkontakt auswerten, wie bei einem Fahrradtacho. Nein das wäre zwar einfach und würde sicher auch funktionieren aber ist in diesem Fall nicht geeignet.
Ich möchte erreichen das mein MC aufwacht wenn ich den Wagen in Bewegung versetze! Vielen Dank für eure Hilfe
Udo Schmitt schrieb: > Kannst du nur mit Beschleunigungssensoren nicht erkennen. Wenn der Wagen > sich mit einer gleichförmigen Geschwindigkeit bewegt erfährt er auch > keine Beschleunigung und du kannst den Zustand nicht von dem eines > stehenden Wagens unterscheiden. Mit den physikalischen Gesetzen kennst du dich anscheinend aus. Leider (oder zum Glück) sieht die Praxis anders aus. Ob der Wagen fährt oder steht, erkennt man am Rauschen der Daten. Man muss nur dafür sorgen, dass der Sensor halbwegs fest und in der Nähe eine Achse mit dem Fahrzeugchassi verbunden ist. Die Straßenunebenheiten sorgen beim Fahren für genügend gut erkennbare Schwankungen in den Sensordaten.
Mike schrieb: > Ob der Wagen fährt oder steht, erkennt man am Rauschen der Daten. Man > muss nur dafür sorgen, dass der Sensor halbwegs fest und in der Nähe > eine Achse mit dem Fahrzeugchassi verbunden ist. Die Straßenunebenheiten > sorgen beim Fahren für genügend gut erkennbare Schwankungen in den > Sensordaten. Was passiert beim mit den Werten beim losfahren? vielen Dank für Deine Hilfe!
labrador schrieb: > Nein das wäre zwar einfach und würde sicher auch funktionieren aber ist > in diesem Fall nicht geeignet. Ist es Mechanisch nicht möglich? labrador schrieb: > Ich möchte erreichen das mein MC aufwacht wenn ich den Wagen in Bewegung > versetze! Der ADXL345 hat eine Activity Interrupt, mit dem er den µC wecken könnte: > Activity > The activity bit is set when acceleration greater than the value stored > in the THRESH_ACT register (Address 0x24) is experienced on any > participating axis, set by the ACT_INACT_CTL register (Address 0x27)
Was soll das werden? Ein µC der irgendwelche Suffmusik spielt, wenn ihr mit eurem Leiterwagen in den Mai zieht? :-) Wenn du mit Leiterwagen einen ungefederten Holzkarren meinst, dann musst du nur alle 3 Werte überwachen, sobald mindestens einer davon anfängt wild rumzuzappeln dann bewegt sich der Wagen, da er ungefedert auf Speichenrädern läuft hast du ständig jede Menge recht kräftige Erschütterungen. Probiers einfach mal aus.
Max H. schrieb: >> Activity >> The activity bit is set when acceleration greater than the value stored >> in the THRESH_ACT register (Address 0x24) is experienced on any >> participating axis, set by the ACT_INACT_CTL register (Address 0x27) Mein Englisch ist nicht besonders gut aber das klingt vielversprechend! Muß mir das etwas genauer durchlesen und versuchen es zu verstehen! Danke für deine Hilfe
labrador schrieb: > Was passiert beim mit den Werten beim losfahren? Da wird es etwas kräftiger rucken und in den Daten werden entsprechende Peaks sichtbar - das kommt auf den Fahrer an. Außerdem wird die "nach hinten"-Komponente während der Beschleunigungsphase systematisch vom 0-Rauschen abweichen.
wenn du den Sensor richtig orientierst muss dir ein Ausgang die 1 (oder -1) zeigen (Erdbeschleunigung) und die anderen beiden Ausgänge 0 (System ist in Ruhe). Wenn der Wagen anfährt wirst du auf einem der beiden anderen Ausgänge etwas ungleich Null sehen ==> Wagen hat beschleunigt. Das müsstest du auf jeden Fall durch Setzen eines Schwellewerts, der überschritten werden muss,so einstellen können, dass man das Anfahren erkennt. Die Höhe der tatsächlichen Beschleunigung ist dir ja offensichtlich egal, du brauchst sie erst gar nicht auszurechnen. Fährt der Wagen dann mit konstanter Geschwindigkeit gehen idealerweise die beiden Horizontalsensoren wieder auf 0. Den Zustand kannst du dann von Ruhe nicht unterscheiden. Evtl. läuft aber der Leiterwagen nicht ganz rund und die Beschleunigungssensoren geben konstanntes kleines Signal ab. Dann könntest du das Fahren doch detektieren. Fahr also mal den Leiterwagen mit unterschiedlichen Fahrzuständen und protokolier die 3 Beschleunigungswerte oder besser Messwerte. Dann wirst du schon sehen, ob du "Wagen in Ruhe", "Wagen angefahren" und "Wagen in Bewegung" voneinander unterscheiden kannst. Gerhard
Gerhard Z. schrieb: > Fahr also mal den Leiterwagen mit unterschiedlichen Fahrzuständen und > protokolier die 3 Beschleunigungswerte oder besser Messwerte. Dann wirst > du schon sehen, ob du "Wagen in Ruhe", "Wagen angefahren" und "Wagen in > Bewegung" voneinander unterscheiden kannst. Ja das klingt vernünftig! Danke
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.