Smartfonlarda Compass — mahiyyəti, iş prinsipi və tətbiqi

Müəllif: IT Sectr Dərc olunub: 2026-03-25 Oxuma vaxtı: 8 dəq

Compass (kompas) smartfonda maqnitometr əsasında işləyən rəqəmsal sensor olub Yerin maqnit qütblərinə istiqaməti müəyyən edir. Texnologiya naviqasiya, xəritəçəkmə və artırılmış reallıq tətbiqlərinə cihazın fəzada oriyentasiyasını dəqiq müəyyən etməyə imkan verir. STMicroelectronics, 2025 məlumatlarına görə, müasir MEMS-maqnitometrlər istiqamətin təyinində dəqiqlik təmin edir — 1–2 dərəcəyə qədər.

Əsas məqamlar

  • Compass smartfonda — Yerin maqnit sahəsini ölçən MEMS-maqnitometr əsasında rəqəmsal kompas.
  • Müasir maqnitometrlər maqnit sahəsinin istiqamətini təyin etmək üçün Hall effekti və ya maqnito-rezistiv effektdən istifadə edir.
  • Rəqəmsal kompasın dəqiq işləməsi üçün kalibrləmə tələb olunur — dinamiklər və digər komponentlərdən yaranan parazit maqnit sahələrinin kompensasiyası.
  • Smartfondakı maqnitometr maqnit sahəsini üç ox (X, Y, Z) üzrə ölçür, bu da cihazın istənilən vəziyyətində istiqaməti təyin etməyə imkan verir.
  • Rəqəmsal kompas naviqasiya tətbiqlərində, artırılmış reallıqda, geolokasiya xidmətlərində və astronomiya proqramlarında istifadə olunur.

Smartfonda rəqəmsal kompas nədir?

Rəqəmsal kompas (compass) smartfonda — maqnitometr əsasında işləyən, Yerin maqnit sahəsinin gərginliyini ölçən və azimutu (maqnit şimalına nisbətən bucaq) təyin edən sensordur. Mexaniki kompasdan fərqli olaraq, rəqəmsal kompas maqnit sahəsini qeyd etmək üçün mikroelektromexaniki sistemlərdən (MEMS) istifadə edir. Maqnitometr sahəni üç ox üzrə ölçür, bu da smartfonun istənilən meylində istiqaməti düzgün təyin etməyə imkan verir.

Sensorun quruluşu

Müasir MEMS-maqnitometr — 2×2×1 mm ölçülü, smartfonun korpusuna akselerometr və giroskopla birlikdə (9-oxlu IMU tərkibində) inteqrasiya edilmiş mikroçipdir. Sensor təkcə istiqaməti deyil, həm də Yerin maqnit sahəsinin intensivliyini ölçür (en dairəsindən asılı olaraq 25–65 µT). Metal əşyaların və dinamiklər, vibrasiya motoru, kameradan yaranan parazit maqnit sahələrinin olması təhriflər yaradır, buna görə də dəqiq iş üçün proqram korreksiyası tələb olunur.

İlk rəqəmsal kompaslar mobil telefonlarda 2009-cu ildə iPhone 3GS-in buraxılışı ilə ortaya çıxdı — daxili maqnitometrə malik ilk smartfon. Bu gün maqnitometr smartfonların böyük əksəriyyətində, o cümlədən büdcə modellərində quraşdırılır. Yole Group məlumatlarına görə, mobil cihazlar üçün MEMS-maqnitometr bazarı ildə 1,5 milyard vahidi ötür ki, bu da texnologiyaya tələbatı təsdiqləyir.

Maqnitometrin iş prinsipi

MEMS-maqnitometrin əsasını xarici maqnit sahəsinin təsiri altında elektrik xarakteristikalarını dəyişən həssas element təşkil edir. Müasir smartfonlarda Hall effekti və ya maqnito-rezistiv effekt (AMR — Anisotropic Magneto-Resistance) istifadə olunur. Prinsip ondan ibarətdir ki, cərəyan keçirən material maqnit sahəsinin təsiri altında müqavimətini dəyişir və gərginliyin dəyişməsi ilə maqnit sahə vektoru hesablanır.

Hall effekti və AMR

Hall effekti əsasında işləyən sensorlar hərəkət edən yüklərə Lorentz qüvvəsinin təsiri nəticəsində yarımkeçirici lövhənin kənarlarında yaranan gərginlik dəyişməsini qeyd edir. Maqnito-rezistiv sensorlar (AMR) müqaviməti maqnit sahəsinin istiqamətindən asılı olan permalloy (NiFe) təbəqəsindən istifadə edir. AMR sensorları daha kiçik ölçü və Hall sensorları ilə müqayisədə daha yüksək həssaslıq təmin edir, buna görə də müasir smartfonlarda üstünlük təşkil edir.

NövHəssaslıqEnerji sərfiyyatıÖlçü
HallOrtaAşağıOrta
AMRYüksəkAşağıKiçik
GMRÇox yüksəkOrtaKiçik

Maqnitometrdən alınan məlumatlar meylin korreksiyası və üfüqi müstəvidə şimala istiqamətin təyini üçün akselerometr göstəriciləri ilə birləşdirilir. Sensor füzyonu (sensor fusion) alqoritmi maqnitometr, giroskop və akselerometr məlumatlarını birləşdirmək üçün Madgwick filtri və ya Kalman filtrindən istifadə edir. Bu, hətta cihazın sürətli dönmələri və silkələnməsi zamanı belə sabit və dəqiq azimut əldə etməyə imkan verir.

Mobil cihazlarda maqnitometr növləri

Mobil sənayedə üç əsas MEMS-maqnitometr növü istifadə olunur: Hall effektinə əsaslanan, anizotrop maqnito-rezistiv (AMR) və nəhəng maqnito-rezistiv (GMR). AMR-maqnitometrlər smartfonlarda həssaslıq, enerji sərfiyyatı və maya dəyərinin optimal birləşməsi sayəsində ən geniş yayılmışdır. Aparıcı istehsalçılar — AKM (Asahi Kasei Microdevices), STMicroelectronics və Bosch Sensortec.

Tipik smartfonun AMR-maqnitometrinin həssaslığı 0,3–1 µT, dinamik diapazonu ±1000 µT (±8 Qauss) təşkil edir ki, bu da Yer sahəsinin (30–65 µT) dəqiq ölçülməsi və parazit sahələrin kompensasiyası üçün kifayətdir. Sensorun sorğu tezliyi 100–200 Hz-ə çata bilər, lakin enerjiyə qənaət üçün əksər tətbiqlər 10–50 Hz istifadə edir. Temperaturun və korpusun gərginlik deformasiyalarının avtomatik kompensasiyası sensor sürücüsü səviyyəsində həyata keçirilir.

Rəqəmsal kompasın kalibrlənməsi

Kompasın kalibrlənməsi — smartfonun komponentləri tərəfindən yaradılan parazit maqnit sahələrinin kompensasiyası prosesidir: dinamiklər, vibrasiya motoru, kamera və akkumulyator. Kalibrləmə olmadan maqnitometr göstəriciləri real istiqamətdən 10–30 dərəcə yayına bilər. Kalibrləmə sistemi üç ox üzrə yerdəyişmə matrisini (hard-iron bias) müəyyən edir və onu bütün sonrakı ölçmələrin korreksiyası üçün tətbiq edir.

Kalibrləmə alqoritmləri və metodları

Standart kompas kalibrləmə metodu — «səkkiz» rəqəminin çəkilməsi: istifadəçi smartfonu 8 rəqəmini xatırladan trayektoriya üzrə fırladır. Hərəkət zamanı sensor bütün mümkün oriyentasiyalarda maqnit sahəsini qeyd edir, alqoritm isə nöqtələri toplayır və mərkəzi sıfıra nisbətən yerdəyişmiş sferanı aproksimasiya edir. Sferanın radiusu Yerin maqnit sahəsinin böyüklüyünə, mərkəz isə parazit yerdəyişmə vektoruna uyğundur. Aproksimasiyadan sonra sistem hər ox üçün korreksiya əmsallarını hesablayır.

Qualcomm və MediaTek tərəfindən hazırlanmış müasir kalibrləmə alqoritmləri istifadəçinin iştirakı olmadan fon rejimində davamlı kalibrləmə həyata keçirir. Onlar cihazın fırlanması zamanı maqnit sahəsindəki dəyişiklikləri təhlil edir və avtomatik olaraq korreksiya parametrlərini yeniləyir. Sensor yeni parazit sahə aşkar edərsə (məsələn, maqnit qutusu taxıldıqda), sistem 1–2 saniyə davamlı hərəkət ərzində yenidən kalibrləməni işə salır.

Kompasın mobil tətbiqlərdə tətbiqi

Rəqəmsal kompas geniş spektrli mobil tətbiqlərdə istifadə olunur. Əsas tətbiq — naviqasiya və xəritəçəkmə xidmətləri (Google Maps, Yandex.Maps, 2GIS) istifadəçinin hərəkət istiqamətini düzgün göstərmək üçün cihazın xəritədə oriyentasiyasını təyin edir. Artırılmış reallıq (AR) tətbiqlərində kompas virtual obyektlərin düzgün yerləşdirilməsini təmin edir.

Astronomiya tətbiqlərində (Star Walk, SkySafari) kompas akselerometrlə birlikdə smartfonun hansı istiqamətə yönəldiyini müəyyən edir və ulduzlu səmanın müvafiq sahəsini göstərir. Balıqçılıq və turizm tətbiqləri kompasdan azimuta istinadla xəritədə maraq nöqtələrini qeyd etmək üçün istifadə edir. GPS ilə fitnes-trekinq kompas göstəricilərindən qaçış və ya velosiped sürmə istiqamətini təyin etmək üçün istifadə edir ki, bu da marşrutun göstərilmə dəqiqliyini artırır.

Android API vasitəsilə kompasdan istifadə

Android-də rəqəmsal kompasa çıxış üçün Sensor API-dən TYPE_MAGNETIC_FIELD sensoru istifadə olunur. Proqramçılar maqnitometr göstəricilərində dəyişikliklərin dinləyicisini qeydiyyatdan keçirir və üç ox üzrə maqnit sahəsinin gərginlik dəyərlərini mikroTeslalarla əldə edirlər. Azimutun müəyyən edilməsi üçün maqnitometr məlumatları sensor fusion fırlanma matrisi vasitəsilə akselerometr məlumatları ilə birləşdirilir.

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())
        // azimut: 0 = şimal, 90 = şərq, 180 = cənub, 270 = qərb
    }

    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 vasitəsilə əldə edilən azimut radianlarla ölçülür və -π-dən π-ə qədər qiymətlər ala bilər, burada 0 maqnit şimalına uyğundur. Ekranda göstərmək üçün dəyərlər 0–360 diapazonuna normallaşdırma ilə dərəcələrə (Math.toDegrees) çevrilir. Maqnit deklinasiyasını — maqnit və həqiqi (coğrafi) şimal arasındakı bucağı nəzərə almaq vacibdir, bu coğrafi mövqedən asılıdır və zamanla dəyişir. Google Xəritələri deklinasiyanı GeomagneticField API vasitəsilə avtomatik olaraq düzəldir.

Tez-tez verilən suallar

Smartfonda rəqəmsal kompas necə işləyir?

Rəqəmsal kompas MEMS-maqnitometrdən — üç ox üzrə Yerin maqnit sahəsini ölçən 2×2 mm ölçülü çipdən istifadə edir. Maqnitometr məlumatları akselerometr göstəriciləri ilə birləşdirilərək azimut — şimala istiqamət ilə cihazın oriyentasiyası arasındakı bucaq müəyyən edilir.

Niyə telefondakı kompas səhv göstərir?

Kompasın səhv göstəriciləri ən çox kalibrləmənin olmaması, dinamiklərdən və ya vibrasiya motorundan maqnit müdaxilələri, həmçinin maqnit qutuları səbəbindən yaranır. Həll yolu — «səkkiz» hərəkəti ilə kalibrləmə aparmaq və ya maqnit aksesuarlarını çıxarmaqdır. Daimi səhvlər zamanı sensorun yoxlanması tələb oluna bilər.

Kompasın kalibrlənməsi lazımdırmı və bunu necə etməli?

Bəli, kompasın kalibrlənməsi smartfon daxilindəki parazit maqnit sahələrinin kompensasiyası üçün zəruridir. Müasir cihazların əksəriyyətində kalibrləmə avtomatik olaraq fonda aparılır. Əl ilə kalibrləmə üçün smartfonla havada «səkkiz» rəqəmi çəkin — sistem bütün bucaqlardan məlumat toplayaraq göstəriciləri düzəldəcək.

Android tətbiqində kompasa necə giriş əldə etmək olar?

Android-də kompasa giriş TYPE_MAGNETIC_FIELD sensoru ilə Sensor API vasitəsilə həyata keçirilir. Azimut maqnitometr və akselerometr məlumatlarını birləşdirən SensorManager.getRotationMatrix() və getOrientation() vasitəsilə hesablanır. Əldə edilən azimut ekranda göstərilmək üçün uyğunlaşdırıla bilər.

Hansı smartfon modelləri ən dəqiq kompasa malikdir?

Ən dəqiq kompaslar üçlü IMU-sensoru (maqnitometr + giroskop + akselerometr) və aktiv kalibrləmə sistemi olan smartfonlarda quraşdırılıb. Google Pixel, Samsung Galaxy S-seriyası və iPhone Pro flaqmanları — 0,3 µT həssaslıqlı AKM və Bosch maqnitometrlərindən və avtomatik korreksiyadan istifadə edir.

Nəticə

  • Compass (rəqəmsal kompas) smartfonda — azimutu və cihazın oriyentasiyasını təyin etmək üçün Yerin maqnit sahəsini ölçən MEMS-maqnitometrdir.
  • Müasir maqnitometrlər AMR-effektindən (anizotrop maqnito-müqavimət) istifadə edərək 0,3 µT həssaslıq və 2×2 mm kompakt ölçü təmin edir.
  • Kompasın dəqiq göstəriciləri smartfonun dinamikləri, vibrasiya motoru və kamerasının maqnit sahələrinin kompensasiyası üçün kalibrləmə tələb edir.
  • Şimala istiqamət sensor fusion — meyli korreksiya etmək üçün maqnitometr məlumatlarının akselerometr və giroskopla birləşdirilməsi ilə hesablanır.
  • Rəqəmsal kompas naviqasiyada, xəritəçəkmədə, artırılmış reallıqda, astronomiyada və fitnes-trekinqdə oriyentasiya və hərəkət istiqamətini təyin etmək üçün tətbiq olunur.
  • Android-də kompasa giriş TYPE_MAGNETIC_FIELD vasitəsilə getRotationMatrix və getOrientation ilə azimutun hesablanması ilə həyata keçirilir.
  • Maqnit deklinasiyası (maqnit və coğrafi şimal arasındakı bucaq) naviqasiya API-lərində Google və Apple tərəfindən avtomatik düzəldilir.

Açar təslim mobil tətbiq hazırlayacağıq

IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.

Layihəni müzakirə et

Həm də oxuyun