Pedometer у мобільних додатках: що це таке, як працює та де застосовується

Автор: IT Sectr Опубліковано: 2026-03-25 Час читання: 8 хв

Pedometer (крокомір) у мобільних додатках — це програмно-апаратний механізм підрахунку кроків користувача на основі даних акселерометра та гіроскопа. Сучасні смартфони використовують алгоритми машинного навчання в поєднанні з сенсорами для точного визначення ходьби, бігу та інших видів фізичної активності. Згідно з Apple HealthKit Documentation, 2025, точність підрахунку кроків на сучасних пристроях досягає 95–97% при нормальній ходьбі.

Головне

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

Що таке крокомір у мобільному додатку?

Крокомір (pedometer) у мобільних додатках — це функція, що визначає кількість кроків користувача на основі даних, що надходять із вбудованих датчиків руху смартфона. На відміну від механічних крокомірів минулого, мобільний pedometer використовує мікроелектромеханічні сенсори (MEMS) та алгоритми цифрової обробки сигналів для точного підрахунку локомоцій. Сучасні реалізації не просто рахують кроки, але й класифікують активність: ходьба, біг, підйом сходами.

Інтеграція крокоміра в мобільні пристрої стала можливою завдяки появі в 2013 році співпроцесора руху M7 в iPhone 5s, який безперервно збирав дані з датчиків при мінімальному енергоспоживанні. Сьогодні всі сучасні смартфони мають апаратну підтримку підрахунку кроків на рівні сенсорного хаба — виділеного чіпа, що обробляє дані інерційних датчиків без пробудження основного процесора.

Як працює підрахунок кроків на смартфоні

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

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

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

Для зменшення хибних спрацьовувань (наприклад, при трясці в транспорті) застосовуються додаткові критерії: мінімальна амплітуда кроку (зазвичай >1,2 м/с²), мінімальний інтервал між кроками (300–400 мс для ходьби) та перевірка періодичності сигналу через автокореляцію. Якщо часові інтервали між піками нерегулярні, послідовність маркується як випадкові рухи та не зараховується як кроки.

Детекція кроків через акселерометр

Базовий алгоритм детекції кроків використовує метод порогового виявлення: система шукає моменти, коли сигнал акселерометра перевищує заданий поріг і потім повертається до рівня спокою. Кожна така подія вважається потенційним кроком. Існують два підходи: детекція піків (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
            
            // Оновлення інтерфейсу з кількістю кроків
            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 км/год), хибні спрацьовування від поїздки в транспорті, зниження точності при бігу на низькій швидкості (підтюпцем) та вплив жестикуляції при розмові. Для мінімізації помилок сучасні додатки використовують комбінацію сенсорів (акселерометр + гіроскоп + барометр) та машинне навчання для відсіювання артефактів. Барометр, наприклад, допомагає визначати підйом сходами та зміну висоти, виключаючи хибні кроки в ліфті.

Часті запитання

Як працює крокомір у телефоні?

Крокомір у телефоні використовує акселерометр, що фіксує прискорення при кожному кроці. Алгоритм аналізує піки прискорення по трьох осях, фільтрує шуми та визначає кількість кроків. Сучасні моделі також використовують гіроскоп та машинне навчання для підвищення точності та класифікації активності.

Наскільки точний крокомір на смартфоні?

При носінні смартфона в кишені штанів точність досягає 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.

Підсумки

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

Ми розробимо мобільний застосунок під ключ

IT Sectr створює застосунки для iOS та Android для стартапів і бізнесу з 2017 року. Ми проконсультуємо вас і запропонуємо найкраще рішення.

Обговорити проект

Читайте також