Smartfonlarda Compass — mohiyati, ishlash prinsipi va qo'llanilishi

Muallif: IT Sectr Nashr etilgan: 2026-03-25 O'qish vaqti: 8 daq

Compass (kompas) smartfonda — magnitometrga asoslangan raqamli sensor bo'lib, Yer magnit qutblariga yo'nalishni aniqlaydi. Texnologiya navigatsiya, kartografiya va kengaytirilgan haqiqat ilovalariga qurilmaning fazoda orientatsiyasini aniq belgilash imkonini beradi. STMicroelectronics, 2025 ma'lumotlariga ko'ra, zamonaviy MEMS-magnitometrlar aniqlikni ta'minlaydi — yo'nalishni 1–2 darajagacha belgilash.

Asosiy fikrlar

  • Compass smartfonda — Yerning magnit maydonini o'lchaydigan MEMS-magnitometrga asoslangan raqamli kompas.
  • Zamonaviy magnitometrlar magnit maydonining yo'nalishini aniqlash uchun Hall effekti yoki magnitorezistiv effektdan foydalanadi.
  • Raqamli kompasning aniq ishlashi uchun kalibrlash — karnaylar va boshqa komponentlardan keladigan parazit magnit maydonlarini kompensatsiya qilish talab etiladi.
  • Smartfondagi magnitometr magnit maydonini uch o'q (X, Y, Z) bo'ylab o'lchaydi, bu qurilmaning istalgan holatida yo'nalishni aniqlash imkonini beradi.
  • Raqamli kompas navigatsiya ilovalarida, kengaytirilgan haqiqatda, geolokatsiya xizmatlarida va astronomiya dasturlarida qo'llaniladi.

Smartfonda raqamli kompas nima?

Raqamli kompas (compass) smartfonda — magnitometrga asoslangan, Yerning magnit maydoni kuchlanishini o'lchaydigan va azimutni (magnit shimoliga nisbatan burchak) aniqlaydigan sensordir. Mexanik kompasdan farqli o'laroq, raqamli kompas magnit maydonini qayd etish uchun mikroelektromexanik tizimlardan (MEMS) foydalanadi. Magnitometr maydonni uch o'q bo'ylab o'lchaydi, bu smartfonning istalgan egilishida yo'nalishni to'g'ri aniqlash imkonini beradi.

Sensorning tuzilishi

Zamonaviy MEMS-magnitometr — 2×2×1 mm o'lchamdagi, smartfon korpusiga akselerometr va giroskop bilan birgalikda (9-o'qli IMU tarkibida) integratsiyalangan mikrochipdir. Sensor nafaqat yo'nalishni, balki Yer magnit maydonining intensivligini ham o'lchaydi (kenglikka qarab 25–65 µT). Metall buyumlar va karnaylar, vibratsiya motori, kameradan keladigan parazit magnit maydonlarining mavjudligi buzilishlarni keltirib chiqaradi, shuning uchun aniq ishlash uchun dasturiy tuzatish talab etiladi.

Birinchi raqamli kompaslar mobil telefonlarda 2009-yilda iPhone 3GS chiqarilishi bilan paydo bo'ldi — ichki magnitometrga ega birinchi smartfon. Bugungi kunda magnitometr smartfonlarning katta qismida, jumladan byudjet modellarida o'rnatiladi. Yole Group ma'lumotlariga ko'ra, mobil qurilmalar uchun MEMS-magnitometrlar bozori yiliga 1,5 milliard donadan oshadi, bu texnologiyaga bo'lgan talabni tasdiqlaydi.

Magnitometrning ishlash prinsipi

MEMS-magnitometrning asosini tashqi magnit maydoni ta'sirida elektr xususiyatlarini o'zgartiradigan sezgir element tashkil etadi. Zamonaviy smartfonlarda Hall effekti yoki magnitorezistiv effekt (AMR — Anisotropic Magneto-Resistance) qo'llaniladi. Prinsip shundan iboratki, tok o'tkazuvchi material magnit maydoni ta'sirida qarshiligini o'zgartiradi va kuchlanishning o'zgarishi orqali magnit maydon vektori hisoblanadi.

Hall effekti va AMR

Hall effekti asosidagi sensorlar harakatlanuvchi zaryadlarga Lorens kuchi ta'sirida yarim o'tkazgich plastinka chetlarida paydo bo'ladigan kuchlanish o'zgarishini qayd etadi. Magnitorezistiv sensorlar (AMR) qarshiligi magnit maydonining yo'nalishiga bog'liq bo'lgan permalloy (NiFe) qatlamidan foydalanadi. AMR sensorlari Hall sensorlariga nisbatan kichikroq o'lcham va yuqori sezgirlikni ta'minlaydi, shuning uchun zamonaviy smartfonlarda ustunlik qiladi.

TurSezgirlikEnergiya sarfiO'lcham
HallO'rtachaPastO'rtacha
AMRYuqoriPastKichik
GMRJuda yuqoriO'rtachaKichik

Magnitometrdan olingan ma'lumotlar egilishni tuzatish va gorizontal tekislikda shimolga yo'nalishni aniqlash uchun akselerometr ko'rsatkichlari bilan birlashtiriladi. Sensor sintezi (sensor fusion) algoritmi magnitometr, giroskop va akselerometr ma'lumotlarini birlashtirish uchun Madgwick filtri yoki Kalman filtridan foydalanadi. Bu qurilmaning tez aylanishlari va silkinishi paytida ham barqaror va aniq azimut olish imkonini beradi.

Mobil qurilmalardagi magnitometr turlari

Mobil sanoatda uchta asosiy MEMS-magnitometr turi qo'llaniladi: Hall effektiga asoslangan, anizotrop magnitorezistiv (AMR) va gigant magnitorezistiv (GMR). AMR-magnitometrlar smartfonlarda sezgirlik, energiya sarfi va narxning optimal kombinatsiyasi tufayli eng keng tarqalgan. Yetakchi ishlab chiqaruvchilar — AKM (Asahi Kasei Microdevices), STMicroelectronics va Bosch Sensortec.

Oddiy smartfonning AMR-magnitometr sezgirligi 0,3–1 µT, dinamik diapazoni ±1000 µT (±8 Gauss) ni tashkil etadi, bu Yer maydonini (30–65 µT) aniq o'lchash va parazit maydonlarni kompensatsiya qilish uchun yetarli. Sensorning so'rov chastotasi 100–200 Hz ga yetishi mumkin, ammo energiya tejash uchun ko'pchilik ilovalar 10–50 Hz dan foydalanadi. Harorat va korpusning kuchlanish deformatsiyalarini avtomatik kompensatsiya qilish sensor drayveri darajasida amalga oshiriladi.

Raqamli kompasni kalibrlash

Kompasni kalibrlash — smartfon komponentlari: karnaylar, vibratsiya motori, kamera va akkumulyator tomonidan yaratilgan parazit magnit maydonlarini kompensatsiya qilish jarayonidir. Kalibrlashsiz magnitometr ko'rsatkichlari haqiqiy yo'nalishdan 10–30 darajaga og'ishi mumkin. Kalibrlash tizimi uch o'q bo'ylab siljish matritsasini (hard-iron bias) aniqlaydi va uni barcha keyingi o'lchovlarni tuzatish uchun qo'llaydi.

Kalibrlash algoritmlari va usullari

Standart kompasni kalibrlash usuli — «sakkiz» raqamini chizish: foydalanuvchi smartfonni 8 raqamini eslatuvchi traektoriya bo'ylab aylantiradi. Harakat paytida sensor magnit maydonini barcha mumkin bo'lgan orientatsiyalarda qayd etadi, algoritm esa nuqtalarni to'playdi va markazi nolga nisbatan siljigan sferani approksimatsiya qiladi. Sfera radiusi Yer magnit maydonining kattaligiga, markaz esa parazit siljish vektoriga mos keladi. Approksimatsiyadan so'ng tizim har bir o'q uchun tuzatish koeffitsiyentlarini hisoblaydi.

Qualcomm va MediaTek tomonidan ishlab chiqilgan zamonaviy kalibrlash algoritmlari foydalanuvchi ishtirokisiz fon rejimida uzluksiz kalibrlashni amalga oshiradi. Ular qurilma aylanganda magnit maydonidagi o'zgarishlarni tahlil qiladi va avtomatik ravishda tuzatish parametrlarini yangilaydi. Agar sensor yangi parazit maydonni aniqlasa (masalan, magnit quti o'rnatilganda), tizim 1–2 soniya uzluksiz harakat ichida qayta kalibrlashni boshlaydi.

Kompasning mobil ilovalarda qo'llanilishi

Raqamli kompas keng spektrli mobil ilovalarda qo'llaniladi. Asosiy qo'llanilish — navigatsiya va kartografiya xizmatlari (Google Maps, Yandex.Maps, 2GIS) foydalanuvchining harakat yo'nalishini to'g'ri ko'rsatish uchun qurilmaning xaritadagi orientatsiyasini aniqlaydi. Kengaytirilgan haqiqat (AR) ilovalarida kompas virtual ob'ektlarning to'g'ri joylashishini ta'minlaydi.

Astronomiya ilovalarida (Star Walk, SkySafari) kompas akselerometr bilan birgalikda smartfon qaysi tomonga qaratilganligini aniqlaydi va yulduzli osmonning tegishli sohasini ko'rsatadi. Baliq ovlash va turistik ilovalar kompasdan xaritadagi qiziqish nuqtalarini azimutga havola bilan belgilash uchun foydalanadi. GPS bilan fitness-kuzatuv kompas ko'rsatkichlaridan yugurish yoki velosiped haydash yo'nalishini aniqlash uchun foydalanadi, bu marshrutni ko'rsatish aniqligini oshiradi.

Android API orqali kompasdan foydalanish

Android-da raqamli kompasga kirish uchun Sensor API dan TYPE_MAGNETIC_FIELD sensoridan foydalaniladi. Dasturchilar magnitometr ko'rsatkichlari o'zgarishlarini tinglovchini ro'yxatdan o'tkazadi va uch o'q bo'ylab magnit maydon kuchlanishi qiymatlari massivini mikroTeslalarda oladi. Azimutni aniqlash uchun magnitometr ma'lumotlari sensor fusion aylanish matritsasi orqali akselerometr ma'lumotlari bilan birlashtiriladi.

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 = shimol, 90 = sharq, 180 = janub, 270 = g'arb
    }

    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 orqali olingan azimut radianlarda o'lchanadi va -π dan π gacha qiymatlarni qabul qilishi mumkin, bu yerda 0 magnit shimoliga mos keladi. Ekranda ko'rsatish uchun qiymatlar 0–360 oralig'iga normallashtirish bilan darajalarga (Math.toDegrees) aylantiriladi. Magnit deklinatsiyasini — magnit va haqiqiy (geografik) shimol orasidagi burchakni hisobga olish muhim, bu geografik joylashuvga bog'liq va vaqt o'tishi bilan o'zgaradi. Google Xaritalari deklinatsiyani GeomagneticField API orqali avtomatik tuzatadi.

Tez-tez beriladigan savollar

Smartfonda raqamli kompas qanday ishlaydi?

Raqamli kompas MEMS-magnitometrdan — Yer magnit maydonini uch o'q bo'ylab o'lchaydigan 2×2 mm chipdan foydalanadi. Magnitometr ma'lumotlari akselerometr ko'rsatkichlari bilan birlashtirilib, azimut — shimolga yo'nalish va qurilma orientatsiyasi orasidagi burchak aniqlanadi.

Nima uchun telefondagi kompas noto'g'ri ko'rsatadi?

Kompasning noto'g'ri ko'rsatkichlari ko'pincha kalibrlashning yo'qligi, karnaylar yoki vibratsiya motoridan magnit shovqinlar, shuningdek magnit qutilar tufayli yuzaga keladi. Yechim — «sakkiz» harakati bilan kalibrlashni bajarish yoki magnit aksessuarlarni olib tashlashdir. Doimiy xatolarda sensor tekshiruvi talab qilinishi mumkin.

Kompasni kalibrlash kerakmi va buni qanday qilish kerak?

Ha, kompasni kalibrlash smartfon ichidagi parazit magnit maydonlarini kompensatsiya qilish uchun zarur. Zamonaviy qurilmalarning ko'pchiligida kalibrlash avtomatik ravishda fonda amalga oshiriladi. Qo'lda kalibrlash uchun smartfon bilan havoda «sakkiz» raqamini chizing — tizim barcha burchaklardan ma'lumot to'plab, ko'rsatkichlarni tuzatadi.

Android ilovasida kompasga qanday kirish mumkin?

Android-da kompasga kirish TYPE_MAGNETIC_FIELD sensori bilan Sensor API orqali amalga oshiriladi. Azimut magnitometr va akselerometr ma'lumotlarini birlashtiruvchi SensorManager.getRotationMatrix() va getOrientation() orqali hisoblanadi. Olingan azimut ekranda ko'rsatish uchun moslashtirilishi mumkin.

Qaysi smartfon modellari eng aniq kompasga ega?

Eng aniq kompaslar uch o'qli IMU-sensor (magnitometr + giroskop + akselerometr) va faol kalibrlash tizimiga ega smartfonlarda o'rnatilgan. Google Pixel, Samsung Galaxy S-seriyasi va iPhone Pro flagmanlari yetakchilik qiladi — ular 0,3 µT sezgirlikdagi AKM va Bosch magnitometrlari va avtomatik tuzatishdan foydalanadi.

Xulosa

  • Compass (raqamli kompas) smartfonda — azimut va qurilma orientatsiyasini aniqlash uchun Yer magnit maydonini o'lchaydigan MEMS-magnitometrdir.
  • Zamonaviy magnitometrlar AMR-effektidan (anizotrop magnitoqarshilik) foydalanib, 0,3 µT sezgirlik va 2×2 mm ixcham o'lchamni ta'minlaydi.
  • Kompasning aniq ko'rsatkichlari smartfonning karnaylari, vibratsiya motori va kamerasining magnit maydonlarini kompensatsiya qilish uchun kalibrlash talab qiladi.
  • Shimolga yo'nalish sensor fusion — magnitometr ma'lumotlarini akselerometr va giroskop bilan birlashtirib, egilishni tuzatish orqali hisoblanadi.
  • Raqamli kompas navigatsiyada, kartografiyada, kengaytirilgan haqiqatda, astronomiyada va fitness-kuzatuvda orientatsiya va harakat yo'nalishini aniqlash uchun qo'llaniladi.
  • Android-da kompasga kirish TYPE_MAGNETIC_FIELD orqali getRotationMatrix va getOrientation bilan azimutni hisoblash orqali amalga oshiriladi.
  • Magnit deklinatsiyasi (magnit va geografik shimol orasidagi burchak) navigatsiya API larida Google va Apple tomonidan avtomatik tuzatiladi.

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.

Loyihani muhokama qilish

Shuningdek o'qing