Pedometer trong ứng dụng di động: nó là gì, cách hoạt động và ứng dụng

Tác giả: IT Sectr Đã đăng: 2026-03-25 Thời gian đọc: 8 phút

Pedometer (máy đếm bước) trong ứng dụng di động là cơ chế phần mềm-phần cứng đếm số bước của người dùng dựa trên dữ liệu từ gia tốc kế và con quay hồi chuyển. Điện thoại thông minh hiện đại sử dụng thuật toán học máy kết hợp với cảm biến để phát hiện chính xác việc đi bộ, chạy và các loại hoạt động thể chất khác. Theo Apple HealthKit Documentation, 2025, độ chính xác đếm bước trên thiết bị hiện đại đạt 95–97% khi đi bộ bình thường.

Những điểm chính

  • Pedometer (máy đếm bước) là chức năng đếm bước dựa trên phân tích dữ liệu từ gia tốc kế, con quay hồi chuyển và thuật toán học máy.
  • Thuật toán pedometer hiện đại có thể phân biệt đi bộ, chạy và leo cầu thang, tự động xác định loại hoạt động của người dùng.
  • Cảm biến chính để đếm bước là gia tốc kế, ghi lại gia tốc trên ba trục ở mỗi bước.
  • Trên iOS, nhà phát triển truy cập pedometer qua CMPedometer từ Core Motion; trên Android — qua Sensor API với TYPE_STEP_COUNTER.
  • Độ chính xác đếm bước phụ thuộc vào vị trí thiết bị: pedometer hoạt động chính xác nhất khi điện thoại thông minh được đặt trong túi quần hoặc trên thắt lưng.

Pedometer trong ứng dụng di động là gì?

Pedometer (máy đếm bước) trong ứng dụng di động là chức năng xác định số bước của người dùng dựa trên dữ liệu từ cảm biến chuyển động tích hợp của điện thoại thông minh. Không giống như pedometer cơ học trong quá khứ, pedometer di động sử dụng cảm biến vi cơ điện tử (MEMS) và thuật toán xử lý tín hiệu số để đếm chính xác chuyển động. Các triển khai hiện đại không chỉ đếm bước mà còn phân loại hoạt động: đi bộ, chạy, leo cầu thang.

Việc tích hợp pedometer vào thiết bị di động trở nên khả thi nhờ sự ra đời của bộ xử lý đồng xử lý chuyển động M7 trong iPhone 5s vào năm 2013, bộ xử lý này liên tục thu thập dữ liệu từ cảm biến với mức tiêu thụ điện năng tối thiểu. Ngày nay, tất cả điện thoại thông minh hiện đại đều có hỗ trợ phần cứng để đếm bước ở cấp độ sensor hub — một chip chuyên dụng xử lý dữ liệu cảm biến quán tính mà không đánh thức bộ xử lý chính.

Cách đếm bước hoạt động trên điện thoại thông minh

Đếm bước trên điện thoại thông minh dựa trên phân tích tín hiệu gia tốc kế, đo gia tốc của thiết bị dọc theo ba trục vuông góc (X, Y, Z). Khi đi bộ, mỗi bước tạo ra một mẫu gia tốc đặc trưng: đầu tiên là đỉnh hướng lên khi nhấc chân, sau đó là đỉnh hướng xuống khi tiếp đất. Nhịp bước (cadence) là 100–130 bước/phút khi đi bộ và 150–180 bước/phút khi chạy, trong khi biên độ gia tốc dao động từ 2–6 m/s².

Xử lý tín hiệu gia tốc kế

Tín hiệu thô từ gia tốc kế chứa nhiễu và can nhiễu tần số cao, do đó giai đoạn xử lý đầu tiên là lọc thông thấp với tần số cắt 3–5 Hz. Sau khi lọc, vector gia tốc được tính: a = sqrt(x² + y² + z²), cô lập gia tốc liên quan đến chuyển động bất kể hướng của thiết bị. Sau đó, thuật toán phát hiện các cực đại cục bộ trong tín hiệu — mỗi cực đại tương ứng với một bước.

Để giảm kết quả dương tính giả (ví dụ: rung lắc khi di chuyển bằng phương tiện), các tiêu chí bổ sung được áp dụng: biên độ bước tối thiểu (thường >1,2 m/s²), khoảng thời gian tối thiểu giữa các bước (300–400 ms khi đi bộ) và kiểm tra tính tuần hoàn của tín hiệu qua tự tương quan. Nếu khoảng thời gian giữa các đỉnh không đều đặn, chuỗi được đánh dấu là chuyển động ngẫu nhiên và không được tính là bước.

Phát hiện bước qua gia tốc kế

Thuật toán cơ bản phát hiện bước sử dụng phương pháp phát hiện ngưỡng: hệ thống tìm kiếm những thời điểm tín hiệu gia tốc kế vượt quá ngưỡng đã đặt và sau đó trở về mức nghỉ. Mỗi sự kiện như vậy được coi là một bước tiềm năng. Có hai cách tiếp cận: phát hiện đỉnh (peak detection) và vượt qua mức không (zero-crossing). Phát hiện đỉnh bắt các cực đại của tín hiệu, trong khi vượt qua mức không phát hiện những thời điểm tín hiệu đi qua giá trị trung bình, phương pháp này ít phụ thuộc hơn vào biên độ bước.

Phương pháp ngưỡng và thuật toán thích ứng

Các thuật toán đếm bước hiện đại sử dụng ngưỡng thích ứng tự động điều chỉnh theo phong cách đi bộ của người dùng. Hệ thống phân tích phương sai tín hiệu trong 2–3 giây qua và tính ngưỡng động dưới dạng căn bậc hai trung bình (RMS) nhân với hệ số. Điều này cho phép đếm bước chính xác cả khi đi dạo chậm và khi chạy mạnh mẽ mà không cần hiệu chuẩn chéo giữa các loại hoạt động.

Thuật toán đếm bước và học máy

Các triển khai pedometer hiện đại không chỉ sử dụng phát hiện đỉnh mà còn sử dụng học máy để phân loại mẫu chuyển động. Các mô hình mạng nơ-ron được huấn luyện trên hàng nghìn giờ ghi âm chuyển động thực từ các kịch bản khác nhau: đi bộ trên bề mặt phẳng, leo cầu thang, chạy, di chuyển bằng phương tiện. Đặc trưng đầu vào bao gồm chuỗi thời gian từ gia tốc kế và con quay hồi chuyển, và đầu ra là xác suất đoạn tín hiệu hiện tại tương ứng với chuyển động của con người.

Mô hình mạng nơ-ron để phân loại hoạt động

Theo nghiên cứu Google Activity Recognition, các mô hình dựa trên mạng nơ-ron tích chập (CNN) đạt độ chính xác nhận dạng đi bộ 98% trên các bộ dữ liệu chuẩn. Trên thiết bị Apple, Core ML được sử dụng với mô hình Phân loại hoạt động được huấn luyện trên dữ liệu của hơn 100.000 tình nguyện viên. Các mô hình tối ưu hóa chạy trực tiếp trên thiết bị (suy luận trên thiết bị), đảm bảo xử lý tức thì và bảo vệ quyền riêng tư của người dùng.

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
            
            // Cập nhật giao diện với số bước
            DispatchQueue.main.async {
                // self.stepsLabel.text = "\(steps) bước"
            }
        }
    }

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

Pedometer trên iOS và Android: API và khả năng

Trên iOS, để truy cập pedometer, sử dụng lớp CMPedometer từ framework Core Motion. CMPedometer cung cấp không chỉ số bước mà còn quãng đường đã đi, số tầng đã leo, tốc độ đi bộ và thời gian hoạt động. Dữ liệu có sẵn cả theo thời gian thực (startUpdates) và cho bất kỳ khoảng thời gian nào trong quá khứ (queryPedometerData). Bộ xử lý đồng xử lý chuyển động (dòng M) xử lý dữ liệu cảm biến ở cấp phần cứng, giảm mức tiêu thụ điện năng 80% so với xử lý phần mềm.

Trên Android, chức năng pedometer được triển khai qua hai cảm biến phần cứng: TYPE_STEP_COUNTER (bộ đếm bước tích lũy từ khi khởi động) và TYPE_STEP_DETECTOR (tạo sự kiện cho mỗi bước). TYPE_STEP_COUNTER không cần hiệu chuẩn và không tiêu thụ năng lượng bộ xử lý — dữ liệu được cập nhật ở cấp phần cứng sensor hub. Để truy cập thống kê bước tích lũy hàng ngày, Google Fit API được sử dụng với bản ghi 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) {}
}

Độ chính xác và giới hạn của pedometer di động

Độ chính xác của pedometer phụ thuộc vào một số yếu tố: vị trí của điện thoại thông minh (trong tay, túi hay túi xách), loại hoạt động (đi bộ, chạy, leo cầu thang) và chất lượng cảm biến. Khi điện thoại thông minh được đặt trong túi quần, độ chính xác đạt 93–97%; trong túi xách hoặc ba lô, giảm xuống 70–85%. Phong cách đi bộ của người dùng cũng ảnh hưởng đến độ chính xác: dáng đi lê bước với biên độ gia tốc thấp tạo ra nhiều lỗi hơn so với bước đi đều đặn.

Các giới hạn chính của pedometer di động bao gồm: không thể đếm bước khi di chuyển rất chậm (<1,5 km/h), kết quả dương tính giả từ việc di chuyển bằng phương tiện, giảm độ chính xác khi chạy tốc độ thấp (chạy bộ) và ảnh hưởng của cử chỉ khi nói chuyện. Để giảm thiểu lỗi, các ứng dụng hiện đại sử dụng kết hợp các cảm biến (gia tốc kế + con quay hồi chuyển + áp kế) và học máy để lọc nhiễu. Áp kế, ví dụ, giúp phát hiện leo cầu thang và thay đổi độ cao, loại trừ các bước giả trong thang máy.

Câu hỏi thường gặp

Pedometer trong điện thoại hoạt động như thế nào?

Pedometer trong điện thoại sử dụng gia tốc kế, ghi lại gia tốc ở mỗi bước. Thuật toán phân tích các đỉnh gia tốc trên ba trục, lọc nhiễu và xác định số bước. Các mô hình hiện đại cũng sử dụng con quay hồi chuyển và học máy để cải thiện độ chính xác và phân loại hoạt động.

Pedometer trên điện thoại thông minh chính xác đến mức nào?

Khi đặt điện thoại thông minh trong túi quần, độ chính xác đạt 95–97% khi đi bộ bình thường. Trong túi xách hoặc ba lô, độ chính xác giảm xuống 70–85%. Phong cách đi bộ và loại bề mặt cũng ảnh hưởng đến độ chính xác — địa hình không bằng phẳng có thể gây ra sai số lên đến 10–15%.

Pedometer có thể hoạt động mà không cần internet không?

Có, pedometer hoạt động hoàn toàn ngoại tuyến mà không cần kết nối internet. Tất cả tính toán được thực hiện trên thiết bị sử dụng cảm biến tích hợp. Internet chỉ có thể cần thiết để đồng bộ dữ liệu với dịch vụ đám mây của ứng dụng thể dục hoặc hiển thị bản đồ lộ trình.

Tại sao các ứng dụng khác nhau hiển thị số bước khác nhau?

Các ứng dụng khác nhau sử dụng thuật toán khác nhau để xử lý dữ liệu cảm biến, ngưỡng phát hiện và phương pháp lọc. Một số ứng dụng đếm bước dựa trên dữ liệu gia tốc kế thô, trong khi những ứng dụng khác sử dụng API hệ thống (TYPE_STEP_COUNTER), và sự khác biệt trong đếm có thể lên đến 10–15%.

Làm cách nào để truy cập pedometer trong ứng dụng Android?

Trên Android, để truy cập pedometer, sử dụng cảm biến TYPE_STEP_COUNTER qua Sensor API — nó cung cấp số bước tích lũy từ lần khởi động lại cuối cùng của thiết bị. Để truy cập số bước của một ngày cụ thể, tích hợp Google Fit API với loại dữ liệu TYPE_STEP_COUNT_DELTA.

Tổng kết

  • Pedometer là chức năng của thiết bị di động xác định số bước dựa trên dữ liệu gia tốc kế MEMS và thuật toán học máy.
  • Phương pháp đếm bước chính là phát hiện đỉnh và vượt qua mức không trong tín hiệu gia tốc kế, sau đó lọc nhiễu và ngưỡng thích ứng.
  • Các triển khai hiện đại sử dụng mạng nơ-ron tích chập để phân loại đi bộ, chạy và leo cầu thang với độ chính xác lên đến 98%.
  • Trên iOS, truy cập pedometer qua CMPedometer (Core Motion); trên Android — qua TYPE_STEP_COUNTER và Google Fit API.
  • Đếm bước phần cứng ở cấp sensor hub không đánh thức bộ xử lý chính, tiêu thụ ít hơn 80% năng lượng so với xử lý phần mềm.
  • Độ chính xác của pedometer phụ thuộc vào vị trí thiết bị: trong túi quần — lên đến 97%, trong túi xách — 70–85%. Địa hình không bằng phẳng và đi bộ chậm cũng làm giảm độ chính xác.
  • Để giảm thiểu lỗi, kết hợp cảm biến được sử dụng: gia tốc kế + con quay hồi chuyển + áp kế, giúp lọc các bước giả khi di chuyển bằng phương tiện và phát hiện leo cầu thang.

Chúng tôi sẽ phát triển ứng dụng di động chìa khóa trao tay

IT Sectr tạo các ứng dụng iOS và Android cho các công ty khởi nghiệp và doanh nghiệp từ năm 2017. Chúng tôi sẽ tư vấn và đề xuất giải pháp tốt nhất cho bạn.

Thảo luận dự án

Đọc thêm