O pedómetro em aplicações móveis é um mecanismo de software e hardware para contagem de passos do utilizador com base em dados do acelerómetro e giroscópio. Os smartphones modernos utilizam algoritmos de aprendizagem automática em combinação com sensores para detetar com precisão caminhada, corrida e outros tipos de atividade física. De acordo com a Documentação Apple HealthKit, 2025, a precisão da contagem de passos em dispositivos modernos atinge 95–97% durante a marcha normal.
Pontos principais
O pedómetro em aplicações móveis é uma função que determina o número de passos do utilizador com base em dados dos sensores de movimento incorporados no smartphone. Ao contrário dos pedómetros mecânicos do passado, o pedómetro móvel utiliza sensores microeletromecânicos (MEMS) e algoritmos de processamento digital de sinal para contagem precisa de locomoção. As implementações modernas não apenas contam passos, mas também classificam a atividade: caminhada, corrida, subida de escadas.
A integração do pedómetro em dispositivos móveis tornou-se possível com a introdução do coprocessador de movimento M7 no iPhone 5s em 2013, que recolhia continuamente dados dos sensores com consumo mínimo de energia. Hoje, todos os smartphones modernos têm suporte de hardware para contagem de passos ao nível do sensor hub — um chip dedicado que processa dados de sensores inerciais sem ativar o processador principal.
A contagem de passos num smartphone baseia-se na análise dos sinais do acelerómetro, que mede a aceleração do dispositivo em três eixos perpendiculares (X, Y, Z). Ao caminhar, cada passo cria um padrão de aceleração característico: primeiro um pico ascendente ao levantar a perna, depois um pico descendente ao aterrar. A cadência de passos é de 100–130 passos/min para caminhada e 150–180 passos/min para corrida, enquanto a amplitude de aceleração varia entre 2–6 m/s².
O sinal bruto do acelerómetro contém ruído e interferência de alta frequência, por isso a primeira etapa de processamento é a filtragem passa-baixo com uma frequência de corte de 3–5 Hz. Após a filtragem, calcula-se o vetor de aceleração: a = sqrt(x² + y² + z²), isolando a aceleração relacionada com o movimento independentemente da orientação do dispositivo. Em seguida, o algoritmo deteta máximos locais no sinal — cada máximo corresponde a um passo.
Para reduzir falsos positivos (por exemplo, vibração em transportes), são aplicados critérios adicionais: amplitude mínima do passo (geralmente >1,2 m/s²), intervalo mínimo entre passos (300–400 ms para caminhada) e verificação da periodicidade do sinal através de autocorrelação. Se os intervalos entre picos forem irregulares, a sequência é marcada como movimento aleatório e não contada como passos.
O algoritmo básico de deteção de passos utiliza o método de deteção por limiar: o sistema procura momentos em que o sinal do acelerómetro excede um limiar definido e depois retorna ao nível de repouso. Cada um desses eventos é considerado um passo potencial. Existem duas abordagens: deteção de picos (peak detection) e cruzamento de zero (zero-crossing). A deteção de picos captura os máximos do sinal, enquanto o cruzamento de zero deteta os momentos em que o sinal cruza o valor médio, sendo menos dependente da amplitude do passo.
Os algoritmos modernos de contagem de passos utilizam um limiar adaptativo que se ajusta automaticamente ao estilo de caminhada do utilizador. O sistema analisa a variância do sinal nos últimos 2–3 segundos e calcula um limiar dinâmico como a raiz quadrada média (RMS) multiplicada por um coeficiente. Isto permite uma contagem correta de passos tanto durante uma caminhada lenta como durante uma corrida vigorosa, sem calibração cruzada entre tipos de atividade.
As implementações modernas do pedómetro utilizam não apenas deteção de picos, mas também aprendizagem automática para classificar padrões de movimento. Os modelos de redes neuronais são treinados em milhares de horas de gravações de movimentos reais de vários cenários: caminhada em superfícies planas, subida de escadas, corrida, viagens em transportes. As características de entrada incluem séries temporais do acelerómetro e giroscópio, e a saída é a probabilidade de o segmento de sinal atual corresponder a locomoção humana.
De acordo com a investigação Google Activity Recognition, os modelos baseados em redes neuronais convolucionais (CNN) alcançam 98% de precisão no reconhecimento de caminhada em conjuntos de dados de referência. Nos dispositivos Apple, utiliza-se Core ML com um modelo de Classificação de Atividade treinado em dados de mais de 100.000 voluntários. Os modelos otimizados são executados diretamente no dispositivo (inferência no dispositivo), garantindo processamento instantâneo e preservando a privacidade do utilizador.
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
// Atualização da interface com o número de passos
DispatchQueue.main.async {
// self.stepsLabel.text = "\(steps) passos"
}
}
}
func stopTracking() {
pedometer.stopUpdates()
}
}
No iOS, para aceder ao pedómetro utiliza-se a classe CMPedometer do framework Core Motion. O CMPedometer fornece não apenas o número de passos, mas também a distância percorrida, o número de pisos (subidas), o ritmo de marcha e a duração da atividade. Os dados estão disponíveis tanto em tempo real (startUpdates) como para qualquer período passado (queryPedometerData). O coprocessador de movimento (série M) processa os dados dos sensores em hardware, reduzindo o consumo de energia em 80% em comparação com o processamento por software.
No Android, a funcionalidade do pedómetro é implementada através de dois sensores de hardware: TYPE_STEP_COUNTER (contador de passos cumulativo desde o arranque) e TYPE_STEP_DETECTOR (geração de evento a cada passo). O TYPE_STEP_COUNTER não requer calibração e não consome energia do processador — os dados são atualizados em hardware ao nível do sensor hub. Para aceder às estatísticas acumuladas de passos diários, utiliza-se a Google Fit API com o registo DataType.TYPE_STEP_COUNT_DELTA.
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) {}
}
A precisão do pedómetro depende de vários fatores: localização do smartphone (na mão, bolso ou bolsa), tipo de atividade (caminhada, corrida, subida de escadas) e qualidade dos sensores. Quando o smartphone é transportado no bolso das calças, a precisão atinge 93–97%; numa bolsa ou mochila, cai para 70–85%. A precisão também é afetada pelo estilo de caminhada do utilizador: uma marcha arrastada com baixa amplitude de aceleração produz mais erros do que uma passada firme.
As principais limitações dos pedómetros móveis incluem: incapacidade de contar passos durante movimento muito lento (<1,5 km/h), falsos positivos de viagens em transportes, redução da precisão durante corrida a baixa velocidade (trote) e influência da gesticulação ao falar. Para minimizar erros, as aplicações modernas utilizam uma combinação de sensores (acelerómetro + giroscópio + barómetro) e aprendizagem automática para filtrar artefactos. O barómetro, por exemplo, ajuda a detetar subida de escadas e mudanças de altitude, excluindo passos falsos num elevador.
Perguntas frequentes
Um pedómetro no telemóvel utiliza o acelerómetro, que regista a aceleração a cada passo. O algoritmo analisa os picos de aceleração em três eixos, filtra o ruído e determina o número de passos. Os modelos modernos também utilizam o giroscópio e aprendizagem automática para melhorar a precisão e classificar a atividade.
Ao transportar o smartphone no bolso das calças, a precisão atinge 95–97% durante a caminhada normal. Numa bolsa ou mochila, a precisão cai para 70–85%. O estilo de caminhada e o tipo de superfície também afetam a precisão — terreno irregular pode introduzir erros de até 10–15%.
Sim, o pedómetro funciona completamente offline sem ligação à internet. Todos os cálculos são realizados no dispositivo utilizando sensores incorporados. A internet pode ser necessária apenas para sincronizar dados com serviços na nuvem de aplicações de fitness ou para exibir um mapa de percurso.
Diferentes aplicações utilizam algoritmos diferentes para processar dados de sensores, limiares de deteção e métodos de filtragem. Algumas aplicações contam passos com base em dados brutos do acelerómetro, enquanto outras usam APIs do sistema (TYPE_STEP_COUNTER), e a diferença nas contagens pode atingir 10–15%.
No Android, para aceder ao pedómetro, utilize o sensor TYPE_STEP_COUNTER através da Sensor API — ele fornece o número cumulativo de passos desde a última reinicialização do dispositivo. Para aceder aos passos de um dia específico, integre a Google Fit API com o tipo de dados TYPE_STEP_COUNT_DELTA.
Resumo
Vamos desenvolver um aplicativo móvel chave na mão
A IT Sectr cria aplicativos para iOS e Android para startups e empresas desde 2017. Nós vamos aconselhá-lo e propor a melhor solução.
Leia também