Un gyroscope est un capteur qui mesure la vitesse angulaire de rotation d’un appareil autour de trois axes. Contrairement à un accéléromètre, qui mesure l’accélération linéaire, un gyroscope détecte la rotation et l’orientation dans l’espace. Selon STMicroelectronics, 2024, les gyroscopes MEMS modernes atteignent une précision allant jusqu’à 0,01 degré par seconde, ce qui permet de les utiliser en navigation, stabilisation d’image et applications de RA.
Points clés
Un gyroscope dans un smartphone est un capteur microélectromécanique (MEMS) qui mesure la vitesse angulaire de rotation de l’appareil. Contrairement aux gyroscopes mécaniques utilisés en aviation, un gyroscope MEMS est une puce en silicium de 2×2×1 mm montée sur la carte mère du téléphone.
Les smartphones modernes utilisent exclusivement des gyroscopes MEMS de type vibrant — tuning-fork et ring-design. Ils n’ont pas de pièces rotatives, ce qui garantit une durabilité allant jusqu’à 10 ans de fonctionnement continu. Les principaux fabricants sont Bosch Sensortec (série BMI), STMicroelectronics (séries L3G, A3G) et InvenSense (série ICM).
Un gyroscope MEMS typique a une plage de mesure de ±125 à ±2000 °/s, une fréquence d’échantillonnage allant jusqu’à 32 kHz et une consommation de courant de 3–6 mA. Selon Bosch Sensortec BMI160 (2023), le niveau de bruit est de 0,007 °/s/√Hz pour une plage de ±125 °/s — suffisant pour un suivi précis des rotations.
| Paramètre | Valeur |
|---|---|
| Technologie | MEMS (vibrant) |
| Plage | ±125 — ±2000 °/s |
| Consommation | 3–6 mA |
| Taille | 2×2×1 mm |
| Bruit | 0,007 °/s/√Hz |
Le principe de fonctionnement d’un gyroscope MEMS repose sur l’effet Coriolis. À l’intérieur de la puce se trouve une masse de silicium qui vibre à une fréquence spécifique (15–30 kHz). Lorsque l’appareil tourne, la force de Coriolis agit sur la masse vibrante, proportionnellement à la vitesse angulaire.
Les éléments clés d’un gyroscope MEMS sont les électrodes d’excitation qui créent les vibrations et les électrodes de détection qui mesurent le déplacement. Selon l’article de recherche « MEMS Gyroscopes for Consumer Electronics » (IEEE, 2023), une conception typique comprend 4–8 structures en peigne disposées symétriquement autour de la masse centrale.
Les gyroscopes modernes transmettent les données via les bus I²C ou SPI. Le contrôleur du smartphone reçoit les valeurs de vitesse angulaire sur trois axes — X (Pitch), Y (Roll) et Z (Yaw). Le CAN intégré convertit le signal capacitif en valeurs numériques avec une résolution de 16–24 bits. La fréquence de mise à jour en mode jeu atteint 400 Hz.
Un accéléromètre mesure l’accélération linéaire — le changement de vitesse d’un objet le long des axes. Un gyroscope mesure la rotation — la vitesse de changement d’angle. Ces capteurs sont complémentaires : l’accéléromètre fournit l’orientation par rapport au vecteur de gravité, mais ne distingue pas l’inclinaison du mouvement linéaire. Le gyroscope suit les rotations indépendamment de la gravité, mais est sujet à la dérive.
Dans les applications réelles, on utilise la fusion de capteurs — un algorithme qui combine les données du gyroscope, de l’accéléromètre et du magnétomètre. Le filtre de Mahony ou le filtre complémentaire calculent des quaternions d’orientation avec une précision de 2 degrés en statique et de 5 degrés en dynamique. Android fournit le capteur virtuel TYPE_ROTATION_VECTOR au niveau du framework.
val rotationVector = sensorManager
.getDefaultSensor(Sensor.TYPE_ROTATION_VECTOR)
val callback = object : SensorEventListener {
override fun onSensorChanged(event: SensorEvent) {
val quat = FloatArray(4)
SensorManager.getQuaternionFromVector(quat, event.values)
// quat[0..3] — quaternion d’orientation
}
}
Android propose deux types de capteurs gyroscopiques : TYPE_GYROSCOPE (calibré, sans dérive) et TYPE_GYROSCOPE_UNCALIBRATED (données brutes avec estimation de la dérive). L’accès se fait via SensorManager.getDefaultSensor(). Les données sont retournées en rad/s — radians par seconde.
L’enregistrement d’un écouteur pour le gyroscope nécessite de spécifier un délai : SENSOR_DELAY_GAME (20 ms) pour les jeux, SENSOR_DELAY_UI (67 ms) pour l’interface, SENSOR_DELAY_FASTEST (0 ms) pour la fréquence maximale. Sans annulation de l’enregistrement dans onPause(), la batterie se décharge en 2–3 heures.
class GyroActivity : AppCompatActivity() {
private lateinit var sensorManager: SensorManager
private var gyroscope: Sensor? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
sensorManager = getSystemService(SENSOR_SERVICE) as SensorManager
gyroscope = sensorManager.getDefaultSensor(
Sensor.TYPE_GYROSCOPE
)
}
override fun onResume() {
super.onResume()
gyroscope?.let { sensor ->
sensorManager.registerListener(
this, sensor, SensorManager.SENSOR_DELAY_GAME
)
}
}
}
Les données brutes de event.values[0..2] correspondent à la vitesse angulaire sur X, Y et Z. Pour obtenir l’angle de rotation, il faut intégrer la vitesse angulaire dans le temps. À 50 Hz, l’erreur d’intégration est d’environ 1 degré par minute — acceptable pour les jeux mais insuffisante pour la navigation sans correction.
La dérive du zéro (bias drift) est le principal problème des gyroscopes MEMS. Même au repos, le capteur peut afficher une vitesse angulaire non nulle (0,1–2 °/s). La cause en est les variations de température et les contraintes mécaniques dans la structure en silicium. Les fabricants compensent cet effet au niveau matériel.
Le système Android étalonne automatiquement le gyroscope au premier démarrage ou lors d’un changement de température. Le processus d’étalonnage prend 10–30 secondes et ne nécessite aucune intervention de l’utilisateur — il suffit de placer le téléphone sur une surface fixe. La méthode calibrate() n’est pas disponible sur tous les appareils. Pour un étalonnage forcé, on utilise TYPE_GYROSCOPE_UNCALIBRATED en obtenant le décalage de bias via event.values[3..5].
private fun handleUncalibratedGyro(event: SensorEvent) {
val rawX = event.values[0] // rad/s non étalonné
val biasX = event.values[3] // décalage axe X
val calibratedX = rawX - biasX
applyCalibrationToFusion(
calibratedX,
event.values[1] - event.values[4],
event.values[2] - event.values[5]
)
}
Le gyroscope est utilisé dans des dizaines de scénarios — de la stabilisation de caméra aux casques VR comme Google Cardboard. L’ARKit d’Apple et l’ARCore de Google utilisent le gyroscope comme capteur principal pour le suivi de la rotation de la tête. Selon Apple ARKit Technical Specification (2024), le gyroscope associé à un accéléromètre offre une précision de suivi allant jusqu’à 0,5 degré.
Au-delà de l’électronique grand public, les gyroscopes sont utilisés en robotique et dans les UAV. Les robots mobiles basés sur Android Things et ROS (Robot Operating System) utilisent des gyroscopes MEMS pour la stabilisation du mouvement et l’odométrie. Selon l’étude IEEE « MEMS IMU in Robotics » (2024), la précision de positionnement d’un robot mobile avec gyroscope est 3 à 5 fois supérieure à celle de la seule odométrie roue, en particulier sur les surfaces glissantes. Dans les drones grand public, le gyroscope associé à un baromètre maintient l’altitude de vol avec une précision de 0,5 mètre par vent allant jusqu’à 10 m/s.
Pour les applications de RA, le gyroscope est le capteur principal déterminant la position des objets virtuels par rapport au monde réel. Google ARCore utilise le gyroscope pour le suivi du mouvement de l’appareil à 1000 Hz (via un échantillonnage interne, indépendant de la fréquence de l’API). L’ARKit d’Apple atteint une précision de positionnement de 0,5 degré en mouvement, ce qui est suffisant pour superposer des meubles virtuels ou des personnages de jeu sur la scène réelle.
La nouvelle génération d’IMU 6 axes (InvenSense ICM-42688, 2024) intègre un gyroscope et un accéléromètre dans une seule puce avec une consommation de 0,45 mA en mode basse consommation. Le développement de gradiomètres et de gyroscopes atomiques pour appareils mobiles reste au stade de prototype de laboratoire. Des gyroscopes MEMS de qualité commerciale avec une précision de 0,001 °/s sont attendus d’ici 2028.
Foire aux questions
Le gyroscope détecte la rotation et l’orientation de l’appareil dans l’espace. Sans lui, le mode VR, la rotation automatique par inclinaison, la stabilisation vidéo et les applications de RA seraient impossibles. Les téléphones modernes ne peuvent pas fonctionner sans gyroscope.
Un accéléromètre mesure l’accélération linéaire (mouvement et inclinaison par rapport à la gravité). Un gyroscope mesure la vitesse angulaire (rotation). L’accéléromètre ne peut pas distinguer la rotation de l’appareil de son mouvement linéaire — le gyroscope résout ce problème.
Android utilise un étalonnage automatique. Pour un étalonnage manuel, téléchargez des applications comme « GPS Status & Toolbox » — elles vous guident pour placer le téléphone sur une surface plane et étalonner via TYPE_GYROSCOPE_UNCALIBRATED.
C’est la dérive du zéro — une propriété naturelle des capteurs MEMS. Même les gyroscopes coûteux ont un décalage de 0,1–2 °/s au repos. L’étalonnage soustrait ce décalage. Si la dérive dépasse 5 °/s, le capteur est défectueux.
Utilisez SensorManager.getDefaultSensor(Sensor.TYPE_GYROSCOPE) et enregistrez un SensorEventListener. Les données arrivent en rad/s sur trois axes. Pour les jeux, utilisez SENSOR_DELAY_GAME (20 ms) ; pour l’arrière-plan, SENSOR_DELAY_UI (67 ms).
Résumé
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.
Lisez aussi