Hoe waterpas-apps werken: de versnellingsmeter uitgelegd
Je telefoon weet welke kant omlaag is dankzij een piepklein onderdeeltje: een MEMS-versnellingsmeter. Die sensor meet hoe de zwaartekracht in drie richtingen tegelijk aan de telefoon trekt. Een waterpas-app leest die drie getallen, doet wat trigonometrie en toont je een hoek. Dat gebeurt honderden keren per seconde, in een chip die je met het blote oog nauwelijks kunt zien. Dit artikel laat zien wat er echt gebeurt.
- De versnellingsmeter meet hoe de zwaartekracht zich over drie assen verdeelt. Beweging meet hij niet zolang de telefoon stilligt.
- Pitch en roll komen uit arctan-formules die op die drie zwaartekrachtwaarden worden losgelaten.
- Spirit Level Pro haalt de rauwe waarden door een exponentieel voortschrijdend gemiddelde (alpha=0,15) zodat de bel niet trilt.
- MEMS-sensoren lopen weg met de temperatuur, dus kalibreer waar je werkt.
- Voor een telefoon die stil tegen een oppervlak ligt, doet de versnellingsmeter het hele werk. De gyroscoop heb je niet nodig.
Wat is een MEMS-versnellingsmeter?
MEMS staat voor Micro-Electro-Mechanical Systems. Het meetelement in een telefoonversnellingsmeter is minuscuul, een paar honderd micron breed, kleiner dan een zoutkorrel. Het zit op hetzelfde silicium als de gewone chipelektronica en wordt op dezelfde manier gemaakt. Daarom zijn deze sensoren goedkoop en zitten ze in bijna elke telefoon.
Het mechanisme is simpel zodra je het voor je ziet. Een piepkleine massa hangt aan siliciumveertjes die in de chip zijn geëtst. Kantel je de chip, dan trekt de zwaartekracht de massa een klein stukje uit het midden. Die beweging verandert de afstand tussen kamvormige metalen vingertjes, en die veranderende afstand verandert de capaciteit ertussen. De chip leest die verandering af en zet die om in een versnellingsgetal, gemeten in g.
Dit is het stukje dat een waterpas mogelijk maakt. Als de telefoon stilligt, meet de versnellingsmeter geen beweging. Hij meet hoeveel van de zwaartekracht langs elk van zijn drie assen trekt. Zwaartekracht is een vaste, bekende kracht. Zodra je weet hoe die zich over de drie assen verdeelt, kun je precies uitrekenen hoe de telefoon gekanteld staat.
Hoe meet een drie-assige versnellingsmeter kanteling?
Een drie-assige versnellingsmeter geeft de telefoon zijn eigen set richtingen: X loopt van links naar rechts, Y van boven naar beneden en Z van voor naar achter. Leg de telefoon plat op tafel en de zwaartekracht trekt bijna volledig langs Z, dus Z leest ongeveer 9,81 m/s² en X en Y zitten dicht bij nul. Kantel de telefoon en de zwaartekracht verschuift: minder op Z, meer op X en Y, in verhouding tot de hoek.
Die drie waarden omzetten in hoeken is basis-trigonometrie. Pitch is de kanteling voor-naar-achter, roll de kanteling links-naar-rechts, en beide komen uit een arctangens:
Die twee regels zijn de hele rekenkern van een waterpas-app. Voer de drie rauwe waarden in, draai de berekening en je krijgt pitch en roll in radialen. Vermenigvuldig met 180/π voor graden. Dat is het getal op je scherm.
Je vraagt je misschien af waarom de noemer de wortel van de twee andere assen gebruikt en niet gewoon één as. Zo blijft de aflezing stabiel door een volledige draai heen. Deel je door één as, dan loopt de rekensom vast in de buurt van verticaal, want die as zakt naar nul en dan deel je door bijna niets. Door de gecombineerde grootte van beide andere assen te gebruiken, voorkom je dat.
Spirit Level Pro toont live pitch- en rollhoeken met EMA-afvlakking, vijf tolerantie-instellingen en kalibratie met één tik. Geen download nodig.
Probeer Spirit Level Pro gratisWaarom is rauwe sensordata zo onrustig?
De rauwe uitvoer van een versnellingsmeter springt meer heen en weer dan je zou verwachten. Zelfs een telefoon die muurvast stilligt laat kleine schommelingen zien. Een deel daarvan is elektrische ruis in de sensor zelf, een deel is trilling die via het oppervlak binnenkomt, en een deel is afrondingsfout terwijl het analoge signaal in getallen wordt omgezet. Zet die rauwe stroom op het scherm en de bel trilt aan één stuk door, wat onbruikbaar is voor precies werk.
De ruis komt uit een paar hoeken. Thermische ruis is willekeurige elektrische schommeling door warmte. Die krijg je er niet uit, en die bepaalt hoe stil de sensor ooit kan zijn. Trillingsruis komt uit je omgeving: een koelkastcompressor, voetstappen, verkeer buiten. En het nulpunt van de sensor loopt vanzelf langzaam weg in de loop van de tijd. Elk daarvan vraagt om een andere aanpak.
De gebruikelijke oplossing in software is een laagdoorlaatfilter. Dat laat langzame veranderingen door, zoals een echte kanteling, en houdt snelle tegen, zoals trilling. De gangbare manier is een exponentieel voortschrijdend gemiddelde, oftewel EMA. Elke nieuwe aflezing telt voor een fractie, alpha, en de rest komt over van de vorige gefilterde waarde:
Spirit Level Pro gebruikt een EMA met alpha=0,15. Op dat getal kwamen we uit na een reeks waarden met de hand te hebben geprobeerd. Bij alpha=0,05 was de aflezing spiegelglad maar traag, en liep de bel achter op de telefoon als je die bewoog. Bij alpha=0,3 hield de bel goed bij, maar trilde net genoeg om een precieze aflezing lastig te maken. Alpha=0,15 zit ertussenin. De bel voelt levend zonder nerveus te doen.
Welke rol speelt de gyroscoop?
De gyroscoop meet hoe snel de telefoon draait, in graden per seconde. Hij meet niet welke kant de telefoon op wijst. Dat verschil telt. Op zichzelf kan de gyroscoop je niet vertellen of de telefoon waterpas is. Hij weet alleen of hij draait en hoe snel. Voor een aflezing met de telefoon stil in de hand heeft de versnellingsmeter al alles wat nodig is.
De gyroscoop verdient zijn plek als de telefoon beweegt, via sensorfusie. Versnellingsmeters lezen statische kanteling goed af, maar worden traag en onrustig tijdens snelle beweging. Gyroscopen volgen snelle rotatie goed, maar lopen weg, omdat hun kleine foutjes zich in de tijd opstapelen. Een complementair filter of Kalman-filter combineert de twee: de gyroscoop pakt de snelle beweging, en de versnellingsmeter trekt de aflezing op de lange duur terug naar waar.
De meeste waterpas-apps, Spirit Level Pro daarbij, slaan sensorfusie over omdat het werk statisch is. Je legt de telefoon neer, hij komt tot rust, je leest de hoek af. Dat regelt de versnellingsmeter prima in zijn eentje. Sensorfusie telt meer als iets in de lucht is, zoals een drone die zijn eigen beweging volgt, dan wanneer je een plank controleert.
Waarom is kalibreren zo belangrijk?
Elke MEMS-sensor komt met een kleine ingebouwde offset uit de fabriek. Dat is een afwijking die tijdens de productie ontstaat, en hij is op elke aflezing hetzelfde: een vaste hoeveelheid, in een vaste richting. Daardoor kan de chip een graad of twee mis zitten, ook als de telefoon echt vlak ligt. Dit is de belangrijkste reden waarom een waterpas-app er meteen uit de doos verkeerd uitziet.
Kalibreren lost dat op door die offset te meten op een oppervlak waarvan je zeker weet dat het vlak is, en die vervolgens op te slaan. Spirit Level Pro bewaart de waarden in localStorage onder calibrationPitch en calibrationRoll. Vanaf dat moment trekt elke aflezing die opgeslagen getallen eraf voordat het op je scherm komt. De offset is weg.
Het verschil is groot. Sla je kalibreren over, dan leest een telefoon met een offset van 1,5° overal 1,5° verkeerd af. Hij kan 0,0° tonen terwijl hij op een echte helling van 1,5° staat. Kalibreer dezelfde telefoon en het zakt terug naar een paar tienden van een graad. Dat is de grootste nauwkeurigheidswinst die je kunt boeken, en het kost je niets dan een paar seconden.
Hoe beïnvloedt temperatuur de nauwkeurigheid?
MEMS-sensoren reageren op temperatuur. De siliciumveertjes die de massa dragen zetten uit en krimpen terwijl de chip opwarmt en afkoelt, en dat verschuift het nulpunt. Draag een telefoon van een warme auto een koude garage in en de aflezing loopt een beetje weg voordat de sensor tot rust komt op de nieuwe temperatuur. Het is geen enorme verschuiving, maar hij is er wel.
De praktische boodschap is simpel: kalibreer op de temperatuur waar je gaat werken. Een kalibratie in een warm kantoor houdt in een koude garage niet helemaal stand. Je hoeft hier niet bij elke klus over te zeuren. Voor een schilderij ophangen of een plank controleren is de afwijking te klein om te zien. Voor precies werk binnen een paar tienden van een graad geef je de telefoon na een grote temperatuurwissel een minuut of twee om tot rust te komen, en kalibreer je dan.
iPhone versus Android: is de sensorhardware anders?
Dat is zo, en je merkt het aan hoe de app aanvoelt. Apple bouwt zijn eigen bewegingsstack. iPhones vanaf de 6s hebben een bewegingscoprocessor van Apple die de sensordata los van de hoofd-CPU verwerkt. Samsung Galaxy-toppers leunen op onderdelen van STMicroelectronics, die een drie-assige versnellingsmeter en drie-assige gyroscoop op één chip stoppen. Google Pixel-telefoons gebruikten sensoren van Bosch en TDK InvenSense, afhankelijk van het jaar.
Na kalibratie komen een topmodel iPhone en een topmodel Android ongeveer gelijk uit. Het gat dat echt telt zit tussen topmodel en budget-Android. Budgettelefoons gebruiken goedkopere MEMS met lagere resolutie, en hun rauwe uitvoer is onrustiger. Kalibreren trekt ze toch dichtbij, en voor de meeste klusjes is het resultaat prima.
Wat de iPhone in een waterpas-app onderscheidt, is niet zozeer de versnellingsmeter maar die bewegingscoprocessor. Die blijft in hoog tempo sensordata verzamelen, ook als de app niet op de voorgrond staat, zodat het afvlakkingsfilter meer monsters heeft om mee te werken. Dat is een groot deel van waarom iPhones hier zo soepel aanvoelen, zelfs tegenover Android-telefoons met sensoren die op papier net zo goed zijn.
Veelgestelde vragen
Hoe werken waterpas-apps op een telefoon?
Ze lezen de MEMS-versnellingsmeter van de telefoon, die meet hoe de zwaartekracht langs drie assen (X, Y, Z) trekt. Kantel de telefoon en de zwaartekracht verschuift tussen die assen. De app draait arctan-formules voor pitch en roll, vlakt het resultaat af om sensorruis te temmen en toont het als een bel of een getal. Dat hele proces draait honderden keren per seconde.
Hoe nauwkeurig is een telefoonversnellingsmeter voor waterpasgebruik?
Een gekalibreerde topmodel-telefoon leest tot op een paar tienden van een graad af. Budget-Android-telefoons doen het ongekalibreerd slechter, omdat hun sensoren goedkoper zijn en meer verschillen per exemplaar. De grootste factor is kalibreren: dat haalt de fabrieksoffset eruit en trekt bijna elke telefoon dichtbij. Voor de meeste klussen thuis en in het vak is een gekalibreerde middenklasser nauwkeurig genoeg.
Gebruikt een waterpas-app de gyroscoop?
Bij een stilliggende telefoon niet. De versnellingsmeter geeft je de kantelhoek in zijn eentje. De gyroscoop meet draaisnelheid, geen positie, dus hij kan niet zeggen of de telefoon waterpas is, alleen hoe snel hij draait. Sommige apps combineren beide sensoren voor soepeler aflezingen tijdens beweging, maar voor een telefoon tegen een muur drukken en de hoek aflezen doet de versnellingsmeter het hele werk.
Waarom leest mijn waterpas-app iets verkeerd af, zelfs op een vlak oppervlak?
Meestal is het de fabrieksoffset. Elke MEMS-chip heeft een kleine ingebouwde afwijking waardoor hij niet op nul uitkomt, zelfs als de telefoon vlak ligt. Kalibreren op een oppervlak dat je vertrouwt haalt dat eruit. Andere oorzaken zijn temperatuurverloop, een telefoonhoes die één rand optilt op het oppervlak, of stof onder de telefoon. Kalibreren op een schone glazen tafel na een grote temperatuurwissel lost het meeste op.
Het complete plaatje
Waterpas-apps werken omdat de natuurkunde erachter betrouwbaar is. Zwaartekracht is constant, de versnellingsmeter meet die de hele tijd, en trigonometrie zet drie getallen om in een hoek. De weg van meetelement naar bel is de hele tijd vaste wiskunde. Er zit geen giswerk in.
Wat de ene waterpas-app beter maakt dan de andere is niet de hardware. Elke topmodel-telefoon komt al met sensoren die ruim goed genoeg zijn. Het verschil zit in de software: hoe goed de rauwe stroom wordt gefilterd, hoe kalibratie wordt opgeslagen en toegepast, hoe de tolerantie-instellingen aansluiten op echte klussen. Krijg je dat goed voor elkaar, dan houdt een goedkope MEMS-chip zijn eigen tegen aparte gereedschappen die veel meer kosten.
Weten hoe de sensor werkt maakt je er ook beter in. Kalibreer op werktemperatuur. Haal de hoes eraf voor precieze aflezingen. Laat het getal een seconde tot rust komen voordat je het vertrouwt. Elk van die gewoonten komt rechtstreeks voort uit begrijpen wat de hardware doet.