我正在製作一個指南針,我有它的工作,但它有一個缺陷。即使設備不移動,指南針上的讀數也會持續幾度變化。我知道這是由於傳感器的磁場失真造成的,但是如何讓我的應用在用戶移動時仍然能夠響應,而用戶仍然沒有顯示太多的變化。那麼我怎麼能給出一個更穩定的指南針呢?如何穩定指南針?
Q
如何穩定指南針?
2
A
回答
1
2
你必須平滑信號。如何顯示最後N個值的平均值而不是顯示原始最後一個值?
1
如果你想寫一個指南針,你需要低通濾波器加速度和磁場均爲。
下面是一個低通濾波器的例子。不是很優雅,但只是爲了表明的原則:
float filteredValue;
void lowPassFilter(float rawValue) {
final float alpha = 0.8f;
float filteredValue = alpha * filteredValue + (1.0f - alpha) * rawValue;
return filteredValue;
}
注意filteredValue是每次調用(如一個成員變量)之後記住。
在另一方面,rawValue是從傳感器事件的值,像event.values [0]。
注意如何每一個「新鮮」新rawValue隻影響濾波值的20%(這是由阿爾法給出)。這會給閱讀帶來「穩定性」,但需要付出一定的代價。
相關問題
- 1. 指南針GPS指南針
- 2. 指南針在枚舉指南針 - lucene
- 3. 安裝與指南針的指南針
- 4. 如何在指南針
- 5. 如何編程指南針?
- 6. 指南針Flexbox
- 7. Android指南針
- 8. android指南針rotateanimation
- 9. _base.scss和指南針
- 10. Android OpenGL指南針
- 11. 指南針慣性
- 12. 指南針校準
- 13. 指南針和http_images_path
- 14. ipad 2指南針?
- 15. 指南針Lucene的
- 16. 安裝指南針
- 17. 實現指南針
- 18. 如何在指南針創建中指定框架版本?
- 19. 如何在指南針編譯中指定line_comments?
- 20. Windows Vista下的指針穩定性
- 21. 指南針指針位置錯誤
- 22. 如何切換指南針版本?
- 23. 如何使用指南針混合?
- 24. 如何使用指南針與symfony?
- 25. 如何訪問iOS中的指南針?
- 26. 如何調試Ruby gem? (指南針)
- 27. 如何在laravel中使用指南針?
- 28. 如何獲取指南針方向
- 29. 使用沒有指南針項目的指南針(sass)功能
- 30. 用SASS /指南針定位精靈