← 文章 / 未分类
metaflow 1小时前 · 2026-09-01 11:37:31 · 1 阅读

一次 TinyGPS 升级,新增了对 NMEA v3.0 和 GLONASS 的支持

2015 年 9 月 3 日 · admin

简而言之:可以试试我 fork 的 https://github.com/florind/TinyGPS。它增加了 GLONASSNMEA 3.x 支持,同时完全兼容原版 TinyGPS 和 Arduino。

我的博客已经沉寂太久了(整整四年!),但这段时间我一直在积极参与几个项目。大约 3 年半前,我重新拾起了硬件工程——这是我从小就喜欢的一项爱好。
我正在把 GPS 集成到一个兼容 Arduino 的硬件项目中,使用的是 Maestro Wireless 的一款名为 A5100 的模块。它的一大特点是支持 GLONASS(俄罗斯的卫星导航系统)。
TinyGPS 项目已经提供了相当不错的 GPS 支持,但缺少 NMEA v3.0 等领域内的新特性,也不支持其他卫星导航系统。这意味着,在解析上述 A5100 等设备发送的 NMEA 语句时,一些有用数据会被忽略。

因此,我更新了 TinyGPS,补充了这些缺失的功能,并将代码发布在这里:https://github.com/florind/TinyGPS。它可以直接替换 TinyGPS,并向后兼容所有与 NMEA 兼容、接入 Arduino 的 GPS 接收器。

完整细节请参阅 Github 文档。值得一提的是,此次更新增加了 GLONASS 支持,并在尚未定位时提供了一些有用信息:

  • 日期和时间
  • 可见卫星数量

利用这些数据,我们可以构建包含更多高级信息的 GPS 用户界面。下面就是我在一款小型 Sharp ePaper LCD——LS013B4DN04——上制作的界面:

gps-notrack gps-track
左侧截图显示 GPS 设备正在搜索定位信号。顶部显示了有效的日期和时间,以及当前可见的卫星:GPS 星座 4 颗,GLONASS 星座 5 颗(PRN 为 65 及以上)。每颗卫星都会以 dB 为单位显示信噪比(这里缩写为“d”)。 关于 NMEA ID 的详细说明,请参阅:https://github.com/mvglasow/satstat/wiki/NMEA-IDs

右侧截图显示 GPS 设备已经完成定位。虽然界面仍显示所有可见卫星,但实际上只有 3 颗参与了定位计算。图中还显示了GNS 模式指示器“AN”,表示当前定位结果只使用了 GPS 星座。

如果你对 e210 感到疑惑,它表示水平精度因子,也就是 HDOP。除以 100 后,就能得到 Wikipedia 中所列范围对应的数值。

A5100 及其他新款 GPS 芯片开箱即支持Galileo(预计 2016 年投入运行)和BEIDOU(目前已在亚洲投入运行)。 由于本次更新只增加了 GLONASS 支持,如果你所在地区还能使用其他卫星系统,也欢迎自行添加支持——目前可以考虑 BEIDOU。

原始来源: metaflow

评论 (0)