Magnetometer i smartphones — vad är det, typer och funktionsprincip

Författare: IT Sectr Publicerad: 2026-03-22 Lästid: 10 min

En magnetometer är en sensor som mäter styrkan på jordens magnetfält för att bestämma väderstrecken. I mobila enheter fungerar den som en digital kompass och ger en noggrannhet på upp till 1–2 grader vid korrekt kalibrering. Enligt Bosch Sensortec Application Note, 2024 förbrukar moderna MEMS-magnetometrar endast 0,5–2 mA och ryms i ett hölje på 1,5×1,5×0,7 mm.

Huvudpunkter

  • Magnetometer — Hall-sensor som mäter magnetfältet på tre axlar med ett område på ±1300 µT.
  • Digital kompass baserad på magnetometer kräver kalibrering — utan den når felet 30–40 grader.
  • Android API använder Sensor.TYPE_MAGNETIC_FIELD för åtkomst till data i mikrotesla (µT).
  • Sensor Fusion kombinerar magnetometern med gyroskop och accelerometer för exakt orientering.
  • Hard Iron och Soft Iron — typer av magnetiska störningar orsakade av metallhöljet och smartphonens högtalare.

Vad är en magnetometer i en smartphone

En magnetometer i en mobil enhet är en treaxlig magnetfältsensor baserad på Hall-effekten. Den mäter projektionerna av den magnetiska induktionsvektorn på X-, Y- och Z-axlarna. I kombination med en accelerometer gör magnetometern det möjligt att bestämma azimuten — vinkeln mellan nordriktningen och telefonens axel.

Typer av magnetometrar i mobila enheter

I moderna smartphones används MEMS-magnetometrar baserade på anisotropisk magnetoresistiv effekt (AMR) och Hall-effekten. AMR-sensorer (AKM-serie från Asahi Kasei Microdevices) ger en känslighet på 0,15 µT/LSB och ett område på ±1200 µT — tillräckligt för att mäta jordens fält (25–65 µT).

ParameterVärde
TeknikAMR / Hall-effekt
Område±1200 — ±1300 µT
Strömförbrukning0,5–2 mA
Storlek1,5×1,5×0,7 mm
Känslighet0,15 µT/LSB

Varför är magnetometern viktig för smartphonen

Utan digital kompass kan navigeringsappar inte bestämma rörelseriktningen. Google Maps använder magnetometern för att visa kartans orientering i förhållande till användarens blickriktning. Vid sensorfel visar appen endast positionen på kartan utan den blå riktningspilen.

Hur fungerar Hall-sensorn

Hall-effekten är ett fysikaliskt fenomen där en potentialskillnad uppstår vid kanterna av en ledande platta under påverkan av ett magnetfält. I MEMS-magnetometrar används tunnfilmstrukturer av permalloy (NiFe), vars resistans ändras under påverkan av ett externt magnetfält (AMR-effekt).

Struktur av AMR-sensorn

Var och en av de tre kanalerna (X, Y, Z) består av fyra magnetoresistorer kopplade i en Wheatstone-brygga. Magnetfältet ändrar resistansen hos resistorerna med 2–3%, vilket omvandlas till spänning av en differentialförstärkare. En inbyggd 16-bitars ADC digitaliserar signalen med en frekvens på upp till 100 Hz.

Mätning på Z-axeln

För mätning av den vertikala komponenten av fältet används en integrerad magnetisk flödeskoncentrator (IMC — Integrated Magnetic Concentrator). Detta är en tunnfilmstruktur av NiFe som avleder det horisontella fältet till vertikalplanet, vilket gör att en enda AMR-brygga kan mäta alla tre axlarna.

Skillnad mellan magnetometer och gyroskop

En magnetometer bestämmer orienteringen i förhållande till jordens magnetfält (absolut referens), medan ett gyroskop endast mäter vinkelförändringen (relativa data). Gyroskopet ger exakta data över korta intervall men ackumulerar driftfel. Magnetometern driftar inte men är känslig för magnetiska störningar.

Sensor Fusion med magnetometer

Android kombinerar data från tre sensorer via SensorManager.getRotationMatrix. Magnetometern används för korrigering av gyroskopdrift över långa intervall. Utan magnetometer ackumulerar gyroskopet ett fel på 10–20 grader på 5 minuter. Enligt Google ARCore (2024) uppnår fusion-algoritmen en noggrannhet på 1–3 grader med närvaro av magnetometer.

kotlin
val accelerometerReading = FloatArray(3)
val magnetometerReading = FloatArray(3)
val rotationMatrix = FloatArray(9)
val orientationAngles = FloatArray(3)

SensorManager.getRotationMatrix(
    rotationMatrix, null,
    accelerometerReading,
    magnetometerReading
)
SensorManager.getOrientation(
    rotationMatrix, orientationAngles
)
// orientationAngles[0] — azimut i radianer

Magnetiska störningar: Hard Iron och Soft Iron

Hard Iron — konstant magnetfält skapat av ferromagnetiska material inuti telefonen: högtalarmagneter, vibrationsmotor, metallram. Hard Iron-störning visar sig som en konstant förskjutning (bias) på varje axel. Soft Iron — förändring av fältriktningen på grund av magnetiskt ledande material som distorderar fältlinjernas form.

Kalibreringsalgoritm

Standardkalibreringsproceduren för magnetometern är att rotera telefonen i en åttas form (figure-8 pattern). Under processen registrerar sensorn punkter i det tredimensionella rummet. Utan störningar ligger punkterna på en sfär med en radie på 25–65 µT. Hard Iron flyttar sfärens centrum, Soft Iron förvandlar den till en ellipsoid. Kalibreringsalgoritmen beräknar parametrarna för förskjutning och skalning.

kotlin
data class CalibrationParams(
    val biasX: Float,
    val biasY: Float,
    val biasZ: Float,
    val scaleX: Float,
    val scaleY: Float,
    val scaleZ: Float
)

fun applySoftIronCorrection(
    raw: FloatArray, p: CalibrationParams
): FloatArray {
    return floatArrayOf(
        (raw[0] - p.biasX) * p.scaleX,
        (raw[1] - p.biasY) * p.scaleY,
        (raw[2] - p.biasZ) * p.scaleZ
    )
}

Programvarukorrigering av störningar

En utvecklare kan implementera egen kalibrering av magnetometern genom att samla in data under enhetens rörelse. Ellipsoid-anpassningsalgoritmen (ellipsoid fitting) hittar Hard Iron- och Soft Iron-parametrarna genom att minimera summan av kvadrerade avvikelser från sfären. Apache Commons Math-biblioteket tillhandahåller en implementering av den olinjära minsta-kvadratmetoden (Levenberg-Marquardt) för denna uppgift — noggrannheten efter programvarukalibrering når 0,5 grader.

Rekommendationer för att eliminera störningar

För att minimera Hard Iron placerar tillverkare magnetometern i den övre delen av telefonen, långt från högtalaren och vibrationsmotorn. Apple-ingenjörer i iPhone 16 Pro Max (2024) använde avskärmning av magnetometern med permalloyfolie, vilket minskade högtalarens påverkan 4 gånger. I Samsung Galaxy S24 Ultra används en extra kompensationskrets som mäter strömmen i högtalaren i realtid för att subtrahera det inducerade fältet. Fodral med magnetiska fästen (till exempel i bilhållare) skapar kraftiga störningar — efter användning kan magnetometern visa fel riktning tills omkalibrering.

Programmatisk åtkomst till magnetometern i Android

Android tillhandahåller två sensorer: TYPE_MAGNETIC_FIELD (kalibrerade data i µT) och TYPE_MAGNETIC_FIELD_UNCALIBRATED (rådata med uppskattning av störning). För navigeringsappar rekommenderas att använda den kalibrerade sensorn — systemet tillämpar automatiskt den inbyggda kalibreringen baserat på den senaste åttarörelsen.

Registrering och bearbetning

Fördröjning SENSOR_DELAY_NORMAL (200 ms) är tillräcklig för kompass, SENSOR_DELAY_FASTEST (0 ms) — endast för speciella forskningsappar. Efter att ha mottagit värden kan de omvandlas till azimut via getRotationMatrix + getOrientation. Det är viktigt att kontrollera sensorns noggrannhet via event.accuracy — värdet SENSOR_STATUS_UNRELIABLE innebär behov av kalibrering.

kotlin
override fun onSensorChanged(event: SensorEvent) {
    if (event.sensor.type == Sensor.TYPE_MAGNETIC_FIELD) {
        val accuracy = event.accuracy
        if (accuracy == SensorManager.SENSOR_STATUS_UNRELIABLE) {
            showCalibrationHint()
            return
        }
        System.arraycopy(event.values, 0,
            magnetometerReading, 0, 3)
    }
}

Tillämpning av magnetometer i mobila applikationer

Magnetometern används inte bara för kompass. AR-appar, inklusive Pokemon GO, använder magnetometern för att bestämma kamerans orientering i förhållande till den verkliga världen. Utan magnetometer växlar ARCore till Screen Axis-läge — orienteringen bestäms endast av gyroskopet, vilket minskar noggrannheten.

  • Navigering — bestämning av azimut i Google Maps, Yandex.Maps, MAPS.ME. Kompassens noggrannhet påverkar direkt rutens kvalitet.
  • Metalldetektorer — appar för att söka efter metallföremål använder magnetometern för att upptäcka anomalier i magnetfältet.
  • Geofysik och utbildning — mätning av magnetfält för utbildningsprojekt. Sensorn gör det möjligt att studera jordens magnetfält i skolor.
  • VR och 360-video — huvudets orientering i VR-headset korrigeras av magnetometern för att kompensera gyroskopdrift.

Magnetometer i bilnavigering

I bilnavigeringssystem baserade på Android Auto används magnetometern för att bestämma färdriktningen vid förlust av GPS-signal i tunnlar och tät stadsbebyggelse. I kombination med odometridata från fordonets hjul (erhållna via OBD-II) gör magnetometern det möjligt att fortsätta navigeringen i upp till 5 minuter utan GPS med en positioneringsnoggrannhet på 10–20 meter. Enligt Google Maps Engineering Blog (2024) minskar den hybrida algoritmen andelen ruttförlust i stadskanyoner med 40%.

Magnetometer i navigeringsappar

Navigeringsappar använder magnetometern för att bestämma azimut — vinkeln mellan nordriktningen och användarens aktuella kurs. I Google Maps kombineras magnetometerdata med GPS-spår och rörelsehistorik för att visa den blå riktningspilen. Vid förlust av GPS-signal (i tunnlar, underjordiska passager) förblir magnetometern den enda källan till orienteringsinformation.

Framtiden för magnetometrar

Den nya generationen 3-axliga magnetometrar med integrerad ASIC (BMM350 från Bosch, 2024) förbrukar endast 0,35 mA och stöder frekvenser upp till 200 Hz. Utvecklingen av kvantmagnetometrar och NV-centra i diamant för mobila enheter har ännu inte lämnat laboratorieexperimentstadiet. Det förväntas att noggrannheten hos mobila magnetometrar kommer att nå 0,01 µT år 2028.

Vanliga frågor

Hur kalibrerar jag magnetometern på telefonen?

Rita en åttas med telefonen i luften — detta är standardrörelsen för att kalibrera den digitala kompassen. Om kompassen fortfarande visar felaktigt, kontrollera fodralet: magnetiska fästen och metallelement skapar kraftiga Hard Iron-störningar.

Varför visar kompassen på telefonen felaktigt?

Huvudorsaker: magnetiska störningar från telefonens högtalare och vibrationsmotor, utebliven kalibrering efter byte av fodral, påverkan av närliggande metallföremål. I rum med armerad betongkonstruktioner distorderas magnetfältet särskilt kraftigt.

Kan jag använda telefonen som metalldetektor?

Ja, metalldetektorappar använder den inbyggda magnetometern för att upptäcka anomalier i magnetfältet. Detektionsdjupet överstiger dock inte 10–20 cm och enheten särskiljer inte metalltyper — det är snarare ett pedagogiskt verktyg.

Vad är skillnaden mellan TYPE_MAGNETIC_FIELD och TYPE_MAGNETIC_FIELD_UNCALIBRATED?

TYPE_MAGNETIC_FIELD returnerar data efter kalibrering som tillämpats av systemet. TYPE_MAGNETIC_FIELD_UNCALIBRATED ger råvärden plus en uppskattning av förskjutningen (bias), vilket gör att utvecklaren kan tillämpa sin egen kalibrering.

Hur får jag azimut från magnetometerdata?

Använd SensorManager.getRotationMatrix med data från accelerometer och magnetometer, sedan getOrientation — det första elementet i arrayen (azimut) kommer att vara i radianer. För att visa kompassen, konvertera till grader: Math.toDegrees(azimuth).

Sammanfattning

  • Magnetometer — treaxlig magnetfältsensor som fungerar som digital kompass i mobila enheter.
  • AMR-teknik baserad på Hall-effekten möjliggör mätning av jordens fält med en noggrannhet på 0,15 µT/LSB.
  • Hard Iron och Soft Iron — magnetiska störningar orsakade av telefondelar som kräver kalibrering med åttarörelse.
  • Android API tillhandahåller TYPE_MAGNETIC_FIELD och TYPE_MAGNETIC_FIELD_UNCALIBRATED med data i µT.
  • Sensor Fusion kombinerar magnetometer med gyroskop och accelerometer för exakt (1–3 graders) orientering.
  • Tillämpningar omfattar navigering, AR-appar, metalldetektorer och korrigering av gyroskopdrift i VR.
  • Moderna sensorer förbrukar från 0,35 mA vid 200 Hz med en storlek på 1,5×1,5 mm.

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å