Compass i smartphones — essens, funktionsprincip och tillämpning

Författare: IT Sectr Publicerad: 2026-03-25 Lästid: 8 min

Compass (kompass) i en smartphone är en digital sensor baserad på en magnetometer som bestämmer riktningen mot jordens magnetiska poler. Tekniken gör det möjligt för navigations-, kart- och augmented reality-applikationer att noggrant bestämma enhetens orientering i rymden. Enligt uppgifter från STMicroelectronics, 2025 ger moderna MEMS-magnetometrar noggrannhet vid bestämning av riktning upp till 1–2 grader.

Huvudpunkter

  • Compass i en smartphone — en digital kompass baserad på en MEMS-magnetometer som mäter jordens magnetfält.
  • Moderna magnetometrar använder Hall-effekten eller magnetoresistiv effekt för att bestämma magnetfältets riktning.
  • För noggrann funktion av den digitala kompassen krävs kalibrering — kompensation av parasitära magnetfält från högtalare och andra komponenter.
  • Magnetometern i en smartphone mäter magnetfältet längs tre axlar (X, Y, Z), vilket gör det möjligt att bestämma riktningen i vilken position som helst av enheten.
  • Den digitala kompassen används i navigationsapplikationer, augmented reality, geolokaliseringstjänster och astronomiprogram.

Vad är en digital kompass i en smartphone?

Digital kompass (compass) i en smartphone är en sensor baserad på en magnetometer som mäter styrkan hos jordens magnetfält och bestämmer azimut (vinkeln i förhållande till magnetiska norr). Till skillnad från en mekanisk kompass använder en digital kompass mikroelektromekaniska system (MEMS) för att registrera magnetfältet. Magnetometern mäter fältet längs tre axlar, vilket gör det möjligt att korrekt bestämma riktningen vid vilken lutning som helst av smartphonen.

Hur sensorn är uppbyggd

En modern MEMS-magnetometer är ett mikrochip på 2×2×1 mm, integrerat i smartphonens hölje tillsammans med accelerometern och gyroskopet (som en del av en 9-axlig IMU). Sensorn mäter inte bara riktningen utan även intensiteten hos jordens magnetfält (25–65 µT beroende på latitud). Förekomsten av metallföremål och parasitära magnetfält från högtalare, vibrationsmotor och kamera orsakar förvrängningar, därför krävs programvarukorrigering av avläsningarna för noggrann funktion.

De första digitala kompasserna i mobiltelefoner dök upp 2009 med lanseringen av iPhone 3GS — den första smartphonen med inbyggd magnetometer. Idag är magnetometern installerad i den överväldigande majoriteten av smartphones, inklusive budgetmodeller. Enligt Yole Group överstiger marknaden för MEMS-magnetometrar för mobila enheter 1,5 miljarder enheter per år, vilket bekräftar efterfrågan på denna teknik.

Funktionsprincip för magnetometern

Grunden för MEMS-magnetometern utgörs av ett känsligt element som ändrar sina elektriska egenskaper under påverkan av ett externt magnetfält. I moderna smartphones används Hall-effekten eller den magnetoresistiva effekten (AMR — Anisotropic Magneto-Resistance). Principen bygger på att ett strömförande material ändrar sin resistans under påverkan av ett magnetfält, och från spänningsändringen beräknas vektorn för magnetfältet.

Hall-effekten och AMR

Sensorer baserade på Hall-effekten registrerar spänningsändringen vid kanterna av en halvledarplatta, som uppstår under påverkan av Lorentzkraften på rörliga laddningar. Magnetoresistiva sensorer (AMR) använder ett lager av permalloy (NiFe), vars resistans beror på magnetfältets riktning. AMR-sensorer ger mindre storlek och högre känslighet jämfört med Hall-sensorer, därför dominerar de i moderna smartphones.

TypKänslighetEnergiförbrukningStorlek
HallMedelLågMedel
AMRHögLågLiten
GMRMycket högMedelLiten

Data från magnetometern kombineras med avläsningar från accelerometern för korrigering av lutning och bestämning av nordriktningen i horisontalplanet. Algoritmen för sensorfusion (sensor fusion) använder Madgwick-filtret eller Kalman-filtret för att kombinera data från magnetometer, gyroskop och accelerometer. Detta gör det möjligt att erhålla en stabil och noggrann azimut även vid snabba rotationer och skakningar av enheten.

Typer av magnetometrar i mobila enheter

Inom mobilindustrin används tre huvudtyper av MEMS-magnetometrar: baserade på Hall-effekten, anisotropa magnetoresistiva (AMR) och jättemagnetoresistiva (GMR). AMR-magnetometrar är mest utbredda i smartphones tack vare den optimala kombinationen av känslighet, energiförbrukning och kostnad. Ledande tillverkare — AKM (Asahi Kasei Microdevices), STMicroelectronics och Bosch Sensortec.

Känsligheten hos en AMR-magnetometer i en typisk smartphone är 0,3–1 µT med ett dynamiskt område på ±1000 µT (±8 Gauss), tillräckligt för noggrann mätning av jordfältet (30–65 µT) och kompensation av parasitära fält. Sensorns avfrågningsfrekvens kan nå 100–200 Hz, men de flesta applikationer använder 10–50 Hz för att spara energi. Automatisk kompensation av temperatur och spänningsdeformationer hos höljet är implementerad på sensordrivrutinsnivå.

Kalibrering av den digitala kompassen

Kalibrering av kompassen är processen att kompensera parasitära magnetfält som genereras av smartphonens komponenter: högtalare, vibrationsmotor, kamera och batteri. Utan kalibrering kan magnetometeravläsningarna avvika från den verkliga riktningen med 10–30 grader. Kalibreringssystemet bestämmer förskjutningsmatrisen (hard-iron bias) längs tre axlar och tillämpar den för korrigering av alla efterföljande mätningar.

Kalibreringsalgoritmer och metoder

Standardmetoden för kalibrering av kompassen — att rita en åtta: användaren roterar smartphonen i en bana som liknar siffran 8. Under rörelsen registrerar sensorn magnetfältet i alla möjliga orienteringar, och algoritmen samlar punkter och approximerar en sfär med centrum förskjutet i förhållande till noll. Sfärens radie motsvarar storleken på jordens magnetfält, och centrum — vektorn för parasitär förskjutning. Efter approximering beräknar systemet korrigeringskoefficienter för varje axel.

Moderna kalibreringsalgoritmer från Qualcomm och MediaTek utför kontinuerlig bakgrundskalibrering utan användarens medverkan. De analyserar förändringar i magnetfältet vid rotation av enheten och uppdaterar automatiskt korrigeringsparametrarna. Om sensorn upptäcker ett nytt parasitärt fält (till exempel vid montering av ett magnetiskt fodral), startar systemet omkalibrering inom 1–2 sekunders kontinuerlig rörelse av enheten.

Tillämpning av kompassen i mobila appar

Digital kompass används i ett brett spektrum av mobila applikationer. Huvudanvändningen — navigations- och karttjänster (Google Maps, Yandex.Maps, 2GIS) som bestämmer enhetens orientering på kartan för korrekt visning av användarens rörelseriktning. I augmented reality (AR)-applikationer säkerställer kompassen korrekt placering av virtuella objekt i förhållande till väderstrecken.

I astronomiska applikationer (Star Walk, SkySafari) bestämmer kompassen i kombination med accelerometern riktningen som smartphonen är riktad mot och visar motsvarande område av stjärnhimlen. Fiske- och turistapplikationer använder kompassen för att markera intressepunkter på kartan med referens till azimut. Fitnesstracking med GPS använder kompassavläsningar för att bestämma riktningen för löpning eller cykling, vilket ökar noggrannheten vid ruttvisning.

Användning av kompassen via Android API

För åtkomst till den digitala kompassen på Android används sensorn TYPE_MAGNETIC_FIELD från Sensor API. Utvecklare registrerar en lyssnare för förändringar i magnetometeravläsningar och får en array av värden för magnetfältstyrkan längs tre axlar i mikroTesla. För att bestämma azimut kombineras magnetometerdata med accelerometerdata via rotationsmatrisen för 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())
        // azimut: 0 = norr, 90 = öster, 180 = söder, 270 = väster
    }

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

Azimuten som erhålls via getOrientation mäts i radianer och kan ta värden från -π till π, där 0 motsvarar magnetiska norr. För visning på skärmen omvandlas värdena till grader (Math.toDegrees) med normalisering till intervallet 0–360. Det är viktigt att ta hänsyn till magnetisk deklination — vinkeln mellan magnetiska och sanna (geografiska) norr, som beror på geografisk position och förändras över tid. Google Maps korrigerar automatiskt deklinationen via GeomagneticField API.

Vanliga frågor

Hur fungerar en digital kompass i en smartphone?

Digital kompass använder en MEMS-magnetometer — ett chip på 2×2 mm som mäter jordens magnetfält längs tre axlar. Magnetometerdata kombineras med accelerometeravläsningar för att bestämma azimut — vinkeln mellan nordriktningen och enhetens orientering.

Varför visar kompassen på telefonen felaktigt?

Felaktiga avläsningar från kompassen orsakas oftast av bristande kalibrering, magnetiska störningar från högtalare eller vibrationsmotor, samt magnetiska fodral. Lösning — utför kalibrering med en åttarörelse eller ta bort magnetiska tillbehör. Vid konstanta fel kan sensorundersökning behövas.

Behöver kompassen kalibreras och hur gör man det?

Ja, kalibrering av kompassen är nödvändig för kompensation av parasitära magnetfält inuti smartphonen. I de flesta moderna enheter utförs kalibrering automatiskt i bakgrunden. För manuell kalibrering, rita en åtta med smartphonen i luften — systemet samlar in data från alla vinklar och korrigerar avläsningarna.

Hur får man åtkomst till kompassen i en Android-app?

Android fås åtkomst till kompassen via Sensor API med sensorn TYPE_MAGNETIC_FIELD. Azimut beräknas via SensorManager.getRotationMatrix() och getOrientation(), som kombinerar magnetometer- och accelerometerdata. Den erhållna azimuten kan justeras för visning på skärmen.

Vilka smartphonemodeller har den mest noggranna kompassen?

De mest noggranna kompasserna är installerade i smartphones med trippel IMU-sensor (magnetometer + gyroskop + accelerometer) och aktivt kalibreringssystem. Ledande är flaggskeppen Google Pixel, Samsung Galaxy S-serien och iPhone Pro — de använder AKM- och Bosch-magnetometrar med en känslighet på 0,3 µT och automatisk korrigering.

Sammanfattning

  • Compass (digital kompass) i en smartphone är en MEMS-magnetometer som mäter jordens magnetfält för att bestämma azimut och enhetens orientering.
  • Moderna magnetometrar använder AMR-effekten (anisotrop magnetoresistans) och ger en känslighet på 0,3 µT och en kompakt storlek på 2×2 mm.
  • Noggranna kompassavläsningar kräver kalibrering för kompensation av magnetfält från smartphonens högtalare, vibrationsmotor och kamera.
  • Nordriktningen beräknas via sensor fusion — kombination av magnetometerdata med accelerometer och gyroskop för lutningskorrigering.
  • Digital kompass tillämpas i navigering, kartografi, augmented reality, astronomi och fitnesstracking för bestämning av orientering och rörelseriktning.
  • På Android fås åtkomst till kompassen via TYPE_MAGNETIC_FIELD med beräkning av azimut via getRotationMatrix och getOrientation.
  • Magnetisk deklination (vinkeln mellan magnetiska och geografiska norr) korrigeras automatiskt i navigations-API:er från Google och Apple.

Vi utvecklar en mobil applikation nyckelfärdigt

IT Sectr skapar iOS- och Android-applikationer för startups och företag sedan 2017. Vi ger dig råd och föreslår den bästa lösningen.

Diskutera projektet

Läs också