Pedometer nelle app mobili: cos'è, come funziona e dove viene applicato

Autore: IT Sectr Pubblicato: 2026-03-25 Tempo di lettura: 8 min

Il pedometer (contapassi) nelle applicazioni mobili è un meccanismo software-hardware per il conteggio dei passi dell'utente basato sui dati dell'accelerometro e del giroscopio. Gli smartphone moderni utilizzano algoritmi di apprendimento automatico in combinazione con sensori per rilevare con precisione camminata, corsa e altri tipi di attività fisica. Secondo la documentazione Apple HealthKit, 2025, la precisione del conteggio dei passi sui dispositivi moderni raggiunge il 95–97% durante la camminata normale.

Punti chiave

  • Pedometer (contapassi) è una funzione di conteggio dei passi basata sull'analisi dei dati dell'accelerometro, del giroscopio e degli algoritmi di apprendimento automatico.
  • Gli algoritmi moderni del pedometer possono distinguere camminata, corsa e salita scale, determinando automaticamente il tipo di attività dell'utente.
  • Il sensore principale per il conteggio dei passi è l'accelerometro, che registra l'accelerazione su tre assi a ogni passo.
  • Su iOS, gli sviluppatori accedono al pedometer tramite CMPedometer di Core Motion; su Android, tramite Sensor API con TYPE_STEP_COUNTER.
  • La precisione del conteggio dei passi dipende dalla posizione del dispositivo: il pedometer funziona con maggiore precisione quando lo smartphone è portato nella tasca dei pantaloni o alla cintura.

Cos'è un pedometer nelle app mobili?

Il pedometer (contapassi) nelle applicazioni mobili è una funzione che determina il numero di passi dell'utente in base ai dati dei sensori di movimento integrati dello smartphone. A differenza dei pedometri meccanici del passato, il pedometer mobile utilizza sensori microelettromeccanici (MEMS) e algoritmi di elaborazione digitale del segnale per un conteggio preciso della locomozione. Le implementazioni moderne non si limitano a contare i passi, ma classificano anche l'attività: camminata, corsa, salita scale.

L'integrazione del pedometer nei dispositivi mobili è diventata possibile grazie all'introduzione del coprocessore di movimento M7 nell'iPhone 5s nel 2013, che raccoglieva continuamente dati dai sensori con un consumo energetico minimo. Oggi, tutti gli smartphone moderni dispongono di supporto hardware per il conteggio dei passi a livello di sensor hub — un chip dedicato che elabora i dati dei sensori inerziali senza risvegliare il processore principale.

Come funziona il conteggio dei passi sullo smartphone

Il conteggio dei passi su uno smartphone si basa sull'analisi dei segnali dell'accelerometro, che misura l'accelerazione del dispositivo lungo tre assi perpendicolari (X, Y, Z). Durante la camminata, ogni passo crea un pattern di accelerazione caratteristico: prima un picco verso l'alto quando si solleva la gamba, poi un picco verso il basso all'atterraggio. La cadenza dei passi è di 100–130 passi/min per la camminata e 150–180 passi/min per la corsa, mentre l'ampiezza dell'accelerazione varia tra 2–6 m/s².

Elaborazione del segnale dell'accelerometro

Il segnale grezzo dell'accelerometro contiene rumore e interferenze ad alta frequenza, quindi la prima fase di elaborazione è il filtraggio passa-basso con una frequenza di taglio di 3–5 Hz. Dopo il filtraggio, viene calcolato il vettore di accelerazione: a = sqrt(x² + y² + z²), isolando l'accelerazione legata al movimento indipendentemente dall'orientamento del dispositivo. Successivamente, l'algoritmo rileva i massimi locali nel segnale — ogni massimo corrisponde a un passo.

Per ridurre i falsi positivi (ad esempio, vibrazioni durante il trasporto), vengono applicati criteri aggiuntivi: ampiezza minima del passo (generalmente >1,2 m/s²), intervallo minimo tra i passi (300–400 ms per la camminata) e verifica della periodicità del segnale tramite autocorrelazione. Se gli intervalli di tempo tra i picchi sono irregolari, la sequenza viene marcata come movimento casuale e non conteggiata come passi.

Rilevamento dei passi tramite accelerometro

L'algoritmo di base per il rilevamento dei passi utilizza il metodo di rilevamento a soglia: il sistema cerca i momenti in cui il segnale dell'accelerometro supera una soglia impostata e poi ritorna al livello di riposo. Ciascuno di questi eventi è considerato un passo potenziale. Esistono due approcci: rilevamento dei picchi (peak detection) e attraversamento dello zero (zero-crossing). Il rilevamento dei picchi cattura i massimi del segnale, mentre l'attraversamento dello zero rileva i momenti in cui il segnale incrocia il valore medio, che dipende meno dall'ampiezza del passo.

Metodi a soglia e algoritmi adattivi

Gli algoritmi moderni di conteggio dei passi utilizzano una soglia adattiva che si regola automaticamente allo stile di camminata dell'utente. Il sistema analizza la varianza del segnale negli ultimi 2–3 secondi e calcola una soglia dinamica come radice quadrata media (RMS) moltiplicata per un coefficiente. Ciò consente un conteggio corretto dei passi sia durante una passeggiata lenta che durante una corsa vigorosa, senza calibrazione incrociata tra tipi di attività.

Algoritmi di conteggio dei passi e apprendimento automatico

Le implementazioni moderne del pedometer utilizzano non solo il rilevamento dei picchi, ma anche l'apprendimento automatico per classificare i pattern di movimento. I modelli di reti neurali vengono addestrati su migliaia di ore di registrazioni di movimenti reali provenienti da vari scenari: camminata su superfici piane, salita scale, corsa, spostamenti in veicoli. Le caratteristiche di input includono serie temporali dell'accelerometro e del giroscopio, e l'output è la probabilità che il segmento di segnale corrente corrisponda a locomozione umana.

Modelli di reti neurali per la classificazione dell'attività

Secondo la ricerca Google Activity Recognition, i modelli basati su reti neurali convoluzionali (CNN) raggiungono una precisione di riconoscimento della camminata del 98% sui set di dati di riferimento. Sui dispositivi Apple, viene utilizzato Core ML con un modello di classificazione dell'attività addestrato sui dati di oltre 100.000 volontari. I modelli ottimizzati vengono eseguiti direttamente sul dispositivo (inferenza sul dispositivo), garantendo elaborazione istantanea e preservando la privacy dell'utente.

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
            
            // Aggiornamento dell'interfaccia con il numero di passi
            DispatchQueue.main.async {
                // self.stepsLabel.text = "\(steps) passi"
            }
        }
    }

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

Pedometer su iOS e Android: API e funzionalità

Su iOS, per accedere al pedometer viene utilizzata la classe CMPedometer del framework Core Motion. CMPedometer fornisce non solo il numero di passi, ma anche la distanza percorsa, il numero di piani (salite), il ritmo di camminata e la durata dell'attività. I dati sono disponibili sia in tempo reale (startUpdates) che per qualsiasi periodo passato (queryPedometerData). Il coprocessore di movimento (serie M) elabora i dati dei sensori a livello hardware, riducendo il consumo energetico dell'80% rispetto all'elaborazione software.

Su Android, la funzionalità del pedometer è implementata tramite due sensori hardware: TYPE_STEP_COUNTER (contatore cumulativo di passi dall'avvio) e TYPE_STEP_DETECTOR (generazione di evento a ogni passo). TYPE_STEP_COUNTER non richiede calibrazione e non consuma energia del processore — i dati vengono aggiornati a livello hardware del sensor hub. Per accedere alle statistiche accumulate dei passi giornalieri, viene utilizzata l'API Google Fit con il record 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) {}
}

Precisione e limiti del pedometer mobile

La precisione del pedometer dipende da diversi fattori: posizione dello smartphone (in mano, tasca o borsa), tipo di attività (camminata, corsa, salita scale) e qualità dei sensori. Quando lo smartphone è portato nella tasca dei pantaloni, la precisione raggiunge il 93–97%; in una borsa o zaino, scende al 70–85%. La precisione è influenzata anche dallo stile di camminata dell'utente: un'andatura strascicata con bassa ampiezza di accelerazione produce più errori di una falcata regolare.

Le principali limitazioni dei pedometri mobili includono: incapacità di contare i passi durante movimenti molto lenti (<1,5 km/h), falsi positivi da viaggi in veicoli, precisione ridotta durante la corsa a bassa velocità (jogging) e l'influenza della gestualità durante le conversazioni. Per minimizzare gli errori, le applicazioni moderne utilizzano una combinazione di sensori (accelerometro + giroscopio + barometro) e l'apprendimento automatico per filtrare gli artefatti. Il barometro, ad esempio, aiuta a rilevare la salita scale e i cambiamenti di altitudine, escludendo i falsi passi in ascensore.

Domande frequenti

Come funziona un contapassi nel telefono?

Un contapassi nel telefono utilizza l'accelerometro, che registra l'accelerazione a ogni passo. L'algoritmo analizza i picchi di accelerazione su tre assi, filtra il rumore e determina il numero di passi. I modelli moderni utilizzano anche il giroscopio e l'apprendimento automatico per migliorare la precisione e classificare l'attività.

Quanto è preciso il contapassi sullo smartphone?

Quando lo smartphone è portato nella tasca dei pantaloni, la precisione raggiunge il 95–97% durante la camminata normale. In una borsa o zaino, la precisione scende al 70–85%. Lo stile di camminata e il tipo di superficie influenzano anche la precisione — il terreno irregolare può introdurre errori fino al 10–15%.

Il contapassi può funzionare senza internet?

Sì, il contapassi funziona completamente offline senza connessione internet. Tutti i calcoli vengono eseguiti sul dispositivo utilizzando i sensori integrati. Internet può essere necessario solo per sincronizzare i dati con i servizi cloud delle app di fitness o per visualizzare una mappa del percorso.

Perché diverse app mostrano numeri di passi diversi?

App diverse utilizzano algoritmi diversi per elaborare i dati dei sensori, soglie di rilevamento e metodi di filtraggio. Alcune app contano i passi basandosi sui dati grezzi dell'accelerometro, mentre altre utilizzano API di sistema (TYPE_STEP_COUNTER), e la differenza nei conteggi può raggiungere il 10–15%.

Come accedere al contapassi in un'app Android?

Su Android, per accedere al contapassi, utilizzare il sensore TYPE_STEP_COUNTER tramite Sensor API — fornisce il numero cumulativo di passi dall'ultimo riavvio del dispositivo. Per accedere ai passi di un giorno specifico, integrare Google Fit API con il tipo di dati TYPE_STEP_COUNT_DELTA.

Riepilogo

  • Pedometer è una funzione dei dispositivi mobili che determina il numero di passi basandosi sui dati dell'accelerometro MEMS e sugli algoritmi di apprendimento automatico.
  • Il metodo principale di conteggio dei passi è il rilevamento dei picchi e l'attraversamento dello zero nel segnale dell'accelerometro, seguito dal filtraggio degli artefatti e dalla soglia adattiva.
  • Le implementazioni moderne utilizzano reti neurali convoluzionali per classificare camminata, corsa e salita scale con una precisione fino al 98%.
  • Su iOS, l'accesso al contapassi avviene tramite CMPedometer (Core Motion); su Android, tramite TYPE_STEP_COUNTER e Google Fit API.
  • Il conteggio dei passi hardware a livello di sensor hub non risveglia il processore principale, consumando l'80% in meno di energia rispetto all'elaborazione software.
  • La precisione del contapassi dipende dalla posizione del dispositivo: nella tasca dei pantaloni — fino al 97%, in una borsa — 70–85%. Il terreno irregolare e la camminata lenta riducono anche la precisione.
  • Per minimizzare gli errori, viene utilizzata una combinazione di sensori: accelerometro + giroscopio + barometro, che aiuta a filtrare i falsi passi durante i viaggi in veicoli e a rilevare la salita scale.

Svilupperemo un'applicazione mobile chiavi in mano

IT Sectr crea applicazioni iOS e Android per startup e aziende dal 2017. Ti consulteremo e ti proporremo la soluzione migliore.

Discuti il progetto

Leggi anche