Pedometr (qadam hisoblagich) mobil ilovalarda — bu akselerometr va giroskop ma'lumotlari asosida foydalanuvchi qadamlarini hisoblaydigan dasturiy-apparat mexanizmidir. Zamonaviy smartfonlar aniq yurish, yugurish va boshqa jismoniy faoliyat turlarini aniqlash uchun sensorlar bilan birgalikda mashina o'rganish algoritmlaridan foydalanadi. Apple HealthKit Documentation, 2025 ma'lumotlariga ko'ra, zamonaviy qurilmalarda qadam hisoblash aniqligi normal yurish vaqtida 95–97% ga etadi.
Asosiy ma'lumotlar
Qadam hisoblagich (pedometr) mobil ilovalarda — bu smartfonning ichki harakat sensorlaridan keladigan ma'lumotlar asosida foydalanuvchining qadam sonini aniqlaydigan funksiyadir. O'tmishdagi mexanik qadam hisoblagichlardan farqli o'laroq, mobil pedometr aniq lokomotsiyalarni hisoblash uchun mikroelektromexanik sensorlar (MEMS) va raqamli signalga ishlov berish algoritmlaridan foydalanadi. Zamonaviy tatbiqlar nafaqat qadamlarni hisoblaydi, balki faoliyatni tasniflaydi: yurish, yugurish, zinapoyaga chiqish.
Qadam hisoblagichning mobil qurilmalarga integratsiyasi 2013 yilda iPhone 5s da minimal energiya sarfi bilan sensorlardan uzluksiz ma'lumot to'plovchi M7 harakat koprotsessorining paydo bo'lishi tufayli mumkin bo'ldi. Bugungi kunda barcha zamonaviy smartfonlar sensor hub darajasida — asosiy protsessorni uyg'otmasdan inertial sensor ma'lumotlarini qayta ishlaydigan maxsus chip darajasida qadam hisoblash uchun apparat qo'llab-quvvatlashga ega.
Smartfonda qadam hisoblash qurilmaning uchta perpendikulyar o'q (X, Y, Z) bo'ylab tezlanishini o'lchaydigan akselerometr signallarini tahlil qilishga asoslangan. Yurish paytida har bir qadam xarakterli tezlanish naqshini yaratadi: avval oyoq ko'tarilganda yuqoriga cho'qqi, keyin qo'nishda pastga cho'qqi. Qadam chastotasi (kadans) yurish uchun 100–130 qadam/min, yugurish uchun 150–180 qadam/min, tezlanish amplitudasi esa 2–6 m/s² ni tashkil qiladi.
Akselerometrdan kelayotgan xom signal shovqin va yuqori chastotali xalaqitlarni o'z ichiga oladi, shuning uchun qayta ishlashning birinchi bosqichi 3–5 Hz kesish chastotasi bilan past o'tkazuvchan filtr (low-pass filter) dir. Filtrdan so'ng qurilma yo'nalishidan qat'iy nazar harakat bilan bog'liq tezlanishni ajratib oluvchi tezlanish vektori hisoblanadi: a = sqrt(x² + y² + z²). Keyin algoritm signalda mahalliy maksimallarni aniqlaydi — har bir maksimum bitta qadamga to'g'ri keladi.
Soxta ishga tushishlarni kamaytirish uchun (masalan, transportda silkinish paytida) qo'shimcha mezonlar qo'llaniladi: minimal qadam amplitudasi (odatda >1,2 m/s²), qadamlar orasidagi minimal interval (yurish uchun 300–400 ms) va avtokorrelyatsiya orqali signalning davriyligini tekshirish. Cho'qqilar orasidagi vaqt intervallari notartib bo'lsa, ketma-ketlik tasodifiy harakatlar sifatida belgilanadi va qadam sifatida hisoblanmaydi.
Asosiy qadam aniqlash algoritmi chegaraviy aniqlash usulidan foydalanadi: tizim akselerometr signali belgilangan chegaradan oshib, keyin tinchlik darajasiga qaytgan paytlarni qidiradi. Har bir bunday hodisa potentsial qadam hisoblanadi. Ikki yondashuv mavjud: cho'qqi aniqlash (peak detection) va nol kesishmasi (zero-crossing). Cho'qqi aniqlash signalning maksimallarini qayd etadi, zero-crossing esa — signalning o'rtacha qiymatdan o'tish paytlarini, bu esa qadam amplitudasiga kamroq bog'liq.
Zamonaviy qadam hisoblash algoritmlari foydalanuvchining yurish uslubiga avtomatik moslashadigan adaptiv chegaradan foydalanadi. Tizim oxirgi 2–3 soniya davomida signal dispersiyasini tahlil qiladi va dinamik chegarani koeffitsientga ko'paytirilgan o'rtacha kvadratik og'ish (RMS) sifatida hisoblaydi. Bu faoliyat turlari o'rtasida o'zaro kalibrlashsiz ham sekin sayr, ham baquvvat yugurish paytida qadamlarni to'g'ri hisoblashga imkon beradi.
Qadam hisoblagichning zamonaviy tatbiqlari nafaqat cho'qqi aniqlashdan, balki harakat naqshlarini tasniflash uchun mashina o'rganishidan ham foydalanadi. Neyron tarmoq modellari turli stsenariylardan real harakatlarning minglab soatlik yozuvlari asosida o'qitiladi: tekis yuzada yurish, zinapoyaga chiqish, yugurish, transportda sayohat. Kirish xususiyatlari akselerometr va giroskopning vaqt qatorlari, chiqish esa — joriy signal segmentining inson lokomotsiyasiga mos kelish ehtimoli.
Google Activity Recognition tadqiqoti ma'lumotlariga ko'ra, konvolyutsion neyron tarmoqlarga (CNN) asoslangan modellar test ma'lumotlar to'plamlarida yurishni tanib olishda 98% aniqlikka erishadi. Apple qurilmalarida 100 mingdan ortiq ko'ngillilarning ma'lumotlari asosida o'qitilgan Activity Classification modeli bilan Core ML ishlatiladi. Optimallashtirilgan modellar to'g'ridan-to'g'ri qurilmada ishlaydi (on-device inference), bu zudlik bilan qayta ishlashni va foydalanuvchi maxfiyligini saqlashni ta'minlaydi.
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 ni qadamlar soni bilan yangilash
DispatchQueue.main.async {
// self.stepsLabel.text = "\(steps) qadam"
}
}
}
func stopTracking() {
pedometer.stopUpdates()
}
}
iOS da qadam hisoblagichga kirish uchun Core Motion freymvorkidan CMPedometer sinfi ishlatiladi. CMPedometer nafaqat qadam sonini, balki bosib o'tilgan masofani, qavatlar sonini (ko'tarilishlarni), yurish sur'atini va faoliyat vaqtini ham taqdim etadi. Ma'lumotlar real vaqtda (startUpdates) ham, o'tmishdagi istalgan davr uchun (queryPedometerData) ham mavjud. Harakat koprotsessori (M seriyasi) sensor ma'lumotlarini apparat darajasida qayta ishlaydi, bu dasturiy qayta ishlashga nisbatan energiya sarfini 80% kamaytiradi.
Android da qadam hisoblagich bilan ishlash ikkita apparat sensori orqali amalga oshiriladi: TYPE_STEP_COUNTER (yuklashdan boshlab kumulyativ qadam hisoblagichi) va TYPE_STEP_DETECTOR (har bir qadamda hodisa generatsiyasi). TYPE_STEP_COUNTER kalibrlashni talab qilmaydi va protsessor energiyasini sarf qilmaydi — ma'lumotlar sensor hub darajasida apparat tomonidan yangilanadi. Kun davomida to'plangan qadam statistikasiga kirish uchun DataType.TYPE_STEP_COUNT_DELTA yozuvi bilan Google Fit API ishlatiladi.
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) {}
}
Qadam hisoblagichning aniqligi bir necha omillarga bog'liq: smartfonning joylashuvi (qo'lda, cho'ntakda yoki sumkada), faoliyat turi (yurish, yugurish, zinapoyaga chiqish) va sensorlar sifati. Smartfon shim cho'ntagida olib yurilganda aniqlik 93–97%, sumka yoki ryukzakda 70–85% gacha tushadi. Foydalanuvchining yurish uslubi ham aniqlikka ta'sir qiladi: mayda qadamli yurish kichik tezlanish amplitudasi bilan o'lchovli yurishga qaraganda ko'proq xato beradi.
Mobil qadam hisoblagichlarning asosiy cheklovlari quyidagilardir: juda sekin harakatda (<1,5 km/soat) qadamlarni hisoblay olmaslik, transportda sayohatdan soxta ishga tushishlar, past tezlikdagi yugurishda (yengil yugurish) aniqlikning pasayishi va suhbat vaqtida imo-ishoralarning ta'siri. Xatolarni minimallashtirish uchun zamonaviy ilovalar sensorlar kombinatsiyasidan (akselerometr + giroskop + barometr) va artefaktlarni chiqarib tashlash uchun mashina o'rganishidan foydalanadi. Barometr, masalan, zinapoyaga chiqish va balandlik o'zgarishini aniqlashga yordam beradi, liftdagi soxta qadamlarni istisno qiladi.
Tez-tez so'raladigan savollar
Qadam hisoblagich telefonda har bir qadamda tezlanishni qayd etuvchi akselerometrdan foydalanadi. Algoritm uch o'q bo'ylab tezlanish cho'qqilarini tahlil qiladi, shovqinni filtrlaydi va qadam sonini aniqlaydi. Zamonaviy modellar aniqlikni oshirish va faoliyatni tasniflash uchun giroskop va mashina o'rganishidan ham foydalanadi.
Smartfonni shim cho'ntagida olib yurganda aniqlik oddiy yurishda 95–97% ga etadi. Sumka yoki ryukzakda aniqlik 70–85% gacha tushadi. Aniqlikka yurish uslubi va sirt turi ham ta'sir qiladi — notekis relyef 10–15% gacha xatolikka olib kelishi mumkin.
Ha, qadam hisoblagich internetga ulanmasdan to'liq avtonom ishlaydi. Barcha hisob-kitoblar ichki sensorlardan foydalangan holda qurilmada amalga oshiriladi. Internet faqat fitnes ilovalarining bulut xizmatlari bilan ma'lumotlarni sinxronlash yoki marshrut xaritasini ko'rsatish uchun kerak bo'lishi mumkin.
Turli ilovalar sensor ma'lumotlarini qayta ishlash uchun turli algoritmlar, qadam aniqlash chegaralari va filtrlash usullaridan foydalanadi. Ba'zi ilovalar qadamlarni xom akselerometr ma'lumotlari asosida hisoblaydi, boshqalari — tizim API lari (TYPE_STEP_COUNTER) orqali, va hisoblashlardagi farq 10–15% gacha yetishi mumkin.
Android da qadam hisoblagichga kirish uchun Sensor API orqali TYPE_STEP_COUNTER sensoridan foydalaning — u qurilma oxirgi qayta yuklanganidan boshlab kumulyativ qadam sonini taqdim etadi. Muayyan bir kun uchun qadamlarga kirish uchun TYPE_STEP_COUNT_DELTA ma'lumot turi bilan Google Fit API ni integratsiya qiling.
Xulosa
Biz kalit topshirig'i bilan mobil ilovani ishlab chiqamiz
IT Sectr 2017-yildan beri startaplar va korxonalar uchun iOS va Android ilovalarini yaratadi. Biz sizga maslahat beramiz va eng yaxshi yechimni taklif qilamiz.