Magnitometr — Yer magnit maydonining kuchlanganligini o'lchab, dunyo tomonlarini aniqlaydigan sensor. Mobil qurilmalarda u raqamli kompas sifatida ishlaydi va to'g'ri kalibrlash bilan 1–2 darajagacha aniqlikni ta'minlaydi. Bosch Sensortec Application Note, 2024 ma'lumotlariga ko'ra, zamonaviy MEMS-magnitometrlar atigi 0.5–2 mA quvvat sarflaydi va 1.5×1.5×0.7 mm korpusga joylashadi.
Asosiy ma'lumotlar
Magnitometr mobil qurilmada Hall effektiga asoslangan uch o'qli magnit maydon sensoridir. U magnit induksiya vektorining X, Y va Z o'qlari bo'yicha proyeksiyalarini o'lchaydi. Akselerometr bilan birgalikda magnitometr azimutni — shimol yo'nalishi bilan telefon o'qi orasidagi burchakni aniqlash imkonini beradi.
Zamonaviy smartfonlarda anizotrop magnitoqarshilik effektiga (AMR) va Hall effektiga asoslangan MEMS-magnitometrlar qo'llaniladi. AMR-sensorlar (Asahi Kasei Microdevices ning AKM seriyasi) 0.15 µT/LSB sezgirlik va ±1200 µT diapazonni ta'minlaydi — bu Yer maydonini (25–65 µT) o'lchash uchun yetarli.
| Parametr | Qiymat |
|---|---|
| Texnologiya | AMR / Hall effekti |
| Diapazon | ±1200 — ±1300 µT |
| Quvvat sarfi | 0.5–2 mA |
| O'lcham | 1.5×1.5×0.7 mm |
| Sezgirlik | 0.15 µT/LSB |
Raqamli kompas bo'lmasa, navigatsiya ilovalari harakat yo'nalishini aniqlay olmaydi. Google Maps xaritaning foydalanuvchi qarash yo'nalishiga nisbatan orientatsiyasini ko'rsatish uchun magnitometrdan foydalanadi. Sensor ishlamay qolganda, ilova xaritada faqat joylashuvni ko'rsatadi, yo'nalishning ko'k strelkasi bo'lmaydi.
Hall effekti — magnit maydon ta'sirida o'tkazuvchi plastinka chetlarida potensiallar farqining paydo bo'lishi fizik hodisasi. MEMS-magnitometrlarda qarshiligi tashqi magnit maydon ta'sirida o'zgaradigan permalloy (NiFe) dan yupqa qatlamli strukturalar qo'llaniladi (AMR-effekti).
Uch kanalning (X, Y, Z) har biri to'rtta magnitoqarshilikdan iborat bo'lib, Wheatstone ko'prigiga ulangan. Magnit maydon rezistorlarning qarshiligini 2–3% ga o'zgartiradi, bu differensial kuchaytirgich tomonidan kuchlanishga aylantiriladi. Ichki 16-bitli ADC signalni 100 Hz gacha chastotada raqamlashtiradi.
Maydonning vertikal komponentini o'lchash uchun integratsiyalangan magnit oqimi konsentratori (IMC — Integrated Magnetic Concentrator) qo'llaniladi. Bu gorizontal maydonni vertikal tekislikka yo'naltiradigan NiFe yupqa qatlamli struktura bo'lib, yagona AMR ko'prigiga uchala o'qni o'lchash imkonini beradi.
Magnitometr Yer magnit maydoniga nisbatan orientatsiyani aniqlaydi (mutlaq ma'lumotnoma), giroskop esa faqat burchak o'zgarishini o'lchaydi (nisbiy ma'lumotlar). Giroskop qisqa intervallarda aniq ma'lumot beradi, lekin drift xatosini to'playdi. Magnitometr drift qilmaydi, ammo magnit shovqinlarga moyil.
Android uch sensorning ma'lumotlarini SensorManager.getRotationMatrix orqali birlashtiradi. Magnitometr uzoq intervallarda giroskop driftini korreksiya qilish uchun ishlatiladi. Magnitometrsiz giroskop 5 daqiqada 10–20 daraja xato to'playdi. Google ARCore (2024) ma'lumotlariga ko'ra, fusion algoritmi magnitometr mavjud bo'lganda 1–3 daraja aniqlikka erishadi.
val accelerometerReading = FloatArray(3)
val magnetometerReading = FloatArray(3)
val rotationMatrix = FloatArray(9)
val orientationAngles = FloatArray(3)
SensorManager.getRotationMatrix(
rotationMatrix, null,
accelerometerReading,
magnetometerReading
)
SensorManager.getOrientation(
rotationMatrix, orientationAngles
)
// orientationAngles[0] — radianlarda azimut
Hard Iron — telefon ichidagi ferromagnit materiallar tomonidan yaratilgan doimiy magnit maydon: dinamik magnitlari, vibratsiya motoru, korpusning metall ramkasi. Hard Iron buzilishi har bir o'q bo'yicha doimiy siljish (bias) sifatida namoyon bo'ladi. Soft Iron — maydon chiziqlari shaklini buzadigan magnito'tkazuvchi materiallar tufayli maydon yo'nalishining o'zgarishi.
Magnitometrni kalibrlashning standart protsedurasi telefonni sakkiz raqami shaklida aylantirishdir (figure-8 pattern). Jarayonda sensor uch o'lchovli fazoda nuqtalarni yozib oladi. Buzilishlarsiz nuqtalar 25–65 µT radiusli sferada yotadi. Hard Iron sfera markazini siljitadi, Soft Iron uni ellipsoidga aylantiradi. Kalibrlash algoritmi siljish va masshtablash parametrlarini hisoblaydi.
data class CalibrationParams(
val biasX: Float,
val biasY: Float,
val biasZ: Float,
val scaleX: Float,
val scaleY: Float,
val scaleZ: Float
)
fun applySoftIronCorrection(
raw: FloatArray, p: CalibrationParams
): FloatArray {
return floatArrayOf(
(raw[0] - p.biasX) * p.scaleX,
(raw[1] - p.biasY) * p.scaleY,
(raw[2] - p.biasZ) * p.scaleZ
)
}
Dasturchi qurilma harakati vaqtida ma'lumot to'plab, o'z magnitometr kalibrlashini amalga oshirishi mumkin. Ellipsoid moslashtirish (ellipsoid fitting) algoritmi sferadan chetlanishlar kvadratlari yig'indisini minimallashtirib, Hard Iron va Soft Iron parametrlarini topadi. Apache Commons Math kutubxonasi bu vazifa uchun chiziqli bo'lmagan eng kichik kvadratlar usuli (Levenberg-Marquardt) ni taqdim etadi — dasturiy kalibrlashdan keyin aniqlik 0.5 darajaga yetadi.
Hard Iron ni minimallashtirish uchun ishlab chiqaruvchilar magnitometrni telefonning yuqori qismida, dinamik va vibratsiya motoridan uzoqda joylashtiradilar. Apple muhandislari iPhone 16 Pro Max (2024) da magnitometrni permalloy folga bilan ekranlashni qo'lladilar, bu dinamik ta'sirini 4 marta kamaytirdi. Samsung Galaxy S24 Ultra da real vaqtda dinamikdagi tokni o'lchaydigan va induksiyalangan maydonni ayiradigan qo'shimcha kompensatsiya sxemasi qo'llaniladi. Magnit biriktirgichli g'iloflar (masalan, avtomobil ushlagichlarida) kuchli buzilishlar yaratadi — foydalanishdan keyin magnitometr qayta kalibrlashgacha noto'g'ri yo'nalish ko'rsatishi mumkin.
Android ikkita sensorni taqdim etadi: TYPE_MAGNETIC_FIELD (µT da kalibrlangan ma'lumotlar) va TYPE_MAGNETIC_FIELD_UNCALIBRATED (buzilish bahosi bilan xom ma'lumotlar). Navigatsiya ilovalari uchun kalibrlangan sensordan foydalanish tavsiya etiladi — tizim oxirgi sakkiz raqam harakati asosida ichki kalibrlashni avtomatik qo'llaydi.
SENSOR_DELAY_NORMAL kechikishi (200 ms) kompas uchun yetarli, SENSOR_DELAY_FASTEST (0 ms) — faqat maxsus tadqiqot ilovalari uchun. Qiymatlar olingandan so'ng, ularni getRotationMatrix + getOrientation orqali azimutga aylantirish mumkin. Sensorning aniqligini event.accuracy orqali tekshirish muhim — SENSOR_STATUS_UNRELIABLE qiymati kalibrlash zarurligini bildiradi.
override fun onSensorChanged(event: SensorEvent) {
if (event.sensor.type == Sensor.TYPE_MAGNETIC_FIELD) {
val accuracy = event.accuracy
if (accuracy == SensorManager.SENSOR_STATUS_UNRELIABLE) {
showCalibrationHint()
return
}
System.arraycopy(event.values, 0,
magnetometerReading, 0, 3)
}
}
Magnitometr faqat kompas uchun emas, balki boshqa maqsadlarda ham qo'llaniladi. AR ilovalari, jumladan Pokemon GO, kameraning real dunyoga nisbatan orientatsiyasini aniqlash uchun magnitometrdan foydalanadi. Magnitometr bo'lmaganda, ARCore Screen Axis rejimiga o'tadi — orientatsiya faqat giroskop bilan aniqlanadi, bu aniqlikni pasaytiradi.
Android Auto asosidagi avtomobil navigatsiya tizimlarida magnitometr tunnellar va zich shahar qurilishida GPS signali yo'qolganda harakat yo'nalishini aniqlash uchun ishlatiladi. Avtomobil g'ildiraklaridan odometriya ma'lumotlari (OBD-II orqali olinadigan) bilan birgalikda magnitometr GPSsiz 5 daqiqagacha navigatsiyani 10–20 metr aniqlikda davom ettirish imkonini beradi. Google Maps Engineering Blog (2024) ma'lumotlariga ko'ra, gibrid algoritm shahar kanyonlarida marshrut yo'qotish foizini 40% ga kamaytiradi.
Navigatsiya ilovalari harakat azimutini — shimol yo'nalishi bilan foydalanuvchining joriy kursi orasidagi burchakni aniqlash uchun magnitometrdan foydalanadi. Google Maps da magnitometr ma'lumotlari GPS treki va harakat tarixi bilan birlashtirilib, ko'k yo'nalish strelkasi ko'rsatiladi. GPS signali yo'qolganda (tunnellar, yer osti o'tish joylarida) magnitometr orientatsiya haqidagi yagona ma'lumot manbai bo'lib qoladi.
Integratsiyalangan ASIC bilan yangi avlod 3 o'qli magnitometrlari (Bosch dan BMM350, 2024) atigi 0.35 mA quvvat sarflaydi va 200 Hz gacha chastotani qo'llab-quvvatlaydi. Mobil qurilmalar uchun kvant magnitometrlari va olmosdagi NV markazlarining rivojlanishi hali laboratoriya eksperimentlari bosqichidan chiqmagan. 2028 yilga kelib mobil magnitometrlarning aniqligi 0.01 µT ga yetishi kutilmoqda.
Tez-tez so'raladigan savollar
Telefon bilan havoda sakkiz raqami chizing — bu raqamli kompasni kalibrlash uchun standart harakatdir. Agar kompas hali ham noto'g'ri ko'rsatsa, g'ilofni tekshiring: magnit biriktirgichlar va metall elementlar kuchli Hard Iron buzilishlarini yaratadi.
Asosiy sabablar: telefon dinamiklari va vibratsiya motoridan magnit shovqinlar, g'ilofni almashtirishdan keyin kalibrlashning yo'qligi, yaqin atrofdagi metall buyumlarning ta'siri. Temir-beton konstruksiyali xonalarda magnit maydoni ayniqsa kuchli buziladi.
Ha, metall qidiruvchi ilovalar magnit maydon anomaliyalarini aniqlash uchun ichki magnitometrdan foydalanadi. Biroq aniqlash chuqurligi 10–20 sm dan oshmaydi va qurilma metall turlarini farqlamaydi — bu ko'proq ta'lim vositasidir.
TYPE_MAGNETIC_FIELD tizim tomonidan qo'llanilgan kalibrlashdan keyin ma'lumotlarni qaytaradi. TYPE_MAGNETIC_FIELD_UNCALIBRATED xom qiymatlarni va siljish (bias) bahosini beradi, dasturchiga o'z kalibrlashini qo'llash imkonini yaratadi.
Akselerometr va magnitometr ma'lumotlari bilan SensorManager.getRotationMatrix dan foydalaning, keyin getOrientation — massivning birinchi elementi (azimut) radianlarda bo'ladi. Kompasni ko'rsatish uchun darajaga o'tkazing: Math.toDegrees(azimuth).
Xulosa
Biz kalit topshirig'i bilan mobil ilovani ishlab chiqamiz
IT Sectr 2017-yildan beri startaplar va korxonalar uchun iOS va Android ilovalarini yaratadi. Biz sizga maslahat beramiz va eng yaxshi yechimni taklif qilamiz.