Pedometr w aplikacjach mobilnych: co to jest, jak działa i gdzie jest stosowany

Autor: IT Sectr Opublikowano: 2026-03-25 Czas czytania: 8 min

Pedometr (krokomierz) w aplikacjach mobilnych — to programowo-sprzętowy mechanizm zliczania kroków użytkownika na podstawie danych z akcelerometru i żyroskopu. Nowoczesne smartfony wykorzystują algorytmy uczenia maszynowego w połączeniu z czujnikami do dokładnego określania chodzenia, biegania i innych rodzajów aktywności fizycznej. Według danych Apple HealthKit Documentation, 2025, dokładność zliczania kroków na nowoczesnych urządzeniach osiąga 95–97% przy normalnym chodzeniu.

Najważniejsze

  • Pedometr (krokomierz) — funkcja zliczania kroków na podstawie analizy danych z akcelerometru, żyroskopu i algorytmów uczenia maszynowego.
  • Nowoczesne algorytmy krokomierza potrafią rozróżniać chodzenie, bieganie i wchodzenie po schodach, automatycznie określając rodzaj aktywności użytkownika.
  • Głównym czujnikiem do zliczania kroków jest akcelerometr, rejestrujący przyspieszenie w trzech osiach przy każdym kroku.
  • Na iOS programiści uzyskują dostęp do krokomierza przez CMPedometer z Core Motion, na Androidzie — przez Sensor API z TYPE_STEP_COUNTER.
  • Dokładność zliczania kroków zależy od umiejscowienia urządzenia: krokomierz działa najdokładniej, gdy smartfon noszony jest w kieszeni spodni lub na pasku.

Czym jest krokomierz w aplikacji mobilnej?

Krokomierz (pedometr) w aplikacjach mobilnych — to funkcja określająca liczbę kroków użytkownika na podstawie danych pochodzących z wbudowanych czujników ruchu smartfona. W przeciwieństwie do mechanicznych krokomierzy z przeszłości, mobilny pedometr wykorzystuje mikroelektromechaniczne czujniki (MEMS) i algorytmy cyfrowego przetwarzania sygnałów do dokładnego zliczania lokomocji. Nowoczesne implementacje nie tylko liczą kroki, ale także klasyfikują aktywność: chodzenie, bieganie, wchodzenie po schodach.

Integracja krokomierza w urządzeniach mobilnych stała się możliwa dzięki pojawieniu się w 2013 roku koprocesora ruchu M7 w iPhone 5s, który nieprzerwanie zbierał dane z czujników przy minimalnym zużyciu energii. Dziś wszystkie nowoczesne smartfony mają sprzętowe wsparcie zliczania kroków na poziomie hubu czujników — wydzielonego układu przetwarzającego dane z czujników inercyjnych bez budzenia głównego procesora.

Jak działa zliczanie kroków na smartfonie

Zliczanie kroków na smartfonie opiera się na analizie sygnałów akcelerometru, który mierzy przyspieszenie urządzenia w trzech prostopadłych osiach (X, Y, Z). Podczas chodzenia każdy krok tworzy charakterystyczny wzór przyspieszenia: najpierw szczyt w górę przy unoszeniu nogi, następnie szczyt w dół przy lądowaniu. Częstotliwość kroków (kadencja) wynosi 100–130 kroków/min dla chodzenia i 150–180 kroków/min dla biegania, a amplituda przyspieszenia — 2–6 m/s².

Przetwarzanie sygnału akcelerometru

Surowy sygnał z akcelerometru zawiera szumy i zakłócenia wysokoczęstotliwościowe, dlatego pierwszym etapem przetwarzania jest filtracja dolnoprzepustowa (low-pass filter) z częstotliwością odcięcia 3–5 Hz. Po filtracji obliczany jest wektor przyspieszenia: a = sqrt(x² + y² + z²), który wyodrębnia przyspieszenie związane z ruchem, niezależnie od orientacji urządzenia. Następnie algorytm wykrywa lokalne maksima w sygnale — każde maksimum odpowiada jednemu krokowi.

W celu zmniejszenia fałszywych alarmów (np. podczas potrząsania w transporcie) stosuje się dodatkowe kryteria: minimalna amplituda kroku (zwykle >1,2 m/s²), minimalny odstęp między krokami (300–400 ms dla chodzenia) oraz sprawdzanie periodyczności sygnału poprzez autokorelację. Jeśli odstępy czasowe między pikami są nieregularne, sekwencja jest oznaczana jako ruchy przypadkowe i nie jest liczona jako kroki.

Wykrywanie kroków przez akcelerometr

Podstawowy algorytm wykrywania kroków wykorzystuje metodę detekcji progowej: system szuka momentów, gdy sygnał akcelerometru przekracza zadany próg, a następnie wraca do poziomu spoczynku. Każde takie zdarzenie jest uznawane za potencjalny krok. Istnieją dwa podejścia: detekcja pików (peak detection) i przejście przez zero (zero-crossing). Detekcja pików rejestruje maksima sygnału, a zero-crossing — momenty przejścia sygnału przez wartość średnią, co mniej zależy od amplitudy kroku.

Metody progowe i algorytmy adaptacyjne

Nowoczesne algorytmy zliczania kroków wykorzystują próg adaptacyjny, który automatycznie dostosowuje się do stylu chodzenia użytkownika. System analizuje wariancję sygnału z ostatnich 2–3 sekund i oblicza dynamiczny próg jako odchylenie standardowe (RMS) pomnożone przez współczynnik. Pozwala to poprawnie liczyć kroki zarówno podczas powolnego spaceru, jak i energicznego biegu bez krzyżowej kalibracji między rodzajami aktywności.

Algorytmy zliczania kroków i uczenie maszynowe

Nowoczesne implementacje krokomierza wykorzystują nie tylko detekcję pików, ale także uczenie maszynowe do klasyfikacji wzorców ruchu. Modele sieci neuronowych są trenowane na tysiącach godzin nagrań rzeczywistych ruchów z różnych scenariuszy: chodzenie po równej powierzchni, wchodzenie po schodach, bieganie, jazda środkami transportu. Cechami wejściowymi są szeregi czasowe akcelerometru i żyroskopu, a wyjściem — prawdopodobieństwo, że bieżący segment sygnału odpowiada lokomocji człowieka.

Modele sieci neuronowych do klasyfikacji aktywności

Według danych badania Google Activity Recognition, modele oparte na sieciach splotowych (CNN) osiągają dokładność rozpoznawania chodzenia na poziomie 98% na zestawach testowych. Na urządzeniach Apple używany jest Core ML z modelem Activity Classification, wytrenowanym na danych ponad 100 tysięcy ochotników. Zoptymalizowane modele działają bezpośrednio na urządzeniu (wnioskowanie na urządzeniu), co zapewnia błyskawiczne przetwarzanie i zachowanie prywatności użytkownika.

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
            
            // Aktualizacja UI o liczbę kroków
            DispatchQueue.main.async {
                // self.stepsLabel.text = "\(steps) kroków"
            }
        }
    }

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

Krokomierz na iOS i Androidzie: API i możliwości

Na iOS do dostępu do krokomierza używana jest klasa CMPedometer z frameworku Core Motion. CMPedometer dostarcza nie tylko liczbę kroków, ale także przebytą odległość, liczbę pięter (wzniesień), tempo chodzenia i czas aktywności. Dane są dostępne zarówno w czasie rzeczywistym (startUpdates), jak i za dowolny okres w przeszłości (queryPedometerData). Koprocesor ruchu (serii M) przetwarza dane czujników sprzętowo, co zmniejsza zużycie energii o 80% w porównaniu z przetwarzaniem programowym.

Na Androidzie praca z krokomierzem jest zrealizowana przez dwa czujniki sprzętowe: TYPE_STEP_COUNTER (skumulowany licznik kroków od momentu uruchomienia) i TYPE_STEP_DETECTOR (generowanie zdarzenia na każdy krok). TYPE_STEP_COUNTER nie wymaga kalibracji i nie zużywa energii procesora — dane są aktualizowane sprzętowo na poziomie hubu czujników. Do dostępu do zebranej statystyki kroków za dany dzień używany jest Google Fit API z zapisem 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) {}
}

Dokładność i ograniczenia mobilnego krokomierza

Dokładność krokomierza zależy od kilku czynników: umiejscowienia smartfona (w ręku, kieszeni lub torbie), rodzaju aktywności (chodzenie, bieganie, wchodzenie po schodach) i jakości czujników. Przy noszeniu smartfona w kieszeni spodni dokładność wynosi 93–97%, w torbie lub plecaku spada do 70–85%. Na dokładność wpływa również styl chodzenia użytkownika: drobny krok z małą amplitudą przyspieszeń daje więcej błędów niż miarowe chodzenie.

Główne ograniczenia mobilnych krokomierzy obejmują: niemożność zliczania kroków przy bardzo wolnym ruchu (<1,5 km/h), fałszywe alarmy podczas jazdy środkami transportu, spadek dokładności przy biegu z niską prędkością (trucht) oraz wpływ gestykulacji podczas rozmowy. W celu minimalizacji błędów nowoczesne aplikacje wykorzystują kombinację czujników (akcelerometr + żyroskop + barometr) i uczenie maszynowe do odrzucania artefaktów. Barometr na przykład pomaga określać wchodzenie po schodach i zmianę wysokości, wykluczając fałszywe kroki w windzie.

Często zadawane pytania

Jak działa krokomierz w telefonie?

Krokomierz w telefonie wykorzystuje akcelerometr, rejestrujący przyspieszenie przy każdym kroku. Algorytm analizuje szczyty przyspieszenia w trzech osiach, filtruje szumy i określa liczbę kroków. Nowoczesne modele wykorzystują również żyroskop i uczenie maszynowe w celu zwiększenia dokładności i klasyfikacji aktywności.

Jak dokładny jest krokomierz w smartfonie?

Podczas noszenia smartfona w kieszeni spodni dokładność osiąga 95–97% przy zwykłym chodzeniu. W torbie lub plecaku dokładność spada do 70–85%. Na dokładność wpływa również styl chodzenia i rodzaj powierzchni — nierówny teren może powodować błędy do 10–15%.

Czy krokomierz może działać bez internetu?

Tak, krokomierz działa całkowicie autonomicznie bez połączenia z internetem. Wszystkie obliczenia są wykonywane na urządzeniu z wykorzystaniem wbudowanych czujników. Internet może być potrzebny tylko do synchronizacji danych z chmurowymi usługami aplikacji fitness lub do wyświetlenia mapy trasy.

Dlaczego krokomierz w różnych aplikacjach pokazuje różne liczby?

Różne aplikacje używają różnych algorytmów przetwarzania danych czujników, progów detekcji kroków i metod filtracji. Niektóre aplikacje liczą kroki na podstawie surowych danych akcelerometru, inne — przez systemowe API (TYPE_STEP_COUNTER), a różnica w zliczeniach może sięgać 10–15%.

Jak uzyskać dostęp do krokomierza w aplikacji Android?

Na Androidzie do dostępu do krokomierza użyj czujnika TYPE_STEP_COUNTER przez Sensor API — dostarcza on skumulowaną liczbę kroków od momentu ostatniego restartu urządzenia. Aby uzyskać dostęp do kroków za konkretny dzień, zintegruj Google Fit API z typem danych TYPE_STEP_COUNT_DELTA.

Podsumowanie

  • Pedometr (krokomierz) — funkcja urządzeń mobilnych określająca liczbę kroków na podstawie danych z akcelerometru MEMS i algorytmów uczenia maszynowego.
  • Główną metodą zliczania kroków jest detekcja pików i przejście przez zero w sygnale akcelerometru z następującą filtracją artefaktów i progiem adaptacyjnym.
  • Nowoczesne implementacje wykorzystują splotowe sieci neuronowe do klasyfikacji chodzenia, biegania i wchodzenia po schodach z dokładnością do 98%.
  • Na iOS dostęp do krokomierza odbywa się przez CMPedometer (Core Motion), na Androidzie — przez TYPE_STEP_COUNTER i Google Fit API.
  • Sprzętowe zliczanie kroków na poziomie hubu czujników nie budzi głównego procesora, zużywając o 80% mniej energii w porównaniu z przetwarzaniem programowym.
  • Dokładność krokomierza zależy od umiejscowienia urządzenia: w kieszeni spodni — do 97%, w torbie — 70–85%. Nierówny teren i wolne chodzenie również obniżają dokładność.
  • W celu minimalizacji błędów stosowana jest kombinacja czujników: akcelerometr + żyroskop + barometr, co pozwala odrzucać fałszywe kroki podczas jazdy środkami transportu i określać wchodzenie po schodach.

Opracujemy aplikację mobilną pod klucz

IT Sectr tworzy aplikacje na iOS i Androida dla startupów i firm od 2017 roku. Doradzimy Ci i zaproponujemy najlepsze rozwiązanie.

Omów projekt

Przeczytaj również