Ich arbeite an einem Projekt, um den Neigungswinkel einer Schneckenantriebsklinge zu finden. Um den Winkel zu finden, habe ich mich entschieden, 2 Beschleunigungsmesser zu verwenden. Einer davon ist meine Referenz und sitzt auf der Fußplatte, der andere befindet sich auf dem Gehäuse und bewegt sich mit dem Kegelzapfen.
Ich möchte, dass der auf der Fußplatte sitzende Beschleunigungsmesser meine Referenz ist. Daher steht die Schwerkraft bei jeder Bewegung senkrecht zum Beschleunigungsmesser. Dies ist natürlich unmöglich, da die Schwerkraft immer nach UNTEN zeigt!! Gibt es eine mathematische Gleichung oder einen Algorithmus, der die G-Werte des Fußplatten-Beschleunigungsmessers nimmt und eine "nichtkonventionelle Pseudo" -Schwerkraft erzeugt?
Bitte teilen Sie mir mit, ob es Klärungsbedarf gibt. Ich verwende den Beschleunigungsmesser MPU6050.
Jeder Beschleunigungsmesser (im Stillstand) gibt Ihnen einen 3-Vektor für die Richtung der Schwerkraft.
Nehmen wir an, dass beide Beschleunigungsmesser offsetfrei sind und auf allen drei Achsen die gleiche Verstärkung haben. Wenn sie nicht so ideal sind, ist es ziemlich einfach, einen Offset und eine Verstärkung für jede Achse mit einem Kalibrierungsschritt zu erhalten, der das Rollen jeder Achse in eine große Anzahl von zufälligen Winkeln und das Ableiten von Offsets und Verstärkungen umfasst, so dass die Größe der Schwerkraft (sqrt( Summe der quadrierten Komponenten)) unabhängig von der Ausrichtung des Beschleunigungsmessers konstant ist.
Der Winkel zwischen zwei 3 Vektoren wird nun über ihr Punkt- (oder Skalar-) Produkt berechnet, das Ihnen den Kosinus dieses Winkels gibt. Ausführliche Informationen finden Sie unter Wikipedia-Punktprodukt.
Möchten Sie den "Neigungswinkel" zwischen der flachen Oberfläche und dem Winkel der Klinge messen? Wenn dies der Fall ist, können Sie dies mit einem 3-Achsen-Beschleunigungsmesser berechnen, ohne dass ein weiterer Accel erforderlich ist.
Wenn Sie 3 Achsen haben - {x,y,z}, haben Sie entlang jeder Achse eine Komponente des Gravitationsfeldes der Erde, die im Allgemeinen als Gx, Gy und Gz dargestellt wird.
Gtotal ist 1G, daher haben wir im dreidimensionalen Raum 1G = SQRT(Gx^2 + Gy^2 + Gz^2). Hiermit führen Sie eine Skalarkalibrierung durch. Platzieren Sie den Beschleunigungsmesser an verschiedenen Positionen, um einen Skalierungsfaktor und BIAS für jede Achse zu bestimmen.
Nach der Kalibrierung kann die Neigung durch atan2(Gxy,Gz) berechnet werden, wobei Gxy = SQRT(Gx^2 + Gy^2).
Wenn der Accel flach auf dem Tisch liegt, habe ich angenommen, dass Gz entlang der Achse des Accel liegt, Gy nach oben zeigt und Gx senkrecht zu beiden ist.
Hoffe das hilft.
pjc50
Jason Lee
CHendrix
pjc50
kolossal