Der Kompass (compass) in einem Smartphone ist ein digitaler Sensor auf Basis eines Magnetometers, der die Richtung zu den magnetischen Polen der Erde bestimmt. Die Technologie ermöglicht es Navigations-, Kartierungs- und Augmented-Reality-Anwendungen, die Ausrichtung des Geräts im Raum genau zu bestimmen. Laut STMicroelectronics, 2025, bieten moderne MEMS-Magnetometer eine Genauigkeit der Richtungsbestimmung von bis zu 1–2 Grad.
Wichtige Punkte
Der digitale Kompass in einem Smartphone ist ein Sensor auf Basis eines Magnetometers, der die Stärke des Erdmagnetfelds misst und den Azimut (Winkel relativ zum magnetischen Norden) bestimmt. Im Gegensatz zu einem mechanischen Kompass nutzt der digitale Kompass mikroelektromechanische Systeme (MEMS) zur Erfassung des Magnetfelds. Das Magnetometer misst das Feld entlang dreier Achsen, was eine korrekte Richtungsbestimmung bei jeder Neigung des Smartphones ermöglicht.
Ein modernes MEMS-Magnetometer ist ein Mikrochip mit den Maßen 2×2×1 mm, der zusammen mit einem Beschleunigungssensor und Gyroskop (als Teil einer 9-Achsen-IMU) in das Smartphone-Gehäuse integriert ist. Der Sensor misst nicht nur die Richtung, sondern auch die Stärke des Erdmagnetfelds (25–65 µT je nach Breitengrad). Das Vorhandensein von Metallgegenständen und parasitären Magnetfeldern von Lautsprechern, Vibrationsmotor und Kamera erzeugt Verzerrungen, daher ist eine softwarebasierte Korrektur der Messwerte für einen genauen Betrieb erforderlich.
Die ersten digitalen Kompasse in Mobiltelefonen erschienen 2009 mit der Veröffentlichung des iPhone 3GS — dem ersten Smartphone mit eingebautem Magnetometer. Heute sind Magnetometer in der überwiegenden Mehrheit der Smartphones verbaut, einschließlich Budgetmodellen. Laut Yole Group übersteigt der Markt für MEMS-Magnetometer in Mobilgeräten 1,5 Milliarden Einheiten pro Jahr, was die Nachfrage nach dieser Technologie bestätigt.
Der Kern eines MEMS-Magnetometers ist ein Sensorelement, das seine elektrischen Eigenschaften unter dem Einfluss eines externen Magnetfelds verändert. Moderne Smartphones nutzen den Hall-Effekt oder den magnetoresistiven Effekt (AMR — Anisotropic Magneto-Resistance). Das Prinzip basiert darauf, dass ein stromdurchflossenes Material seinen Widerstand ändert, wenn es einem Magnetfeld ausgesetzt wird, und aus der Spannungsänderung der Magnetfeldvektor berechnet wird.
Hall-Effekt-Sensoren erfassen Spannungsänderungen an den Kanten einer Halbleiterplatte, die durch die Lorentzkraft auf bewegte Ladungen entstehen. Magnetoresistive Sensoren (AMR) verwenden eine Permalloy-Schicht (NiFe), deren Widerstand von der Richtung des Magnetfelds abhängt. AMR-Sensoren bieten eine kleinere Bauform und höhere Empfindlichkeit im Vergleich zu Hall-Sensoren und dominieren daher in modernen Smartphones.
| Typ | Empfindlichkeit | Stromverbrauch | Größe |
|---|---|---|---|
| Hall | Mittel | Niedrig | Mittel |
| AMR | Hoch | Niedrig | Klein |
| GMR | Sehr hoch | Mittel | Klein |
Die Daten des Magnetometers werden mit den Messwerten des Beschleunigungssensors kombiniert, um die Neigung zu korrigieren und die Nordrichtung in der horizontalen Ebene zu bestimmen. Der Sensor-Fusion-Algorithmus verwendet den Madgwick-Filter oder den Kalman-Filter, um Daten von Magnetometer, Gyroskop und Beschleunigungssensor zu kombinieren. Dies liefert einen stabilen und genauen Azimut, selbst bei schnellen Drehungen und Erschütterungen des Geräts.
In der Mobilindustrie werden drei Haupttypen von MEMS-Magnetometern verwendet: Hall-Effekt, anisotrop magnetoresistive (AMR) und Riesenmagnetoresistive (GMR). AMR-Magnetometer sind aufgrund ihres optimalen Gleichgewichts zwischen Empfindlichkeit, Stromverbrauch und Kosten in Smartphones am weitesten verbreitet. Führende Hersteller sind AKM (Asahi Kasei Microdevices), STMicroelectronics und Bosch Sensortec.
Die Empfindlichkeit eines AMR-Magnetometers in einem typischen Smartphone beträgt 0,3–1 µT bei einem Dynamikbereich von ±1000 µT (±8 Gauß), was ausreicht, um das Erdfeld (30–65 µT) genau zu messen und parasitische Felder zu kompensieren. Die Abtastrate des Sensors kann 100–200 Hz erreichen, aber die meisten Anwendungen verwenden 10–50 Hz, um Energie zu sparen. Die automatische Kompensation von Temperatur- und Gehäusespannungsverformungen wird auf Treiberebene des Sensors implementiert.
Kompasskalibrierung ist der Prozess der Kompensation parasitärer Magnetfelder, die von Smartphone-Komponenten erzeugt werden: Lautsprecher, Vibrationsmotor, Kamera und Akku. Ohne Kalibrierung können die Messwerte des Magnetometers um 10–30 Grad von der tatsächlichen Richtung abweichen. Das Kalibriersystem ermittelt die Offset-Matrix (Hard-Iron-Bias) entlang dreier Achsen und wendet sie an, um alle nachfolgenden Messungen zu korrigieren.
Die Standardmethode der Kompasskalibrierung ist das Zeichnen einer „Acht“: Der Benutzer dreht das Smartphone auf einer Bahn, die der Ziffer 8 ähnelt. Während der Bewegung zeichnet der Sensor das Magnetfeld in allen möglichen Ausrichtungen auf, und der Algorithmus sammelt Punkte und approximiert eine Kugel mit einem vom Nullpunkt verschobenen Mittelpunkt. Der Kugelradius entspricht der Größe des Erdmagnetfelds, und der Mittelpunkt stellt den parasitären Offset-Vektor dar. Nach der Approximation berechnet das System Korrekturkoeffizienten für jede Achse.
Moderne Kalibrierungsalgorithmen von Qualcomm und MediaTek führen ohne Benutzereingriff eine kontinuierliche Hintergrundkalibrierung durch. Sie analysieren Änderungen des Magnetfelds während Drehungen des Geräts und aktualisieren automatisch die Korrekturparameter. Wenn der Sensor ein neues parasitäres Feld erkennt (z. B. beim Anbringen einer magnetischen Hülle), startet das System innerhalb von 1–2 Sekunden kontinuierlicher Gerätebewegung eine Neukalibrierung.
Der digitale Kompass wird in einer Vielzahl mobiler Anwendungen eingesetzt. Die Hauptverwendung findet sich in Navigations- und Kartierungsdiensten (Google Maps, Yandex.Maps, 2GIS), die die Ausrichtung des Geräts auf der Karte bestimmen, um die Bewegungsrichtung des Benutzers korrekt anzuzeigen. In Augmented-Reality-Anwendungen (AR) sorgt der Kompass für die korrekte Platzierung virtueller Objekte relativ zu den Himmelsrichtungen.
In Astronomie-Anwendungen (Star Walk, SkySafari) bestimmt der Kompass in Kombination mit einem Beschleunigungssensor die Richtung, in die das Smartphone zeigt, und zeigt den entsprechenden Bereich des Nachthimmels an. Angel- und Tourismus-Apps nutzen den Kompass, um interessante Punkte auf der Karte mit Azimut-Referenz zu markieren. GPS-Fitness-Tracking verwendet die Kompasswerte, um die Lauf- oder Radfahrrichtung zu bestimmen und so die Genauigkeit der Routenanzeige zu verbessern.
Für den Zugriff auf den digitalen Kompass unter Android wird der Sensor TYPE_MAGNETIC_FIELD aus der Sensor-API verwendet. Entwickler registrieren einen Listener für Änderungen der Magnetometerwerte und erhalten ein Array von Magnetfeldstärkewerten entlang dreier Achsen in Mikrotesla. Zur Bestimmung des Azimuts werden die Magnetometerdaten über eine Rotationsmatrix mittels Sensorfusion mit den Beschleunigungssensordaten kombiniert.
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 = Norden, 90 = Osten, 180 = Süden, 270 = Westen
}
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) {}
}
Der über getOrientation ermittelte Azimut wird in Radiant gemessen und kann Werte von -π bis π annehmen, wobei 0 dem magnetischen Norden entspricht. Zur Darstellung auf dem Bildschirm werden die Werte in Grad (Math.toDegrees) umgerechnet und auf den Bereich 0–360 normalisiert. Wichtig ist die Berücksichtigung der Deklination — des Winkels zwischen magnetischem und wahrem (geografischem) Norden, der vom geografischen Standort abhängt und sich im Laufe der Zeit ändert. Google Maps passt die Deklination automatisch über die GeomagneticField-API an.
Häufig gestellte Fragen
Der digitale Kompass verwendet ein MEMS-Magnetometer — einen 2×2 mm Chip, der das Erdmagnetfeld entlang dreier Achsen misst. Die Magnetometerdaten werden mit den Messwerten des Beschleunigungssensors kombiniert, um den Azimut zu bestimmen — den Winkel zwischen der Nordrichtung und der Ausrichtung des Geräts.
Falsche Kompass-Messwerte werden meist durch fehlende Kalibrierung, magnetische Störungen von Lautsprechern oder Vibrationsmotor sowie magnetische Hüllen verursacht. Die Lösung ist, eine „Acht“-Kalibrierbewegung durchzuführen oder magnetische Accessoires zu entfernen. Bei anhaltenden Fehlern kann eine Überprüfung des Sensors erforderlich sein.
Ja, die Kompasskalibrierung ist notwendig, um parasitische Magnetfelder im Smartphone zu kompensieren. Bei den meisten modernen Geräten erfolgt die Kalibrierung automatisch im Hintergrund. Für die manuelle Kalibrierung zeichnen Sie mit dem Smartphone eine „Acht“ in die Luft — das System sammelt Daten aus allen Winkeln und korrigiert die Messwerte.
Unter Android erfolgt der Kompasszugriff über die Sensor-API mit dem Sensor TYPE_MAGNETIC_FIELD. Der Azimut wird über SensorManager.getRotationMatrix() und getOrientation() berechnet, die Magnetometer- und Beschleunigungssensordaten kombinieren. Der resultierende Azimut kann für die Bildschirmanzeige angepasst werden.
Die genauesten Kompasse sind in Smartphones mit Triple-IMU-Sensor (Magnetometer + Gyroskop + Beschleunigungssensor) und aktivem Kalibriersystem verbaut. Führend sind die Flaggschiff-Modelle Google Pixel, Samsung Galaxy S-Serie und iPhone Pro — sie verwenden AKM- und Bosch-Magnetometer mit einer Empfindlichkeit von 0,3 µT und automatischer Korrektur.
Zusammenfassung
Wir entwickeln eine mobile Applikation schlüsselfertig
IT Sectr entwickelt seit 2017 iOS- und Android-Apps für Startups und Unternehmen. Wir beraten Sie und schlagen die beste Lösung vor.
Lesen Sie auch