Педометар у мобилним апликацијама: шта је то, како ради и где се примењује

Аутор: 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 м/с².

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

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

У циљу смањења лажних окидања (на пример, при трешњи у превозу) примењују се додатни критеријуми: минимална амплитуда корака (обично >1,2 м/с²), минимални интервал између корака (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 км/х), лажна окидања од вожње превозом, смањење прецизности при трчању малом брзином (џогинг) и утицај гестикулације током разговора. За минимизацију грешака, савремене апликације користе комбинацију сензора (акцелерометар + жироскоп + барометар) и машинско учење за одбацивање артефаката. Барометар, на пример, помаже у одређивању пењања уз степенице и промене висине, искључујући лажне кораке у лифту.

Често постављана питања

Како ради педометар у телефону?

Педометар у телефону користи акцелерометар, који бележи убрзање при сваком кораку. Алгоритам анализира врхове убрзања по три осе, филтрира шум и одређује број корака. Модерни модели такође користе жироскоп и машинско учење за повећање прецизности и класификацију активности.

Колико је прецизан педометар на паметном телефону?

При ношењу паметног телефона у џепу панталона, прецизност достиже 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. године. Саветоваћемо вас и предложити најбоље решење.

Разговарајте о пројекту

Прочитајте такође