GPS 模块:初学者的终极指南
GPS 模块
您的项目是否涉及精确和准确的位置数据,并且您对从哪里开始感到困惑?如果你有 GPS 模块会有所帮助。
使用基本的 GPS 模块,您可以获得项目所需的所有位置数据。
尽管使用 GPS 可能会很棘手,但它比复杂更简单——这要归功于多个个人和行业的努力。
您可能还会对哪些 GPS 模块最适合您的应用程序或采购正确的部件感到困惑。
在本文中,您将看到 GPS 相关问题的解决方案,并了解您需要了解的有关 GPS 电路的所有信息。
什么是 GPS 模块?

全球定位系统
说到位置数据,首先想到的是GPS。但究竟什么是 GPS?
全球定位系统 (GPS) 是一种无线电导航系统,无论天气状况如何,它都能确定精确和准确的位置、速度和时间。此外,GPS 可在陆地、空中和海上工作。
GPS 模块是允许您的设备或电路接收 GPS 数据的设备。但如果 GPS 模块不可用,您可以通过简单的代码使用微控制器作为替代方案。
如今,GPS 设置是手机、计算机和其他智能设备的标准设置,可让您共享您的位置或跟踪另一个物体或人的位置。此外,GPS 可让您访问实时地图并提供导航系统。
GPS 是如何工作的?

GPS 卫星
GPS 卫星和 GPS 接收器是使 GPS 功能成为可能的两个主要组件。此外,该设备在接收器的传输范围内始终有四颗活动卫星。
每颗 GPS 卫星都会向接收器发送有关其当前时间和位置的数据。然后,卫星将这些数据传输到 GPS 接收器拦截的无线电信号中。
有趣的是,这些无线电信号以光速传播,使得传输速度足以满足实时数据应用的需求。另外,您可以通过记录卫星发送信号的时间和接收器截获信号的时间之间的差异来计算卫星和 GPS 接收器之间的距离。
当接收器从三个以上的卫星收集到这些信号时,它会通过三边测量过程确定其位置。然而,一个 GPS 接收器至少需要三颗 GPS 卫星才能传送位置数据。

GPS 接收器
有趣的是,大多数 GPS 模块的工作方式相同。它们使用标准串行接口进行通信,可选择 SPI 和 I2C 通信接口。
此外,消息传递的格式也有其标准。 GPS模块通常使用NMEA-0183形式输出数据。

GPS 模块 2
或者,您可以使用微控制器平台的代码,将您的电路板变成工作的 GPS 模块。其中一些项目包括 Adafruit GPS、minima 和 NeoGPS。像这样的项目将使用串行数据流来提供您想要的所有位置数据。
带有 Arduino 和 Raspberry Pi 的 GPS 模块
对于这个项目,我们将使用 NEP-6M GPS 模块。该模块带有一个外部天线,但没有插头引脚。因此,如果您需要使用它们,您需要将头针焊接到您的模块上。
NEP-6M 模块适用于 Arduino 和 Raspberry Pi 微控制器板。为此,您需要以下组件:
- Arduino 套件
- 跳线
- NEO-6M GPS 模块
用 Arduino 连接 GPS 模块
NEO-6M GPS模块有四个引脚:RX、GND、VCC和T。
串行通信是与 Arduino 的主要通信方式。此外,TX 和 RX 用作串行引脚。
以下是将 Arduino 连接到 GPS 模块的方法:
- 将 GPS 模块的 GND 引脚连接到 Arduino 的 GND 引脚
- 接下来,将模块的 RX 引脚连接到 Arduino 的引脚 3
- 然后将 TX 引脚连接到 Arduino 的引脚 4。
- 最后,将 VCC 引脚连接到 Arduino 的 5v 引脚。
代码
将您的模块连接到 Arduino 后,将以下代码上传到您的 Arduino UNO:

Arduino 代码
使用时,请确保根据 GPS 模块的功能编辑代码。
带树莓派的 GPS 模块
您可以使用带有 Raspberry Pi 的 U-Blox NEO-M8N GPS 模块来获取位置数据。但是在安装 Raspbian OS 之前,您需要一些 python 经验。此外,您需要一个 python 代码将 Pi 板连接到 GPS 模块。
也就是说,这就是您在这个项目中所需要的:
- 树莓派开发板
- 电源(用于树莓派)
- 面包板
- MicroSD 卡最好 8GB
- 跳线
- GPS 模块(U-Blox NEO-M8N GPS 模块)
如何构建
首先,您需要在 Raspberry Pi 上启用 UART 通信。然后,使用以下代码开始该过程:

- 接下来,在文件末尾添加以下行:

- 然后,要离开文件,请点击“ctrl+x”,或者您可以点击“y and enter”保存。
注意:UART 是 Raspian OS 的串行控制台。因此,您可以禁用该功能。还有,
您可以对“/boot/cmdline.txt 文件”进行修改。但在修改任何内容之前,请使用以下代码创建备份:

- 接下来,使用以下行恢复文本文件:

- 然后,要关闭文件,请单击“Ctrl+X”。在此过程中,您可以通过单击“Y”和“Enter”来保存修改。
- 最后,使用以下代码重启 Pi 并查看您的修改:

使用 GPS 模块的 LED 检查它是否工作。如果 LED(黄色)闪烁,则 GPS 模块正在工作。因此,您可以继续运行以下命令:

停用树莓派的 Serial Getty 服务
如果 ttyAMA0 与 Serial0 一起用于您的输出,则使用以下命令将其停用:

或者,如果您将创建的“Serial0”和“ttys0”链接起来,则使用以下命令将其禁用:

然后,使用 reboot 命令重启系统。
激活 ttys0
停用 ttyAMA0 后,使用以下命令启用您的 ttys0:

“Pynmea2”和“Minicom”安装
安装“minicom”python 包以链接 GPS 模块。之后,您可以了解以下数据:

另外,安装 pynmea2 Python 模式来运行你收到的 NMEA 数据:

测试您的电路输出
最后,使用以下命令测试 GPS 的输出:

结果应如下所示:

GPS 结果
然后,记录 python 代码,以便您可以将 Raspberry Pi 与 GPS 模块连接:

您的最终结果应如下所示:

GPS 最终结果
如何为您的项目选择合适的 GPS 模块
如前所述,几乎所有 GPS 模块都以相同的方式工作。但是您使用的 GPS 模块的类型应该取决于您的应用程序。
您可能需要与 GPS 导航模块不同的东西。例如,如果您正在使用使用 GPS 进行自动驾驶的快速移动平台,则您需要一个具有快速更新速率的 GPS 模块。
如果您需要以低更新率将精度降至几米,那么一个基本的 GPS 模块就足够了。
此外,如果您需要恒定信号,带有外部 GPS 天线的模块是理想的选择。但如果准确度是您所需要的一切,那么使用具有实时动力学技术的模块是完美的选择。
结束语

GPS 卫星和接收器
使用 GPS 模块,您可以获得具有速度精度的位置数据。虽然没有可见的卫星,但 GPS 卫星绕地球运行以提供恒定的精度。
此外,GPS 卫星和接收器之间的数据传输也以光速进行。因此,它对您的项目和应用程序来说既快速又可靠。
如果您有任何问题,请务必与我们联系,我们很乐意为您提供帮助。
工业技术