گام‌شمار در برنامه‌های موبایل: چیست، چگونه کار می‌کند و در کجا استفاده می‌شود

نویسنده: IT Sectr منتشر شده: 2026-03-25 زمان مطالعه: 8 دقیقه

گام‌شمار (pedometer) در برنامه‌های موبایل — یک مکانیزم نرم‌افزاری-سخت‌افزاری برای شمارش گام‌های کاربر بر اساس داده‌های شتاب‌سنج و ژیروسکوپ است. گوشی‌های هوشمند مدرن از الگوریتم‌های یادگیری ماشین در ترکیب با حسگرها برای تشخیص دقیق راه رفتن، دویدن و سایر انواع فعالیت بدنی استفاده می‌کنند. بر اساس داده‌های Apple HealthKit Documentation, 2025، دقت شمارش گام در دستگاه‌های مدرن در راه رفتن عادی به ۹۵–۹۷٪ می‌رسد.

مهم‌ترین نکات

  • گام‌شمار (pedometer) — تابعی برای شمارش گام‌ها بر اساس تحلیل داده‌های شتاب‌سنج، ژیروسکوپ و الگوریتم‌های یادگیری ماشین.
  • الگوریتم‌های مدرن گام‌شمار قادر به تشخیص راه رفتن، دویدن و بالا رفتن از پله هستند و به طور خودکار نوع فعالیت کاربر را تعیین می‌کنند.
  • حسگر اصلی برای شمارش گام‌ها — شتاب‌سنج که شتاب را در سه محور در هر گام ثبت می‌کند.
  • در iOS توسعه‌دهندگان از طریق CMPedometer از Core Motion به گام‌شمار دسترسی دارند، در Android — از طریق Sensor API با TYPE_STEP_COUNTER.
  • دقت شمارش گام به محل قرارگیری دستگاه بستگی دارد: گام‌شمار زمانی که گوشی در جیب شلوار یا روی کمربند حمل می‌شود دقیق‌ترین کار را دارد.

گام‌شمار در برنامه موبایل چیست؟

گام‌شمار (pedometer) در برنامه‌های موبایل — تابعی است که تعداد گام‌های کاربر را بر اساس داده‌های دریافتی از حسگرهای حرکتی داخلی گوشی هوشمند تعیین می‌کند. بر خلاف گام‌شمارهای مکانیکی گذشته، گام‌شمار موبایل از حسگرهای میکروالکترومکانیکی (MEMS) و الگوریتم‌های پردازش دیجیتال سیگنال برای شمارش دقیق حرکات استفاده می‌کند. پیاده‌سازی‌های مدرن نه تنها گام‌ها را می‌شمارند، بلکه فعالیت را طبقه‌بندی می‌کنند: راه رفتن، دویدن، بالا رفتن از پله.

یکپارچه‌سازی گام‌شمار در دستگاه‌های موبایل با ظهور پردازنده‌ی حرکتی M7 در iPhone 5s در سال ۲۰۱۳ ممکن شد که به طور مداوم داده‌های حسگرها را با حداقل مصرف انرژی جمع‌آوری می‌کرد. امروزه تمام گوشی‌های هوشمند مدرن از شمارش گام در سطح هاب حسگر پشتیبانی سخت‌افزاری دارند — یک تراشه اختصاصی که داده‌های حسگرهای اینرسی را بدون بیدار کردن پردازنده اصلی پردازش می‌کند.

شمارش گام در گوشی هوشمند چگونه کار می‌کند

شمارش گام در گوشی هوشمند بر اساس تحلیل سیگنال‌های شتاب‌سنج است که شتاب دستگاه را در سه محور عمود بر هم (X، Y، Z) اندازه‌گیری می‌کند. هنگام راه رفتن، هر گام یک الگوی مشخص شتاب ایجاد می‌کند: ابتدا یک پیک رو به بالا هنگام بلند کردن پا، سپس یک پیک رو به پایین هنگام فرود. فرکانس گام‌ها (کادنس) برای راه رفتن ۱۰۰–۱۳۰ گام/دقیقه و برای دویدن ۱۵۰–۱۸۰ گام/دقیقه و دامنه شتاب ۲–۶ متر/ثانیه² است.

پردازش سیگنال شتاب‌سنج

سیگنال خام از شتاب‌سنج حاوی نویز و تداخل فرکانس بالا است، بنابراین اولین مرحله پردازش — فیلتر پایین‌گذر (low-pass filter) با فرکانس قطع ۳–۵ هرتز است. پس از فیلتر، بردار شتاب محاسبه می‌شود: a = sqrt(x² + y² + z²) که شتاب مرتبط با حرکت را بدون توجه به جهت دستگاه استخراج می‌کند. سپس الگوریتم ماکزیمم‌های محلی در سیگنال را تشخیص می‌دهد — هر ماکزیمم مربوط به یک گام است.

برای کاهش تشخیص‌های نادرست (مثلاً هنگام تکان خوردن در وسایل نقلیه) معیارهای اضافی اعمال می‌شوند: حداقل دامنه گام (معمولاً >۱٫۲ متر/ثانیه²)، حداقل فاصله بین گام‌ها (۳۰۰–۴۰۰ میلی‌ثانیه برای راه رفتن) و بررسی تناوب سیگنال از طریق خودهمبستگی. اگر فواصل زمانی بین پیک‌ها نامنظم باشد، دنباله به عنوان حرکات تصادفی علامت‌گذاری شده و به عنوان گام محاسبه نمی‌شود.

تشخیص گام از طریق شتاب‌سنج

الگوریتم پایه تشخیص گام از روش تشخیص آستانه‌ای استفاده می‌کند: سیستم به دنبال لحظاتی می‌گردد که سیگنال شتاب‌سنج از آستانه تعیین‌شده عبور کرده و سپس به سطح سکون بازمی‌گردد. هر چنین رویدادی یک گام بالقوه محسوب می‌شود. دو رویکرد وجود دارد: تشخیص پیک (peak detection) و عبور از صفر (zero-crossing). تشخیص پیک ماکزیمم‌های سیگنال را ثبت می‌کند، و zero-crossing — لحظات عبور سیگنال از مقدار میانگین که وابستگی کمتری به دامنه گام دارد.

روش‌های آستانه‌ای و الگوریتم‌های تطبیقی

الگوریتم‌های مدرن شمارش گام از آستانه تطبیقی استفاده می‌کنند که به طور خودکار با سبک راه رفتن کاربر تنظیم می‌شود. سیستم واریانس سیگنال را در ۲–۳ ثانیه آخر تحلیل کرده و آستانه پویا را به عنوان انحراف معیار (RMS) ضرب‌شده در ضریب محاسبه می‌کند. این امکان را می‌دهد که گام‌ها را به درستی بشمارد هم در هنگام قدم زدن آهسته و هم در دویدن پرانرژی بدون کالیبراسیون متقابل بین انواع فعالیت.

الگوریتم‌های شمارش گام و یادگیری ماشین

پیاده‌سازی‌های مدرن گام‌شمار نه تنها از تشخیص پیک، بلکه از یادگیری ماشین برای طبقه‌بندی الگوهای حرکتی استفاده می‌کنند. مدل‌های شبکه عصبی بر روی هزاران ساعت ضبط حرکات واقعی از سناریوهای مختلف آموزش می‌بینند: راه رفتن روی سطح صاف، بالا رفتن از پله، دویدن، سفر با وسایل نقلیه. ویژگی‌های ورودی سری‌های زمانی شتاب‌سنج و ژیروسکوپ هستند و خروجی — احتمال اینکه بخش فعلی سیگنال مربوط به حرکت انسان باشد.

مدل‌های شبکه عصبی برای طبقه‌بندی فعالیت

بر اساس داده‌های تحقیق Google Activity Recognition، مدل‌های مبتنی بر شبکه‌های عصبی پیچشی (CNN) به دقت تشخیص راه رفتن ۹۸٪ در مجموعه داده‌های آزمایشی می‌رسند. در دستگاه‌های Apple از Core ML با مدل Activity Classification استفاده می‌شود که بر روی داده‌های بیش از ۱۰۰ هزار داوطلب آموزش دیده است. مدل‌های بهینه‌شده مستقیماً روی دستگاه کار می‌کنند (استنتاج روی دستگاه)، که پردازش فوری و حفظ حریم خصوصی کاربر را تضمین می‌کند.

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) داده‌های حسگرها را در سطح سخت‌افزار پردازش می‌کند که مصرف انرژی را ۸۰٪ در مقایسه با پردازش نرم‌افزاری کاهش می‌دهد.

در 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) {}
}

دقت و محدودیت‌های گام‌شمار موبایل

دقت گام‌شمار به چند عامل بستگی دارد: محل قرارگیری گوشی هوشمند (در دست، جیب یا کیف)، نوع فعالیت (راه رفتن، دویدن، بالا رفتن از پله) و کیفیت حسگرها. هنگام حمل گوشی در جیب شلوار، دقت ۹۳–۹۷٪، در کیف یا کوله‌پشتی به ۷۰–۸۵٪ کاهش می‌یابد. سبک راه رفتن کاربر نیز بر دقت تأثیر می‌گذارد: راه رفتن ریز با دامنه شتاب کم خطاهای بیشتری نسبت به راه رفتن منظم ایجاد می‌کند.

محدودیت‌های اصلی گام‌شمارهای موبایل عبارتند از: عدم امکان شمارش گام در حرکت بسیار آهسته (<۱٫۵ کیلومتر/ساعت)، تشخیص‌های نادرست ناشی از سفر با وسایل نقلیه، کاهش دقت در دویدن با سرعت کم (دوی آهسته) و تأثیر حرکات دست هنگام صحبت. برای به حداقل رساندن خطاها، برنامه‌های مدرن از ترکیب حسگرها (شتاب‌سنج + ژیروسکوپ + فشارسنج) و یادگیری ماشین برای حذف آرتیفکت‌ها استفاده می‌کنند. فشارسنج، به عنوان مثال، به تعیین بالا رفتن از پله و تغییر ارتفاع کمک می‌کند و گام‌های نادرست در آسانسور را حذف می‌کند.

سوالات متداول

گام‌شمار در تلفن چگونه کار می‌کند؟

گام‌شمار در تلفن از شتاب‌سنج استفاده می‌کند که شتاب را در هر گام ثبت می‌کند. الگوریتم پیک‌های شتاب را در سه محور تحلیل می‌کند، نویز را فیلتر کرده و تعداد گام‌ها را تعیین می‌کند. مدل‌های مدرن همچنین از ژیروسکوپ و یادگیری ماشین برای افزایش دقت و طبقه‌بندی فعالیت استفاده می‌کنند.

گام‌شمار در گوشی هوشمند چقدر دقیق است؟

هنگام حمل گوشی در جیب شلوار، دقت در راه رفتن عادی به ۹۵–۹۷٪ می‌رسد. در کیف یا کوله‌پشتی دقت به ۷۰–۸۵٪ کاهش می‌یابد. سبک راه رفتن و نوع سطح نیز بر دقت تأثیر می‌گذارند — زمین ناهموار می‌تواند خطاهایی تا ۱۰–۱۵٪ ایجاد کند.

آیا گام‌شمار می‌تواند بدون اینترنت کار کند؟

بله، گام‌شمار کاملاً مستقل بدون اتصال به اینترنت کار می‌کند. تمام محاسبات با استفاده از حسگرهای داخلی روی دستگاه انجام می‌شود. اینترنت فقط برای همگام‌سازی داده‌ها با سرویس‌های ابری برنامه‌های تناسب اندام یا نمایش نقشه مسیر ممکن است مورد نیاز باشد.

چرا گام‌شمار در برنامه‌های مختلف اعداد متفاوتی نشان می‌دهد؟

برنامه‌های مختلف از الگوریتم‌های متفاوت پردازش داده‌های حسگرها، آستانه‌های تشخیص گام و روش‌های فیلتراسیون استفاده می‌کنند. برخی برنامه‌ها گام‌ها را بر اساس داده‌های خام شتاب‌سنج می‌شمارند، برخی دیگر — از طریق API سیستم (TYPE_STEP_COUNTER)، و تفاوت در شمارش می‌تواند به ۱۰–۱۵٪ برسد.

چگونه به گام‌شمار در برنامه Android دسترسی پیدا کنیم؟

در Android برای دسترسی به گام‌شمار از حسگر TYPE_STEP_COUNTER از طریق Sensor API استفاده کنید — این حسگر تعداد تجمعی گام‌ها را از آخرین راه‌اندازی مجدد دستگاه ارائه می‌دهد. برای دسترسی به گام‌های یک روز خاص، Google Fit API را با نوع داده TYPE_STEP_COUNT_DELTA یکپارچه کنید.

خلاصه

  • گام‌شمار (pedometer) — تابعی از دستگاه‌های موبایل که تعداد گام‌ها را بر اساس داده‌های شتاب‌سنج MEMS و الگوریتم‌های یادگیری ماشین تعیین می‌کند.
  • روش اصلی شمارش گام — تشخیص پیک و عبور از صفر در سیگنال شتاب‌سنج با فیلتراسیون بعدی آرتیفکت‌ها و آستانه تطبیقی.
  • پیاده‌سازی‌های مدرن از شبکه‌های عصبی پیچشی برای طبقه‌بندی راه رفتن، دویدن و بالا رفتن از پله با دقت تا ۹۸٪ استفاده می‌کنند.
  • در iOS دسترسی به گام‌شمار از طریق CMPedometer (Core Motion) و در Android — از طریق TYPE_STEP_COUNTER و Google Fit API انجام می‌شود.
  • شمارش سخت‌افزاری گام در سطح هاب حسگر پردازنده اصلی را بیدار نمی‌کند و در مقایسه با پردازش نرم‌افزاری ۸۰٪ انرژی کمتری مصرف می‌کند.
  • دقت گام‌شمار به محل قرارگیری دستگاه بستگی دارد: در جیب شلوار — تا ۹۷٪، در کیف — ۷۰–۸۵٪. زمین ناهموار و راه رفتن آهسته نیز دقت را کاهش می‌دهند.
  • برای به حداقل رساندن خطاها از ترکیب حسگرها استفاده می‌شود: شتاب‌سنج + ژیروسکوپ + فشارسنج که امکان حذف گام‌های نادرست در سفر با وسایل نقلیه و تشخیص بالا رفتن از پله را فراهم می‌کند.

ما یک اپلیکیشن موبایل به صورت کلید در دست توسعه خواهیم داد

IT Sectr از سال 2017 برنامه‌های iOS و Android را برای استارتاپ‌ها و کسب‌وکارها ایجاد می‌کند. ما به شما مشاوره می‌دهیم و بهترین راه‌حل را پیشنهاد خواهیم کرد.

بحث درباره پروژه

همچنین بخوانید