Boussole dans les smartphones — essence, principe de fonctionnement et application

Auteur : IT Sectr Publié le : 2026-03-25 Temps de lecture : 8 min

La boussole (compass) dans un smartphone est un capteur numérique basé sur un magnétomètre qui détermine la direction vers les pôles magnétiques de la Terre. La technologie permet aux applications de navigation, de cartographie et de réalité augmentée de déterminer avec précision l’orientation du périphérique dans l’espace. Selon STMicroelectronics, 2025, les magnétomètres MEMS modernes offrent une précision de détermination de direction allant jusqu’à 1–2 degrés.

Points clés

  • Compass dans un smartphone est une boussole numérique basée sur un magnétomètre MEMS qui mesure le champ magnétique terrestre.
  • Les magnétomètres modernes utilisent l’effet Hall ou l’effet magnétorésistif pour déterminer la direction du champ magnétique.
  • Pour un fonctionnement précis de la boussole numérique, un étalonnage est nécessaire — compensation des champs magnétiques parasites des haut-parleurs et autres composants.
  • Le magnétomètre du smartphone mesure le champ magnétique selon trois axes (X, Y, Z), permettant de déterminer la direction dans n’importe quelle orientation du périphérique.
  • La boussole numérique est utilisée dans les applications de navigation, de réalité augmentée, les services de géolocalisation et les programmes d’astronomie.

Qu’est-ce qu’une boussole numérique dans un smartphone?

La boussole numérique dans un smartphone est un capteur basé sur un magnétomètre qui mesure l’intensité du champ magnétique terrestre et détermine l’azimut (angle par rapport au nord magnétique). Contrairement à une boussole mécanique, la boussole numérique utilise des systèmes microélectromécaniques (MEMS) pour détecter le champ magnétique. Le magnétomètre mesure le champ selon trois axes, permettant de déterminer correctement la direction quelle que soit l’inclinaison du smartphone.

Comment fonctionne le capteur

Un magnétomètre MEMS moderne est une micropuce de 2×2×1 mm intégrée dans le corps du smartphone avec un accéléromètre et un gyroscope (dans le cadre d’une IMU à 9 axes). Le capteur mesure non seulement la direction mais aussi l’intensité du champ magnétique terrestre (25–65 µT selon la latitude). La présence d’objets métalliques et de champs magnétiques parasites provenant des haut-parleurs, du moteur de vibration et de l’appareil photo crée des distorsions, donc une correction logicielle des lectures est nécessaire pour un fonctionnement précis.

Les premières boussoles numériques dans les téléphones mobiles sont apparues en 2009 avec le lancement de l’iPhone 3GS — le premier smartphone avec magnétomètre intégré. Aujourd’hui, les magnétomètres sont installés dans la grande majorité des smartphones, y compris les modèles d’entrée de gamme. Selon Yole Group, le marché des magnétomètres MEMS pour appareils mobiles dépasse 1,5 milliard d’unités par an, confirmant la demande pour cette technologie.

Principe de fonctionnement du magnétomètre

Le cœur d’un magnétomètre MEMS est un élément sensible qui modifie ses caractéristiques électriques sous l’influence d’un champ magnétique externe. Les smartphones modernes utilisent l’effet Hall ou l’effet magnétorésistif (AMR — Anisotropic Magneto-Resistance). Le principe repose sur le fait qu’un matériau conducteur de courant change sa résistance lorsqu’il est exposé à un champ magnétique, et le vecteur du champ magnétique est calculé à partir du changement de tension.

Effet Hall et AMR

Les capteurs à effet Hall détectent les changements de tension sur les bords d’une plaque semi-conductrice causés par la force de Lorentz sur les charges en mouvement. Les capteurs magnétorésistifs (AMR) utilisent un film de permalloy (NiFe) dont la résistance dépend de la direction du champ magnétique. Les capteurs AMR offrent une taille plus réduite et une sensibilité plus élevée par rapport aux capteurs Hall, c’est pourquoi ils dominent dans les smartphones modernes.

TypeSensibilitéConsommation d’énergieTaille
HallMoyenneFaibleMoyenne
AMRÉlevéeFaiblePetite
GMRTrès élevéeMoyennePetite

Les données du magnétomètre sont combinées avec les lectures de l’accéléromètre pour corriger l’inclinaison et déterminer la direction du nord dans le plan horizontal. L’algorithme de fusion de capteurs utilise le filtre de Madgwick ou le filtre de Kalman pour combiner les données du magnétomètre, du gyroscope et de l’accéléromètre. Cela fournit un azimut stable et précis, même lors de rotations rapides et de secousses du périphérique.

Types de magnétomètres dans les appareils mobiles

Dans l’industrie mobile, trois types principaux de magnétomètres MEMS sont utilisés : à effet Hall, magnétorésistifs anisotropes (AMR) et magnétorésistifs géants (GMR). Les magnétomètres AMR sont les plus répandus dans les smartphones grâce à leur équilibre optimal entre sensibilité, consommation d’énergie et coût. Les principaux fabricants sont AKM (Asahi Kasei Microdevices), STMicroelectronics et Bosch Sensortec.

La sensibilité d’un magnétomètre AMR dans un smartphone typique est de 0,3–1 µT avec une plage dynamique de ±1000 µT (±8 Gauss), ce qui est suffisant pour mesurer avec précision le champ terrestre (30–65 µT) et compenser les champs parasites. La fréquence d’échantillonnage du capteur peut atteindre 100–200 Hz, mais la plupart des applications utilisent 10–50 Hz pour économiser l’énergie. La compensation automatique de la température et des déformations du boîtier est implémentée au niveau du pilote du capteur.

Étalonnage de la boussole numérique

L’étalonnage de la boussole est le processus de compensation des champs magnétiques parasites créés par les composants du smartphone : haut-parleurs, moteur de vibration, appareil photo et batterie. Sans étalonnage, les lectures du magnétomètre peuvent dévier de la direction réelle de 10–30 degrés. Le système d’étalonnage détermine la matrice de décalage (hard-iron bias) selon trois axes et l’applique pour corriger toutes les mesures ultérieures.

Algorithmes et méthodes d’étalonnage

La méthode standard d’étalonnage de la boussole consiste à dessiner un « 8 » : l’utilisateur fait pivoter le smartphone selon une trajectoire ressemblant au chiffre 8. Pendant le mouvement, le capteur enregistre le champ magnétique dans toutes les orientations possibles, et l’algorithme accumule les points et approxime une sphère avec un centre décalé par rapport au zéro. Le rayon de la sphère correspond à l’intensité du champ magnétique terrestre, et le centre représente le vecteur de décalage parasite. Après approximation, le système calcule les coefficients de correction pour chaque axe.

Les algorithmes d’étalonnage modernes de Qualcomm et MediaTek effectuent un étalonnage continu en arrière-plan sans intervention de l’utilisateur. Ils analysent les changements du champ magnétique lors des rotations du périphérique et mettent à jour automatiquement les paramètres de correction. Si le capteur détecte un nouveau champ parasite (par exemple, lors de la mise en place d’un étui magnétique), le système lance un réétalonnage en 1–2 secondes de mouvement continu du périphérique.

Utilisation de la boussole dans les applications mobiles

La boussole numérique est utilisée dans une large gamme d’applications mobiles. L’utilisation principale concerne les services de navigation et de cartographie (Google Maps, Yandex.Maps, 2GIS), qui déterminent l’orientation du périphérique sur la carte pour afficher correctement la direction de déplacement de l’utilisateur. Dans les applications de réalité augmentée (RA), la boussole assure le positionnement correct des objets virtuels par rapport aux points cardinaux.

Dans les applications d’astronomie (Star Walk, SkySafari), la boussole combinée à un accéléromètre détermine la direction vers laquelle le smartphone est pointé et affiche la zone correspondante du ciel nocturne. Les applications de pêche et de tourisme utilisent la boussole pour marquer des points d’intérêt sur la carte avec une référence d’azimut. Le suivi de condition physique avec GPS utilise les lectures de la boussole pour déterminer la direction de course ou de cyclisme, améliorant la précision de l’affichage de l’itinéraire.

Utilisation de la boussole via l’API Android

Pour accéder à la boussole numérique sur Android, le capteur TYPE_MAGNETIC_FIELD de l’API Sensor est utilisé. Les développeurs enregistrent un écouteur des changements de lectures du magnétomètre et reçoivent un tableau de valeurs d’intensité du champ magnétique selon trois axes en microteslas. Pour déterminer l’azimut, les données du magnétomètre sont combinées avec les données de l’accéléromètre via une matrice de rotation par fusion de capteurs.

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 = nord, 90 = est, 180 = sud, 270 = ouest
    }

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

L’azimut obtenu via getOrientation est mesuré en radians et peut prendre des valeurs de -π à π, où 0 correspond au nord magnétique. Pour l’affichage à l’écran, les valeurs sont converties en degrés (Math.toDegrees) normalisées à la plage 0–360. Il est important de prendre en compte la déclinaison magnétique — l’angle entre le nord magnétique et le nord vrai (géographique), qui dépend de l’emplacement géographique et change avec le temps. Google Maps ajuste automatiquement la déclinaison via l’API GeomagneticField.

Foire aux questions

Comment fonctionne une boussole numérique dans un smartphone?

La boussole numérique utilise un magnétomètre MEMS — une puce de 2×2 mm qui mesure le champ magnétique terrestre selon trois axes. Les données du magnétomètre sont combinées avec les lectures de l’accéléromètre pour déterminer l’azimut — l’angle entre la direction du nord et l’orientation du périphérique.

Pourquoi la boussole du téléphone indique-t-elle une direction erronée?

Les lectures incorrectes de la boussole sont le plus souvent causées par un manque d’étalonnage, des interférences magnétiques des haut-parleurs ou du moteur de vibration, ainsi que par des étuis magnétiques. La solution est d’effectuer un mouvement d’étalonnage en « 8 » ou de retirer les accessoires magnétiques. En cas d’erreurs persistantes, une vérification du capteur peut être nécessaire.

La boussole a-t-elle besoin d’un étalonnage et comment le faire?

Oui, l’étalonnage de la boussole est nécessaire pour compenser les champs magnétiques parasites à l’intérieur du smartphone. Dans la plupart des appareils modernes, l’étalonnage est effectué automatiquement en arrière-plan. Pour un étalonnage manuel, dessinez un « 8 » avec le smartphone dans les airs — le système collectera les données sous tous les angles et corrigera les lectures.

Comment accéder à la boussole dans une application Android?

Sur Android, l’accès à la boussole se fait via l’API Sensor avec le capteur TYPE_MAGNETIC_FIELD. L’azimut est calculé via SensorManager.getRotationMatrix() et getOrientation(), qui combinent les données du magnétomètre et de l’accéléromètre. L’azimut résultant peut être adapté pour l’affichage à l’écran.

Quels modèles de smartphones ont la boussole la plus précise?

Les boussoles les plus précises sont installées dans les smartphones équipés d’un capteur IMU triple (magnétomètre + gyroscope + accéléromètre) et d’un système d’étalonnage actif. Les leaders sont les modèles phares Google Pixel, Samsung Galaxy S-series et iPhone Pro — ils utilisent des magnétomètres AKM et Bosch avec une sensibilité de 0,3 µT et une correction automatique.

Résumé

  • Compass (boussole numérique) dans un smartphone est un magnétomètre MEMS qui mesure le champ magnétique terrestre pour déterminer l’azimut et l’orientation du périphérique.
  • Les magnétomètres modernes utilisent l’effet AMR (magnétorésistance anisotrope), offrant une sensibilité de 0,3 µT et une taille compacte de 2×2 mm.
  • Des lectures précises de la boussole nécessitent un étalonnage pour compenser les champs magnétiques des haut-parleurs, du moteur de vibration et de l’appareil photo du smartphone.
  • La direction du nord est calculée par fusion de capteurs — combinaison des données du magnétomètre avec l’accéléromètre et le gyroscope pour la correction d’inclinaison.
  • La boussole numérique est utilisée en navigation, cartographie, réalité augmentée, astronomie et suivi de condition physique pour déterminer l’orientation et la direction du mouvement.
  • Sur Android, l’accès à la boussole se fait via TYPE_MAGNETIC_FIELD avec calcul de l’azimut via getRotationMatrix et getOrientation.
  • La déclinaison magnétique (angle entre le nord magnétique et le nord géographique) est corrigée automatiquement dans les API de navigation de Google et Apple.

Nous développerons une application mobile clé en main

IT Sectr crée des applications iOS et Android pour les startups et les entreprises depuis 2017. Nous vous conseillerons et vous proposerons la meilleure solution.

Discuter du projet

Lisez aussi