我遇到了一种情况,我可能觉得有必要开发一个简单的 GPS 应用程序来充当速度计。它是为具有 CPU (162MHz ARM) 和 RAM (4MB) 限制的旧 PDA 开发的,它与串行 GPS 接收器通信。
这是一个可行的项目吗?它不需要精确到比赛,但足够接近以遵守速度限制。
我从哪里开始了解 GPS 规格、通过串行方式获取数据等。
我遇到了一种情况,我可能觉得有必要开发一个简单的 GPS 应用程序来充当速度计。它是为具有 CPU (162MHz ARM) 和 RAM (4MB) 限制的旧 PDA 开发的,它与串行 GPS 接收器通信。
这是一个可行的项目吗?它不需要精确到比赛,但足够接近以遵守速度限制。
我从哪里开始了解 GPS 规格、通过串行方式获取数据等。
PDA 应该有足够的资源来接收来自 GPS 的导航数据。大多数 GPS 接收器都输出标准 ASCII 格式的调用 NMEA 语句,在此处进行了描述。您可能最感兴趣的句子是VTG,因为它包括以公里为单位的地速。
您需要检查您的特定 GPS 接收器是否允许您选择它发送的 NMEA 句子。有些只会发送 GGA 语句,它会给你 lat/long/altitude(通常称为 WGS-84 坐标)。然后你必须自己做数学来计算速度。这些算法将从 WGS-84 转换为地心地球固定 (ECEF) 坐标,然后采用差异来计算速度。这比 GPS 为您做的计算密集得多,除非您添加某种过滤,否则容易产生噪音,并且可能由于连续读取中的位置错误而不准确。
您可能会问为什么 VTG 语句在错误方面会更好 - GPS 接收器能够使用 GPS 信号中的多普勒频移来估计速度,这比位置差异要准确得多。这里有一个很好的描述。
如果您的接收器不支持包含速度的 NMEA 语句,您可以检查它是否支持任何可能包含速度的二进制格式。
Eric S. Raymond 写了一篇关于使用 GPS 进行黑客攻击的优秀文章(和咆哮) 。