L76X GPS Module

来自Waveshare Wiki
跳转至: 导航搜索
L76X GPS Module
{{{name2}}}
{{{name3}}}
功能简介
特性 光传感器
' 无特性,不解释
' 无特性,不解释
' 无特性,不解释
' 无特性,不解释
接口 UART

说明

产品说明

本产品是一款具有GNSS(全球导航卫星系统)功能模块,支持GPS,BD2和QZSS等定位系统,具有体积小、功耗低、定位快等优点。带上我,你可以轻松实现全球定位。
本模块提供树莓派、STM32、Arduino控制例程。

产品参数

  • 接收信道: 22个跟踪信道,66个捕获信道和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
  • 串口通信波特率: 4800bps~115200bps(默认9600)
  • 更新速率: 最大 10Hz(默认 1HZ)
  • 通信协议: NMEA 0183 /PMTK
  • 工作电压: 3.3V/5V
  • 工作电流: 11mA(5V)
  • 工作温度 -40℃ ~ 85℃
  • 产品尺寸: 32.5X25.5(mm)

接口说明

模块 USB转串口
VCC 电源正(2.7V~5V )
GND 电源地
TX 串口数据输出
RX 串口指令输入
PPS 状态指示(定位成功输出秒脉冲)

windows串口调试

  • 连接接天线,连接USB转UART模块,再接连接到电脑。如图所示。连接之后,电源指示灯(PWR)长亮。
L76X GPS Module connet.png

注意:红线不是VCC,黑线不是GND

模块 USB转串口
VCC 5V/3.3V
GND GND
RX TXD
TX RXD
PPS 不接
  • 打开电脑串口调试助手,设置对应的串口号(我这里是COM5),波特率9600,8 位数据位,1 位停止位,无校验位,无流控制。

串口助手可以在此处下载

L76X GPS Module sscom.png

注:1.由于 GPS 室内搜星不稳定,请将模块或者天线放到阳台或窗户旁,或者直接在户外进行实验。
2. 模块首次定位(冷启动),在正常情况下(户外,天气良好,没有大型建筑遮挡),需要35秒时间才能定位成功,请耐心等待。如果天气条件不好,可能需要更长的定位时间,甚至无法定位。

下载 u-center解压打开安装。运行程序,点击 Receiver 菜单,选择 Port,设置实际的串口号,Baudrate: 9600。点击 (连接按钮) ,即可连接到GPS模块, u-center 将显示各种信息,如下图:

L76X GPS Module u-center.png

树莓派使用

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

环境配置

开启Uart接口

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

sudo raspi-config

选择Interfacing Options -> Serial,关闭shell访问,打开硬件串口:

L76X GPS Module rpi serial.png

安装相关函数库

如果使用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

硬件连接

L76X GPS Module rpi connet.png

模块 RaspberryPi
VCC 5V
GND GND
TX P15
RX P14
PPS 不接

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,再将模块连接树莓派。

L76X GPS Module rpi minicom1.png

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

下载并运行测试例程

下载程序

git clone git://github.com/waveshare/L76X-GPS-Module.git
cd L76X-GPS-Module/

C程序

cd C
make clean
make
sudo ./main

python程序

cd python
sudo python main.py

预期效果 模块首次定位需要35秒的等待时间。
前面是模块输出的原始数据。
Time是L76X GPS Module输出的时间。
Latitude and longitude是输出的经纬度和经纬方向。
Baudu Coordinates 为转换后的百度地图坐标,复制坐标到http://www.gpsspg.com/maps.htm 左边选择百度地图,就可以看到你的位置了(如果直接去“百度拾取坐标系统”需要交换经纬度两个数的位置)。

L76X GPS Module rpi test.png

注意:模块默认波特率是9600,但是运行例程以后全部改为了115200。

STM32

本例程是基于HAL库进行开发的,例程已经在XNUCLEO-F103RB上进行了验证。
点击此处下载代码或在资料中下载。

  • 硬件连接
模块 STM32
VCC 5V
GND GND
TX PA10
RX PA9
PPS 不接
  • 预期效果

模块首次定位需要35秒的等待时间。
前面是模块输出的原始数据。
Time是L76X GPS Module输出的时间。
Latitude and longitude是输出的经纬度和经纬方向。
Baudu Coordinates 为转换后的百度地图坐标,复制坐标到http://api.map.baidu.com/lbsapi/getpoint/,就可以看到你的位置了(如果直接去“百度拾取坐标系统”需要交换经纬度两个数的位置)。

L76X GPS Module STM32 SERIAL.png

注意:模块默认波特率是9600,但是运行例程以后全部改为了115200。

Arduino

本例程已经在Arduino UNO上进行了验证。
点击此处下载代码或在资料中下载。
硬件连接

模块 Arduino
VCC 5V
GND GND
TX 2
RX 3
PPS 不接

预期效果 模块首次定位需要35秒的等待时间。
打开串口助手,设置波特率为9600
前面是模块输出的原始数据。
Time是L76X GPS Module输出的时间。
由于Arduin数据精度不够就没有做算法,算出来的数据也是误差特别大的。

L76X GPS Module Arduino Serial.png

注意:模块默认波特率是9600,但是运行例程以后全部改为了115200。

FAQ


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


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


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


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


L76内部没有存储器,无法保存数据,一旦掉电即会回复初始。


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


  1. 硬件串口没有打开

开启Uart接口

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

sudo raspi-config

选择Interfacing Options -> Serial,关闭shell访问,打开硬件串口:

L76X GPS Module rpi serial.png
  1. 波特率要用9600
sudo minicom -D /dev/ttyS0 -b 9600


技术支持


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

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