×

Arduino RTK2 GPS模块

消耗积分:3 | 格式:zip | 大小:0.24 MB | 2022-07-04

吴藩

分享资料个

PCB图如下:
pYYBAGKxrD6AOcKTAAEHS4Nibzg579.png
pYYBAGKxrECAZAhnAADGQarxrjQ143.png

pYYBAGKxrEWARkSPAAEN-sA3tKM529.jpg
pYYBAGKxrEeARdyVAABD_qC4_Fg293.png
poYBAGKxrEmAeHA4AADKg0Q0R4Y799.jpg

成分

LEA-M8S
U-Blox
× 1
TL3301SPF260QG
电子开关
× 1
电池
AMSECO
× 1
SCSI 连接器(公 50 针)- 30350-6002HB
3M 电子解决方案部
× 1
Micro USB B 型转 DIP 5 针适配器插板 × 1
AMS1117-5 × 1
227CKS035M
伊利诺伊电容器
× 1
106SML035MD4
伊利诺伊电容器
× 1
2291316-1
TE Con​​nectivity AMP 连接器
× 1
DF40HC(3.0)-80DS-0.4V(51)
广濑连接器
× 1

描述

Arduino RTK2 GPS 模块

USB

USB C 连接器可轻松将 ZED-F9P 连接到 u-center 以进行配置和快速查看 NMEA 语句。也可以通过 USB 连接 Raspberry Pi 或其他单板计算机。ZED-F9P 枚举为串行 COM 端口,它是与 UART 接口分离的串行端口。有关将 USB 端口变为串行 COM 端口的更多信息,请参阅 U-Center 入门。

pYYBAGKxrF6AHmyWAANWgV4s59s266.jpgpYYBAGKxrGGAVLJkAAOGHgfrMOY832.jpg

USB接口和电源GPS-RTK2USB接口和电源GPS RTK-SMA

提供 3.3V 稳压器将 5V USB 调节至模块所需的 3.3V。可以应用外部 5V 或提供 3.3V 的直接馈电。请注意,如果您直接为电路板提供 3.3V 电压,则它应该是一个噪声最小的干净电源(小于 50mV VPP 纹波是精确定位的理想选择)。

3.3V 稳压器能够从 5V 输入提供 600mA 电流,USB C 连接能够提供 2A 电流。

I2C(又名 DDC)

u-blox ZED-F9P 有一个“DDC”端口,它实际上只是一个 I2C 端口(没有商标问题的所有大惊小怪)。这些引脚与 SPI 引脚共享。默认情况下,启用 I2C 引脚。确保板背面的 DSEL 跳线打开。SparkFun 的 GPS-RTK2 和 GPS-RTK-SMA 还包括两个 Qwiic 连接器,可将该 GPS 接收器与各种 I2C 设备进行菊花链连接。为您的下一个项目检查 Qwiic。

poYBAGKxrGSAEHNJAAXyKvw6yVE478.jpg

RTK2 和 RTK-SMA 上突出显示的 I2C 端口和 Qwiic 连接器

所有功能都可以通过 I2C 端口访问,包括读取 NMEA 语句、发送 UBX 配置字符串、将 RTCM 数据管道传输到模块等。我们编写了一个扩展的 Arduino 库,展示如何配置 ZED-F9P 的大部分方面,使 I2C 成为我们的首选ZED 上的通信方法。您可以通过 Arduino 库管理器搜索“SparkFun u-blox GNSS”来获取该库。查看 SparkFun u-blox 库部分了解更多信息。

UART/串口

ZED-F9P 上提供经典串行引脚,但与 SPI 引脚共享。默认情况下,UART 引脚处于启用状态。确保板背面的 DSEL 跳线打开。

TX/MISO = ZED-F9P 的 TX 输出

RX/MOSI = RX 到 ZED-F9P

poYBAGKxrGeAArsaAAXqb5jDpew687.jpg

SparkFun ZED-F9P 分线板上的串行引脚突出显示

ZED-F9P 上有第二个串行端口 (UART2),主要用于 RTCM3 校正数据。默认情况下,此端口将自动接收和解析传入的 RTCM3 字符串,从而在板上启用 RTK 模式。除了 TX2/RX2 引脚外,我们还添加了一个额外的“RTCM 校正”端口,我们将这些引脚排列为与行业标准串行连接(又名“FTDI”引脚排列)相匹配。此引脚与我们的蓝牙伴侣和串行基本兼容,因此您可以从手机或计算机发送 RTCM 校正数据。请注意,如果需要,还可以通过 I2C、UART1、SPI 或 USB 发送 RTCM3 数据。

poYBAGKxrGmACSoLAANV33O9dYE573.jpgpYYBAGKxrGyAL94pAAOJuwXi8d4762.jpgGPS-RTK2UART2 和 RTCM 校正端口 GPS-RTK-SMA 上的 UART2 和 RTCM 校正端口

RTCM 校正端口 (UART2) 默认为 38400bps 串行,但可以通过软件命令(查看我们的 Arduino 库)或使用 u-center 通过 USB 进行配置。请记住,我们的蓝牙伴侣默认为 115200bps。如果您打算使用蓝牙来校正数据(我们发现它最简单),我们建议您使用 u-center 将此端口速度提高到 115200bps。此外,UART2 可配置为 NMEA 输出,但不太经常需要。一般来说,我们不会将 UART2 用于 RTCM 校正数据,因此我们建议将输入/输出协议保留为 RTCM。

pYYBAGKxrG-AegqHAAEm9d8APq0172.jpg

如果您已将 ZED-F9P 设置为基站模式(也称为测量模式),则 UART2 将输出 RTCM3 校正数据。这意味着您可以将无线电或有线链路连接到 UART2,并且板将自动通过链路发送 RTCM 字节(没有 NMEA 数据占用带宽)。这是使用 RTK2 的示例,但您也可以使用相同的设置使用 RTK-SMA。

pYYBAGKxrHGAAuHsAAJpXJ_OMwk931.jpg

基站设置通过蓝牙发送 RTCM 字节

SPI

ZED-F9P 也可以配置为 SPI 通信。默认情况下,SPI 端口被禁用。要启用 SPI,请关闭板背面的 DSEL 跳线。关闭此跳线将禁用 UART1 和 I2C 接口(UART2 将继续正常运行)。

poYBAGKxrHSAUnKYAAWtIiGKHxE118.jpg

SparkFun RTK2 和 RTK-SMA 上突出显示的 SPI 引脚

控制引脚

控制引脚在下面突出显示。

poYBAGKxrHaAAviHAANBuaBpsq4117.jpgpYYBAGKxrHmAWDwUAAN9AF1a2F4052.jpgSparkFun GPS-RTK2 的突出显示控制引脚 SparkFun GPS-RTK-SMA 的突出显示控制引脚

这些引脚用于 ZED-F9P 的各种额外控制:

FENCE:地理围栏输出引脚。配置有 U-Center。设置地理围栏时会变高或变低。当模块退出已编程的边界时,可用于触发警报和操作。

RTK:实时运动学输出引脚。模块处于正常 GPS 模式时保持高电平。当接收到 RTCM 校正并且模块进入 RTK 浮动模式时开始闪烁。当模块进入 RTK 固定模式并开始输出厘米级精确位置时变为低电平。

PPS:每秒脉冲输出引脚。当模块获得基本 GPS/GNSS 位置锁定时,以 1Hz 开始闪烁。

RST:复位输入引脚。将此线拉低以重置模块。

安全:安全启动输入引脚。这是模块固件更新所必需的,通常不应使用或连接。

INT:中断输入/输出引脚。可以使用 U-Center 进行配置,以使模块退出深度睡眠或为各种模块状态输出中断。

注意:对于那些需要将 SMA 连接器连接到 PPS 引脚的用户,RTK-SMA 包含一个封装,以便您可以将连接器手动焊接到电路板上以用于您的应用。在同步设备时(不是 1 Hz,而是许多 MHz),PPS 输出作为时钟源校正很有帮助。PPS 输出可以配置为输出一个非常精确的时钟,科学家使用它来校正不太精确但速度更快的时钟。要进行配置,您可以使用 u-center 在 View > Conviguration View > TP (TimePulse) 下调整 NEO-F9P 的设置。

poYBAGKxrHuAM4hbAAAYa2QSJag414.jpg

SMA 连接器

有存货

 WRL-00593

2.10 美元

天线

ZED-F9P 需要高质量的 GPS 或 GNSS(首选)天线。提供了一个 U.FL 连接器。注意:U.FL 连接器的额定插拔次数只有几个(约 30 次),因此我们建议您设置好后忘记它。根据您的应用,您可能需要固定 u.FL 到 SMA 电缆。否则,您可以使用 RTK-SMA 版本。

pYYBAGKxrH2AN089AANAqlgt4RM626.jpgpoYBAGKxrICAT0b-AAN2I5bQ_SU038.jpgGPS 上的 U.FL 天线连接器和 SMA 开口 GPS-SMA 上的 RTK2S​​MA 天线连接器

SMA 隔板的切口可供那些需要额外坚固连接的人使用。我们建议仅当板安装在外壳中时才将 SMA 安装到板上。否则,电缆在压缩时有损坏的风险(例如,学生将电路板松散地放在背包中)。交流

pYYBAGKxrIOANpVsAAIoKW9DnFI276.jpg

穿过安装孔的 U.FL 到 SMA 电缆提供了坚固的连接,如果需要,也可以在 SMA 连接处轻松断开连接。请在下面的连接天线中查看更多信息。

可以使用低成本磁性 GPS/GNSS 天线(查看 u-blox 白皮书),但需要在天线下方放置一个 4 英寸/10 厘米的金属盘作为金属接地平面。

poYBAGKxrIeAQlABAAIxkqxSqb4973.jpg

发光二极管

该板包括四个状态 LED,如下图所示。

pYYBAGKxrImAdcTRAANChrZJWU0775.jpgpoYBAGKxrIyAVaBIAAN0JYHFoo8477.jpgGPS-RTK2 上的状态 LED GPS-SMA 上的状态 LED

PWR:当通过 USB 或 Qwiic 总线激活 3.3V 时,电源 LED 将亮起。

PPS:一旦实现位置锁定,每秒脉冲 LED 将每秒亮起。

RTK:RTK LED 将在通电时持续亮起。一旦成功接收到 RTCM 数据,它将开始闪烁。这是查看 ZED-F9P 是否从各种来源获取 RTCM 的好方法。获得 RTK 修复后,LED 将关闭。

FENCE:FENCE LED 可以配置为打开/关闭地理围栏应用程序。

跳线

有五个跳线用于配置 GPS-RTK2。

poYBAGKxrI-AYm9YAAXyeqir4Z0628.jpg

SparkFun RTK2 和 RTK-SMA 上的用户跳线

用焊料关闭 DSEL 启用 SPI 接口并禁用 UART 和 I2C 接口。USB 仍将起作用。

切断 I2C 跳线将从 I2C 总线上移除 2.2k Ohm 电阻。如果您的 I2C 总线上有很多设备,您可能需要移除这些跳线。不知道如何剪裁套头衫?在这里阅读!

切断 RTK2 上的 JP1、JP2、JP3 跳线将断开各种状态 LED 与其相关引脚的连接。这些已在 RTK-SMA 版本上进行了标记。我们在 RTK-SMA 的顶部和底部包括了一个 PPS 跳线。

备用电池

MS621FE 可充电电池维护 GNSS 模块上的电池支持 RAM (BBR)。这允许更快的位置锁定(又名热启动)。BBR 还用于模块配置保留。通电时,电池会自动进行涓流充电,并且在没有电源的情况下可以保持设置和 GNSS 轨道数据长达两周。

poYBAGKxrJGAaXDCAAM9ddlAHV4455.jpgpYYBAGKxrJSALioJAANpo2b6mEw476.jpgSparkFun RTK2 上的备用电池 SparkFun RTK-SMA 上的备用电池

连接天线

U.FL 连接器非常好,但它们设计用于在笔记本电脑等小型嵌入式应用程序中实现。将 U.FL 连接器暴露在野外有损坏的风险。为防止损坏 GPS-RTK2 上的 U.FL 连接,我们建议将 U.FL 电缆穿过支架孔,然后连接 U.FL 连接器。这将为天线连接提供很大的应力缓解。现在连接您选择的 SMA 天线。

poYBAGKxrJiAcNsAAAHjJVvieVw503.jpg

 当心!U.FL 连接器很容易损坏。确保连接器对齐,面对面齐平(不成角度),然后使用刚性钝边(例如 PCB 的边缘或小平头螺丝刀的尖端)向下压。有关更多信息,请查看我们的教程关于使用 U.FL 的三个快速提示。

关于使用 U.FL 的三个快速提示

2018 年 12 月 28 日

关于如何连接、保护和断开 U.FL 连接器的快速提示。

此外,如果需要,还提供一个隔板切口,以便将 SMA 拧到 PCB 上。

pYYBAGKxrIOANpVsAAIoKW9DnFI276.jpg

虽然这种方法可以减少 U.FL 连接器的应力,但仅建议在板已永久安装时使用。如果未安装电路板,U.FL 电缆上的电缆很容易扭结,从而导致阻抗变化,从而降低接收质量。

如果您使用的是 RTK-SMA,则无需担心这一点,因为板上焊接了一个 SMA 连接器,提供了牢固的连接。

poYBAGKxrJ2AS1TMAAOPdHi1fbE522.jpg

如果您在室内,则必须使用足够长的 SMA 延长线将天线放置在可以清晰看到天空的位置。这意味着天线和天空之间没有树木、建筑物、墙壁、车辆或混凝土金属物体。请务必将天线安装在 4 英寸/10 厘米金属接地板上以增加接收效果。

板尺寸

每块板的整体板尺寸为 ~1.70" x ~1.70" (~43.18mm x ~43.18mm)。请记住,连接器与电路板不齐平,这会增加电路板的长度。在将电路板安装和放置在外壳中时,请务必考虑到这一点。

poYBAGKxrKOAQgU9AAESEIverSo274.pngpYYBAGKxrKWAWEpdAAD6chc_LFo104.pngRTK2 板尺寸 RTK-SMA 板尺寸

将 ZED-F9P 连接到校正源

在您进入现场之前,最好了解如何获取 RTCM 数据以及如何将其通过管道传输到 GPS-RTK2 和 GPS-RTK-SMA。我们建议您阅读原始 GPS-RTK 教程的连接校正源部分。这将为您提供有关如何获得 UNAVCO 帐户以及如何识别将使用 ZED-F9P 流动站 10 公里范围内的安装点的基础知识。本节以这些概念为基础。

poYBAGKxrKiAf-PbAAGGXMLzNP4430.jpgGPS RTK 连接指南:连接校正源

对于这个例子,我们将展示如何从 UNAVCO 网络获取校正数据,并使用名为 NTRIP Client 的 Android 应用程序将这些数据拉入。然后,校正数据将使用 SparkFun 蓝牙伴侣通过蓝牙从应用程序传输到 ZED-F9P。

所需材料

1x GPS-RTK2 或 GPS-RTK-SMA

1 个 GPS 或 GNSS 天线

1 个 4 英寸或更大的金属板

1x SMA 延长线(如果需要清楚地看到天空)

1 根 USB C 2.0 电缆

1 个蓝牙伴侣

1x 公母头对

GNSS 天线位于金属接地板上,可以清楚地看到天空

现在设置您的 GPS 接收器,以便您可以在办公桌上工作,但将天线放在室外,可以清楚地看到天空。

所需软件

具有免费 RTCM 提供商(例如 UNAVCO)的证书

U中心

从 Google Play 获取 NTRIP By Lefebure 应用程序。似乎有适用于 iOS 的 NTRIP 应用程序,但我们无法特别验证任何一个应用程序。如果您有最喜欢的,请告诉我们。

首先,我们需要将蓝牙模块连接到 ZED-F9P 的分线板上。将一个母头焊接到蓝牙伴侣上,使其悬挂在末端。

pYYBAGKxrK2ATSwYAAJrr3Df9bM641.jpg

在 GPS-RTK2 或 GPS_RTK-SMA 板上,我们建议将直角公头焊接到板下方。这将允许蓝牙模块简洁地隐藏在电路板下方。

将蓝牙伴侣连接到电路板时,请务必对齐引脚,以便 GND 指示器在两个电路板上对齐。安装蓝牙后,连接您的 GNSS 天线并通过 USB 连接电路板。这将为开发板和蓝牙伴侣供电。

pYYBAGKxrK-AdHcrAAKMx4etrIE923.jpg

男性和女性头部的去向是个人喜好。例如,这里有两个蓝牙伴侣;一种是男性头,一种是女性。

poYBAGKxrLKAIZIPAAK7F40Exn8854.jpg

将母头焊接到蓝牙伴侣可以更容易地将蓝牙添加到具有“FTDI”风格连接的板上,例如我们的 OpenScale、Arduino Pro 或同步 RFID 阅读器。然而,将公头焊接到蓝牙伴侣可以更容易在面包板上使用。这真的取决于你!

蓝牙伴侣默认为 115200bps,而 ZED-F9P 预计 UART2 上的串行为 38400bps。要解决这个问题,我们需要打开 u-center 并更改 UART2 的端口设置。如果您还没有,请务必查看 U-Center 入门教程以了解您的方位。

打开配置窗口并导航到 PRT(端口)部分。将目标下拉到 UART2 并将波特率设置为 115200。最后,单击“发送”按钮。

pYYBAGKxrG-AegqHAAEm9d8APq0172.jpg

到这个时候,您应该有一个有效的 3D GPS 锁定,精度约为 1.5m。它即将变得更好。

我们将假设您已阅读原始 RTK 教程并获得您的 UNAVCO 凭证,包括以下内容:

用户名

密码

UNAVCO 的 IP 地址(撰写本文时为 69.44.86.36)

Caster Port(撰写本文时为 2101)

数据流又名安装点('P041_RTCM3',如果你想要靠近科罗拉多州博尔德的那个 - 但你真的应该找到离你的漫游车位置最近的一个)

蓝牙伴侣应该已通电。从您的手机中,找到蓝牙伴侣并与之配对。本教程中使用的模块被发现为 RNBT-E0DC,其中 E0DC 是模块 MAC 地址的最后四个字符,并且对于您的模块应该是唯一的。

获得 UNAVCO 凭据并与蓝牙模块配对后,打开 NTRIP 客户端。

poYBAGKxrLeAcyIcAAB4vzlBRxo951.jpg

在主屏幕上,单击右上角的齿轮,然后单击接收器设置。

pYYBAGKxrLmAXIwnAAC3843ZWgo281.jpg

确认接收器连接设置为蓝牙,然后选择蓝牙设备并选择您刚刚配对的蓝牙模块。接下来,打开 NTRIP 设置并输入您的凭据,包括安装点(又名数据流)。

poYBAGKxrLuAIFaGAACFxsK6LIo885.jpg

此示例演示如何从 UNAVCO 的服务器获取校正数据,但您可以类似地使用另一个 ZED-F9P 和 RTKLIB 设置您自己的基站来广播校正数据。这个 NTRIP 应用程序将连接到您基于 RTKLIB 的服务器,为您提供惊人的灵活性(基站可以在您的流动站 10 公里内有笔记本电脑和 Wifi 的任何地方)。

好的。你准备好了吗?这是有趣的部分。返回主 NTRIP 窗口并单击连接。该应用程序将连接到蓝牙模块。连接后,它将连接到您的 NTRIP 源。一旦数据流动,您将看到每秒增加的字节数。

pYYBAGKxrL2AXnxcAACwObO24Fw771.jpg

在几秒钟内,您应该会看到 ZED-F9P 分线板上的 RTK LED 熄灭。这表明您有 RTK 修复。要验证这一点,请在您的计算机上打开 u-center。首先要注意的是左侧黑色窗口中的修复模式已从 3D 更改为 3D/DGNSS/FIXED。

pYYBAGKxrMCABUeTAAH21FoVHQs653.jpg

导航到 UBX-NAV-HPPOSECEF 消息。这将向您展示高精度的 3D 精度估计。我们能够使用带有金属板接地平面的低成本 GNSS 天线达到 17 毫米的精度,并且我们距离校正站超过 10 公里。

恭喜!你现在知道你在一角钱的直径内的位置!

SparkFun u-blox Arduino 库

注意:此示例假设您在桌面上使用最新版本的 Arduino IDE。如果这是您第一次使用 Arduino,请查看我们关于安装 Arduino IDE 的教程。如果您之前没有安装过 Arduino 库,请查看我们的安装指南。

SparkFun u-blox Arduino 库支持读取所有位置数据以及通过 I2C 发送二进制 UBX 配置命令。这有助于配置高级模块,例如 ZED-F9P,但也有助于配置 NEO-M8P-2、SAM-M8Q 和任何其他使用 u-blox 二进制协议的 u-blox 模块。

SparkFun u-blox Arduino 库可以通过 Arduino 库管理器通过搜索“SparkFun u-blox GNSS”下载,或者您可以从 GitHub 存储库中获取 zip:

SPARKFUN U-BLOX ARDUINO 库(ZIP)

安装库后,请查看各种示例。

示例 1:使用 u-blox 模块 SAM-M8Q、NEO-M8P 等通过 I2C 读取 NMEA 语句

示例 2:使用 MicroNMEA 库解析 NMEA 句子。此示例还演示了如何覆盖 processNMEA 函数,以便您可以将传入的 NMEA 字符从 u-blox 模块定向到您喜欢的任何库、显示器、收音机等。

示例 3:获取视野中的纬度、经度、高度和卫星 (SIV)。此示例还演示了如何关闭从 I2C 端口发送的 NMEA 消息。您仍然会在 UART1 和 USB 上看到 NMEA,但不会在 I2C 上看到。仅使用 UBX 二进制消息有助于减少 I2C 流量,并且是一种更轻量级的协议。

示例 4:显示您拥有的修复类型,最常见的两种是无修复和完整的 3D 修复。此草图还显示了如何确定您是否有 RTK 修复以及什么类型(浮动与固定)。

示例 5:显示如何获取当前速度、航向和精度衰减。

Example6:演示如何将输出速率从默认的每秒 1 提高到每秒许多;在某些模块上高达 30Hz!

示例 7: SAM-M8Q 等较旧的模块使用较旧的协议(版本 18),而 ZED-F9P 等较新的模块使用最新协议(版本 27)删除了一些命令。此草图显示了如何查询模块以获取协议版本。

示例 8:u-blox 模块使用 I2C 地址 0x42,但这可通过软件进行配置。此草图将允许您更改模块的 I2C 地址。

示例 9:高度不是简单的测量。此草图显示了如何获得基于椭圆体的高度和基于 MSL(平均海平面)的高度读数。

示例 10:有时您只需要对硬件进行硬重置。此草图显示了如何将 u-blox 模块设置回出厂默认设置。

NEO-M8P

NEO-M8P 示例 1:发送 UBX 二进制命令以在 u-blox NEO-M8P-2 模块上启用 RTCM 语句。此示例是将 NEO-M8P 设置为基站所需的步骤之一。有关更多信息,请查看 u-blox 手册以设置 RTK 链接。

NEO-M8P 示例 2:此示例扩展了前面的示例,将所有命令发送到 NEO-M8P-2,使其作为基础运行。此外,还公开了 processRTCM 功能。这允许用户覆盖函数以将 RTCM 字节定向到用户想要的任何连接(无线电、串行等)。

NEO-M8P Example3:这与NEO-M8P的Example2相同。但是,数据通过 I2C 发送到串行 LCD。

ZED-F9P

ZED-F9P 示例1:该模块能够提供高精度解决方案。此草图显示了如何检查解决方案的准确性。看着我们的定位精度下降到毫米级很有趣。

ZED-F9P 示例 2:ZED-F9P 使用新的 u-blox 配置系统 VALGET/VALSET/VALDEL。此草图演示了这些方法的基础知识。

ZED-F9P Example3:将 ZED-F9P 设置为基站并输出 RTCM 数据。

ZED-F9P Example4:这与 ZED-F9P 的 Example3 相同。但是,数据通过 I2C 发送到串行 LCD。

这个 SparkFun u-blox 库真正专注于 I2C,因为它比串行更快并且支持菊花链。该库还使用 UBX 协议,因为它需要的开销远低于 NMEA 解析,并且没有 NMEA 所具有的精度限制。

将 ZED-F9P 设置为校正源

小心!这部分有点过时了。我们有一个全新的如何构建 GNSS 参考站教程,提供最新信息。我们计划保留此部分以供参考。

如果您距离校正站超过 20 公里,您可以使用 ZED-F9P 创建自己的站。u-blox 在 ZED-F9P 集成手册中提供了设置指南,显示了通过 u-Center 所需的各种设置。我们将介绍如何仅使用 I2C 命令设置 ZED-F9P。这将启用输出 RTCM 校正数据的基站的无头(无计算机)配置。

在开始之前,我们建议您使用 u-center 配置模块。查看我们关于使用 U-Center 的教程,然后阅读 u-blox 集成手册的第 3.5.8 节基站配置,以使用 u-center 为 RTK 配置 ZED-F9P。使用 u-center 在舒适的实验室中成功控制模块后,请考虑前往户外。

对于本练习,我们将使用以下部分:

1x SparkFun GPS-RTK2 板或 RTK-SMA 板

1 根用于 RTK2 的 U.FL 到 SMA 电缆

1 个 SparkFun 黑板使 I2C 变得简单

1 根 USB C 2.0 电缆(如果您需要)

1x 两条 Qwiic 电缆

1x 20x4 SerLCD,焊接有 Qwiic 适配器

1x 天线 L1/L2 GNSS 3-5V 磁性支架

1x GPS 天线接地板

首次试验基站时,1x 20+ft SMA 扩展非常方便,因此您可以坐在室内使用笔记本电脑分析 GPS-RTK 的输出

1 个标准相机三脚架

ZED-F9P 可以使用串行、SPI 或 I2C 进行配置。我们是 I2C 菊花链能力的粉丝,因此我们将专注于 Qwiic 系统。在本练习中,我们将使用两条 Qwiic 电缆将 LCD 和 GPS-RTK2 连接到 BlackBoard。您也可以使用 RTK-SMA 作为替代方案。

对于天线,您需要清楚地看到天空。天线位置越好,系统的准确性和性能就越好。我们设计了 GPS 天线接地板以简化此设置。盘子里有?” 螺纹孔直接拧到相机三脚架上。选择的板厚度足够厚,以便螺纹螺钉与板齐平,因此不会干扰天线。不知道我们为什么要使用接地板?阅读 u-blox 白皮书,了解如何将低成本 GNSS 天线与 RTK 结合使用。安装磁性安装天线并将 SMA 电缆连接到 U.FL 到 SMA 电缆到 GPS-RTK2 板。如果您有 RTK-SMA,您只需将 SMA 电缆连接到电路板的连接器。

代码

测试代码

arduino_code.ino

下载

 

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !

'+ '

'+ '

'+ ''+ '
'+ ''+ ''+ '
'+ ''+ '' ); $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code ==5){ $(pop_this).attr('href',"/login/index.html"); return false } if(data.code == 2){ //跳转到VIP升级页面 window.location.href="//m.lene-v.com/vip/index?aid=" + webid return false } //是会员 if (data.code > 0) { $('body').append(htmlSetNormalDownload); var getWidth=$("#poplayer").width(); $("#poplayer").css("margin-left","-"+getWidth/2+"px"); $('#tips').html(data.msg) $('.download_confirm').click(function(){ $('#dialog').remove(); }) } else { var down_url = $('#vipdownload').attr('data-url'); isBindAnalysisForm(pop_this, down_url, 1) } }); }); //是否开通VIP $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code == 2 || data.code ==5){ //跳转到VIP升级页面 $('#vipdownload>span').text("开通VIP 免费下载") return false }else{ // 待续费 if(data.code == 3) { vipExpiredInfo.ifVipExpired = true vipExpiredInfo.vipExpiredDate = data.data.endoftime } $('#vipdownload .icon-vip-tips').remove() $('#vipdownload>span').text("VIP免积分下载") } }); }).on("click",".download_cancel",function(){ $('#dialog').remove(); }) var setWeixinShare={};//定义默认的微信分享信息,页面如果要自定义分享,直接更改此变量即可 if(window.navigator.userAgent.toLowerCase().match(/MicroMessenger/i) == 'micromessenger'){ var d={ title:'Arduino RTK2 GPS模块',//标题 desc:$('[name=description]').attr("content"), //描述 imgUrl:'https://'+location.host+'/static/images/ele-logo.png',// 分享图标,默认是logo link:'',//链接 type:'',// 分享类型,music、video或link,不填默认为link dataUrl:'',//如果type是music或video,则要提供数据链接,默认为空 success:'', // 用户确认分享后执行的回调函数 cancel:''// 用户取消分享后执行的回调函数 } setWeixinShare=$.extend(d,setWeixinShare); $.ajax({ url:"//www.lene-v.com/app/wechat/index.php?s=Home/ShareConfig/index", data:"share_url="+encodeURIComponent(location.href)+"&format=jsonp&domain=m", type:'get', dataType:'jsonp', success:function(res){ if(res.status!="successed"){ return false; } $.getScript('https://res.wx.qq.com/open/js/jweixin-1.0.0.js',function(result,status){ if(status!="success"){ return false; } var getWxCfg=res.data; wx.config({ //debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId:getWxCfg.appId, // 必填,公众号的唯一标识 timestamp:getWxCfg.timestamp, // 必填,生成签名的时间戳 nonceStr:getWxCfg.nonceStr, // 必填,生成签名的随机串 signature:getWxCfg.signature,// 必填,签名,见附录1 jsApiList:['onMenuShareTimeline','onMenuShareAppMessage','onMenuShareQQ','onMenuShareWeibo','onMenuShareQZone'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 }); wx.ready(function(){ //获取“分享到朋友圈”按钮点击状态及自定义分享内容接口 wx.onMenuShareTimeline({ title: setWeixinShare.title, // 分享标题 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享给朋友”按钮点击状态及自定义分享内容接口 wx.onMenuShareAppMessage({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 type: setWeixinShare.type, // 分享类型,music、video或link,不填默认为link dataUrl: setWeixinShare.dataUrl, // 如果type是music或video,则要提供数据链接,默认为空 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ”按钮点击状态及自定义分享内容接口 wx.onMenuShareQQ({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到腾讯微博”按钮点击状态及自定义分享内容接口 wx.onMenuShareWeibo({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ空间”按钮点击状态及自定义分享内容接口 wx.onMenuShareQZone({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); }); }); } }); } function openX_ad(posterid, htmlid, width, height) { if ($(htmlid).length > 0) { var randomnumber = Math.random(); var now_url = encodeURIComponent(window.location.href); var ga = document.createElement('iframe'); ga.src = 'https://www1.elecfans.com/www/delivery/myafr.php?target=_blank&cb=' + randomnumber + '&zoneid=' + posterid+'&prefer='+now_url; ga.width = width; ga.height = height; ga.frameBorder = 0; ga.scrolling = 'no'; var s = $(htmlid).append(ga); } } openX_ad(828, '#berry-300', 300, 250);