Ich verwende einen Beschleunigungsmesser ADXL206 und einen Mikrocontroller PIC16F917, um die relative lineare Bewegung eines Geräts zu bestimmen, das gemäß dieser Bewegung funktioniert.
Ich kann Daten vom Beschleunigungsmesser lesen:
Ich habe ein Gerät mit 2 LEDs zur Bewegungsrichtungsbestimmung. Es sollte so funktionieren:
Die wirklichen Ergebnisse, die ich erhalte, sind, wenn sich das Gerät bewegt, blinkt die LED nur während der Bewegung, dann sind sie ausgeschaltet, wenn keine Bewegung stattfindet.
Ich kann die Richtung vom Beschleunigungsmesser nicht erhalten und in einem stabilen Zustand bleiben.
Liegt das Problem beim Auslesen der Werte vom Beschleunigungsmesser oder im Algorithmus?
Das Gerät, das den Beschleunigungsmesser enthält, erfährt x G
zu Beginn der Bewegung vorübergehend eine Kraft (von ) entgegen der Beschleunigungsrichtung. Dann wird es erleben 0 Gees
, wie die Beschleunigung stoppt, dh sobald die Zielgeschwindigkeit erreicht ist.
Wenn das Gerät aus konstanter Geschwindigkeit zum Stillstand gebracht wird, erfährt es in ähnlicher Weise eine momentane Kraft, die der Verzögerung entgegenwirkt, und dann wieder eine Kraft von Null, sobald es zum Stillstand kommt.
Das berichtet Ihr Experiment - die LEDs blinken, wenn Sie die Beschleunigung erfahren, einmal in jede Richtung. Mit anderen Worten, das Verhalten ist wie vorgesehen.
Um eine Anzeige aufrechtzuerhalten, solange die Bewegung andauert, ist ein Beschleunigungsmesser nicht das ideale Gerät. Es ist kein Bewegungsmelder , sondern ein Beschleunigungsmelder , wie der Name schon sagt.
Während einige einfache Software-Tricks ( Integrieren der Beschleunigung über die Zeit ) verwendet werden könnten, um zu verfolgen, wann Beschleunigung in die eine oder andere Richtung gefühlt wird, würde ein solcher Mechanismus versagen, wenn die Verzögerungs- (oder Beschleunigungs-) Kraft im Vergleich zu der Empfindlichkeit und dem Gefühl sehr gering ist Signalrauschen, etwa wenn man das Gerät sehr langsam beschleunigt, aber schnell zum Stillstand bringt oder umgekehrt .
Ein Beschleunigungsmesser misst keine Bewegung: Er misst Bewegungsänderungen . Oder genauer gesagt, es misst die Ableitung der Geschwindigkeit . Wenn sich Ihr Beschleunigungsmesser also in eine Richtung zu bewegen beginnt, können Sie das erkennen. Aber sobald Sie sich zum Beschleunigungsmesser bewegen und nicht mehr beschleunigen, könnte er genauso gut auf Ihrem Schreibtisch sitzen. Das einzige, was Sie messen werden, ist Lärm und die konstante Erdbeschleunigung.
Eine Analogie wäre folgende: Wenn Sie nichts sehen können und Wind- und Straßengeräusche nicht hören können und die Fenster hochgefahren sind, sodass Sie keinen Wind spüren können, wie würden Sie dann wissen, dass Sie sich in einem fahrenden oder geparkten Auto befinden Auto?
Anders ausgedrückt, stellen Sie sich einen Ball vor, der oben auf Ihrem Objekt balanciert. Der Beschleunigungsmesser misst, wie sich der Ball relativ zum Objekt bewegt, wenn das Objekt seine Geschwindigkeit ändert.
Sie können das, was Sie beschreiben, nicht mit einem praktischen Beschleunigungsmesser machen. Wenn sich Ihr Objekt nach links zu bewegen beginnt, registriert der Beschleunigungsmesser eine Kraft in eine Richtung. Wenn Ihr Objekt später aufhört sich zu bewegen, registriert der Beschleunigungsmesser eine Kraft in die andere Richtung. Das Problem ist folgendes: Diese Kraft in die andere Richtung ist nicht von der Kraft zu unterscheiden, die Sie messen würden, wenn sich Ihr Objekt nach rechts zu bewegen beginnt.
Sie messen die Geschwindigkeitsänderung . Die Geschwindigkeitsänderung ist in beiden Fällen gleich:
Sie können sie nicht mit einem Beschleunigungsmesser unterscheiden. Wenn Sie "Bewegung nach links" und "Bewegung nach rechts" messen möchten, ist dies die Geschwindigkeit, nicht die Beschleunigung. Sie benötigen ein Gerät, das die Geschwindigkeit misst. Theoretisch können Sie die Beschleunigung integrieren, um die Geschwindigkeit 1 zu erhalten , aber praktische Details wie Rauschen und Offset führen dazu, dass Ihre Berechnung der Geschwindigkeit vom tatsächlichen Wert abweicht.
1: Ein Beispiel für ein System, das dies tut, ist ein Trägheitsnavigationssystem . Diese Systeme verwenden eine sehr sorgfältige Technik und teure Systeme, um Drift zu reduzieren, aber nicht zu eliminieren.
Leon Heller
Schnelligkeit
David Tweed
Renan
fm_andreas