Ang pedometer (step counter) sa mga mobile app ay isang software-hardware na mekanismo ng pagbilang ng mga hakbang ng gumagamit batay sa data mula sa accelerometer at gyroscope. Gumagamit ang mga modernong smartphone ng machine learning algorithm kasama ng mga sensor para sa tumpak na pagtukoy ng paglalakad, pagtakbo, at iba pang uri ng pisikal na aktibidad. Ayon sa datos ng Apple HealthKit Documentation, 2025, ang accuracy ng pagbilang ng hakbang sa mga modernong device ay umaabot sa 95–97% sa normal na paglalakad.
Mga Pangunahing Punto
Pedometer (step counter) sa mga mobile app ay isang function na tumutukoy sa bilang ng mga hakbang ng gumagamit batay sa data na nagmumula sa mga built-in na motion sensor ng smartphone. Hindi tulad ng mga mechanical pedometer noong nakaraan, ang mobile pedometer ay gumagamit ng micro-electro-mechanical sensors (MEMS) at digital signal processing algorithm para sa tumpak na pagbilang ng mga lokomosyon. Ang mga modernong implementasyon ay hindi lamang nagbibilang ng mga hakbang, kundi nag-uuri ng aktibidad: paglalakad, pagtakbo, pag-akyat ng hagdan.
Ang integrasyon ng pedometer sa mga mobile device ay naging posible dahil sa pagdating noong 2013 ng M7 motion coprocessor sa iPhone 5s, na patuloy na nangongolekta ng data mula sa mga sensor na may minimal na konsumo ng kuryente. Ngayon, lahat ng modernong smartphone ay may hardware support para sa pagbilang ng hakbang sa antas ng sensor hub — isang dedicated chip na nagpoproseso ng data mula sa inertial sensors nang hindi ginigising ang pangunahing processor.
Ang pagbilang ng hakbang sa smartphone ay batay sa pagsusuri ng mga signal ng accelerometer, na sumusukat sa acceleration ng device sa tatlong perpendicular axes (X, Y, Z). Sa paglalakad, ang bawat hakbang ay lumilikha ng isang katangiang pattern ng acceleration: una ay isang peak pataas kapag itinataas ang paa, pagkatapos ay isang peak pababa kapag lumapag. Ang frequency ng hakbang (cadence) ay 100–130 hakbang/min para sa paglalakad at 150–180 hakbang/min para sa pagtakbo, at ang amplitude ng acceleration ay 2–6 m/s².
Ang raw signal mula sa accelerometer ay naglalaman ng ingay at high-frequency interference, kaya ang unang yugto ng pagproseso ay low-pass filter na may cutoff frequency na 3–5 Hz. Pagkatapos ng filtering, kinakalkula ang acceleration vector: a = sqrt(x² + y² + z²), na kumukuha ng acceleration na nauugnay sa paggalaw, anuman ang orientation ng device. Pagkatapos, ang algorithm ay nagde-detect ng local maxima sa signal — bawat maximum ay tumutugma sa isang hakbang.
Para sa pagbawas ng false positives (halimbawa, sa pag-alog sa transportasyon) ay inilalapat ang mga karagdagang criteria: minimum na amplitude ng hakbang (karaniwang >1.2 m/s²), minimum na interval sa pagitan ng mga hakbang (300–400 ms para sa paglalakad) at pagsusuri ng periodicity ng signal sa pamamagitan ng autocorrelation. Kung ang time intervals sa pagitan ng mga peak ay irregular, ang sequence ay minamarkahan bilang random na paggalaw at hindi binibilang bilang mga hakbang.
Ang pangunahing algorithm ng pag-detect ng hakbang ay gumagamit ng threshold detection method: hinahanap ng system ang mga sandali kung kailan lumalampas ang signal ng accelerometer sa itinakdang threshold at pagkatapos ay bumabalik sa resting level. Ang bawat ganitong pangyayari ay itinuturing na potensyal na hakbang. Mayroong dalawang approach: peak detection at zero-crossing. Ang peak detection ay nagtatala ng maxima ng signal, at ang zero-crossing — ang mga sandali ng pagdaan ng signal sa average na halaga, na hindi gaanong umaasa sa amplitude ng hakbang.
Ang mga modernong algorithm ng pagbilang ng hakbang ay gumagamit ng adaptive threshold na awtomatikong nag-a-adjust sa estilo ng paglalakad ng gumagamit. Sinusuri ng system ang variance ng signal sa nakaraang 2–3 segundo at kinakalkula ang dynamic threshold bilang standard deviation (RMS) na pinarami ng coefficient. Ito ay nagpapahintulot ng tamang pagbilang ng mga hakbang kapwa sa mabagal na paglalakad at sa mabilis na pagtakbo nang walang cross-calibration sa pagitan ng mga uri ng aktibidad.
Ang mga modernong implementasyon ng pedometer ay hindi lamang gumagamit ng peak detection, kundi pati na rin ng machine learning para sa pag-uuri ng mga pattern ng paggalaw. Ang mga neural network model ay sinanay sa libu-libong oras ng recording ng mga tunay na paggalaw mula sa iba't ibang scenario: paglalakad sa patag na ibabaw, pag-akyat ng hagdan, pagtakbo, paglalakbay sa transportasyon. Ang input features ay ang time series ng accelerometer at gyroscope, at ang output ay ang probability na ang kasalukuyang segment ng signal ay tumutugma sa human locomotion.
Ayon sa datos ng pananaliksik ng Google Activity Recognition, ang mga model batay sa convolutional neural networks (CNN) ay umaabot sa accuracy ng pagkilala ng paglalakad na 98% sa test datasets. Sa mga Apple device, ginagamit ang Core ML na may Activity Classification model, na sinanay sa data ng mahigit 100 libong volunteers. Ang mga optimized model ay gumagana nang direkta sa device (on-device inference), na tinitiyak ang instant processing at pagpapanatili ng privacy ng gumagamit.
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
// Pag-update ng UI na may bilang ng mga hakbang
DispatchQueue.main.async {
// self.stepsLabel.text = "\(steps) hakbang"
}
}
}
func stopTracking() {
pedometer.stopUpdates()
}
}
Sa iOS, para sa pag-access sa pedometer ay ginagamit ang CMPedometer class mula sa Core Motion framework. Ang CMPedometer ay nagbibigay hindi lamang ng bilang ng mga hakbang, kundi pati na rin ng distansyang nilakbay, bilang ng mga palapag (pag-akyat), tempo ng paglalakad, at oras ng aktibidad. Ang data ay available pareho sa real-time (startUpdates) at para sa anumang panahon sa nakaraan (queryPedometerData). Ang motion coprocessor (M-series) ay nagpoproseso ng sensor data sa hardware level, na nagpapababa ng konsumo ng kuryente ng 80% kumpara sa software processing.
Sa Android, ang paggawa gamit ang pedometer ay isinasagawa sa pamamagitan ng dalawang hardware sensors: TYPE_STEP_COUNTER (cumulative step counter mula noong boot) at TYPE_STEP_DETECTOR (generating event sa bawat hakbang). Ang TYPE_STEP_COUNTER ay hindi nangangailangan ng calibration at hindi kumokonsumo ng processor power — ang data ay ina-update sa hardware level sa sensor hub. Para sa pag-access sa naipon na statistics ng hakbang para sa isang araw, ginagamit ang Google Fit API na may record na 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) {}
}
Ang accuracy ng pedometer ay depende sa ilang factors: lokasyon ng smartphone (sa kamay, bulsa o bag), uri ng aktibidad (paglalakad, pagtakbo, pag-akyat ng hagdan), at kalidad ng sensors. Kapag dala ang smartphone sa bulsa ng pantalon, ang accuracy ay 93–97%, sa bag o backpack ay bumababa sa 70–85%. Ang estilo ng paglalakad ng gumagamit ay nakakaapekto rin sa accuracy: ang maikling hakbang na may maliit na amplitude ng acceleration ay nagbibigay ng mas maraming error kaysa sa regular na paglalakad.
Ang pangunahing limitasyon ng mobile pedometer ay kinabibilangan ng: kawalan ng kakayahang magbilang ng hakbang sa napakabagal na paggalaw (<1.5 km/h), false positives mula sa paglalakbay sa transportasyon, pagbaba ng accuracy sa pagtakbo sa mababang bilis (jogging), at impluwensya ng gestures habang nagsasalita. Para mabawasan ang mga error, ang mga modernong app ay gumagamit ng kombinasyon ng sensors (accelerometer + gyroscope + barometer) at machine learning para sa pag-filter ng artifacts. Ang barometer, halimbawa, ay tumutulong sa pagtukoy ng pag-akyat ng hagdan at pagbabago ng altitude, na nag-aalis ng false steps sa elevator.
Mga Madalas Itanong
Ang pedometer sa telepono ay gumagamit ng accelerometer, na nagtatala ng acceleration sa bawat hakbang. Sinusuri ng algorithm ang acceleration peaks sa tatlong axes, nagfi-filter ng ingay, at tinutukoy ang bilang ng mga hakbang. Ang mga modernong modelo ay gumagamit din ng gyroscope at machine learning para sa pagtaas ng accuracy at pag-uuri ng aktibidad.
Kapag dala ang smartphone sa bulsa ng pantalon, ang accuracy ay umaabot sa 95–97% sa normal na paglalakad. Sa bag o backpack, ang accuracy ay bumababa sa 70–85%. Ang estilo ng paglalakad at uri ng surface ay nakakaapekto rin sa accuracy — ang hindi pantay na terrain ay maaaring magdulot ng error hanggang 10–15%.
Oo, ang pedometer ay gumagana nang ganap na autonomous nang walang koneksyon sa internet. Lahat ng kalkulasyon ay ginagawa sa device gamit ang mga built-in na sensor. Ang internet ay maaaring kailanganin lamang para sa pag-sync ng data sa cloud services ng fitness apps o para sa pagpapakita ng mapa ng ruta.
Ang iba't ibang app ay gumagamit ng iba't ibang algorithm sa pagproseso ng sensor data, thresholds ng pag-detect ng hakbang, at mga pamamaraan ng filtering. Ang ilang app ay nagbibilang ng hakbang batay sa raw accelerometer data, ang iba naman — sa pamamagitan ng system APIs (TYPE_STEP_COUNTER), at ang pagkakaiba sa bilang ay maaaring umabot sa 10–15%.
Sa Android, para sa pag-access sa pedometer gamitin ang TYPE_STEP_COUNTER sensor sa pamamagitan ng Sensor API — nagbibigay ito ng cumulative step count mula noong huling restart ng device. Para sa pag-access sa mga hakbang para sa isang partikular na araw, i-integrate ang Google Fit API na may data type na TYPE_STEP_COUNT_DELTA.
Buod
Gagawa kami ng mobile application na turnkey
Gumagawa ang IT Sectr ng mga iOS at Android application para sa mga startup at negosyo mula noong 2017. Magpapayo kami sa iyo at magmumungkahi ng pinakamahusay na solusyon.
Basahin din