Vérifiez les capteurs de mouvement de votre téléphone ou de votre tablette : un niveau à bulle bâti sur l'accéléromètre, une vérification guidée des axes, un balayage de boussole et une mesure de dérive prise pendant que l'appareil reste immobile. Tout s'exécute dans le navigateur.
En attente de la première mesure
Prenez l'appareil et bougez-le. Rien n'est affirmé d'un capteur avant qu'il ait réellement annoncé quelque chose : un navigateur expose les mêmes événements sur un ordinateur de bureau dépourvu du moindre accéléromètre, et les remplit de valeurs nulles.
Pas encore de mesure de l'accéléromètre
Un niveau à bulle a besoin de la pesanteur, et la pesanteur arrive avec l'accéléromètre. Bougez l'appareil, ou vérifiez ci-dessus que l'accès au mouvement est autorisé.
Ouvrez cette page sur l'appareil que vous voulez tester. Un ordinateur de bureau n'a aucun de ces capteurs, et aucun navigateur ne les inventera.
La détection de mouvement d'un téléphone, ce sont trois composants distincts qui se font passer pour un seul : une puce qui sent où est le bas, une puce qui sent la rotation et une puce qui sent le champ magnétique terrestre. Chacune tombe en panne de son côté, à sa manière, et chacune est vérifiée séparément ci-dessus.
L'accéléromètre mesure une force, et au repos cette force est la pesanteur : c'est ainsi qu'un téléphone sait où est le haut, et cela suffit à lui seul pour la rotation de l'écran et le podomètre. Le gyroscope mesure la rotation, et c'est lui qui accompagne une caméra dans un panoramique rapide et un casque dans un mouvement de tête, parce qu'il répond en millisecondes là où la pesanteur met un instant à se stabiliser. Le magnétomètre mesure le champ terrestre et donne aux deux autres un nord auquel se raccrocher. Les téléphones bon marché n'embarquent qu'un accéléromètre ; quand un jeu annonce que votre appareil n'est pas pris en charge, c'est généralement le gyroscope qui manque.
Tout accéléromètre possède un décalage — une petite constante qu'il ajoute à ce qu'il mesure — et le téléphone en soustrait une valeur d'usine. Faites-le tomber, ou faites remplacer l'écran, et le repère du capteur se décale par rapport au châssis sur lequel il a été étalonné : la correction ne colle plus. Résultat, un niveau qui annonce un ou deux degrés sur une surface parfaitement plane, et aucune mesure isolée ne le révèle. Retourner l'appareil de 180° est ce qui sépare les deux, et c'est ce que fait la vérification ci-dessus.
Un gyroscope au repos annonce une petite rotation non nulle, et tout ce qui repose dessus doit soustraire ce nombre en permanence. Tant qu'il reste stable, la soustraction fonctionne et personne ne s'aperçoit de rien. Quand il grandit — avec l'âge, avec la température, après un choc —, la correction décroche : la caméra d'un jeu se met à glisser, la boussole tourne alors que le téléphone est posé, et le monde d'un casque pivote lentement. Vingt secondes d'immobilité suffisent à le mesurer.
Un magnétomètre mesure un champ d'environ un demi-gauss, et presque tout ce qui l'entoure est plus fort : une coque à fermeture magnétique, un support de voiture, un haut-parleur, un capot d'ordinateur portable, l'acier d'un plancher. L'essentiel de ce qui ressemble à une boussole cassée n'est que de l'interférence, et le huit que les applications de cartes demandent de tracer, c'est le téléphone qui reconstruit sa correction à partir d'un jeu de directions frais. La vraie panne a une autre allure : le cap saute au lieu de glisser — d'où un test qui demande un tour complet plutôt qu'une seule mesure.
Les capteurs sont posés sur la carte mère, et les repères sur lesquels ils sont étalonnés appartiennent au châssis. Un remplacement d'écran, un changement de batterie ou une coque ouverte puis refermée peuvent déplacer les deux. Un niveau qui se met soudain à mentir, une boussole qui réclame sans cesse un étalonnage et un gyroscope qui dérive là où il ne dérivait pas méritent d'être examinés ensemble sur un appareil qu'on vient d'ouvrir.
Les données de mouvement permettent de deviner ce que quelqu'un tape et d'identifier un appareil aux imperfections exactes de ses capteurs ; WebKit a donc cessé de les distribuer gratuitement : sur iPhone et iPad, une page doit les demander, depuis un vrai appui, en https. Chrome sur Android ne demande pas — d'où un bouton sur l'un et pas sur l'autre. Dans les deux cas les mesures restent dans la page : rien ne part d'ici.