请教指南针的实现原理

hnicypb 2012-03-20 02:14:39
现在要在自己的软件里实现 指南针

是跑在PND导航上的。有GPS数据可以实现么?有什么算法?

谢谢
...全文
535 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
danny1221 2013-12-25
  • 打赏
  • 举报
回复
mark > 6
hnicypb 2012-04-01
  • 打赏
  • 举报
回复
呵呵,结贴,貌似用方位角那个
字段8:方位角,度(二维方向指向,相当于二维罗盘)
用着还行。

反正就是个行车方向。跟电子狗上的一样

/*
发送到计算机的数据主要由帧头、帧尾和帧内数据组成,根据数据帧的不同,帧头也不相同,
主要有"$GPGGA"、"$GPGSA"、"$GPGSV"以及"$GPRMC"等。这些帧头标识了后续帧内数据的组成结构,各帧均以回车符和换行符作为帧尾标识一帧的结束。
对于通常的情况,我们所关心的定位数据如经纬度、速度、时间等均可以从"$GPRMC"帧中获取得到,该帧的结构及各字段释义如下:
$GPRMC
例:$GPRMC,024813.640,A,3158.4608,N,11848.3737,E,10.05,324.27,150706,,,A*50
字段0:$GPRMC,语句ID,表明该语句为Recommended Minimum Specific GPS/TRANSIT Data(RMC)推荐最小定位信息
字段1:UTC时间,hhmmss.sss格式
字段2:状态,A=定位,V=未定位
字段3:纬度ddmm.mmmm,度分格式(前导位数不足则补0)
字段4:纬度N(北纬)或S(南纬)
字段5:经度dddmm.mmmm,度分格式(前导位数不足则补0)
字段6:经度E(东经)或W(西经)
字段7:速度,节,Knots(一节也是1.852千米/小时)
字段8:方位角,度(二维方向指向,相当于二维罗盘)
字段9:UTC日期,DDMMYY格式
字段10:磁偏角,(000 - 180)度(前导位数不足则补0)
字段11:磁偏角方向,E=东W=西
字段12:模式,A=自动,D=差分,E=估测,N=数据无效(3.0协议内容)
字段13:校验值
*/
贝隆 2012-03-22
  • 打赏
  • 举报
回复
iPhone上有好些程序就有这个功能他就是通过GPS先定位来实现指南功能的。
西山小月 2012-03-21
  • 打赏
  • 举报
回复
GPGGA里面有方位角,根据方位角画指南针就行了,自己做个指南针控件。
hnicypb 2012-03-21
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 arthur_zeng 的回复:]

可根据GPS中的NEMA数据,解析出仰角、方位角等相关信息来实现指南针。
[/Quote]

NEMA里面有好几个有这些数据。搞不懂,请教下怎么使用啊,比如我固定的一个正圆形指南针表盘(上北下南左西右东)

现在只是直接根据【地面速度信息(GPVTG)】的地面航向来做的
$GPVTG,<1>,T,<2>,M,<3>,N,<4>,K,<5>*hh
<1> 以真北为参考基准的地面航向(000~359度,前面的0也将被传输)
<2> 以磁北为参考基准的地面航向(000~359度,前面的0也将被传输)
<3> 地面速率(000.0~999.9节,前面的0也将被传输)
<4> 地面速率(0000.0~1851.8公里/小时,前面的0也将被传输)
<5> 模式指示(仅NMEA0183 3.00版本输出,A=自主定位,D=差分,E=估算,N=数据无效

也不知道对不对。反正大大们都说没有“电子罗盘传感器”是实现不了真正地指南针。
导航和电子狗上面的指南针也只是在在运动中产生的车行方向。

但是,导航和电子狗上面的指南针效果也不知道怎么实现的。求大大们点拨。谢谢
月之海 2012-03-20
  • 打赏
  • 举报
回复
可根据GPS中的NEMA数据,解析出仰角、方位角等相关信息来实现指南针。
91program 2012-03-20
  • 打赏
  • 举报
回复
GPS 中的数据,好像没有吧

19,520

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧