2017-06-23 5 views
0

Ich mache ein Projekt mit dem Beschleunigungsmesser MPU6050. Zuerst berechne ich die Offsets der MPU nur einmal unter the sketch of Luis Ródenas.Wie wird die MPU6050 Beschleunigungsmesser-Temperaturkalibrierung durchgeführt?

Später, sobald ich die Offsets bekomme, kopiere ich sie in die Konfiguration einer zweiten Skizze und ich führe es immer mit den gleichen Werten.

//Placa casa MPU6050 viejo 
//-1172 -873 1351 76 -758 27 
accelgyro.setXAccelOffset(-1172); 
accelgyro.setYAccelOffset(-873); 
accelgyro.setZAccelOffset(1351); 
accelgyro.setXGyroOffset(76); 
accelgyro.setYGyroOffset(-773); 
accelgyro.setZGyroOffset(33); 

Das Problem, das ich habe, ist, dass nach einer Zeit der zweiten Skizze mehrmals ausgeführt haben, die rohen Lesungen präsentiert eine neue Offset.

Ich lese, dass dieses Problem durch die Temperatur des Sensors sein kann, dass es notwendig ist, die Messwerte mit der Temperatur zu kompensieren. Aber ich kann kein Beispiel dafür finden. Ich wollte fragen, ob jemand weiß, was das Problem ist und wie ich es beheben kann.

Antwort

0

Bevor Sie eine Codezeile für die Temperatureinstellung schreiben, ist der absolute erste Schritt zu beziehen Sie sich auf das Datenblatt für den genauen Teil, den Sie verwenden. Geräte, die temperaturbedingte Abweichungen aufweisen, werden normalerweise im Datenblatt angezeigt, und die Kompensation wird benötigt. Ich schaue mir gerade ein 6050-Datenblatt an und für das Beschleunigungsmesser-Modul zum Beispiel listet es die Korrektur als +/- 0,02% pro Grad C im Linearitätsbereich von -40 ° C bis 85 ° C auf. Das Gyroskop-Modul listet einen anderen Korrekturfaktor auf. Dies ist bei Multi-Sensormodulen nicht unüblich.

Wenn Sie der Meinung sind, dass Temperaturdrift die Ursache Ihres Problems ist, müssen Sie auf der Grundlage dieser Werte Anpassungen aus dem Datenblatt vornehmen.

+0

Vielen Dank, aber ich verstehe nicht, welche Schritte ich befolgen muss, um die Beschleunigungsmesserwerte entsprechend diesen Temperaturbereichen zu korrigieren. Kennen Sie Beispiele dafür? –

+0

Unterscheiden sich Ihre Messungen um mehr als die Temperatur? Wenn ja, haben Sie wahrscheinlich mindestens eine weitere Fehlerquelle. Das ist ein Hauptgrund, warum ich mich auf das Datenblatt beziehe, um zu beurteilen, ob der Fehler sogar durch Temperaturdrift erklärbar ist. – TomServo

0

Ich sehe zwei Möglichkeiten, mit MPU6050 Temperaturdrift zu beschäftigen:

  1. es Kalibrieren vor jedem Start: put Eichkode in Sie setup(), so dass Sie die gültigen Offset-Parameter auf jedem Gerätestart erhalten, egal, Wie hoch ist die Temperatur des Geräts? Diese Methode wird im Multirotor-Flugregler verwendet, um seine IMU zu kalibrieren, die oft auf MPU60x0 basiert.

  1. eine Tabelle von Kalibrierungswerten vorbereiten. Der MPU6050 verfügt über einen integrierten Temperatursensor, der für diesen Ansatz verwendet werden kann.

schreiben Skizze, die tun:

  1. lesen T (Temperatur). example sketch how to read T from MPU6050
  2. Maßnahme die Versätze, wie Sie jetzt tun und drucken in Serial mit Strom T.
  3. warten, bis T ändert, wenn es zu lange gedauert hat, (30 + s zum Beispiel), Kalibrierung stoppen, sonst auf 2 geht

Jetzt den MPU6050 im Gefrierschrank abkühlen und dann in eine heiße Umgebung bringen (50 ° C sollte ausreichen; hängt davon ab, in welchem ​​T-Bereich das endgültige Gerät verwendet wird) und die Kalibrierungsskizze starten.

Jetzt können Sie mit einer Tabelle [T]->[offsets] Originalskizze anpassen, um das T von MPU6050 zu überwachen, und wenn es sich einmal geändert hat, weisen Sie MPU6050 die entsprechenden Offsets zu.

+0

Danke für die Antwort, ich werde Ihren Rat versuchen –

Verwandte Themen