Compass az okostelefonokban — lényege, működési elve és alkalmazása

Szerző: IT Sectr Megjelenés: 2026-03-25 Olvasási idő: 8 perc

Compass (iránytű) az okostelefonban egy digitális érzékelő, amely magnetométeren alapul és meghatározza a Föld mágneses pólusaihoz viszonyított irányt. A technológia lehetővé teszi a navigációs, térképészeti és kiterjesztett valóság alkalmazások számára, hogy pontosan meghatározzák a készülék térbeli tájolását. A STMicroelectronics, 2025 adatai szerint a modern MEMS-magnetométerek pontosságot biztosítanak az irány meghatározásában akár 1–2 fokig.

Főbb pontok

  • Compass az okostelefonban — digitális iránytű MEMS-magnetométer alapján, amely a Föld mágneses terét méri.
  • A modern magnetométerek a Hall-effektust vagy magnetorezisztív effektust használják a mágneses tér irányának meghatározásához.
  • A digitális iránytű pontos működéséhez kalibráció szükséges — a hangszórók és egyéb alkatrészek parazita mágneses tereinek kompenzálása.
  • Az okostelefon magnetométere a mágneses teret három tengely (X, Y, Z) mentén méri, ami lehetővé teszi az irány meghatározását a készülék bármely helyzetében.
  • A digitális iránytűt navigációs alkalmazásokban, kiterjesztett valóságban, geolokációs szolgáltatásokban és csillagászati programokban használják.

Mi a digitális iránytű az okostelefonban?

Digitális iránytű (compass) az okostelefonban egy magnetométeren alapuló érzékelő, amely méri a Föld mágneses terének erősségét és meghatározza az azimutot (szög a mágneses északhoz képest). A mechanikus iránytűvel ellentétben a digitális iránytű mikro-elektromechanikai rendszereket (MEMS) használ a mágneses tér regisztrálásához. A magnetométer három tengely mentén méri a teret, ami lehetővé teszi az irány helyes meghatározását az okostelefon bármilyen dőlésszöge mellett.

Az érzékelő felépítése

A modern MEMS-magnetométer egy 2×2×1 mm méretű mikrochip, amely az okostelefon házába van integrálva a gyorsulásmérővel és giroszkóppal együtt (egy 9 tengelyes IMU részeként). Az érzékelő nemcsak az irányt, hanem a Föld mágneses terének intenzitását is méri (25–65 µT a szélességi foktól függően). A fémtárgyak és a hangszórók, vibrációs motor és kamera parazita mágneses tereinek jelenléte torzulásokat okoz, ezért a pontos működéshez szoftveres korrekció szükséges.

Az első digitális iránytűk a mobiltelefonokban 2009-ben jelentek meg az iPhone 3GS megjelenésével — az első beépített magnetométerrel rendelkező okostelefon. Ma a magnetométert az okostelefonok túlnyomó többségébe beépítik, beleértve a budget modelleket is. A Yole Group adatai szerint a MEMS-magnetométerek piaca a mobil eszközök számára meghaladja az évi 1,5 milliárd darabot, ami igazolja a technológia iránti keresletet.

A magnetométer működési elve

A MEMS-magnetométer alapját egy érzékeny elem képezi, amely megváltoztatja elektromos jellemzőit külső mágneses tér hatására. A modern okostelefonokban a Hall-effektust vagy a magnetorezisztív effektust (AMR — Anisotropic Magneto-Resistance) használják. Az elv azon alapul, hogy az áramvezető anyag ellenállása megváltozik a mágneses tér hatására, és a feszültségváltozásból kiszámítják a mágneses tér vektorát.

Hall-effektus és AMR

A Hall-effektuson alapuló érzékelők a félvezető lemez szélein fellépő feszültségváltozást regisztrálják, amely a mozgó töltésekre ható Lorentz-erő hatására jön létre. A magnetorezisztív érzékelők (AMR) egy permalloy (NiFe) réteget használnak, amelynek ellenállása a mágneses tér irányától függ. Az AMR érzékelők kisebb méretet és nagyobb érzékenységet biztosítanak a Hall-érzékelőkhöz képest, ezért dominálnak a modern okostelefonokban.

TípusÉrzékenységEnergiafogyasztásMéret
HallKözepesAlacsonyKözepes
AMRMagasAlacsonyKicsi
GMRNagyon magasKözepesKicsi

A magnetométer adatait a gyorsulásmérő leolvasásaival kombinálják a dőlés korrigálásához és az északi irány meghatározásához a vízszintes síkban. Az érzékelőfúziós (sensor fusion) algoritmus a Madgwick-szűrőt vagy a Kalman-szűrőt használja a magnetométer, giroszkóp és gyorsulásmérő adatainak egyesítésére. Ez lehetővé teszi, hogy stabil és pontos azimutot kapjunk még a készülék gyors forgatása és rázása esetén is.

Magnetométer típusok a mobil eszközökben

A mobil iparágban három fő MEMS-magnetométer típust használnak: Hall-effektuson alapuló, anizotróp magnetorezisztív (AMR) és óriás magnetorezisztív (GMR). Az AMR-magnetométerek a legelterjedtebbek az okostelefonokban az érzékenység, energiafogyasztás és költség optimális kombinációjának köszönhetően. Vezető gyártók — AKM (Asahi Kasei Microdevices), STMicroelectronics és Bosch Sensortec.

Egy tipikus okostelefon AMR-magnetométerének érzékenysége 0,3–1 µT, dinamikus tartománya ±1000 µT (±8 Gauss), ami elegendő a Föld terének (30–65 µT) pontos méréséhez és a parazita terek kompenzálásához. Az érzékelő lekérdezési frekvenciája elérheti a 100–200 Hz-et, de a legtöbb alkalmazás az energiatakarékosság érdekében 10–50 Hz-et használ. A hőmérséklet és a ház feszültségi deformációinak automatikus kompenzálása az érzékelő meghajtóprogramjának szintjén van megvalósítva.

A digitális iránytű kalibrációja

Az iránytű kalibrációja — az okostelefon alkatrészei (hangszórók, vibrációs motor, kamera, akkumulátor) által keltett parazita mágneses terek kompenzálásának folyamata. Kalibráció nélkül a magnetométer leolvasásai 10–30 fokkal eltérhetnek a valós iránytól. A kalibrációs rendszer meghatározza az eltolódási mátrixot (hard-iron bias) három tengely mentén, és alkalmazza azt az összes későbbi mérés korrigálásához.

Kalibrációs algoritmusok és módszerek

A compass kalibráció szabványos módszere — egy nyolcas rajzolása: a felhasználó az okostelefont egy 8-as számjegyre emlékeztető pályán forgatja. Mozgás közben az érzékelő rögzíti a mágneses teret az összes lehetséges tájolásban, az algoritmus pedig összegyűjti a pontokat és egy gömböt közelít, amelynek középpontja a nullához képest eltolódott. A gömb sugara megfelel a Föld mágneses terének nagyságának, a középpont pedig a parazita eltolódás vektorának. A közelítés után a rendszer kiszámítja a korrekciós együtthatókat minden tengelyre.

A Qualcomm és MediaTek modern kalibrációs algoritmusai folyamatos háttérkalibrációt végeznek a felhasználó részvétele nélkül. Elemzik a mágneses tér változásait a készülék forgatásakor, és automatikusan frissítik a korrekciós paramétereket. Ha az érzékelő új parazita teret észlel (például mágneses tok felhelyezésekor), a rendszer 1–2 másodpercen belül elindítja az újrakalibrációt a készülék folyamatos mozgása során.

Az iránytű alkalmazása mobil alkalmazásokban

Digitális iránytű széles körű mobil alkalmazásokban használatos. Fő alkalmazása — navigációs és térképészeti szolgáltatások (Google Maps, Yandex.Maps, 2GIS), amelyek meghatározzák a készülék tájolását a térképen a felhasználó mozgási irányának helyes megjelenítéséhez. Kiterjesztett valóság (AR) alkalmazásokban az iránytű biztosítja a virtuális objektumok helyes elhelyezését az égtájakhoz viszonyítva.

Csillagászati alkalmazásokban (Star Walk, SkySafari) az iránytű a gyorsulásmérővel kombinálva meghatározza, hogy az okostelefon milyen irányba mutat, és megjeleníti a csillagos ég megfelelő területét. Horgászati és turisztikai alkalmazások az iránytűt használják az érdekes pontok megjelölésére a térképen az azimuthoz viszonyítva. GPS-szel működő fitneszkövetés az iránytű leolvasásait használja a futás vagy kerékpározás irányának meghatározásához, ami növeli az útvonal megjelenítésének pontosságát.

Az iránytű használata Android API-n keresztül

Az digitális iránytűhöz való hozzáféréshez Androidon a Sensor API TYPE_MAGNETIC_FIELD érzékelőjét használják. A fejlesztők regisztrálnak egy figyelőt a magnetométer leolvasásainak változásaira, és egy tömböt kapnak a mágneses térerősség értékeiről három tengely mentén mikroTeslában. Az azimut meghatározásához a magnetométer adatait a gyorsulásmérő adataival kombinálják a sensor fusion forgatási mátrixán keresztül.

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 = észak, 90 = kelet, 180 = dél, 270 = nyugat
    }

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

A getOrientation segítségével kapott azimutot radiánban mérik, és értéke -π-tól π-ig terjedhet, ahol a 0 a mágneses északnak felel meg. A képernyőn való megjelenítéshez az értékeket fokokká alakítják (Math.toDegrees) 0–360 tartományba normalizálva. Fontos figyelembe venni a mágneses deklinációt — a mágneses és a valódi (földrajzi) észak közötti szöget, amely a földrajzi helyzettől függ és idővel változik. A Google Térkép automatikusan korrigálja a deklinációt a GeomagneticField API-n keresztül.

Gyakran Ismételt Kérdések

Hogyan működik a digitális iránytű az okostelefonban?

Digitális iránytű egy MEMS-magnetométert használ — egy 2×2 mm-es chipet, amely a Föld mágneses terét három tengely mentén méri. A magnetométer adatait a gyorsulásmérő leolvasásaival kombinálják az azimut — az északi irány és a készülék tájolása közötti szög — meghatározásához.

Miért mutat pontatlanul az iránytű a telefonon?

Az iránytű pontatlan leolvasásait leggyakrabban a kalibráció hiánya, a hangszórók vagy a vibrációs motor mágneses interferenciája, valamint a mágneses tokok okozzák. Megoldás — végezzen kalibrációt nyolcas mozdulattal, vagy távolítsa el a mágneses kiegészítőket. Állandó hibák esetén az érzékelő ellenőrzésére lehet szükség.

Szüksége van az iránytűnek kalibrációra és hogyan kell elvégezni?

Igen, az iránytű kalibrációja szükséges az okostelefonon belüli parazita mágneses terek kompenzálásához. A legtöbb modern készülékben a kalibráció automatikusan, a háttérben történik. Kézi kalibrációhoz rajzoljon az okostelefonnal egy nyolcast a levegőben — a rendszer összegyűjti az adatokat minden szögből és korrigálja a leolvasásokat.

Hogyan lehet hozzáférni az iránytűhöz egy Android alkalmazásban?

Android rendszeren az iránytűhöz való hozzáférés a Sensor API-n keresztül történik a TYPE_MAGNETIC_FIELD érzékelővel. Az azimut a SensorManager.getRotationMatrix() és getOrientation() segítségével számítható ki, amelyek kombinálják a magnetométer és a gyorsulásmérő adatait. A kapott azimut a képernyőn való megjelenítéshez igazítható.

Melyik okostelefon modellek rendelkeznek a legpontosabb iránytűvel?

A legpontosabb iránytűk a háromszoros IMU-érzékelővel (magnetométer + giroszkóp + gyorsulásmérő) és aktív kalibrációs rendszerrel rendelkező okostelefonokban találhatók. Az élen a Google Pixel, Samsung Galaxy S-széria és iPhone Pro zászlóshajók állnak — ezek AKM és Bosch magnetométereket használnak 0,3 µT érzékenységgel és automatikus korrekcióval.

Összefoglalás

  • Compass (digitális iránytű) az okostelefonban egy MEMS-magnetométer, amely a Föld mágneses terét méri az azimut és a készülék tájolásának meghatározásához.
  • A modern magnetométerek az AMR-effektust (anizotróp magnetoellenállás) használják, 0,3 µT érzékenységet és 2×2 mm kompakt méretet biztosítva.
  • Az iránytű pontos leolvasásaihoz kalibráció szükséges az okostelefon hangszórói, vibrációs motorja és kamerája mágneses tereinek kompenzálásához.
  • Az északi irány kiszámítása sensor fusion segítségével történik — a magnetométer adatainak kombinálása a gyorsulásmérővel és giroszkóppal a dőlés korrigálásához.
  • A digitális iránytűt navigációban, térképészetben, kiterjesztett valóságban, csillagászatban és fitneszkövetésben használják a tájolás és a mozgás irányának meghatározására.
  • Androidon az iránytűhöz való hozzáférés a TYPE_MAGNETIC_FIELD-en keresztül történik, az azimutot a getRotationMatrix és getOrientation segítségével számítva.
  • A mágneses deklináció (a mágneses és földrajzi észak közötti szög) automatikusan korrigálásra kerül a Google és Apple navigációs API-iban.

Kulcsrakész mobilalkalmazást fejlesztünk

Az IT Sectr 2017 óta készít iOS és Android alkalmazásokat induló vállalkozásoknak és vállalkozásoknak. Tanácsot adunk, és a legjobb megoldást javasoljuk.

Projekt megbeszélése

Olvassa el is