随着 开发板 Arduino 可以进行大量的项目,限制往往是想象力。 随着 电子元件和模块,可以添加功能,以便您可以做更多的事情。 这些功能之一可能是能够 定位物体或人,或定位 通过使用 Arduino GPS 定位。
这类 定位和追踪 它可以使用 RFID 或接收器来完成,就像我们将在本文中讨论的那样。 有了这个,你将能够创建大量的项目,从创建探测器和定位物体的游戏,定位被盗的物体,到能够使用 GPS 定位自己等。
Arduino NEO-7 GPS 模块
要拥有 Arduino GPS,您可以使用 NEO-6 装置,一个由 U-Blox 制造的系列,可以通过简单的方式连接到 Arduino 板。 此外,它们具有完整的通信接口,具有UART、SPI、 I2C和 USB,此外还支持 NMEA、UBX 二进制和 RTCM 协议。
此外,这款带有 NEO-6 的 Arduino GPS 还允许您最大限度地减少项目的大小,因为它具有 小尺寸,以及低成本。 在消费方面,它也很小。 在主动模式下,它只需要 37mA。 NEO-2.7Q 和 NEO-3.6M 型号由 6 至 6V 供电,而其他电压较低的 NEO-6G 型号只需要 1.75 至 2v。
该模块的其他有趣参数是:
- 的 30 秒 点火时间 冷启动,热启动仅需 1 秒。
- La 最大测量频率 它们仅在 5Hz 下工作。
- 位置精度 2.5 米的变化。
- 速度精度 0.1米/秒。
- 方向变化 仅 0.5º。
哪里可以买到适用于 Arduino GPS 的 NEO-6
您可以在许多专门的电子商店或亚马逊上找到这些设备和模块。 例如,在这里你可以 以非常便宜的价格购买:
Arduino的例子
要将其连接到开发板并安装 Arduino GPS,您必须做的第一件事是将 NEO-6 模块连接到开发板。 这 连接 制作非常简单(NEO-6 模块连接 - Arduino 连接):
- 地 - 地
- TX - RX (D4)
- 接收 - 发送 (D3)
- Vcc - 5V
连接后,您还必须下载 软串行库 在您的 Arduino IDE 中,因为串行通信需要它。 很可能你已经从其他项目中获得了它,但如果没有,你将不得不 下载并安装 在您的 IDE 中。
完成后,您可以从简单的代码开始进行读取。 例如,由于可以使用多种协议,这里是草图 NMEA:
#include <SoftwareSerial.h> const int RX = 4; const int TX = 3; SoftwareSerial gps(RX, TX); void setup() { Serial.begin(115200); gps.begin(9600); } void loop() { if (gps.available()) { char data; data = gps.read(); Serial.print(data); } }
当然,如果您愿意,您可以进行修改或使用其他协议……您还可以使用 IDE 中为该库提供的示例。 但是,在结束这篇文章之前,你应该知道 NMEA 格式 (美国国家海洋电子协会)很讲究,要理解它,就得知道它的语法:
$ GPRMC, hhmmss.ss, A, llll.ll, a, yyyyy.yy, a, vv, xx, ddmmyy, mm, a * hh
也就是说,$ GPRMC 后面是一系列 指示位置的参数:
- hhmmsssss: 是以小时、分钟和秒为单位的 UTC 时间。
- A:接收器状态,其中 A = 正常,V = 警报。
- llll.ll, 到: 是纬度,其中 a 可以是 N 或 S,表示北或南。
- yyyy.yy, 一个: 是长度。 同样,a 可以是 E 或 W,即东或西。
- vv: 以节为单位的速度。
- xx: 是学位课程。
- 天啊: 是 UTC 日期,以天、月和年为单位。
- 毫米,一个: 是以度为单位的磁变化,对于东或西,a 可以是 E 或 W。
- *H H: 校验和或校验和。
例如,你可以得到这样的东西:
$GPRMC,115446,A,2116.75,N,10310.02,W,000.5,054.7,191194,020.3,E*68