عداد الخطى في التطبيقات المحمولة هو آلية برمجية وعتادية لعد خطوات المستخدم بناءً على بيانات مقياس التسارع والجيروسكوب. تستخدم الهواتف الذكية الحديثة خوارزميات التعلم الآلي بالتزامن مع المستشعرات لتحديد المشي والجري وأنواع النشاط البدني الأخرى بدقة. وفقاً لوثائق Apple HealthKit، 2025، تصل دقة عد الخطوات على الأجهزة الحديثة إلى 95–97% أثناء المشي العادي.
النقاط الرئيسية
عداد الخطى في التطبيقات المحمولة هو ميزة تحدد عدد خطوات المستخدم بناءً على البيانات الواردة من مستشعرات الحركة المدمجة في الهاتف الذكي. على عكس عدادات الخطى الميكانيكية في الماضي، يستخدم عداد الخطى المحمول مستشعرات كهروميكانيكية دقيقة (MEMS) وخوارزميات معالجة الإشارات الرقمية للعد الدقيق للحركات. لا تقتصر التطبيقات الحديثة على عد الخطوات فحسب، بل تصنف النشاط أيضاً: المشي، الجري، صعود السلالم.
أصبح دمج عداد الخطى في الأجهزة المحمولة ممكناً بفضل ظهور المعالج المساعد للحركة M7 في iPhone 5s عام 2013، الذي كان يجمع البيانات من المستشعرات باستمرار باستهلاك منخفض للطاقة. اليوم، تحتوي جميع الهواتف الذكية الحديثة على دعم عتادي لعد الخطوات على مستوى محور المستشعرات — شريحة مخصصة تعالج بيانات مستشعرات القصور الذاتي دون إيقاظ المعالج الرئيسي.
يعتمد عد الخطوات على الهاتف الذكي على تحليل إشارات مقياس التسارع، الذي يقيس تسارع الجهاز على ثلاثة محاور متعامدة (X, Y, Z). عند المشي، تُحدث كل خطوة نمط تسارع مميزاً: أولاً قمة للأعلى عند رفع الساق، ثم قمة للأسفل عند الهبوط. يبلغ إيقاع الخطوات 100–130 خطوة/دقيقة للمشي و150–180 خطوة/دقيقة للجري، بينما تتراوح سعة التسارع بين 2–6 م/ث².
تحتوي الإشارة الخام من مقياس التسارع على ضوضاء وتداخلات عالية التردد، لذا فإن المرحلة الأولى من المعالجة هي الترشيح المنخفض التمرير بتردد قطع 3–5 هرتز. بعد الترشيح، يتم حساب متجه التسارع: a = sqrt(x² + y² + z²)، مما يعزل التسارع المرتبط بالحركة بغض النظر عن اتجاه الجهاز. ثم يكتشف الخوارزمية القمم المحلية في الإشارة — كل قمة تقابل خطوة واحدة.
لتقليل النتائج الإيجابية الكاذبة (مثل الاهتزاز في وسائل النقل)، تُطبق معايير إضافية: السعة الدنيا للخطوة (عادة >1.2 م/ث²)، والفاصل الزمني الأدنى بين الخطوات (300–400 مللي ثانية للمشي)، والتحقق من دورية الإشارة عبر الارتباط الذاتي. إذا كانت الفواصل الزمنية بين القمم غير منتظمة، يتم تصنيف التسلسل كحركة عشوائية ولا يُحتسب كخطوات.
يستخدم الخوارزمية الأساسية لكشف الخطوات طريقة الكشف بالعتبة: يبحث النظام عن اللحظات التي تتجاوز فيها إشارة مقياس التسارع عتبة محددة ثم تعود إلى مستوى السكون. يُعتبر كل حدث من هذا القبيل خطوة محتملة. هناك طريقتان: كشف القمم (peak detection) وعبور الصفر (zero-crossing). يلتقط كشف القمم الحدود القصوى للإشارة، بينما يكتشف عبور الصفر لحظات عبور الإشارة للقيمة المتوسطة، وهو أقل اعتماداً على سعة الخطوة.
تستخدم خوارزميات عد الخطوات الحديثة عتبة تكيفية تضبط نفسها تلقائياً وفقاً لأسلوب مشي المستخدم. يحلل النظام تباين الإشارة خلال آخر 2–3 ثوانٍ ويحسب عتبة ديناميكية كجذر متوسط المربعات (RMS) مضروباً في معامل. وهذا يسمح بعد الخطوات بشكل صحيح سواء أثناء المشي البطيء أو الجري النشط دون معايرة متبادلة بين أنواع النشاط.
لا تستخدم تطبيقات عداد الخطى الحديثة كشف القمم فحسب، بل تستخدم أيضاً التعلم الآلي لتصنيف أنماط الحركة. تُدرَّب نماذج الشبكات العصبية على آلاف الساعات من تسجيلات الحركات الحقيقية من سيناريوهات مختلفة: المشي على الأسطح المستوية، صعود السلالم، الجري، ركوب وسائل النقل. تشمل ميزات الإدخال السلاسل الزمنية لمقياس التسارع والجيروسكوب، ويكون الناتج هو احتمال أن المقطع الحالي للإشارة يتوافق مع حركة الإنسان.
وفقاً لأبحاث Google Activity Recognition، تحقق النماذج القائمة على الشبكات العصبية التلافيفية (CNN) دقة 98% في التعرف على المشي على مجموعات البيانات المرجعية. على أجهزة Apple، يُستخدم Core ML مع نموذج تصنيف النشاط المدرب على بيانات أكثر من 100,000 متطوع. تعمل النماذج المحسّنة مباشرة على الجهاز (inference on-device)، مما يضمن معالجة فورية والحفاظ على خصوصية المستخدم.
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
// تحديث واجهة المستخدم بعدد الخطوات
DispatchQueue.main.async {
// self.stepsLabel.text = "\(steps) خطوة"
}
}
}
func stopTracking() {
pedometer.stopUpdates()
}
}
في 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.
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، للوصول إلى عداد الخطى، استخدم مستشعر TYPE_STEP_COUNTER عبر Sensor API — فهو يوفر عدد الخطوات التراكمي منذ آخر إعادة تشغيل للجهاز. للوصول إلى خطوات يوم محدد، قم بدمج Google Fit API مع نوع البيانات TYPE_STEP_COUNT_DELTA.
الخلاصة
سنقوم بتطوير تطبيق جوال جاهز
تقدم IT Sectr تطبيقات iOS وAndroid للشركات الناشئة والشركات منذ عام 2017. سوف نقدم لك النصح ونقترح أفضل حل.
اقرأ أيضًا