Skip to main content

Einfache Kalibrierung von Hart- und Weicheisenmagnetometern

Wenn Ihr Hobby RC, Drohnen, Robotik, Elektronik, Augment Reality oder ähnliches ist, werden Sie sich früher oder später der Aufgabe der Magnetometerkalibrierung stellen müssen. Jedes Magnetometermodul muss kalibriert werden, da die Messung des Magnetfeldes einigen Verzerrungen unterworfen ist. Es gibt zwei Arten dieser Verzerrungen: die Harteisenverzerrungen und die Weicheisenverzerrungen. Die Theorie über diese Verzerrungen können Sie finden Hier. Um genaue Messungen zu erhalten, sollten Sie das Magnetometer auf Hart- und Weicheisenverzerrungen kalibrieren. Diese Anleitung beschreibt die einfache Vorgehensweise.

Zubehör:

Schritt 1: Was Sie brauchen

Hardware:

  • HMC5883L Magnetometermodul
  • Arduino Mega 2560 Board

* Aber Sie können dieses instructable leicht für ein anderes Magnetometermodul oder eine andere Arduino-Platine übernehmen.

Software:

  • MagMaster
  • MagViewer

Firmware:

  • Arduino-Skizze

* Diese Skizze wurde für das Modul HMC5883L erstellt, Sie können sie jedoch problemlos für Ihr Modul übernehmen.

Andere:

  • Pappschachtel
  • Steckbrett
  • Leitungen

Schritt 2: Erstellen der Kalibrierungsbox

Für den Kalibriervorgang sollten Sie die spezielle Kalibrierbox anfertigen (Bild 2.1). Dafür habe ich eine Papierschachtel verwendet, aber Sie können auch eine Plastikschachtel, eine Holzschachtel oder etwas anderes verwenden. Sie sollten das Magnetometermodul mit der Box verbinden (zum Beispiel mit Klebstoff), wie in Abbildung 2.1 gezeigt. Auf die Seiten des Kastens sollten Sie das Koordinatensystem gemäß dem Koordinatensystem des Magnetometermoduls zeichnen.

Schritt 3: Elektrischer Anschluss

Verbinden Sie das Magnetometermodul und die Arduino-Platine wie in Abbildung 3.1 gezeigt. Beachten Sie, dass die Versorgungsspannung des Magnetometermoduls 3,3 V betragen kann (wie in meinem Fall bei der Version HMC5883L GY-273).

Schritt 4: Installieren der Software und Firmware

Laden Sie hier die Software und Firmware herunter.
Dieses Archiv enthält Dateien:

  • MagMaster.exe - das Magnetometer-Kalibrierungsprogramm
  • MagViewer.exe - das Programm zur Visualisierung von Magnetometermessungen
  • Arduino_Code - Die Arduino-Skizze für den Kalibrierungsprozess
  • Arduino_Test_Results - Die Arduino-Skizze zum Testen der Kalibrierungsergebnisse
  • Arduino_Radius_Stabilisation - Die Arduino-Skizze zum Testen der Kalibrierungsergebnisse mit dem Kugelradius-Stabilisierungsalgorithmus
  • MagMaster Files und MagViewer Files - die Systemdateien für MagMaster.exe und MagViewer.exe

Kopieren Sie alle diese Dateien in einen beliebigen Ordner. Laden Sie die "Arduino_Code" -Skizze auf die Arduino-Platine hoch. Für diese Arduino-Skizze ist die Bibliothek HMC5883L erforderlich. Kopieren Sie den Ordner "HMC5883L" (im Ordner "Arduino_Code") in den Ordner "C: Programme Arduino libraries", bevor Sie die Skizze hochladen.

Schritt 5: Kalibrierung

Einführung

Beim Kalibrieren des Magnetometers werden die Transformationsmatrix und die Vorspannung ermittelt.

Um die kalibrierten Messungen des Magnetfelds zu erhalten, sollten Sie diese Transformationsmatrix und Vorspannung in Ihrem Programm verwenden.In Ihrem Algorithmus sollten Sie den Bias auf den Vektor nicht kalibrierter Magnetometerdaten (X-, Y-, Z-Koordinaten) anwenden und dann die Transformationsmatrix mit diesem resultierenden Vektor multiplizieren (Abbildung 5.4). Den C-Algorithmus dieser Berechnungen finden Sie in den Skizzen "Arduino_Test_Results" und "Arduino_Radius_Stabilization".

Kalibrierungsprozess

Führen Sie MagMaster.exe aus und wählen Sie den seriellen Port der Arduino-Karte aus. Die grünen Strings im Programmfenster zeigen die Koordinaten des Magnetometervektors an (Abbildung 5.1).

Platzieren Sie das Magnetometermodul (Kalibrierbox mit angeschlossenem Magnetometermodul) wie in Abbildung 5.2.1 gezeigt und klicken Sie in der Gruppe "Achse X +" auf die Schaltfläche "Punkt 0". Beachten Sie, dass die Kalibrierungsbox relativ zur festen horizontalen Ebene nicht stationär ist. Platzieren Sie dann das Magnetometer wie in Abbildung 5.2.2 gezeigt und klicken Sie auf die Schaltfläche "Punkt 180" in der Gruppenbox "Achse X +" und so weiter. Sie sollten folgendermaßen vorgehen (siehe auch Abbildung 5.3):

  • Bild 5.2.1: "Punkt 0", "Achse X +"
  • Bild 5.2.2: "Punkt 180", "Achse X +"
  • Bild 5.2.3: "Punkt 0", "Achse X-"
  • Bild 5.2.4: "Punkt 180", "Achse X-"
  • Bild 5.2.5: "Punkt 0", "Achse Y +"
  • Bild 5.2.6: "Punkt 180", "Achse Y +"
  • Bild 5.2.7: "Punkt 0", "Achse Y-"
  • Bild 5.2.8: "Punkt 180", "Achse Y-"
  • Bild 5.2.9: "Punkt 0", "Achse Z +"
  • Bild 5.2.10: "Punkt 180", "Achse Z +"
  • Bild 5.2.11: "Punkt 0", "Achse Z-"
  • Bild 5.2.12: "Punkt 180", "Achse Z-"

Sie sollten die Tabelle füllen. Klicken Sie anschließend auf "Transformationsmatrix und Bias berechnen" und ermitteln Sie die Transformationsmatrix und den Bias (Abbildung 5.3).

Die Transformationsmatrix und die Verzerrung sind erhalten! Die Kalibrierung ist abgeschlossen!

Schritt 6: Testen und Visualisieren

Die nicht kalibrierte Messwertvisualisierung

Laden Sie die "Arduino_Code" -Skizze auf die Arduino-Platine hoch. Führen Sie die MagViewer.exe aus, wählen Sie den seriellen Port der Arduino-Karte aus (die Boud-Rate des seriellen Ports sollte 9600 bps betragen) und klicken Sie auf "MagViewer ausführen". Jetzt können Sie die Koordinaten des Magnetometer-Datenvektors in Echtzeit im 3D-Raum sehen (Bild 6.1, Video 6.1, 6.2). Diese Messungen sind nicht kalibriert.

Die kalibrierte Messwertvisualisierung

Bearbeiten Sie die Skizze "Arduino_Radius_Stabilization", ersetzen Sie die Standardtransformationsmatrix und die Bias-Daten durch die während der Kalibrierung erhaltenen Daten (Transformationsmatrix und Bias). Laden Sie die Skizze "Arduino_Radius_Stabilization" auf die Arduino-Platine hoch. Führen Sie die MagViewer.exe aus, wählen Sie die serielle Schnittstelle (die Übertragungsrate beträgt 9600 Bit / s) und klicken Sie auf "MagViewer ausführen". Jetzt können Sie die kalibrierten Messungen im 3D-Raum in Echtzeit sehen (Bild 6.2, Video 6.3, 6.4).

Mit diesen Skizzen können Sie einfach den Algorithmus für Ihr Magnetometerprojekt mit kalibrierten Messungen schreiben!