Compass w smartfonach — istota, zasada działania i zastosowanie

Autor: IT Sectr Opublikowano: 2026-03-25 Czas czytania: 8 min

Compass (kompas) w smartfonie to cyfrowy czujnik oparty na magnetometrze, określający kierunek do biegunów magnetycznych Ziemi. Technologia pozwala aplikacjom nawigacyjnym, mapowym i rzeczywistości rozszerzonej dokładnie określać orientację urządzenia w przestrzeni. Według danych STMicroelectronics, 2025, nowoczesne MEMS-magnetometry zapewniają dokładność określania kierunku do 1–2 stopni.

Najważniejsze

  • Compass w smartfonie — cyfrowy kompas oparty na MEMS-magnetometrze mierzącym pole magnetyczne Ziemi.
  • Nowoczesne magnetometry wykorzystują efekt Halla lub efekt magnetorezystywny do określania kierunku pola magnetycznego.
  • Do dokładnej pracy cyfrowego kompasu wymagana jest kalibracja — kompensacja pasożytniczych pól magnetycznych od głośników i innych komponentów.
  • Magnetometr w smartfonie mierzy pole magnetyczne w trzech osiach (X, Y, Z), co pozwala określać kierunek w dowolnym położeniu urządzenia.
  • Cyfrowy kompas jest używany w nawigacyjnych aplikacjach, rzeczywistości rozszerzonej, serwisach geolokacyjnych i programach astronomicznych.

Czym jest cyfrowy kompas w smartfonie?

Cyfrowy kompas (compass) w smartfonie to czujnik oparty na magnetometrze, który mierzy natężenie pola magnetycznego Ziemi i określa azymut (kąt względem północy magnetycznej). W przeciwieństwie do mechanicznego kompasu, cyfrowy kompas wykorzystuje mikroelektromechaniczne systemy (MEMS) do rejestracji pola magnetycznego. Magnetometr mierzy pole w trzech osiach, co pozwala poprawnie określać kierunek przy dowolnym nachyleniu smartfona.

Jak zbudowany jest czujnik

Nowoczesny MEMS-magnetometr to mikrochip o wymiarach 2×2×1 mm, zintegrowany w obudowie smartfona wraz z akcelerometrem i żyroskopem (w ramach 9-osiowego IMU). Czujnik mierzy nie tylko kierunek, ale także intensywność pola magnetycznego Ziemi (25–65 µT w zależności od szerokości geograficznej). Obecność metalowych przedmiotów i pasożytniczych pól magnetycznych od głośników, silnika wibracyjnego i aparatu powoduje zniekształcenia, dlatego do dokładnej pracy niezbędna jest programowa korekcja odczytów.

Pierwsze cyfrowe kompasy w telefonach komórkowych pojawiły się w 2009 roku wraz z premierą iPhone 3GS — pierwszego smartfona z wbudowanym magnetometrem. Dziś magnetometr jest instalowany w zdecydowanej większości smartfonów, w tym w modelach budżetowych. Według danych Yole Group, rynek MEMS-magnetometrów dla urządzeń mobilnych przekracza 1,5 mld sztuk rocznie, co potwierdza zapotrzebowanie na tę technologię.

Zasada działania magnetometru

Podstawę MEMS-magnetometru stanowi element czuły, zmieniający swoje charakterystyki elektryczne pod wpływem zewnętrznego pola magnetycznego. W nowoczesnych smartfonach wykorzystywany jest efekt Halla lub efekt magnetorezystywny (AMR — Anisotropic Magneto-Resistance). Zasada opiera się na tym, że materiał przewodzący zmienia rezystancję pod wpływem pola magnetycznego, a na podstawie zmiany napięcia wyznaczany jest wektor pola magnetycznego.

Efekt Halla i AMR

Czujniki oparte na efekcie Halla rejestrują zmianę napięcia na krawędziach płytki półprzewodnikowej, powstającą pod wpływem siły Lorentza działającej na poruszające się ładunki. Magnetorezystywne czujniki (AMR) wykorzystują warstwę z permalloju (NiFe), której rezystancja zależy od kierunku pola magnetycznego. Czujniki AMR zapewniają mniejszy rozmiar i wyższą czułość w porównaniu z czujnikami Halla, dlatego dominują w nowoczesnych smartfonach.

TypCzułośćPobór energiiRozmiar
HallowskiŚredniaNiskiŚredni
AMRWysokaNiskiMały
GMRBardzo wysokaŚredniMały

Dane z magnetometru są łączone z odczytami akcelerometru w celu korekcji nachylenia i określenia kierunku na północ w płaszczyźnie poziomej. Algorytm fuzji sensorów (sensor fusion) wykorzystuje filtr Madgwicka lub filtr Kalmana do połączenia danych z magnetometru, żyroskopu i akcelerometru. Pozwala to uzyskać stabilny i dokładny azymut nawet podczas szybkich obrotów i wstrząsów urządzenia.

Rodzaje magnetometrów w urządzeniach mobilnych

W przemyśle mobilnym stosowane są trzy główne typy MEMS-magnetometrów: oparte na efekcie Halla, anizotropowe magnetorezystywne (AMR) i gigantyczne magnetorezystywne (GMR). Magnetometry AMR zyskały największe rozpowszechnienie w smartfonach dzięki optymalnemu połączeniu czułości, poboru energii i kosztów. Wiodący producenci — AKM (Asahi Kasei Microdevices), STMicroelectronics i Bosch Sensortec.

Czułość AMR-magnetometru typowego smartfona wynosi 0,3–1 µT przy zakresie dynamicznym ±1000 µT (±8 Gaussa), co wystarcza do dokładnego pomiaru pola Ziemi (30–65 µT) i kompensacji pól pasożytniczych. Częstotliwość odczytu czujnika może sięgać 100–200 Hz, ale większość aplikacji wykorzystuje 10–50 Hz w celu oszczędzania energii. Automatyczna kompensacja temperatury i odkształceń naprężeniowych obudowy jest zaimplementowana na poziomie sterownika czujnika.

Kalibracja cyfrowego kompasu

Kalibracja kompasu to proces kompensacji pasożytniczych pól magnetycznych wytwarzanych przez komponenty smartfona: głośniki, silnik wibracyjny, aparat i akumulator. Bez kalibracji odczyty magnetometru mogą odbiegać od rzeczywistego kierunku o 10–30 stopni. System kalibracji określa macierz przesunięć (hard-iron bias) w trzech osiach i stosuje ją do korekcji wszystkich kolejnych pomiarów.

Algorytmy i metody kalibracji

Standardowa metoda kalibracji kompasu — rysowanie „ósemki”: użytkownik obraca smartfon po trajektorii przypominającej cyfrę 8. Podczas ruchu czujnik rejestruje pole magnetyczne we wszystkich możliwych orientacjach, a algorytm gromadzi punkty i aproksymuje sferę ze środkiem przesuniętym względem zera. Promień sfery odpowiada wartości pola magnetycznego Ziemi, a środek — wektorowi przesunięcia pasożytniczego. Po aproksymacji system oblicza współczynniki korekcyjne dla każdej osi.

Nowoczesne algorytmy kalibracji od Qualcomm i MediaTek wykonują ciągłą kalibrację w tle bez udziału użytkownika. Analizują zmiany pola magnetycznego podczas obrotów urządzenia i automatycznie aktualizują parametry korekcji. Jeśli czujnik wykryje nowe pole pasożytnicze (np. przy założeniu magnetycznego etui), system uruchamia przekalibrowanie w ciągu 1–2 sekund ciągłego ruchu urządzenia.

Zastosowanie kompasu w aplikacjach mobilnych

Cyfrowy kompas jest używany w szerokim spektrum aplikacji mobilnych. Główne zastosowanie — serwisy nawigacyjne i mapowe (Google Maps, Yandex.Maps, 2GIS), które określają orientację urządzenia na mapie w celu poprawnego wyświetlania kierunku ruchu użytkownika. W aplikacjach rzeczywistości rozszerzonej (AR) kompas zapewnia prawidłowe umiejscowienie wirtualnych obiektów względem stron świata.

W aplikacjach astronomicznych (Star Walk, SkySafari) kompas w połączeniu z akcelerometrem określa kierunek, w którym skierowany jest smartfon, i pokazuje odpowiedni obszar gwiaździstego nieba. Aplikacje wędkarskie i turystyczne wykorzystują kompas do oznaczania punktów zainteresowania na mapie z odniesieniem do azymutu. Śledzenie aktywności fitness z GPS korzysta z odczytów kompasu do określania kierunku biegu lub jazdy rowerem, co zwiększa dokładność wyświetlania trasy.

Korzystanie z kompasu przez Android API

Do dostępu do cyfrowego kompasu na Androidzie używany jest czujnik TYPE_MAGNETIC_FIELD z Sensor API. Programiści rejestrują nasłuchiwanie zmian odczytów magnetometru i otrzymują tablicę wartości natężenia pola magnetycznego w trzech osiach w mikroTeslach. Do określenia azymutu dane magnetometru są łączone z danymi akcelerometru przez macierz obrotu 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())
        // azymut: 0 = północ, 90 = wschód, 180 = południe, 270 = zachód
    }

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

Azymut uzyskany przez getOrientation mierzony jest w radianach i może przyjmować wartości od -π do π, gdzie 0 odpowiada północy magnetycznej. Do wyświetlenia na ekranie wartości są konwertowane na stopnie (Math.toDegrees) z normalizacją do zakresu 0–360. Należy uwzględnić deklinację magnetyczną — kąt między północą magnetyczną a rzeczywistą (geograficzną), który zależy od położenia geograficznego i zmienia się w czasie. Mapy Google automatycznie korygują deklinację przez API GeomagneticField.

Często zadawane pytania

Jak działa cyfrowy kompas w smartfonie?

Cyfrowy kompas wykorzystuje MEMS-magnetometr — chip o wymiarach 2×2 mm mierzący pole magnetyczne Ziemi w trzech osiach. Dane magnetometru są łączone z odczytami akcelerometru w celu określenia azymutu — kąta między kierunkiem na północ a orientacją urządzenia.

Dlaczego kompas w telefonie pokazuje nieprawidłowo?

Nieprawidłowe odczyty kompasu najczęściej są spowodowane brakiem kalibracji, zakłóceniami magnetycznymi od głośników lub silnika wibracyjnego, a także magnetycznymi etui. Rozwiązanie — wykonaj kalibrację ruchem „ósemki” lub usuń magnetyczne akcesoria. Przy stałych błędach może być konieczne sprawdzenie czujnika.

Czy kompas wymaga kalibracji i jak ją wykonać?

Tak, kalibracja kompasu jest niezbędna do kompensacji pasożytniczych pól magnetycznych wewnątrz smartfona. W większości nowoczesnych urządzeń kalibracja odbywa się automatycznie w tle. Do ręcznej kalibracji narysuj smartfonem „ósemkę” w powietrzu — system zbierze dane ze wszystkich kątów i skoryguje odczyty.

Jak uzyskać dostęp do kompasu w aplikacji Android?

Na Androidzie dostęp do kompasu odbywa się przez Sensor API z czujnikiem TYPE_MAGNETIC_FIELD. Azymut oblicza się przez SensorManager.getRotationMatrix() i getOrientation(), łączące dane magnetometru i akcelerometru. Uzyskany azymut można dostosować do wyświetlenia na ekranie.

Które modele smartfonów mają najdokładniejszy kompas?

Najdokładniejsze kompasy są zainstalowane w smartfonach z potrójnym czujnikiem IMU (magnetometr + żyroskop + akcelerometr) i aktywnym systemem kalibracji. Prowadzą flagowce Google Pixel, Samsung Galaxy S-serii i iPhone Pro — wykorzystują magnetometry AKM i Bosch z czułością 0,3 µT i automatyczną korekcją.

Podsumowanie

  • Compass (cyfrowy kompas) w smartfonie to MEMS-magnetometr mierzący pole magnetyczne Ziemi w celu określenia azymutu i orientacji urządzenia.
  • Nowoczesne magnetometry wykorzystują efekt AMR (anizotropową magnetorezystancję), zapewniając czułość 0,3 µT i kompaktowy rozmiar 2×2 mm.
  • Dokładne odczyty kompasu wymagają kalibracji w celu kompensacji pól magnetycznych od głośników, silnika wibracyjnego i aparatu smartfona.
  • Kierunek na północ jest obliczany przez sensor fusion — połączenie danych magnetometru z akcelerometrem i żyroskopem w celu korekcji nachylenia.
  • Cyfrowy kompas jest stosowany w nawigacji, kartografii, rzeczywistości rozszerzonej, astronomii i śledzeniu aktywności fitness do określania orientacji i kierunku ruchu.
  • Na Androidzie dostęp do kompasu odbywa się przez TYPE_MAGNETIC_FIELD z obliczeniem azymutu przez getRotationMatrix i getOrientation.
  • Deklinacja magnetyczna (kąt między północą magnetyczną a geograficzną) jest automatycznie korygowana w nawigacyjnych API Google i Apple.

Opracujemy aplikację mobilną pod klucz

IT Sectr tworzy aplikacje na iOS i Androida dla startupów i firm od 2017 roku. Doradzimy Ci i zaproponujemy najlepsze rozwiązanie.

Omów projekt

Przeczytaj również