Compass у паметним телефонима — суштина, принцип рада и примена

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

Compass (компас) у паметном телефону је дигитални сензор заснован на магнетометру који одређује смер ка магнетним половима Земље. Технологија омогућава апликацијама за навигацију, картографију и проширену реалност да прецизно одређују оријентацију уређаја у простору. Према подацима STMicroelectronics, 2025, савремени MEMS-магнетометри обезбеђују тачност одређивања смера до 1–2 степена.

Главно

  • Compass у паметном телефону — дигитални компас заснован на MEMS-магнетометру који мери магнетно поље Земље.
  • Савремени магнетометри користе Холов ефекат или магнеторезистивни ефекат за одређивање смера магнетног поља.
  • За прецизан рад дигиталног компаса потребна је калибрација — компензација паразитних магнетних поља од звучника и других компоненти.
  • Магнетометар у паметном телефону мери магнетно поље по три осе (X, Y, Z), што омогућава одређивање смера у било ком положају уређаја.
  • Дигитални компас се користи у навигационим апликацијама, проширеној реалности, геолокацијским сервисима и астрономским програмима.

Шта је дигитални компас у паметном телефону?

Дигитални компас (compass) у паметном телефону је сензор заснован на магнетометру који мери јачину магнетног поља Земље и одређује азимут (угао у односу на магнетни север). За разлику од механичког компаса, дигитални компас користи микроелектромеханичке системе (MEMS) за регистрацију магнетног поља. Магнетометар мери поље по три осе, што омогућава правилно одређивање смера при било ком нагибу паметног телефона.

Како је сензор уређен

Савремени MEMS-магнетометар је микрочип величине 2×2×1 mm, интегрисан у кућиште паметног телефона заједно са акцелерометром и жироскопом (у саставу 9-осног IMU). Сензор мери не само смер већ и интензитет магнетног поља Земље (25–65 µT у зависности од географске ширине). Присуство металних предмета и паразитних магнетних поља од звучника, вибромотора и камере ствара изобличења, па је за прецизан рад потребна софтверска корекција очитавања.

Први дигитални компаси у мобилним телефонима појавили су се 2009. године са изласком iPhone 3GS — првог паметног телефона са уграђеним магнетометром. Данас се магнетометар уграђује у огромној већини паметних телефона, укључујући буџетске моделе. Према подацима Yole Group, тржиште MEMS-магнетометара за мобилне уређаје премашује 1,5 милијарди јединица годишње, што потврђује потражњу за овом технологијом.

Принцип рада магнетометра

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

Холов ефекат и AMR

Сензори на Холовом ефекту региструју промену напона на ивицама полупроводничке плочице која настаје под дејством Лоренцове силе на покретна наелектрисања. Магнеторезистивни сензори (AMR) користе слој пермалоја (NiFe), чији отпор зависи од смера магнетног поља. AMR сензори обезбеђују мању величину и већу осетљивост у поређењу са Холовим, па доминирају у савременим паметним телефонима.

ТипОсетљивостПотрошња енергијеВеличина
ХоловСредњаНискаСредња
AMRВисокаНискаМала
GMRВеома високаСредњаМала

Подаци са магнетометра се комбинују са очитавањима акцелерометра за корекцију нагиба и одређивање смера севера у хоризонталној равни. Алгоритам сензор фузије (sensor fusion) користи Маџвиков филтер или Калманов филтер за обједињавање података магнетометра, жироскопа и акцелерометра. Ово омогућава добијање стабилног и прецизног азимута чак и при брзим окретима и трешењу уређаја.

Типови магнетометара у мобилним уређајима

У мобилној индустрији користе се три основна типа MEMS-магнетометара: на Холовом ефекту, анизотропни магнеторезистивни (AMR) и гигантски магнеторезистивни (GMR). AMR магнетометри су најзаступљенији у паметним телефонима захваљујући оптималној комбинацији осетљивости, потрошње енергије и цене. Водећи произвођачи — AKM (Asahi Kasei Microdevices), STMicroelectronics и Bosch Sensortec.

Осетљивост AMR-магнетометра типичног паметног телефона износи 0,3–1 µT при динамичком опсегу од ±1000 µT (±8 Гауса), што је довољно за прецизно мерење Земљиног поља (30–65 µT) и компензацију паразитних поља. Фреквенција очитавања сензора може достићи 100–200 Hz, али већина апликација користи 10–50 Hz ради уштеде енергије. Аутоматска компензација температуре и стресних деформација кућишта реализована је на нивоу драјвера сензора.

Калибрација дигиталног компаса

Калибрација компаса је процес компензације паразитних магнетних поља која стварају компоненте паметног телефона: звучници, вибромотор, камера и акумулатор. Без калибрације очитавања магнетометра могу одступати од реалног смера за 10–30 степени. Систем калибрације одређује матрицу помераја (hard-iron bias) по три осе и примењује је за корекцију свих наредних мерења.

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

Стандардна метода калибрације компаса — цртање „осмице”: корисник ротира паметни телефон по путањи која подсећа на цифру 8. Током покрета сензор региструје магнетно поље у свим могућим оријентацијама, а алгоритам акумулира тачке и апроксимира сферу са центром помереним у односу на нулу. Полупречник сфере одговара величини магнетног поља Земље, а центар — вектору паразитног помераја. Након апроксимације систем израчунава корекционе коефицијенте за сваку осу.

Савремени алгоритми калибрације компанија Qualcomm и MediaTek обављају континуирану позадинску калибрацију без учешћа корисника. Они анализирају промене магнетног поља при окретању уређаја и аутоматски ажурирају параметре корекције. Ако сензор открије ново паразитно поље (нпр. при постављању магнетне футроле), систем покреће рекалибрацију у року од 1–2 секунде непрекидног покрета уређаја.

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

Дигитални компас се користи у широком спектру мобилних апликација. Основна примена — навигациони и картографски сервиси (Google Maps, Yandex.Maps, 2GIS) који одређују оријентацију уређаја на мапи за коректно приказивање смера кретања корисника. У апликацијама проширене реалности (AR) компас обезбеђује правилно позиционирање виртуелних објеката у односу на стране света.

У астрономским апликацијама (Star Walk, SkySafari) компас у комбинацији са акцелерометром одређује смер у ком је усмерен паметни телефон и приказује одговарајућу област звезданог неба. Риболовачке и туристичке апликације користе компас за обележавање тачака интереса на мапи са везом на азимут. Фитнес-трекинг са GPS-ом користи очитавања компаса за одређивање смера трчања или вожње бицикла, што повећава прецизност приказа руте.

Коришћење компаса преко Android API

За приступ дигиталном компасу на Android-у користи се сензор TYPE_MAGNETIC_FIELD из Sensor API-ја. Програмери региструју ослушкивач промена очитавања магнетометра и добијају низ вредности јачине магнетног поља по три осе у микротеслама. За одређивање азимута подаци магнетометра се комбинују са подацима акцелерометра кроз матрицу ротације sensor fusion.

kotlin
import android.hardware.Sensor
import android.hardware.SensorEvent
import android.hardware.SensorEventListener
import android.hardware.SensorManager

class CompassManager(
    private val sensorManager: SensorManager
) : SensorEventListener {

    private val magnetometer = FloatArray(3)
    private val accelerometer = FloatArray(3)
    private val rotationMatrix = FloatArray(9)
    private val orientation = FloatArray(3)

    override fun onSensorChanged(event: SensorEvent) {
        if (event.sensor.type == Sensor.TYPE_MAGNETIC_FIELD) {
            event.values.copyInto(magnetometer)
        } else if (event.sensor.type == Sensor.TYPE_ACCELEROMETER) {
            event.values.copyInto(accelerometer)
        }
        
        SensorManager.getRotationMatrix(
            rotationMatrix, null,
            accelerometer, magnetometer
        )
        SensorManager.getOrientation(rotationMatrix, orientation)
        
        val azimuth = Math.toDegrees(orientation[0].toDouble())
        // азимут: 0 = север, 90 = исток, 180 = југ, 270 = запад
    }

    fun start() {
        sensorManager.registerListener(this,
            sensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD),
            SensorManager.SENSOR_DELAY_UI)
        sensorManager.registerListener(this,
            sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
            SensorManager.SENSOR_DELAY_UI)
    }

    override fun onAccuracyChanged(sensor: Sensor?, accuracy: Int) {}
}

Азимут добијен кроз getOrientation мери се у радијанима и може узимати вредности од -π до π, где 0 одговара магнетном северу. За приказ на екрану вредности се претварају у степене (Math.toDegrees) са нормализацијом на опсег 0–360. Важно је узети у обзир магнетну деклинацију — угао између магнетног и стварног (географског) севера, који зависи од географског положаја и мења се током времена. Google мапе аутоматски коригују деклинацију кроз GeomagneticField API.

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

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

Дигитални компас користи MEMS-магнетометар — чип величине 2×2 mm који мери магнетно поље Земље по три осе. Подаци магнетометра се комбинују са очитавањима акцелерометра за одређивање азимута — угла између смера ка северу и оријентације уређаја.

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

Нетачна очитавања компаса најчешће су узрокована недостатком калибрације, магнетним сметњама од звучника или вибромотора, као и магнетним футролама. Решење — извршите калибрацију покретом „осмице” или уклоните магнетне додатке. При сталним грешкама може бити потребна провера сензора.

Да ли је компасу потребна калибрација и како се ради?

Да, калибрација компаса је неопходна за компензацију паразитних магнетних поља унутар паметног телефона. У већини савремених уређаја калибрација се обавља аутоматски у позадини. За ручну калибрацију нацртајте паметним телефоном „осмицу” у ваздуху — систем ће прикупити податке из свих углова и кориговати очитавања.

Како добити приступ компасу у Android апликацији?

На Android-у приступ компасу се остварује кроз Sensor API са сензором TYPE_MAGNETIC_FIELD. Азимут се израчунава кроз SensorManager.getRotationMatrix() и getOrientation(), који комбинују податке магнетометра и акцелерометра. Добијени азимут се може прилагодити за приказ на екрану.

Који модели паметних телефона имају најпрецизнији компас?

Најпрецизнији компаси су уграђени у паметне телефоне са троструким IMU сензором (магнетометар + жироскоп + акцелерометар) и активним системом калибрације. Предњаче флагмански модели Google Pixel, Samsung Galaxy S-серије и iPhone Pro — користе магнетометре AKM и Bosch са осетљивошћу од 0,3 µT и аутоматском корекцијом.

Резиме

  • Compass (дигитални компас) у паметном телефону је MEMS-магнетометар који мери магнетно поље Земље за одређивање азимута и оријентације уређаја.
  • Савремени магнетометри користе AMR-ефекат (анизотропни магнетоотпор), обезбеђујући осетљивост од 0,3 µT и компактну величину од 2×2 mm.
  • Прецизна очитавања компаса захтевају калибрацију за компензацију магнетних поља звучника, вибромотора и камере паметног телефона.
  • Смер ка северу се израчунава кроз sensor fusion — обједињавање података магнетометра са акцелерометром и жироскопом за корекцију нагиба.
  • Дигитални компас се примењује у навигацији, картографији, проширеној реалности, астрономији и фитнес-трекингу за одређивање оријентације и смера кретања.
  • На Android-у приступ компасу се остварује кроз TYPE_MAGNETIC_FIELD са израчунавањем азимута кроз getRotationMatrix и getOrientation.
  • Магнетна деклинација (угао између магнетног и географског севера) се аутоматски коригује у навигационим API Google и Apple.

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

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

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

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