Педометър в мобилните приложения: какво е, как работи и къде се прилага

Автор: IT Sectr Публикувано: 2026-03-25 Време за четене: 8 мин

Педометърът (крачкомер) в мобилните приложения е програмно-хардуерен механизъм за броене на крачките на потребителя на база данни от акселерометър и жироскоп. Съвременните смартфони използват алгоритми за машинно самообучение в комбинация със сензори за точно определяне на ходене, бягане и други видове физическа активност. Според данни от Apple HealthKit Documentation, 2025, точността на броене на крачки на съвременните устройства достига 95–97% при нормално ходене.

Основни точки

  • Педометър (крачкомер) — функция за броене на крачки на база анализ на данни от акселерометър, жироскоп и алгоритми за машинно самообучение.
  • Съвременните алгоритми на крачкомера могат да различават ходене, бягане и катерене по стълби, автоматично определяйки типа активност на потребителя.
  • Основният сензор за броене на крачки е акселерометърът, който регистрира ускорение по три оси при всяка крачка.
  • На iOS разработчиците получават достъп до крачкомера чрез CMPedometer от Core Motion, на Android — чрез Sensor API с TYPE_STEP_COUNTER.
  • Точността на броене на крачки зависи от разположението на устройството: крачкомерът работи най-точно, когато смартфонът се носи в джоб на панталон или на колан.

Какво е крачкомер в мобилно приложение?

Крачкомер (педометър) в мобилните приложения е функция, която определя броя на крачките на потребителя на база данни, постъпващи от вградените сензори за движение на смартфона. За разлика от механичните крачкомери от миналото, мобилният педометър използва микроелектромеханични сензори (MEMS) и алгоритми за цифрова обработка на сигнали за точно броене на движения. Съвременните реализации не само броят крачки, но и класифицират активността: ходене, бягане, катерене по стълби.

Интеграцията на крачкомера в мобилни устройства стана възможна благодарение на появата през 2013 г. на копроцесора за движение M7 в iPhone 5s, който непрекъснато събираше данни от сензори с минимална консумация на енергия. Днес всички съвременни смартфони имат хардуерна поддръжка за броене на крачки на ниво сензорен хъб — специален чип, обработващ данни от инерциални сензори без събуждане на главния процесор.

Как работи броенето на крачки на смартфон

Броенето на крачки на смартфон се основава на анализ на сигналите на акселерометъра, който измерва ускорението на устройството по три перпендикулярни оси (X, Y, Z). При ходене всяка крачка създава характерен модел на ускорение: първо пик нагоре при повдигане на крака, след това пик надолу при приземяване. Честотата на крачките (каданс) е 100–130 крачки/мин за ходене и 150–180 крачки/мин за бягане, а амплитудата на ускорение — 2–6 m/s².

Обработка на сигнала от акселерометър

Суровият сигнал от акселерометъра съдържа шум и високочестотни смущения, затова първият етап на обработка е нискочестотен филтър (low-pass filter) с гранична честота 3–5 Hz. След филтриране се изчислява векторът на ускорение: a = sqrt(x² + y² + z²), който извлича ускорението, свързано с движение, независимо от ориентацията на устройството. След това алгоритъмът открива локални максимуми в сигнала — всеки максимум съответства на една крачка.

За намаляване на фалшивите сигнали (например при разклащане в транспорт) се прилагат допълнителни критерии: минимална амплитуда на крачката (обикновено >1,2 m/s²), минимален интервал между крачките (300–400 ms за ходене) и проверка на периодичността на сигнала чрез автокорелация. Ако времевите интервали между пиковете са нерегулярни, последователността се маркира като случайни движения и не се брои като крачки.

Детекция на крачки чрез акселерометър

Основният алгоритъм за детекция на крачки използва метода на прагово откриване: системата търси моменти, когато сигналът на акселерометъра надвишава зададен праг и след това се връща към ниво на покой. Всяко такова събитие се счита за потенциална крачка. Съществуват два подхода: детекция на пикове (peak detection) и пресичане на нула (zero-crossing). Детекцията на пикове регистрира максимумите на сигнала, а zero-crossing — моментите на преминаване на сигнала през средната стойност, което зависи по-малко от амплитудата на крачката.

Прагови методи и адаптивни алгоритми

Съвременните алгоритми за броене на крачки използват адаптивен праг, който автоматично се настройва спрямо стила на ходене на потребителя. Системата анализира дисперсията на сигнала за последните 2–3 секунди и изчислява динамичния праг като средноквадратично отклонение (RMS), умножено по коефициент. Това позволява правилно броене на крачки както при бавна разходка, така и при енергично бягане без кръстосано калибриране между видовете активност.

Алгоритми за броене на крачки и машинно самообучение

Съвременните реализации на крачкомера използват не само детекция на пикове, но и машинно самообучение за класификация на модели на движение. Моделите на невронни мрежи се обучават на хиляди часове записи на реални движения от различни сценарии: ходене по равна повърхност, катерене по стълби, бягане, пътуване с транспорт. Входните характеристики са времевите редове на акселерометъра и жироскопа, а изходът — вероятността текущият сегмент от сигнала да съответства на човешка локомоция.

Модели на невронни мрежи за класификация на активност

Според данни от изследването Google Activity Recognition, моделите, базирани на конволюционни невронни мрежи (CNN), постигат точност на разпознаване на ходене от 98% на контролните набори от данни. На устройствата на Apple се използва Core ML с модела Activity Classification, обучен на данни от над 100 хиляди доброволци. Оптимизираните модели работят директно на устройството (on-device inference), което осигурява мигновена обработка и запазване на поверителността на потребителя.

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 с броя крачки
            DispatchQueue.main.async {
                // self.stepsLabel.text = "\(steps) крачки"
            }
        }
    }

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

Крачкомер на iOS и Android: API и възможности

На iOS за достъп до крачкомера се използва класът CMPedometer от рамката Core Motion. CMPedometer предоставя не само броя на крачките, но и изминатото разстояние, броя на етажите (изкачвания), темпото на ходене и времето на активност. Данните са достъпни както в реално време (startUpdates), така и за произволен период в миналото (queryPedometerData). Копроцесорът за движение (M серия) обработва данните от сензорите хардуерно, което намалява консумацията на енергия с 80% в сравнение с програмната обработка.

На Android работата с крачкомера се реализира чрез два хардуерни сензора: TYPE_STEP_COUNTER (кумулативен брояч на крачки от стартиране) и TYPE_STEP_DETECTOR (генериране на събитие при всяка крачка). TYPE_STEP_COUNTER не изисква калибриране и не консумира енергия от процесора — данните се актуализират хардуерно на ниво сензорен хъб. За достъп до натрупаната статистика на крачките за ден се използва Google Fit API със запис 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) {}
}

Точност и ограничения на мобилния крачкомер

Точността на крачкомера зависи от няколко фактора: разположението на смартфона (в ръка, джоб или чанта), вида активност (ходене, бягане, катерене по стълби) и качеството на сензорите. При носене на смартфона в джоб на панталон точността е 93–97%, в чанта или раница пада до 70–85%. Стилът на ходене на потребителя също влияе на точността: дребните стъпки с малка амплитуда на ускорение дават повече грешки от равномерното ходене.

Основните ограничения на мобилните крачкомери включват: невъзможност за броене на крачки при много бавно движение (<1,5 km/h), фалшиви сигнали от пътуване с транспорт, намаляване на точността при бягане с ниска скорост (джогинг) и влияние на жестикулацията при говорене. За минимизиране на грешките съвременните приложения използват комбинация от сензори (акселерометър + жироскоп + барометър) и машинно самообучение за отстраняване на артефакти. Барометърът, например, помага за определяне на катерене по стълби и промяна на височина, като изключва фалшиви крачки в асансьора.

Често задавани въпроси

Как работи крачкомерът в телефона?

Крачкомерът в телефона използва акселерометър, който регистрира ускорение при всяка крачка. Алгоритъмът анализира пиковете на ускорение по три оси, филтрира шума и определя броя на крачките. Съвременните модели също използват жироскоп и машинно самообучение за повишаване на точността и класификация на активността.

Колко точен е крачкомерът на смартфон?

При носене на смартфона в джоб на панталон точността достига 95–97% при обикновено ходене. В чанта или раница точността пада до 70–85%. Стилът на ходене и типът на повърхността също влияят на точността — неравният терен може да дава грешки до 10–15%.

Може ли крачкомерът да работи без интернет?

Да, крачкомерът работи напълно автономно без връзка с интернет. Всички изчисления се извършват на устройството с помощта на вградени сензори. Интернет може да е необходим само за синхронизиране на данни с облачни услуги на фитнес приложения или за показване на карта на маршрута.

Защо крачкомерът в различните приложения показва различни числа?

Различните приложения използват различни алгоритми за обработка на данни от сензори, прагове за детекция на крачки и методи за филтриране. Някои приложения броят крачки на база сурови данни от акселерометъра, други — чрез системни API (TYPE_STEP_COUNTER), и разликата в броенето може да достигне 10–15%.

Как да получите достъп до крачкомер в Android приложение?

На Android за достъп до крачкомера използвайте сензора TYPE_STEP_COUNTER чрез Sensor API — той предоставя кумулативен брой крачки от последното рестартиране на устройството. За достъп до крачките за конкретен ден интегрирайте Google Fit API с тип данни TYPE_STEP_COUNT_DELTA.

Резюме

  • Педометър (крачкомер) — функция на мобилни устройства, определяща броя на крачките на база данни от MEMS акселерометър и алгоритми за машинно самообучение.
  • Основният метод за броене на крачки е детекция на пикове и пресичане на нула в сигнала на акселерометъра с последващо филтриране на артефакти и адаптивен праг.
  • Съвременните реализации използват конволюционни невронни мрежи за класификация на ходене, бягане и катерене по стълби с точност до 98%.
  • На iOS достъпът до крачкомера е чрез CMPedometer (Core Motion), на Android — чрез TYPE_STEP_COUNTER и Google Fit API.
  • Хардуерното броене на крачки на ниво сензорен хъб не събужда главния процесор, консумирайки 80% по-малко енергия в сравнение с програмната обработка.
  • Точността на крачкомера зависи от разположението на устройството: в джоб на панталон — до 97%, в чанта — 70–85%. Неравният терен и бавното ходене също намаляват точността.
  • За минимизиране на грешките се прилага комбинация от сензори: акселерометър + жироскоп + барометър, което позволява елиминиране на фалшиви крачки при пътуване с транспорт и определяне на катерене по стълби.

Ще разработим мобилно приложение под ключ

IT Sectr създава iOS и Android приложения за стартъпи и бизнеси от 2017 г. Ще ви консултираме и ще предложим най-доброто решение.

Обсъдете проекта

Прочетете също