Магнетометар у паметним телефонима — шта је то, врсте и принцип рада

Аутор: IT Sectr Објављено: 2026-03-22 Време читања: 10 мин

Магнетометар је сензор који мери јачину магнетног поља Земље ради одређивања страна света. У мобилним уређајима ради као дигитални компас, обезбеђујући тачност до 1–2 степена уз правилну калибрацију. Према Bosch Sensortec Application Note, 2024, савремени MEMS-магнетометри троше само 0.5–2 mA и смештају се у кућиште од 1.5×1.5×0.7 mm.

Главно

  • Магнетометар — Холов сензор који мери магнетно поље по три осе са опсегом ±1300 μТ.
  • Дигитални компас заснован на магнетометру захтева калибрацију — без ње грешка достиже 30–40 степени.
  • Android API користи Sensor.TYPE_MAGNETIC_FIELD за приступ подацима у микротеслама (μТ).
  • Sensor Fusion обједињује магнетометар са жироскопом и акцелерометром за прецизну оријентацију.
  • Hard Iron и Soft Iron — врсте магнетних изобличења изазваних металом кућишта и звучницима паметног телефона.

Шта је магнетометар у паметном телефону

Магнетометар у мобилном уређају је троосни сензор магнетног поља заснован на Холовом ефекту. Он мери пројекције вектора магнетне индукције на осе X, Y и Z. У комбинацији са акцелерометром, магнетометар омогућава одређивање азимута — угла између правца севера и осе телефона.

Врсте магнетометара у мобилним уређајима

У савременим паметним телефонима користе се MEMS-магнетометри засновани на анизотропном магнетоотпорном ефекту (AMR) и Холовом ефекту. AMR-сензори (AKM серија од Asahi Kasei Microdevices) обезбеђују осетљивост од 0.15 μТ/LSB и опсег ±1200 μТ — довољно за мерење поља Земље (25–65 μТ).

ПараметарВредност
ТехнологијаAMR / Холов ефекат
Опсег±1200 — ±1300 μТ
Потрошња0.5–2 mA
Величина1.5×1.5×0.7 mm
Осетљивост0.15 μТ/LSB

Зашто је магнетометар важан за паметни телефон

Без дигиталног компаса навигационе апликације не могу да одреде правац кретања. Google Maps користи магнетометар за приказ оријентације мапе у односу на правац погледа корисника. При отказу сензора, апликација приказује само положај на мапи без плаве стрелице правца.

Како ради Холов сензор

Холов ефекат је физичка појава настанка разлике потенцијала на ивицама проводне плоче под утицајем магнетног поља. У MEMS-магнетометрима се користе танкослојне структуре од пермалоја (NiFe), чији отпор се мења под дејством спољашњег магнетног поља (AMR-ефекат).

Структура AMR-сензора

Сваки од три канала (X, Y, Z) састоји се од четири магнетоотпорника повезаних у Витстонов мост. Магнетно поље мења отпор отпорника за 2–3%, што диференцијални појачавач претвара у напон. Уграђени 16-битни АДЦ дигитализује сигнал фреквенцијом до 100 Hz.

Мерење по оси Z

За мерење вертикалне компоненте поља користи се интегрисани концентратор магнетног флукса (IMC — Integrated Magnetic Concentrator). То је танкослојна структура од NiFe која одступа хоризонтално поље у вертикалну раван, омогућавајући једном AMR-мосту да мери све три осе.

Чему се разликује магнетометар од жироскопа

Магнетометар одређује оријентацију у односу на магнетно поље Земље (апсолутна референца), а жироскоп мери само промену угла (релативни подаци). Жироскоп даје тачне податке на кратким интервалима, али акумулира грешку дрифта. Магнетометар не дрифтује, али је подложан магнетним сметњама.

Sensor Fusion са магнетометром

Android обједињује податке три сензора преко SensorManager.getRotationMatrix. Магнетометар се користи за корекцију дрифта жироскопа на дугим интервалима. Без магнетометра, жироскоп за 5 минута акумулира грешку од 10–20 степени. Према Google ARCore (2024), fusion-алгоритам достиже тачност од 1–3 степена уз присуство магнетометра.

kotlin
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] — азимут у радијанима

Магнетна изобличења: Hard Iron и Soft Iron

Hard Iron — стално магнетно поље које стварају феромагнетни материјали унутар телефона: магнети звучника, вибромотор, метални рам кућишта. Hard Iron изобличење се манифестује као стално померање (bias) по свакој оси. Soft Iron — промена правца поља услед магнетопроводних материјала који изобличују облик линија поља.

Алгоритам калибрације

Стандардна процедура калибрације магнетометра је ротација телефона у облику осмице (figure-8 pattern). Током процеса сензор бележи тачке у тродимензионалном простору. Без изобличења, тачке леже на сфери полупречника 25–65 μТ. Hard Iron помера центар сфере, Soft Iron је претвара у елипсоид. Алгоритам калибрације израчунава параметре померања и скалирања.

kotlin
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
    )
}

Програмска корекција изобличења

Програмер може да имплементира сопствену калибрацију магнетометра прикупљањем података током кретања уређаја. Алгоритам елипсоидног прилагођавања (ellipsoid fitting) проналази параметре Hard Iron и Soft Iron, минимизирајући збир квадрата одступања од сфере. Библиотека Apache Commons Math пружа имплементацију нелинеарне методе најмањих квадрата (Levenberg-Marquardt) за овај задатак — тачност након програмске калибрације достиже 0.5 степени.

Препоруке за отклањање сметњи

За минимализацију Hard Iron, произвођачи постављају магнетометар у горњи део телефона, далеко од звучника и вибромотора. Инжењери компаније Apple у iPhone 16 Pro Max (2024) применили су екранирање магнетометра пермалојском фолијом, смањивши утицај звучника 4 пута. У Samsung Galaxy S24 Ultra користи се додатни компензациони круг који мери струју у звучнику у реалном времену ради одузимања индукованог поља. Футроле са магнетним причвршћивачима (на пример, у аутомобилским држачима) стварају јака изобличења — након употребе магнетометар може показивати погрешан правац до поновне калибрације.

Програмски приступ магнетометру у Android-у

Android пружа два сензора: TYPE_MAGNETIC_FIELD (калибрисани подаци у μТ) и TYPE_MAGNETIC_FIELD_UNCALIBRATED (сирови подаци са проценом изобличења). За навигационе апликације препоручује се коришћење калибрисаног сензора — систем аутоматски примењује уграђену калибрацију на основу последњег покрета осмицом.

Регистрација и обрада

Кашњење SENSOR_DELAY_NORMAL (200 ms) је довољно за компас, SENSOR_DELAY_FASTEST (0 ms) — само за специјалне истраживачке апликације. Након добијања вредности, могу се претворити у азимут преко getRotationMatrix + getOrientation. Важно је проверити тачност сензора преко event.accuracy — вредност SENSOR_STATUS_UNRELIABLE значи потребу за калибрацијом.

kotlin
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)
    }
}

Примена магнетометра у мобилним апликацијама

Магнетометар се користи не само за компас. AR апликације, укључујући Pokemon GO, користе магнетометар за одређивање оријентације камере у односу на реални свет. У одсуству магнетометра, ARCore прелази у режим Screen Axis — оријентација се одређује само жироскопом, што смањује тачност.

  • Навигација — одређивање азимута кретања у Google Maps, Yandex.Maps, MAPS.ME. Тачност компаса директно утиче на квалитет руте.
  • Детектори метала — апликације за проналажење металних предмета користе магнетометар за откривање аномалија магнетног поља.
  • Геофизика и образовање — мерење магнетног поља за образовне пројекте. Сензор омогућава проучавање магнетног поља Земље у школама.
  • VR и 360-видео — оријентација главе у VR-наочарима се коригује магнетометром за компензацију дрифта жироскопа.

Магнетометар у аутомобилској навигацији

У аутомобилским навигационим системима заснованим на Android Auto, магнетометар се користи за одређивање правца кретања при губитку GPS сигнала у тунелима и густој градској изградњи. У комбинацији са подацима одометрије са точкова возила (добијеним преко OBD-II), магнетометар омогућава наставак навигације до 5 минута без GPS са тачношћу позиционирања од 10–20 метара. Према Google Maps Engineering Blog (2024), хибридни алгоритам смањује проценат губитка руте у градским кањонима за 40%.

Магнетометар у навигационим апликацијама

Навигационе апликације користе магнетометар за одређивање азимута кретања — угла између правца севера и тренутног курса корисника. У Google Maps, подаци магнетометра се комбинују са GPS трагом и историјом кретања за приказ плаве стрелице правца. При губитку GPS сигнала (у тунелима, подземним пролазима) магнетометар остаје једини извор информација о оријентацији.

Будућност магнетометара

Нова генерација 3-осних магнетометара са интегрисаним ASIC (BMM350 од Bosch, 2024) троши само 0.35 mA и подржава фреквенцију до 200 Hz. Развој квантних магнетометара и NV центара у дијаманту за мобилне уређаје још није изашао из фазе лабораторијских експеримената. Очекује се да ће до 2028. године тачност мобилних магнетометара достићи 0.01 μТ.

Често постављана питања

Како калибрисати магнетометар на телефону?

Нацртајте осмицу телефоном у ваздуху — то је стандардни покрет за калибрацију дигиталног компаса. Ако компас и даље показује нетачно, проверите футролу: магнетни причвршћивачи и метални елементи стварају јака изобличења Hard Iron.

Зашто компас у телефону показује нетачно?

Главни разлози: магнетне сметње од звучника и вибромотора телефона, недостатак калибрације након промене футроле, утицај металних предмета у близини. У просторијама са армиранобетонским конструкцијама магнетно поље се изобличује посебно јако.

Може ли се телефон користити као детектор метала?

Да, апликације за детекцију метала користе уграђени магнетометар за откривање аномалија магнетног поља. Међутим, дубина детекције не прелази 10–20 cm, и уређај не разликује врсте метала — то је пре образовни алат.

Чему се разликује TYPE_MAGNETIC_FIELD од TYPE_MAGNETIC_FIELD_UNCALIBRATED?

TYPE_MAGNETIC_FIELD враћа податке након калибрације коју је применио систем. TYPE_MAGNETIC_FIELD_UNCALIBRATED даје сирове вредности плус процену померања (bias), омогућавајући програмеру да примени сопствену калибрацију.

Како добити азимут из података магнетометра?

Користите SensorManager.getRotationMatrix са подацима акцелерометра и магнетометра, затим getOrientation — први елемент низа (азимут) ће бити у радијанима. За приказ компаса претворите у степене: Math.toDegrees(azimuth).

Закључак

  • Магнетометар — троосни сензор магнетног поља који ради као дигитални компас у мобилним уређајима.
  • AMR технологија заснована на Холовом ефекту омогућава мерење поља Земље тачношћу од 0.15 μТ/LSB.
  • Hard Iron и Soft Iron — магнетна изобличења изазвана компонентама телефона која захтевају калибрацију покретом осмице.
  • Android API пружа TYPE_MAGNETIC_FIELD и TYPE_MAGNETIC_FIELD_UNCALIBRATED са подацима у μТ.
  • Sensor Fusion обједињује магнетометар са жироскопом и акцелерометром за прецизну (1–3 степена) оријентацију.
  • Примена укључује навигацију, AR апликације, детекторе метала и корекцију дрифта жироскопа у VR.
  • Савремени сензори троше од 0.35 mA на фреквенцији од 200 Hz и величини од 1.5×1.5 mm.

Развићемо мобилну апликацију под кључ

IT Sectr креира iOS и Android апликације за стартапе и предузећа од 2017. године. Саветоваћемо вас и предложити најбоље решење.

Разговарајте о пројекту

Прочитајте такође