Sadržaj:
2025 Autor: John Day | [email protected]. Zadnja izmjena: 2025-01-13 06:57
Ako su vam hobi RC, dronovi, robotika, elektronika, povećanje realnosti ili slično, prije ili kasnije ćete se suočiti sa zadatkom kalibracije magnetometra. Bilo koji modul magnetometra mora biti kalibriran jer je mjerenje magnetskog polja podložno nekim izobličenjima. Postoje dvije vrste ovih izobličenja: izobličenja od tvrdog željeza i izobličenja od mekog željeza. Teoriju o ovim izobličenjima možete pronaći ovdje. Da biste dobili točna mjerenja, trebate kalibrirati magnetometar za izobličenja tvrdog i mekog željeza. Ova instrukcija opisuje jednostavan način kako to učiniti.
Korak 1: Stvari koje su vam potrebne
Hardver:
- HMC5883L modul magnetometra
- Arduino Mega 2560 ploča
*Ali ovo uputstvo možete lako usvojiti za neki drugi modul magnetometra ili arduino ploču.
Softver:
- MagMaster
- MagViewer
Firmware:
Arduino Sketch
*Ova skica je napisana za modul HMC5883L, ali je možete lako usvojiti za svoj modul.
Ostali:
- Papirna kutija
- Breadboard
- Žice
Korak 2: Izrada kutije za kalibraciju
Za postupak kalibracije trebate napraviti posebnu kalibracijsku kutiju (slika 2.1). Za ovo sam upotrijebio papirnatu kutiju, ali možete koristiti i plastičnu, drvenu šipku ili nešto drugo. Modul magnetometra trebate spojiti s kutijom (na primjer s ljepilom) kao što je prikazano na slici 2.1. Na stranama kutije nacrtajte koordinatni sistem prema koordinatnom sistemu modula magnetometra.
Korak 3: Električna veza
Povežite modul magnetometra i arduino ploču kao što je prikazano na slici 3.1. Imajte na umu da napon napajanja modula magnetometra može biti 3, 3 V (kao u mom slučaju s verzijom HMC5883L GY-273).
Korak 4: Instaliranje softvera i firmvera
Ovdje preuzmite softver i firmver. Ova arhiva sadrži datoteke:
- MagMaster.exe - program za kalibraciju magnetometra
- MagViewer.exe - program za vizualizaciju mjerenja magnetometra
- Arduino_Code - arduino skica za proces kalibracije
- Arduino_Test_Results - arduino skica za testiranje rezultata kalibracije
- Arduino_Radius_Stabilisation - arduino skica za testiranje rezultata kalibracije s algoritmom za stabilizaciju radijusa sfere
- MagMaster datoteke i datoteke MagViewer - sistemske datoteke za MagMaster.exe i MagViewer.exe
Kopirajte sve ove datoteke u bilo koju mapu. Prenesite skicu "Arduino_Code" na arduino ploču. Ova arduino skica zahtijeva biblioteku HMC5883L, kopirajte mapu "HMC5883L" (smještenu u mapu "Arduino_Code") u mapu "C: / Program Files / Arduino / libraries" prije postavljanja skice.
Korak 5: Kalibracija
Uvod
Kalibracija magnetometra je proces dobivanja transformacijske matrice i pristranosti.
Da biste dobili kalibrirana mjerenja magnetskog polja, trebali biste koristiti ovu matricu transformacije i pristranost u svom programu. U svom algoritmu trebate primijeniti pristranost na vektor nekalibriranih podataka magnetometra (X, Y, Z koordinate), a zatim pomnožiti transformacijsku matricu s ovim rezultirajućim vektorom (slika 5.4). C algoritam ovih proračuna možete pronaći u skicama "Arduino_Test_Results" i "Arduino_Radius_Stabilization".
Proces kalibracije
Pokrenite MagMaster.exe i odaberite serijski port arduino ploče. Zeleni nizovi u prozoru programa označavaju koordinate vektora magnetometra (slika 5.1).
Postavite modul magnetometra (kalibraciona kutija sa priključenim modulom magnetometra) kao što je prikazano na slici 5.2.1 i kliknite dugme "Tačka 0" na grupnom okviru "Axis X+". Imajte na umu da kalibracijska kutija nije stacionarna u odnosu na fiksnu vodoravnu ravninu. Zatim postavite magnetometar kao što je prikazano na slici 5.2.2 i kliknite gumb "Tačka 180" na grupnom okviru "Axis X+" itd. To biste trebali učiniti na sljedeći način (pogledajte i sliku 5.3):
- Slika 5.2.1: "Tačka 0", "Os X+"
- Slika 5.2.2: "Tačka 180", "Os X+"
- Slika 5.2.3: "Tačka 0", "Osa X-"
- Slika 5.2.4: "Tačka 180", "Osa X-"
- Slika 5.2.5: "Tačka 0", "Osa Y+"
- Slika 5.2.6: "Tačka 180", "Osa Y+"
- Slika 5.2.7: "Tačka 0", "Osa Y-"
- Slika 5.2.8: "Tačka 180", "Osa Y-"
- Slika 5.2.9: "Tačka 0", "Osa Z+"
- Slika 5.2.10: "Tačka 180", "Osa Z+"
- Slika 5.2.11: "Tačka 0", "Osa Z-"
- Slika 5.2.12: "Tačka 180", "Osa Z-"
Treba da popunite tabelu. Nakon toga kliknite "Izračunaj transformacijsku matricu i pristranost" i dobijte matricu transformacije i pristranost (slika 5.3).
Matrica transformacije i pristranost su postignuti! Kalibracija je završena!
Korak 6: Testiranje i vizualizacija
Vizualizacija nekolibriranih mjerenja
Prenesite skicu "Arduino_Code" na arduino ploču. Pokrenite MagViewer.exe, odaberite serijski port arduino ploče (brzina prijenosa serijskog porta bi trebala biti 9600 bps) i kliknite "Pokreni MagViewer". Sada možete vidjeti koordinate vektora podataka magnetometra u 3D prostoru u stvarnom vremenu (slika 6.1, video 6.1, 6.2). Ova mjerenja nisu kalibrirana.
Vizualizacija kalibriranih mjerenja
Uredite skicu "Arduino_Radius_Stabilization", zamijenite zadanu matricu transformacije i podatke o pristranosti s podacima dobivenim tijekom kalibracijskih podataka (vašu matricu transformacije i pristranost). Prenesite skicu "Arduino_Radius_Stabilization" na arduino ploču. Pokrenite MagViewer.exe, odaberite serijski port (brzina prijenosa je 9600 bps), kliknite "Pokreni MagViewer". Sada možete vidjeti kalibrirana mjerenja u 3D prostoru u stvarnom vremenu (slika 6.2, video 6.3, 6.4).
Pomoću ovih skica možete lako napisati algoritam za svoj projekt magnetometra s kalibriranim mjerenjima!