L76K GPS HAT

来自Waveshare Wiki
跳转至: 导航搜索
L76K-GPS-HAT
L76X GPS HAT
{{{name2}}}
{{{name3}}}
板载接口
RPi USB TO UART

产品简介

本产品是一款 GNSS (全球导航卫星系统) 模块,支持 GPS、北斗 (BDS)、GLONASS 和 QZSS 多重卫星系统,可多系统联合定位和单系统独立定位、支持 A-GNSS 功能、内置低噪声放大器和声表面滤波器、可向用户提供快速、准确和高性能定位体验的树莓派 GNSS 扩展板。

产品参数

GNSS 模块技术参数
参数 规格
GNSS 系统 支持系统 GPS / GLONASS / BDS / QZSS
芯片平台 AT6558R
L1 接收机 通道数 32 跟踪 / 72 捕获
SBAS 不支持
A-GNSS 支持
灵敏度 自动捕获 -148dBm
重新捕获 -160dBm
跟踪 -162dBm
TTFF
(首次定位时间)
冷启动 30s (Autonomous)
5.5s (With A-GNSS)
热启动 2s
精度指标 位置精度 2.0m CEP
速度精度 0.1m/s
加速度精度 0.1m/s²
授时精度 30ns
其他参数 通信接口 UART
串口波特率 4800bps~115200bps
(默认 9600bps)
数据更新频率 1Hz (default)
5Hz (max)
供电电压 5V
整机耗流 <55mA @5V
(Continue 模式)
通信协议 NMEA 0183
CASIC 专有协议
工作温度 -40℃ ~ 85℃
产品尺寸 65.00×30.50mm

硬件介绍

L76K-HAT-hard.png

项目 说明
① L76K模组 主芯片,支持 GPS、北斗 (BDS)、GLONASS 和 QZSS 多重卫星系统
② CP2102 USB转UART芯片
③ CAT24C32 EEPROM存储芯片
为树莓派提供ID EEPROM(包括供应商信息,GPIO映射和有效的设备树信息)。添加这个的目的是因为Raspberry Pi推出的micro-HAT(uHAT)规范(具体参考)。为了确保与未来树莓派附加板的一致性和兼容性,并提供更好的用户体验。
注意:这里我们并未使用,无需理会
④ RT9193-33 电源芯片
⑤ 星系配置按键 默认是GPS + GLONASS星系组合;
按下Force ON按键再启动模组,星系组合为GPS + BDS
⑥ 待机模式开关 待机模式:开关STANDBY置于ON可以让模块进入待机模式,
待机模式是一种低功耗模式, 该模式的模块停止卫星搜索和导航,没有定位信息(NMEA消息)输出,但可以通过命令或任何其他数据访问。
⑦ 状态指示灯 RXD/TXD:串口收发指示灯; PPS:GPS状态指示灯; PWR:电源指示灯
⑧ Raspberry Pi GPIO接口 方便接入Raspberry Pi
⑨ USB TO UART接口 方便接到PC等主机
⑩ GNSS天线接口 接GNSS天线置于可视天空下
⑪ ML1220电池座 可接ML1220充电电池,用于掉电保存数据和热启动
⑫ UART选择跳线帽 A:USB转串口控制L76K
B:树莓派控制L76K
C:USB转串口访问树莓派

windows串口调试

  • 安装CP2102 驱动;模块的串口选择到A(黄色跳冒),通过USB口与L76K进行通信。
  • 连接接天线,插上USB线,再连接到电脑。如图所示。连接之后,电源指示灯(PWR)长亮。
  • 将天线的另一端放到可以看的到天的地方。

L76X GPS HAT TEST.png

  • 等待 1S 左右, TXD 指示灯开始闪烁,表明有数据传输
  • 打开电脑串口调试助手,设置对应的串口号(我这里是COM5),波特率9600,8 位数据位,1 位停止位,无校验位,无流控制。

串口助手可以在此处下载
L76X GPS Module sscom.png
注:1.由于 GPS 室内搜星不稳定,请将模块或者天线放到阳台或窗户旁,或者直接在户外进行实验。
2. 模块首次定位(冷启动),在正常情况下(户外,天气良好,没有大型建筑遮挡),需要35秒时间才能定位成功,请耐心等待。如果天气条件不好,可能需要更长的定位时间,甚至无法定位。
注:由于 GPS 存在静态漂移,在 Google Earth 中看到的结果与实际会存在误差。使用例程计算出来的百度坐标误差特别小。

树莓派使用

树莓派提供C与pyton两种程序控制

开启Uart接口

打开树莓派终端,输入以下指令进入配置界面

sudo raspi-config
选择Interfacing Options -> Serial,关闭shell访问,打开硬件串口
L76X GPS Module rpi serial.png

安装相关函数库

不是所有库都要安装,根据实际选安装,如果只用到python 程序,那也可以只安装python库

Python库

pip3 install pyserial
pip3 install pynmea2
pip3 install pynmeagps

BCM2835

#打开树莓派终端,并运行以下指令
wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.71.tar.gz
tar zxvf bcm2835-1.71.tar.gz 
cd bcm2835-1.71/
sudo ./configure && sudo make && sudo make check && sudo make install
# 更多的可以参考官网:http://www.airspayce.com/mikem/bcm2835/

wiringPi

#打开树莓派终端,并运行以下指令
cd
sudo apt-get install wiringpi
#对于树莓派2019年5月之后的系统(早于之前的可不用执行),可能需要进行升级:
wget https://project-downloads.drogon.net/wiringpi-latest.deb
sudo dpkg -i wiringpi-latest.deb
gpio -v
# 运行gpio -v会出现2.52版本,如果没有出现说明安装出错

#Bullseye分支系统使用如下命令:
sudo git clone https://github.com/WiringPi/WiringPi
cd WiringPi
sudo ./build
gpio -v
# 运行gpio -v会出现2.70版本,如果没有出现说明安装出错

lgpio

sudo su
wget https://github.com/joan2937/lg/archive/master.zip
unzip master.zip
cd lg-master
sudo make install 
# 更多的可以参考官网:https://github.com/gpiozero/lg

硬件连接

  • 将模块直接插在树莓派上面,黄色跳冒接B位置,放置在可视天空下,让模块获取卫星信号:

L76K-Visible-sky.png

minicom调试

  • 安装minicom调试助手
sudo apt-get install minicom
# 对于树莓派5\ZERO\2B
sudo minicom -D /dev/ttyAMA0 -b 9600
# 对于树莓派4B\3B+\3B
sudo minicom -D /dev/ttyS0 -b 9600

默认波特率为115200,如需设置波特率为9600加参数 -b 9600,-D代表端口,/dev/ ttySO 类似于windows中的COM1,下图是使用树莓派4B的串口ttyS0测试:
L76X GPS Module rpi minicom1.png
退出:Ctrl+A 然后单独按X,YES 回车

cutecom测试

  • 安装cutecom调试助手
sudo apt-get install cutecom
  • 运行cutecom,出现图形化串口助手界面,类似windows的sscom:
cutecom
  • 下图使用树莓派5测试,波特率9600,串口ttyAMA0

Cutecom-l76.png

示例程序

  • 下载程序
wget  https://files.waveshare.com/wiki/L76K-GPS-HAT/Demo/L76K_GPS_HAT_Code.zip
unzip L76K_GPS_HAT_Code.zip 
sudo chmod 777 -R L76K_GPS_HAT_Code
cd L76K_GPS_HAT_Code/RaspberryPi
  • C程序
cd c/
sudo make clean && sudo make
sudo ./main
  • python程序
cd python
python3 main.py
  • 预期效果

模块首次定位需要35秒的等待时间。
前面是模块输出的原始数据。
Time是L76X输出的时间。
Latitude and longitude是输出的经纬度和经纬方向。
转换后的高德地图坐标,可以去高德拾取坐标系统输入坐标,例如:

114.08331567625963,22.53857879961489

Gaode-l76K.png

  • 获取原始NMEA数据程序
python3 nmea.py

Nmea-l76k.png


RDK 主板使用

硬件连接

  • 将跳帽插在B区域
  • 将L76x GPS HAT直接插在X3 PI的40PIN上
X3 PI Connect L76x HAT.jpg

安装库

使用终端,使用以下指令安装函数库

pip3 install pyserial
pip3 install pynmea2
pip3 install pynmeagps

使用minicom测试

  • 安装minicom调试助手
sudo apt-get install minicom
sudo minicom -D /dev/ttyS3 -b 9600

退出:Ctrl+A 然后单独按X,YES 回车

Jetson Orin Nano 使用

安装库

使用终端,使用以下指令安装函数库

pip3 install pyserial
pip3 install pynmea2
pip3 install pynmeagps

minicom测试

  • 安装minicom调试助手
sudo apt-get install minicom

通过UART串口连接

Orin-uart-l76K.png

  • 将跳帽插在B区域,L76K GPS HAT通过40pin排针接入Jetson Orin Nano
  • 使用minicom 控制UART串口
sudo minicom -D /dev/ttyTHS1 -b 9600

L76K-orin-nano.png

通过USB数据线连接

将L76K GPS HAT跳线帽置于A,通过USB线接到在Jetson Nano的USB
L76k-usb-orin.png

 sudo minicom -D /dev/ttyUSB0 -b 9600

L76K-usb-orin.png
退出:Ctrl+A 然后单独按X,YES 回车

示例程序

  • 下载程序
wget https://files.waveshare.com/wiki/L76K-GPS-HAT/Demo/L76K_GPS_HAT_Code.zip
unzip L76K_GPS_HAT_Code.zip 
sudo chmod 777 -R L76K_GPS_HAT_Code
cd L76K_GPS_HAT_Code/Jetson
  • 获取原始NMEA数据程序
sudo python3 nmea.py

Nmea-l76k.png


FAQ

将天线置于室外空旷地域,天线有字一面朝下,开机45S之后即可收到有效定位数据


  • 这个模块是依赖GNSS卫星定位的,GNSS定位至少需要4颗卫星的稳定信号,室内通常无法满足;
  • 手机在商圈内,可以通过Wi-Fi 指纹定位,蓝牙信标(Beacon),地磁定位,UWB(超宽带)和运营商基站辅助获取精准定位
  • 该模块不支持wifi,蓝牙和蜂窝,因此不能实现商圈室内定位了


  • 发送以下指令将波特率改为115200
$PMTK251,115200*1F<CR><LF>
  • 发送以下指令将波特率恢复到默认的9600:
$PMTK251,9600*17<CR><LF>


L76 GPS HAT ERR1.png
如下图所示,务必保证第一步是选择No的,因为这个会把树莓派的login shell信息也输出到串口导致串口冲突了。

L76X GPS Module rpi serial.png


L76 GPS HAT useerr2.png
如果使用时出现上述现象,请检查一下 树莓派config.txt配置,sudo nano /boot/config.txt,请将如下语句屏蔽,此语句是温度传感器占用了串口通信线; L76 GPS HAT useerr3.jpg


是待机模式,请置于OFF,否则开机就待机了,没有GPS输出


python程序中的main.py中,第12行就是修改更新速率,默认是400ms,你可以在L76X.py中找到对应的宏定义,进行替换即可
L76X GPS HAT python0.png
L76X GPS HAT python1.png


检查一下 STANDBY 开关是否处于 OFF 位置,再按下 FORCE_ON 按键大约 1 秒,观察串口是否有数据输出。如果还是没有数据输出的话,检查一下 TXD 和 RXD 引脚有没有正确

连接


定位精度与所在的环境有关系,一是天气原因下雨天,空气中水分多,影响了信号的传输。这也是为什么夏季手机信号稍弱的原因,夏季雨多潮湿,再加之高温蒸发,使得空气中的水分变多,从而影响卫星信号的传输。二高楼因素,在一些高层建筑物旁边容易造成卫星信号不好或者信号偏移问题,在建筑低层或者地下建筑,如地下停车场、地下商场、地铁、隧道等,由于受到墙体的遮挡,室内信号衰减非常大,就形成了信号覆盖弱点,所以造成定位不精准,误差大等情况,同样在一些高山阻挡下也容易导致定位不精准。三是卫星数量,农村及偏僻地区上空安置卫星数量少,造成位置偏差大等情况。四卫星信号会受到大气电离层、地面建筑物、森林、水面等因素的影响,导致计算出现偏差


请检查天线是否接好,还有有字的一面要朝下,天线的接收在没有字的那一面


此模块定位只是单独靠卫星定位,而手机定位不只是靠卫星定位,手机定位还依靠AGPS(辅助全球卫星定位系统)、LBS基站定位、Wifi定位、蓝牙定位等等各种定位系统结合,因此手机定位有着更加快的定位速度,精度方面在不同给环境下也是有着不同的区别,并且手机的GPS信号支持的多重卫星系统和模块支持的多重卫星系统不一致。所以模块和手机定位的数据有一定的差异。


首先保证发送命令的波特率和串口输出的波特率一致,在模块搜索到卫星数比较多的时候波特率从高向低设定可能会无法修改,因为波特率太低模块无法一次性发送所有的数据,可以考虑使用SET_NMEA_OUTPUT指令减少输出的数据字段,然后再修改波特率即可。


跳线帽的作用是切换串口设备,跳线帽连到 A, L76B 会跟 USB 接口连接;跳线帽连到B, L76B 与树莓派连接;跳线帽连到 C, 树莓派与 USB 连接(此时模块可以作为一个 USB

转 TTL 模块使用)


CAT24C32 的作用是为树莓派提供一个 ID EEPROM(包括供应商信息, GPIO 映射和有效的设备树信息),这是 Raspberry Pi 推出了 Micro-HAT(uHAT)规范。希望确保与未来附加板的一致性和兼容性,并且提供更好的用户体验。


如果使用的是可充电的纽扣电池,模块在正常的供电情况下,可支持给背面的纽扣电池充电。推荐使用可充电电池ML1220


获取到的原始GPS数据是没有经过处理的地理坐标,一般称之为月球坐标,需要加入一定的算法才能定位准,不同的地图使用的算法是不一样的,同样的一个坐标在谷歌和百度上的处理是不一样的。程序默认有提供一个百度地图的算法,可以作为参考。


置于空旷的室外,天线有字一面朝下,确保开机后有45S即会有定位数据。


在天气晴朗的开阔环境下测试,误差在2.5m内。


下面以GNRMC为例,解析获取到的定位信息,如下所示:
L76 print.png
L76X GNSS Date .png


技术支持


联系人:黄工 (黄康信)
EMAIL:3005423122@qq.com
电话:0755-83040712
QQ:3005763927
微信:扫下方二维码添加
Hkx-wx.jpg

说明:进行售后服务前,请准备好客户信息(定货单位、定货人等),以供验证