关于3D罗盘的学习

594阅读 0评论2012-07-06 younger0
分类:C/C++

通过这几周的学习,总算把3D罗盘给搞定了,现在拿来和大家分享一下。

在此过程中主要存在几个问题:

1>     要详细学习磁力计和加速计的相关文档;

2>     选择好参考平面,对着文档修改相应的公式;(这一步非常关键)

3>     确定方向轴,这个对修改公式很关键;

4>     通过加速计确定仰角和滚角的度数;

5>     PCB布局一定要注意,将干扰扼杀到摇篮里。

资料中的相关公式:

 

Pitch         φ= atan[ ax / sqrt( ay*ay + az*az ) ]

Roll            θ= atan[ ay / az ]

 

XH = X*cos(f) + Y*sin(q)*sin(f) - Z*cos(q)*sin(f)

YH = Y*cos(q) + Z*sin(q)

Azimuth = arcTan (YH / XH)

关于参考平面的选择,就是设备正常使用的时候是怎么个方位放置的,放置好后,那个坐标平面是和水平面平行的,文档中都是XY坐标平面,但实际应用中肯定不一样,像我这次用到的就是YZ坐标平面,

上一篇:求角度均值方法
下一篇:将dBm转换为W的口算方法