Stappenteller in mobiele apps: wat is het, hoe werkt het en waar wordt het toegepast

Auteur: IT Sectr Gepubliceerd: 2026-03-25 Leestijd: 8 min

Een stappenteller (pedometer) in mobiele apps is een software-hardwaremechanisme voor het tellen van stappen van de gebruiker op basis van gegevens van de accelerometer en het gyroscoop. Moderne smartphones gebruiken algoritmen voor machinelearning in combinatie met sensoren voor het nauwkeurig bepalen van lopen, rennen en andere vormen van fysieke activiteit. Volgens gegevens van Apple HealthKit Documentation, 2025 bereikt de nauwkeurigheid van het tellen van stappen op moderne apparaten 95–97% bij normaal lopen.

Belangrijkste punten

  • Stappenteller (pedometer) — functie voor het tellen van stappen op basis van analyse van gegevens van de accelerometer, het gyroscoop en machinelearning-algoritmen.
  • Moderne stappentelleralgoritmen kunnen lopen, rennen en traplopen onderscheiden en automatisch het type activiteit van de gebruiker bepalen.
  • De belangrijkste sensor voor het tellen van stappen is de accelerometer, die bij elke stap de versnelling langs drie assen registreert.
  • Op iOS krijgen ontwikkelaars toegang tot de stappenteller via CMPedometer uit Core Motion, op Android via de Sensor API met TYPE_STEP_COUNTER.
  • De nauwkeurigheid van het tellen van stappen hangt af van de locatie van het apparaat: de stappenteller werkt het nauwkeurigst wanneer de smartphone in een broekzak of aan een riem wordt gedragen.

Wat is een stappenteller in een mobiele app?

Stappenteller (pedometer) in mobiele apps is een functie die het aantal stappen van de gebruiker bepaalt op basis van gegevens van de ingebouwde bewegingssensoren van de smartphone. In tegenstelling tot mechanische stappentellers uit het verleden, gebruikt de mobiele stappenteller micro-elektromechanische sensoren (MEMS) en algoritmen voor digitale signaalverwerking voor het nauwkeurig tellen van locomoties. Moderne implementaties tellen niet alleen stappen, maar classificeren ook de activiteit: lopen, rennen, traplopen.

Integratie van de stappenteller in mobiele apparaten werd mogelijk dankzij de komst in 2013 van de M7-bewegingscoprocessor in de iPhone 5s, die continu gegevens van sensoren verzamelde met minimaal energieverbruik. Tegenwoordig hebben alle moderne smartphones hardware-ondersteuning voor het tellen van stappen op het niveau van een sensorhub — een dedicated chip die gegevens van inertiële sensoren verwerkt zonder de hoofdprocessor te wekken.

Hoe werkt het tellen van stappen op een smartphone

Het tellen van stappen op een smartphone is gebaseerd op analyse van accelerometersignalen, die de versnelling van het apparaat langs drie loodrechte assen (X, Y, Z) meten. Bij het lopen creëert elke stap een karakteristiek versnellingspatroon: eerst een piek omhoog bij het optillen van het been, dan een piek omlaag bij het landen. De stapfrequentie (cadans) is 100–130 stappen/min voor lopen en 150–180 stappen/min voor rennen, en de versnellingsamplitude is 2–6 m/s².

Verwerking van het accelerometersignaal

Het ruwe signaal van de accelerometer bevat ruis en hoogfrequente storingen, daarom is de eerste verwerkingsstap een laagdoorlaatfilter (low-pass filter) met een afsnijfrequentie van 3–5 Hz. Na filtering wordt de versnellingsvector berekend: a = sqrt(x² + y² + z²), die de versnelling gerelateerd aan beweging extraheert, onafhankelijk van de oriëntatie van het apparaat. Vervolgens detecteert het algoritme lokale maxima in het signaal — elk maximum komt overeen met één stap.

Om vals alarm te verminderen (bijvoorbeeld bij schudden in het vervoer) worden extra criteria toegepast: minimale stapamplitude (gewoonlijk >1,2 m/s²), minimaal interval tussen stappen (300–400 ms voor lopen) en controle van de periodiciteit van het signaal via autocorrelatie. Als de tijdsintervallen tussen pieken onregelmatig zijn, wordt de reeks gemarkeerd als willekeurige bewegingen en niet als stappen geteld.

Detectie van stappen via de accelerometer

Het basisalgoritme voor stapdetectie gebruikt de drempeldetectiemethode: het systeem zoekt naar momenten waarop het accelerometersignaal een ingestelde drempel overschrijdt en vervolgens terugkeert naar het rustniveau. Elke dergelijke gebeurtenis wordt beschouwd als een potentiële stap. Er zijn twee benaderingen: piekdetectie (peak detection) en nuldoorgang (zero-crossing). Piekdetectie registreert de maxima van het signaal, en zero-crossing — de momenten waarop het signaal de gemiddelde waarde passeert, wat minder afhankelijk is van de stapamplitude.

Drempelmethoden en adaptieve algoritmen

Moderne stap-telalgoritmen gebruiken een adaptieve drempel die zich automatisch aanpast aan de loopstijl van de gebruiker. Het systeem analyseert de variantie van het signaal over de laatste 2–3 seconden en berekent de dynamische drempel als de standaarddeviatie (RMS) vermenigvuldigd met een coëfficiënt. Dit maakt het mogelijk om stappen correct te tellen zowel bij een langzame wandeling als bij krachtig rennen zonder kruiskalibratie tussen activiteitstypen.

Stap-telalgoritmen en machinelearning

Moderne implementaties van de stappenteller gebruiken niet alleen piekdetectie, maar ook machinelearning voor de classificatie van bewegingspatronen. Neurale netwerkmodellen worden getraind op duizenden uren aan opnames van echte bewegingen uit verschillende scenario's: lopen op een vlakke ondergrond, traplopen, rennen, reizen met vervoer. Invoerkenmerken zijn de tijdreeksen van de accelerometer en het gyroscoop, en de uitvoer is de waarschijnlijkheid dat het huidige signaalsegment overeenkomt met menselijke locomotie.

Neurale netwerkmodellen voor activiteitsclassificatie

Volgens gegevens van Google Activity Recognition-onderzoek bereiken modellen op basis van convolutionele neurale netwerken (CNN) een nauwkeurigheid van 98% bij het herkennen van lopen op testdatasets. Op Apple-apparaten wordt Core ML gebruikt met het Activity Classification-model, getraind op gegevens van meer dan 100.000 vrijwilligers. Geoptimaliseerde modellen werken direct op het apparaat (on-device inference), wat zorgt voor directe verwerking en het behoud van de privacy van de gebruiker.

swift
import CoreMotion

class PedometerObserver {
    private let pedometer = CMPedometer()

    func startTracking() {
        guard CMPedometer.isStepCountingAvailable() else { return }
        
        pedometer.startUpdates(from: Date()) { data, error in
            guard let data = data else { return }
            
            let steps = data.numberOfSteps.intValue
            let distance = data.distance?.doubleValue
            let floorsAscended = data.floorsAscended?.intValue
            
            // UI bijwerken met het aantal stappen
            DispatchQueue.main.async {
                // self.stepsLabel.text = "\(steps) stappen"
            }
        }
    }

    func stopTracking() {
        pedometer.stopUpdates()
    }
}

Stappenteller op iOS en Android: API en mogelijkheden

Op iOS wordt voor toegang tot de stappenteller de klasse CMPedometer uit het Core Motion-framework gebruikt. CMPedometer biedt niet alleen het aantal stappen, maar ook de afgelegde afstand, het aantal verdiepingen (klimmen), het wandeltempo en de activiteitstijd. Gegevens zijn beschikbaar zowel in realtime (startUpdates) als voor elke willekeurige periode in het verleden (queryPedometerData). De bewegingscoprocessor (M-serie) verwerkt sensorgegevens op hardwareniveau, wat het energieverbruik met 80% vermindert in vergelijking met softwarematige verwerking.

Op Android wordt het werken met de stappenteller gerealiseerd via twee hardwaresensoren: TYPE_STEP_COUNTER (cumulatieve stappenteller sinds het opstarten) en TYPE_STEP_DETECTOR (genereren van een gebeurtenis bij elke stap). TYPE_STEP_COUNTER vereist geen kalibratie en verbruikt geen processorenergie — gegevens worden hardwarematig bijgewerkt op het niveau van de sensorhub. Voor toegang tot de verzamelde stapstatistieken per dag wordt de Google Fit API gebruikt met de registratie DataType.TYPE_STEP_COUNT_DELTA.

kotlin
import android.hardware.Sensor
import android.hardware.SensorEvent
import android.hardware.SensorEventListener
import android.hardware.SensorManager

class StepCounter(
    private val sensorManager: SensorManager
) : SensorEventListener {

    private var totalSteps = 0
    private var previousSteps = -1

    fun startListening() {
        val sensor = sensorManager.getDefaultSensor(Sensor.TYPE_STEP_COUNTER)
        sensor?.let {
            sensorManager.registerListener(this, it, SensorManager.SENSOR_DELAY_NORMAL)
        }
    }

    override fun onSensorChanged(event: SensorEvent) {
        if (previousSteps < 0) {
            previousSteps = event.values[0].toInt()
        }
        val currentSteps = event.values[0].toInt()
        totalSteps = currentSteps - previousSteps
    }

    fun getStepCount(): Int = totalSteps

    override fun onAccuracyChanged(sensor: Sensor?, accuracy: Int) {}
}

Nauwkeurigheid en beperkingen van de mobiele stappenteller

De nauwkeurigheid van de stappenteller hangt af van verschillende factoren: de locatie van de smartphone (in de hand, zak of tas), het type activiteit (lopen, rennen, traplopen) en de kwaliteit van de sensoren. Bij het dragen van de smartphone in een broekzak bedraagt de nauwkeurigheid 93–97%, in een tas of rugzak daalt deze tot 70–85%. De loopstijl van de gebruiker beïnvloedt ook de nauwkeurigheid: kleine stapjes met een kleine versnellingsamplitude geven meer fouten dan rustig lopen.

De belangrijkste beperkingen van mobiele stappentellers zijn: het onvermogen om stappen te tellen bij zeer langzame beweging (<1,5 km/u), vals alarm door reizen met vervoer, verminderde nauwkeurigheid bij hardlopen met lage snelheid (draf) en de invloed van handgebaren tijdens het praten. Om fouten te minimaliseren gebruiken moderne apps een combinatie van sensoren (accelerometer + gyroscoop + barometer) en machinelearning om artefacten weg te filteren. De barometer helpt bijvoorbeeld bij het bepalen van traplopen en hoogteverandering, waardoor valse stappen in de lift worden uitgesloten.

Veelgestelde vragen

Hoe werkt een stappenteller in een telefoon?

Stappenteller in de telefoon gebruikt de accelerometer, die bij elke stap de versnelling registreert. Het algoritme analyseert de versnellingspieken langs drie assen, filtert ruis en bepaalt het aantal stappen. Moderne modellen gebruiken ook het gyroscoop en machinelearning voor het verhogen van de nauwkeurigheid en classificatie van activiteit.

Hoe nauwkeurig is de stappenteller op een smartphone?

Bij het dragen van de smartphone in een broekzak bereikt de nauwkeurigheid 95–97% bij normaal lopen. In een tas of rugzak daalt de nauwkeurigheid tot 70–85%. De loopstijl en het type oppervlak beïnvloeden ook de nauwkeurigheid — oneffen terrein kan fouten tot 10–15% veroorzaken.

Kan een stappenteller werken zonder internet?

Ja, de stappenteller werkt volledig autonoom zonder internetverbinding. Alle berekeningen worden op het apparaat uitgevoerd met behulp van ingebouwde sensoren. Internet is alleen nodig voor het synchroniseren van gegevens met clouddiensten van fitnessapps of voor het weergeven van een routekaart.

Waarom geeft de stappenteller in verschillende apps verschillende getallen weer?

Verschillende apps gebruiken verschillende algoritmen voor het verwerken van sensorgegevens, drempels voor stapdetectie en filteringsmethoden. Sommige apps tellen stappen op basis van ruwe accelerometergegevens, andere via systeem-API's (TYPE_STEP_COUNTER), en het verschil in telling kan oplopen tot 10–15%.

Hoe krijg ik toegang tot de stappenteller in een Android-app?

Op Android gebruikt u voor toegang tot de stappenteller de TYPE_STEP_COUNTER-sensor via de Sensor API — deze geeft het cumulatieve aantal stappen sinds de laatste herstart van het apparaat. Voor toegang tot stappen van een specifieke dag integreert u de Google Fit API met het gegevenstype TYPE_STEP_COUNT_DELTA.

Samenvatting

  • Stappenteller (pedometer) — een functie van mobiele apparaten die het aantal stappen bepaalt op basis van gegevens van de MEMS-accelerometer en machinelearning-algoritmen.
  • De belangrijkste methode voor het tellen van stappen is piekdetectie en nuldoorgang in het accelerometersignaal, gevolgd door artefactfiltering en een adaptieve drempel.
  • Moderne implementaties gebruiken convolutionele neurale netwerken voor het classificeren van lopen, rennen en traplopen met een nauwkeurigheid tot 98%.
  • Op iOS gebeurt de toegang tot de stappenteller via CMPedometer (Core Motion), op Android via TYPE_STEP_COUNTER en Google Fit API.
  • Hardwarematig tellen van stappen op het niveau van de sensorhub wekt de hoofdprocessor niet, waardoor 80% minder energie wordt verbruikt in vergelijking met softwarematige verwerking.
  • De nauwkeurigheid van de stappenteller hangt af van de locatie van het apparaat: in een broekzak — tot 97%, in een tas — 70–85%. Oneffen terrein en langzaam lopen verminderen ook de nauwkeurigheid.
  • Om fouten te minimaliseren wordt een combinatie van sensoren gebruikt: accelerometer + gyroscoop + barometer, waardoor valse stappen bij reizen met vervoer kunnen worden geëlimineerd en traplopen kan worden gedetecteerd.

We ontwikkelen een mobiele applicatie turnkey

IT Sectr creëert sinds 2017 iOS- en Android-applicaties voor startups en bedrijven. We adviseren u en stellen de beste oplossing voor.

Bespreek het project

Lees ook