Verifica i sensori di movimento del telefono o del tablet: una livella a bolla costruita sull'accelerometro, una verifica guidata degli assi, un giro della bussola e una misura della deriva presa con il dispositivo immobile. Tutto avviene nel browser.
In attesa della prima lettura
Prendi il dispositivo e muovilo. Su un sensore non si afferma nulla finché non ha davvero segnalato qualcosa: un browser espone gli stessi eventi anche su un computer fisso senza il minimo accelerometro, riempiendoli di valori nulli.
Ancora nessuna lettura dell'accelerometro
Una livella a bolla ha bisogno della gravità, e la gravità arriva con l'accelerometro. Muovi il dispositivo, oppure controlla qui sopra che l'accesso al movimento sia consentito.
Apri questa pagina sul dispositivo che vuoi verificare. Un computer fisso non ha nessuno di questi sensori, e nessun browser se li inventerà.
Il rilevamento del movimento di un telefono è fatto di tre componenti separati che fingono di essere uno solo: un chip che sente dove sta il basso, un chip che sente la rotazione e un chip che sente il campo magnetico terrestre. Ognuno si guasta per conto proprio, a modo suo, e ognuno viene verificato separatamente qui sopra.
L'accelerometro misura forza, e a riposo quella forza è la gravità: è così che un telefono sa da che parte sta l'alto, e da solo basta per la rotazione dello schermo e per il contapassi. Il giroscopio misura la rotazione, ed è ciò che accompagna una telecamera in una panoramica veloce e un visore in un movimento della testa, perché risponde in millisecondi dove la gravità impiega un attimo ad assestarsi. Il magnetometro misura il campo terrestre e dà agli altri due un nord a cui aggrapparsi. I telefoni economici montano solo un accelerometro; quando un gioco dice che il dispositivo non è supportato, di solito è il giroscopio a mancare.
Ogni accelerometro ha un offset — una piccola costante che somma a quanto misura — e il telefono ne sottrae un valore di fabbrica. Se il telefono cade, o se gli si sostituisce il display, il sistema di riferimento del sensore si sposta rispetto alla scocca su cui era stato calibrato e la correzione non corrisponde più. Il risultato è una livella che segna un grado o due su una superficie perfettamente piana, e nessuna lettura singola può rivelarlo. Girare il dispositivo di 180° è ciò che separa le due cose, ed è ciò che fa la verifica qui sopra.
Un giroscopio a riposo segnala una piccola rotazione diversa da zero, e tutto ciò che ci si costruisce sopra deve continuare a sottrarre quel numero. Finché resta stabile la sottrazione funziona e nessuno se ne accorge. Quando cresce — con l'età, con la temperatura, dopo un colpo — la correzione resta indietro: la telecamera di un gioco scivola da sola, la bussola ruota mentre il telefono è fermo, e il mondo di un visore ruota lentamente. Venti secondi di immobilità bastano a misurarlo.
Un magnetometro misura un campo di circa mezzo gauss, e quasi tutto ciò che ha intorno è più forte: una custodia con chiusura magnetica, un supporto da auto, un altoparlante, il coperchio di un portatile, l'acciaio nel pavimento. La maggior parte di ciò che sembra una bussola rotta è interferenza, e l'otto che le app di mappe chiedono di disegnare è il telefono che ricostruisce la propria correzione da un insieme fresco di direzioni. Il guasto vero ha un'altra forma: la prua salta invece di scorrere, ed è per questo che la prova qui sopra è un giro completo e non una singola lettura.
I sensori stanno sulla scheda madre, e i sistemi di riferimento su cui sono calibrati appartengono alla scocca. Una sostituzione del display, un cambio di batteria o una scocca aperta e richiusa possono spostare entrambi. Una livella che all'improvviso sbaglia, una bussola che chiede di continuo di essere calibrata e un giroscopio che deriva dove prima non lo faceva vanno controllati insieme su un dispositivo appena aperto.
Dai dati di movimento si può ricavare che cosa qualcuno sta digitando e riconoscere un dispositivo dalle imperfezioni esatte dei suoi sensori, così WebKit ha smesso di darli gratis: su iPhone e iPad una pagina deve chiederli, da un tocco reale e su https. Chrome su Android non chiede — per questo la pagina mostra un pulsante su uno e non sull'altro. In entrambi i casi le letture restano nella pagina: da qui non parte nulla.