L76X GPS HAT
| ||||||||||||||||
| ||||||||||||||||
说明
产品简介
本产品是一款具有GNSS(全球导航卫星系统)功能的扩展板,适用于树莓派,Jetson Nano以及旭日®X3 PI, 支持GPS,BD2和QZSS等定位系统,具有体积小、功耗低、定位快等优点。带上我,你的主板将可以轻松实现全球定位
程序提供一个支持百度地图的校准算法,精确度较高。
产品参数
- 接收信道: 33个跟踪信道,99个捕获信道和210个PRN信道
- 接收信号: GPS,BD2和QZSS
- 支持SBAS: WAAS, EGNOS, MSAS, GAGAN
- 信号频段: GPS L1(1575.42Mhz) BD2 B1 (1561.098MHz) C/A Code
- 捕获时间: 冷启动:10S(最快);热启动:1S
- 捕获灵敏度: -148dBm
- 跟踪灵敏度: -163dBm
- 重捕捕获灵敏度: -160dBm
- 定位精度: <2.5mCEP
- 最高海拔: 18000(M)
- 最大速度: 515m/s
- 逻辑电压: 3.3/5V
- 通信接口: UART
- 串口通信波特率: 4800~115200(默认9600)
- 更新速率: 最大 10Hz(默认 1HZ)
- 通信协议: NMEA 0183 /PMTK
- 工作电压: 2.7V~5V(由5V 引脚输入电源)
- 工作电流: 13mA
- 工作温度 -40℃ ~ 85℃
- 产品尺寸: 65X30.5(mm)
硬件介绍
[器件简介]
1. L76B模组
2. CP2102,USB转UART芯片
3. CAT24C32,EEPROM存储芯片
4. RT9193-33,电源芯片
5. 备份模式唤醒按键
6. 待机模式开关
7. 状态指示灯; RXD/TXD:串口收发指示灯; PPS:GPS状态指示灯; PWR:电源指示灯
[接口简介]
8. Raspberry Pi GPIO接口,方便接入Raspberry Pi
9. USB TO UART接口
10. GNSS天线接口
11. ML1220电池座,可接ML1220充电电池,用于掉电保存数据和热启动
[跳线说明]
12.UART选择跳线帽
A:USB转串口控制L76B
B:树莓派控制L76B
C:USB转串口访问树莓派
待机模式: 使用按键 STANDBY开关可以让模块进入待机模式, 待机模式是一种低功耗模式。在待机模式下,模块停止卫星搜索和导航,没有定位信息(NMEA 消息)输出,但可以通过PMTK 命令或任何其他数据访问。
备份模式: 按键 FORCE ON 按下可以让模块退出备份模式。相对于待机模式,备份模式下的功耗更低。在备份模式下,模块会停止获取和跟踪卫星。 UART1 不可访问。但是 RTC 域中的备份内存(包括快速启动所需的所有 GPS 信息和少量用户配置变量)是获得的。支持 EASYTM 自生成轨道预测功能,可实现快速定位。在这种模式下, 模块的电流大约是 7uA。备份模式下,唯一的唤醒方式是将 FORCE_ON 引脚拉高
CAT24C32: 这个芯片的作用是为树莓派提供一个 ID EEPROM(包括供应商信息, GPIO 映射和有效的设备树信息)。添加这个的目的是因为 Raspberry Pi 推出的 micro-HAT(uHAT)规范(具体参考)。为了确保与未来树莓派附加板的一致性和兼容性,并提供更好的用户体验。
注意:这里我们并未使用,无需理会
windows串口调试
- 安装CP2102 驱动;模块的串口选择到A(黄色跳冒),通过USB口与L76B进行通信。
- 连接接天线,插上USB线,再连接到电脑。如图所示。连接之后,电源指示灯(PWR)长亮。
- 将天线的另一端放到可以看的到天的地方。
- 等待 1S 左右, TXD 指示灯开始闪烁,表明有数据传输
- 打开电脑串口调试助手,设置对应的串口号(我这里是COM5),波特率9600,8 位数据位,1 位停止位,无校验位,无流控制。
串口助手可以在此处下载
注:1.由于 GPS 室内搜星不稳定,请将模块或者天线放到阳台或窗户旁,或者直接在户外进行实验。
2. 模块首次定位(冷启动),在正常情况下(户外,天气良好,没有大型建筑遮挡),需要35秒时间才能定位成功,请耐心等待。如果天气条件不好,可能需要更长的定位时间,甚至无法定位。
注:由于 GPS 存在静态漂移,在 Google Earth 中看到的结果与实际会存在误差。使用例程计算出来的百度坐标误差特别小。
树莓派使用
树莓派提供C与pyton两种程序控制
开启Uart接口
打开树莓派终端,输入以下指令进入配置界面
sudo raspi-config 选择Interfacing Options -> Serial,关闭shell访问,打开硬件串口
安装相关函数库
如果使用bookworm系统,只能使用lgpio库,bcm2835跟wiringPi无法安装与使用,python库可以不安装,直接运行程序即可
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分支系统使用如下命令: git clone https://github.com/WiringPi/WiringPi cd WiringPi ./build gpio -v # 运行gpio -v会出现2.70版本,如果没有出现说明安装出错
lgpio
wget https://github.com/joan2937/lg/archive/master.zip unzip master.zip cd lg-master sudo make install # 更多的可以参考官网:https://github.com/gpiozero/lg
- 安装Python函数库
sudo apt-get update sudo pip install RPi.GPIO sudo apt-get install python-serial sudo apt-get install gpsd gpsd-clients python-gps
硬件连接
- 将模块直接插在树莓派上面,黄色跳冒接B位置
minicom调试
- 安装minicom调试助手
sudo apt-get install minicom # 对于树莓派3B\3B+\4B sudo minicom -D /dev/ttyS0 -b 9600 # 对于树莓派ZERO\2B sudo minicom -D /dev/ttyAMA0 -b 9600
默认波特率为115200,如需设置波特率为9600加参数 -b 9600,-D代表端口,/dev/ ttySO 类似于windows中的COM1,如果不是树莓派3,那么是minicom -D /dev/ttyAMA0,再将模块连接树莓派。
退出:Ctrl+A 然后单独按X,YES 回车
示例程序
- 下载程序
wget https://www.waveshare.net/w/upload/f/f4/L76X_GPS_HAT_Code.zip unzip L76X_GPS_HAT_Code.zip sudo chmod 777 -R L76X_GPS_HAT_Code cd L76X_GPS_HAT_Code/RaspberryPi
- C程序
cd wiringPi make clean make sudo ./main
- python程序
cd python sudo pip3 install pynmeagps sudo pip3 install gps3 sudo python3 main.py
- 预期效果
模块首次定位需要35秒的等待时间。
前面是模块输出的原始数据。
Time是L76X输出的时间。
Latitude and longitude是输出的经纬度和经纬方向。
Baudu Coordinates 为转换后的百度地图坐标,可以去百度拾取坐标系统,需要置换程序的经纬度位置,例如116.307629,40.058359要改成:40.058359,116.307629(百度拾取坐标系统是经度在前)。
旭日® X3 PI使用
硬件连接
- 将跳帽插在B区域
- 将L76x GPS HAT直接插在X3 PI的40PIN上
安装库
使用终端,使用以下指令安装函数库
sudo pip3 install pynmeagps sudo pip3 install gps3 sudo apt-get install python3-serial sudo apt-get install gpsd gpsd-clients python3-gps
使用minicom测试
- 安装minicom调试助手
sudo apt-get install minicom sudo minicom -D /dev/ttyS3 -b 9600
示例程序
- 下载程序
wget https://www.waveshare.net/w/upload/f/f4/L76X_GPS_HAT_Code.zip unzip L76X_GPS_HAT_Code.zip sudo chmod 777 -R L76X_GPS_HAT_Code cd L76X_GPS_HAT_Code/Sunrise
- 测试程序
sudo python3 main.py
- 预期效果
模块首次定位需要35秒的等待时间。
前面是模块输出的原始数据。
Time是L76X输出的时间。
Latitude and longitude是输出的经纬度和经纬方向。
Baudu Coordinates 为转换后的百度地图坐标,可以去百度拾取坐标系统,需要置换程序的经纬度位置,例如116.307629,40.058359要改成:40.058359,116.307629(百度拾取坐标系统是经度在前)。
Jetson Nano使用
硬件连接
- 将跳帽插在B区域
- 将L76x GPS HAT直接插在Jetson Nano的40PIN上
安装库
使用终端,使用以下指令安装函数库
sudo pip3 install pynmeagps sudo pip3 install gps3 sudo apt-get install python3-serial sudo apt-get install gpsd gpsd-clients python3-gps
使用minicom测试
- 安装minicom调试助手
sudo apt-get install minicom sudo minicom -D /dev/ttyTHS1 -b 9600
示例程序
- 下载程序
wget https://www.waveshare.net/w/upload/f/f4/L76X_GPS_HAT_Code.zip unzip L76X_GPS_HAT_Code.zip sudo chmod 777 -R L76X_GPS_HAT_Code cd L76X_GPS_HAT_Code/Jetson\ nano/
- 测试程序
sudo python3 main.py
- 预期效果
模块首次定位需要35秒的等待时间。
前面是模块输出的原始数据。
Time是L76X输出的时间。
Latitude and longitude是输出的经纬度和经纬方向。
Baudu Coordinates 为转换后的百度地图坐标,可以去百度拾取坐标系统,需要置换程序的经纬度位置,例如116.307629,40.058359要改成:40.058359,116.307629(百度拾取坐标系统是经度在前)。
资料
文档
程序
软件
数据手册
Quectel L76相关
- Quectel_GNSS_Flash_EPO_Application_Note_V1.0
- Quectel_GNSS_FOTA_User_Guide_V1.0
- Quectel_GNSS_Low_Power_Mode_Application_Note_V2.0
- Quectel_GNSS_SDK_Commands_Manual_V1.4
- Quectel_L76_GNSS_Presentation_V1.3
- Quectel_L76_Series_GNSS_Protocol_Specification_V3.3
其它芯片
FAQ
将天线置于室外空旷地域,天线有字一面朝下,开机45S之后即可收到有效定位数据
- 发送以下指令将波特率改为115200
$PMTK251,115200*1F<CR><LF>
- 发送以下指令将波特率恢复到默认的9600:
$PMTK251,9600*17<CR><LF>
是待机模式,请置于OFF,否则开机就待机了,没有GPS输出
检查一下 STANDBY 开关是否处于 OFF 位置,再按下 FORCE_ON 按键大约 1 秒,观察串口是否有数据输出。如果还是没有数据输出的话,检查一下 TXD 和 RXD 引脚有没有正确
连接
跳线帽的作用是切换串口设备,跳线帽连到 A, L76B 会跟 USB 接口连接;跳线帽连到B, L76B 与树莓派连接;跳线帽连到 C, 树莓派与 USB 连接(此时模块可以作为一个 USB
转 TTL 模块使用)
在天气晴朗的开阔环境下测试,误差在2.5m内。