IOS sang một bên, không có giải pháp đơn giản để tạo ra một pedometer chính xác chỉ bằng sản lượng gia tốc; nó chỉ ồn ào. Sử dụng đầu ra từ con quay hồi chuyển (nếu có) để lọc đầu ra sẽ tăng độ chính xác.
Nhưng thô là cách tiếp cận thô đối với mã dây cho máy đếm bước: - các bước được phát hiện dưới dạng biến thể trong gia tốc được phát hiện trên trục Z. Giả sử bạn biết sự tăng tốc mặc định (tác động của lực hấp dẫn) đây là cách bạn làm điều đó:
float g = (x * x + y * y + z * z)/(GRAVITY_VALUE * GRAVITY_VALUE)
ngưỡng của bạn là g=1
(đây là những gì bạn sẽ thấy khi đứng yên). Mức tăng đột biến trong giá trị này biểu thị các bước. Vì vậy, tất cả các bạn phải làm là đếm gai. Hãy nhớ rằng một g> 1 đơn giản sẽ không làm, như một bước, giá trị g sẽ tăng trong một khoảng thời gian nhất định và sau đó quay trở lại (nếu bạn vẽ giá trị theo thời gian, nó sẽ trông giống như một làn sóng tội lỗi khi có một bước - về cơ bản bạn muốn đếm các con sóng tội lỗi)
Hãy nhớ rằng đây chỉ là thứ để bạn bắt đầu; bạn sẽ phải thêm độ phức tạp hơn để tăng độ chính xác. Những điều như: - trễ để tránh phát hiện bước sai - lọc đầu ra gia tốc - tìm ra các khoảng thời gian bước Không được bao gồm ở đây và cần được thử nghiệm.
Cảm ơn rất nhiều vì giải pháp của bạn. nó bằng cách nào đó đã làm việc với một số sai sót trong đó. Mã của bạn vì một lý do nào đó khi tải ban đầu nó đến 11 bước sau đó chỉ tôi mới bắt đầu phát hiện các bước một cách chính xác. Tôi đã chơi khoảng ACCEL_DETECTION_LIMIT nó có tải ban đầu tốt hơn nhưng độ chính xác bị tắt. Dưới đây là giải thích thêm. https://gist.github.com/anonymous/d8563c4c8fc8ba874ba6. Bất kỳ ý tưởng whats vấn đề? – Axil
@Axil đã sửa một lỗi, chỉ cần đặt 'tăng gấp đôi riêng tư 'thành -1 –