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
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.
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.
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 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.
| Tur | Sezgirlik | Energiya sarfi | O'lcham |
|---|---|---|---|
| Hall | O'rtacha | Past | O'rtacha |
| AMR | Yuqori | Past | Kichik |
| GMR | Juda yuqori | O'rtacha | Kichik |
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 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.
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.
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.
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-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.
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
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.
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.
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-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.
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
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.