Inhaltsverzeichnis:
2025 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2025-01-13 06:56
Wenn Ihr Hobby RC, Drohnen, Robotik, Elektronik, Augmented Reality oder ähnliches ist, dann werden Sie früher oder später mit der Aufgabe der Magnetometerkalibrierung konfrontiert. Jedes Magnetometermodul muss kalibriert werden, da die Messung des Magnetfeldes gewissen Verzerrungen unterliegt. Es gibt zwei Arten dieser Verzerrungen: die Harteisenverzerrungen und die Weicheisenverzerrungen. Die Theorie zu diesen Verzerrungen finden Sie hier. Um genaue Messungen zu erhalten, sollten Sie das Magnetometer auf Hart- und Weicheisenverzerrungen kalibrieren. Dieses anweisbare beschreibt den einfachen Weg, wie es geht.
Schritt 1: Sachen, die Sie brauchen
Hardware:
- HMC5883L Magnetometermodul
- Arduino Mega 2560-Board
* Aber Sie können dieses anweisbare leicht für ein anderes Magnetometermodul oder Arduino-Board übernehmen.
Software:
- MagMaster
- MagViewer
Firmware:
Arduino-Skizze
*Dieser Sketch wurde für das HMC5883L-Modul geschrieben, Sie können ihn jedoch problemlos für Ihr Modul übernehmen.
Andere:
- Pappschachtel
- Steckbrett
- Drähte
Schritt 2: Erstellen der Kalibrierungsbox
Für den Kalibriervorgang sollten Sie die spezielle Kalibrierbox erstellen (Bild 2.1). Für die Herstellung habe ich eine Pappschachtel verwendet, aber Sie können auch eine Plastikbox, eine Holzstange oder etwas anderes verwenden. Verbinden Sie das Magnetometermodul mit der Box (zB mit Kleber) wie in Bild 2.1 gezeigt. Auf den Flächen der Box sollten Sie das Koordinatensystem entsprechend dem Koordinatensystem des Magnetometermoduls zeichnen.
Schritt 3: Elektrischer Anschluss
Verbinden Sie das Magnetometermodul und die Arduino-Platine wie in Bild 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: Software und Firmware installieren
Laden Sie die Software und Firmware hier herunter. Dieses Archiv enthält Dateien:
- MagMaster.exe - das Magnetometer-Kalibrierungsprogramm
- MagViewer.exe - das Visualisierungsprogramm für Magnetometermessungen
- Arduino_Code - die Arduino-Skizze für den Kalibrierungsprozess
- Arduino_Test_Results - die Arduino-Skizze zum Testen von Kalibrierergebnissen
- Arduino_Radius_Stabilisation - die Arduino-Skizze zum Testen von Kalibrierergebnissen mit dem Kugelradius-Stabilisierungsalgorithmus
- MagMaster-Dateien und MagViewer-Dateien - die Systemdateien für MagMaster.exe und MagViewer.exe
Kopieren Sie alle diese Dateien in einen beliebigen Ordner. Laden Sie die Skizze "Arduino_Code" auf das Arduino-Board hoch. Diese Arduino-Skizze erfordert die HMC5883L-Bibliothek. Kopieren Sie den Ordner "HMC5883L" (im Ordner "Arduino_Code") in den Ordner "C:\Program Files\Arduino\libraries", bevor Sie die Skizze hochladen.
Schritt 5: Kalibrierung
Einführung
Die Kalibrierung des Magnetometers ist der Prozess zum Erhalten der Transformationsmatrix und des Bias.
Um die kalibrierten Messungen des Magnetfelds zu erhalten, sollten Sie diese Transformationsmatrix und den Bias in Ihrem Programm verwenden. In Ihrem Algorithmus sollten Sie den Bias auf den Vektor der nicht kalibrierten 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".
Kalibrierprozess
Führen Sie MagMaster.exe aus und wählen Sie den seriellen Port des Arduino-Boards aus. Die grünen Zeichenketten im Programmfenster zeigen die Koordinaten des Magnetometervektors an (Bild 5.1).
Platzieren Sie das Magnetometermodul (Kalibrierbox mit angeschlossenem Magnetometermodul) wie in Bild 5.2.1 gezeigt und klicken Sie auf die Schaltfläche "Punkt 0" der Gruppenbox "Achse X+". Beachten Sie, dass die Kalibrierungsbox relativ zur festen horizontalen Ebene nicht stationär ist. Platzieren Sie dann das Magnetometer wie in Bild 5.2.2 gezeigt und klicken Sie auf die Schaltfläche "Point 180" der Groupbox "Axis X+" und so weiter. Gehen Sie wie folgt vor (siehe auch Bild 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 ausfüllen. Klicken Sie danach auf "Transformationsmatrix und Bias berechnen" und erhalten Sie die Transformationsmatrix und den Bias (Abbildung 5.3).
Die Transformationsmatrix und der Bias sind erhalten! Die Kalibrierung ist abgeschlossen!
Schritt 6: Testen und Visualisieren
Die nicht kalibrierte Messvisualisierung
Laden Sie die Skizze "Arduino_Code" auf das Arduino-Board hoch. Führen Sie die MagViewer.exe aus, wählen Sie den seriellen Port des Arduino-Boards aus (die Übertragungsrate des seriellen Ports sollte 9600 bps betragen) und klicken Sie auf "Run MagViewer". Jetzt können Sie die Koordinaten des Magnetometer-Datenvektors im 3D-Raum in Echtzeit sehen (Bild 6.1, Video 6.1, 6.2). Diese Messungen sind nicht kalibriert.
Die kalibrierte Messvisualisierung
Bearbeiten Sie die Skizze "Arduino_Radius_Stabilization", ersetzen Sie die Standardtransformationsmatrix und die Bias-Daten durch Ihre während der Kalibrierung erhaltenen Daten (Ihre Transformationsmatrix und Bias). Laden Sie die Skizze "Arduino_Radius_Stabilization" auf das Arduino-Board hoch. Führen Sie die MagViewer.exe aus, wählen Sie den seriellen Port aus (die Übertragungsrate beträgt 9600 bps), 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 ganz einfach den Algorithmus für Ihr Magnetometerprojekt mit kalibrierten Messungen schreiben!