L76K GPS Module

来自Waveshare Wiki
跳转至: 导航搜索
{{{name2}}}
{{{name3}}}
功能简介
特性 GNSS
' 无特性,不解释
' 无特性,不解释
' 无特性,不解释
' 无特性,不解释
接口 UART

说明

产品说明

L76K 是一款支持多卫星系统(GPS、BeiDou、GLONASS、QZSS)、可多系统联合定位和单系统独立定位、支持AGNSS 功能、内置低噪声放大器和声表面滤波器、可向用户提供快速、精准、高性能定位体验的 GNSS 模块。
本模块提供树莓派、Arduino、Raspberry Pi Pico、ESP32控制例程。





产品参数

产品 LC76G(AB) L76K L76B
可兼容
产品图片
LC76G p.png
L76K p.png
L76B p.png
GNSS GPS/GLONASS/Galileo/BDS/QZSS GPS/GLONASS/BDS/QZSS GPS/BDS/QZSS
封装特征 LCC LCC LCC
尺寸 9.7×10.1×2.4 9.7×10.1×2.4 9.7×10.1×2.4
重量 (g) 0.6 0.4 0.5
正常工作温度 -40℃ ~+85℃ -40℃ ~+85℃ -40℃ ~+85℃
存储温度 -40℃ ~+90℃ -40℃ ~+90℃ -40℃ ~+90℃
主要特征
功能 标准 标准 示例
芯片 AG3352Q AT6558R MT333
L1 接收机类型 ( 通道数 ) 47跟踪 32跟踪/72捕获 22跟踪/66捕获
L1 接收机类型 SBAS 支持 不支持 支持
A-GNSS 支持 支持 支持
灵敏度 ( 自动捕获 ) -147dBm -148dBm -148dBm
灵敏度 ( 重新捕获 ) -159dBm -160dBm -160dBm
灵敏度 ( 跟踪 ) -166dBm -162dBm -163dBm
TTFF ( 首次定位时间 ) 冷启动 26s,Autonomous
12s,with EASY™
5s,with EPO™
30s,Autonomous
5.5s,With AGNSS
35s,Autonomous
15s,with EASY™
TTFF ( 首次定位时间 ) 温启动 20s,Autonomous
2s,with EASY™
/ 30s,Autonomous
5s,with EASY™
TTFF ( 首次定位时间 ) 热启动 1s 2s 1s
位置精度 1.5m CEP 2.0m CEP 2.5m CEP
速度精度 0.1m/s 0.1m/s 0.1m/s
最大加速度精度 0.1m/s² 0.1m/s² 0.1m/s²
授时精度 100ns 30ns 10ns
最大更新率 10Hz 5Hz 10Hz
默认波特率 115200bps 9600bps 9600bps
Geo-fence /
干扰检测 /
Anti-jamming /
低噪放 LNA
电气参数
供电电压 2.55to3.6V 2.7Vto3.4V 2.8Vto4.3V
功耗 ( 捕获 ) 36mA(G3B) 29mA (GPS+BDS) 29mA (GPS+BDS)
功耗 ( 跟踪 ) 36mA(G3B) 29mA (GPS+BDS) 18mA (GPS+BDS)
功耗 (RTC 备份 / 低功耗 13μA 8μA 7μA
接口
UART
IIC (NMEA) /
重置
时间脉冲
天线
短路检测和保护开路检测
天线类型 有源,无源 有源,无源 有源,无源
天线供电 外部或内部 外部或内部 外部或内部

接口说明

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

NMEA0183

  • 主控设备从串口输出NMEA0183信息,并解析NMEA 0183语句输出人类适读信息
  • NMEA 0183是美国国家海洋电子协会(National Marine Electronics Association )为海用电子设备制定的标准格式.现已成了GPS导航设备统一的RTCM(Radio Technical Commission for Maritime services)标准协议
  • NMEA 0183包括$GPZDA、$GPRMC、$GPVTG、$GPGNS、$GPGGA、$GPGSA、$GPGSV*3、$GPGLL、$GPGST等7种协议帧,其中$后跟随的前两个字符代表国家或地区的GNSS系统,比如GPGGA代表美国GPS ,BDGGA代表中国北斗 ,GLGGA代表俄罗斯GLONASS ,GAGGA代表欧盟Galileo,GNGGA代表多星联合定位
  • 以$GPRMC为例简要描述协议帧中各部分所代表的信息,其它6种协议帧请查阅NMEA 0183手册
Recommended Minimum Specific GPS/TRANSIT Data(RMC)推荐定位信息
$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>*hh<CR><LF>
$GNRMC,010555.000,A,2232.4682,N,11404.6748,E,0.00,125.29,230822,,,D*71
<1> UTC时间,hhmmss.sss(时分秒)格式 
<2> 定位状态,A=有效定位,V=无效定位 
<3> 纬度ddmm.mmmm(度分)格式(前面的0也将被传输) 
<4> 纬度半球N(北半球)或S(南半球) 
<5> 经度dddmm.mmmm(度分)格式(前面的0也将被传输) 
<6> 经度半球E(东经)或W(西经) 
<7> 地面速率(000.0~999.9节,前面的0也将被传输) 
<8> 地面航向(000.0~359.9度,以真北为参考基准,前面的0也将被传输) 
<9> UTC日期,ddmmyy(日月年)格式 
<10> 磁偏角(000.0~180.0度,前面的0也将被传输) 
<11> 磁偏角方向,E(东)或W(西) 
<12> 模式指示(仅NMEA0183 3.00版本输出,A=自主定位,D=差分,E=估算,N=数据无效)
*hh : 最后校验码*hh是用做校验的数据。在通常使用时,它并不是必须的,但是当周围环境中有较强的电磁干扰时,则推荐使用。hh代表了“$”和“*”的所有字符的按位异或值(不包括这两个字符)。个别厂商自己定义语句格式以“$P”开头,其后是3个字符的厂家ID识别号,后接自定义的数据体。

PCAS语句

PCAS语句是由芯片供应商定义的NMEA专用语句

语句 描述 示例 功能
$PCAS01,<CMD>*<Checksum> 配置 NMEA 串口波特率 $PCAS01,1*1D 设置串口波特率为9600

<CMD>支持以下波特率:
0 = 4800
1 = 9600
2 = 19200
3 = 38400
4 = 57600
5 = 115200

$PCAS02,<Interval>*<Checksum> 设置定位频率 $PCAS02,1000*2E 设置定位频率为1Hz

<Interval>定位间隔:
1000:设置定位频率为 1 Hz
500:设置定位频率为 2 Hz
200:设置定位频率为 5 Hz

$PCAS03,<nGGA>,<nGLL>,<nGSA>,<nGSV>,<nRMC>,<nVTG>,<nZDA>,<nANT>,<Res>,<Res>,<Res>,<Res>,<Res>,<Res>*<Checksum> 配置 NMEA 语句输出类型和输出频率 $PCAS03,1,1,1,1,1,1,1,1,0,0,,,0,0*02 使能NMEA输出中GGA、GLL、GSA、GSV、RMC、VTG、ZDA、ANT语句输出
(详见L76K&L26K GNSS 协议规范:2.3 PCAS 语句(专用语句))
$PCAS04,<Mode>*<Checksum> 配置星系 $PCAS04,3*1A 配置星系为GPS+BeiDou

<Mode>GNSS星系配置:
1 = GPS
2 = BeiDou
3 = GPS + BeiDou(默认)
4 = GLONASS
5 = GPS + GLONASS
6 = BeiDou + GLONASS
7 = GPS + BeiDou + GLONASS
(QZSS 默认使能且不支持配置。)

$PCAS10,<Flag>*<Checksum> 重启模块 $PCAS10,0*1C 热启动

<Flag>重启模式:
0 = 热启动
1 = 温启动
2 = 冷启动
3 = 冷启动并恢复出厂设置

注意:更改配置内容后需要对应修改校验位<Checksum>
详见L76K芯片GNSS协议规范

windows使用

  • 连接GPS天线,连接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 将显示各种信息,如下图:
L76K u-center.png

树莓派使用

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

开启Uart接口(若已开启可跳过)

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

sudo raspi-config

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

硬件连接

L76K Raspberry-Pi-4-Model-B-4GB.png

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

minicom调试

下载安装minicom工具:

sudo apt-get install minicom

定位硬件串口对应串口号:

ls -l /dev/serial*

如果系统曾经使用过串口且修改过配置,可能会出现下面两种情况:
打开串口功能后默认状态:
Lsdev2水印.png
修改串口配置后状态:
Lsdev3水印.png
需要找到与serial0(即GPIO上的串口)对应的串口号,如图一该串口号是ttyS0,图二是ttyAMA0; 使用minicom打开串口:

sudo minicom -D /dev/ttyS0 -b 9600

-D代表端口,如果上一步定位串口号为ttyAMA0,那么是:

sudo minicom -D /dev/ttyAMA0 -b 9600

minicom默认波特率为115200,如需设置波特率为9600加参数 -b 9600。
L76X GPS Module rpi minicom1.png
退出:Ctrl+A 然后单独按X,YES 回车

下载并运行测试例程

下载程序

cd
sudo apt-get install unzip -y
sudo wget https://www.waveshare.net/w/upload/0/05/L76K_GPS_Module_code.zip
sudo unzip L76K_GPS_Module_code.zip -d ./L76K_GPS_Module_code
sudo chmod 777 -R ./L76K_GPS_Module_code
cd ./L76K_GPS_Module_code

或者点击下载示例程序,解压后放入树莓派

环境配置

安装例程相关函数库

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

  1. 打开树莓派终端,并运行以下指令
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版本,如果没有出现说明安装出错

python

新版树莓派系统运行python3程序需要安装GPS数据解析库

cd L76K_GPS_Module_code/RaspberryPi/python3/micropyGPS-master
sudo python3 setup.py install
#等待库安装完成

如果旧系统仅支持Python2需要函数库

sudo apt-get update
sudo pip install RPi.GPIO
sudo apt-get install python-serial

C程序

cd C
make clean
make
sudo ./main

Baudu Coordinates 为转换后的百度地图坐标,复制坐标到http://www.gpsspg.com/maps.htm 左边选择百度地图,就可以看到你的位置了(如果直接去“百度拾取坐标系统”需要交换经纬度两个数的位置)。
L76K RPi C.png

python3程序

cd python3
sudo python3 main.py

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

python2程序

cd python
sudo python main.py

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

Arduino使用

本例程已经在Arduino MEGA2560上进行了验证。
点击下载示例程序或在资料中下载。

硬件连接

模块 Arduino
VCC 5V
GND GND
TX RX2
RX TX2
PPS NC

例程使用

选择Arduino mega2560开发板和其对应端口号,验证并上传程序
模块首次定位需要35秒的等待时间。
打开串口助手,设置波特率为9600
前面是模块输出的原始数据。
Time是L76X GPS Module输出的时间。
前面是模块输出的原始数据。Time是L76X GPS Module输出的时间。Lat和Lon是输出的经纬度和经纬方向。 B_Lat和B_Lon为转换后的百度地图坐标,复制坐标到http://api.map.baidu.com/lbsapi/getpoint/,就可以看到你的位置了(坐标格式为经度Lat在前,纬度Lon在后,中间用英文符号的逗号分隔)。
L76K Arduinomega.png
文件中也附带了Arduino uno例程,但是该平台数据精度不足,仅实现了显示卫星数据中的时间,想其它信息可自行修改程序。

Raspberry Pi Pico使用

硬件连接

模块 Raspberry Pi Pico
VCC 5V
GND GND
TX GP1
RX GP0
PPS NC

环境搭建

本教程使用Thonny进行代码测试,点击下载相关IDE并安装后打开Thonny

  • 请参考官方文档搭建python环境,在Thonny的Tools->Options->Interprete选择Raspberry Pi Pico设备,如下图所示

Pico-10DOF-IMU013.jpg

程序下载

1. 点击下载示例程序
2. 解压示例程序; 3. 打开Thonny,先确认已经连接到了pico,之后在左上角打开解压后的程序路径,右键pico文件夹,选择上传,如图所示
L76K pico4.png

例程使用

1. 打开Thonny IDE,选择pico目录,双击打开coordinate_convert.py文件然后运行例程,如图所示
L76K pico5.png

2. 天气晴朗条件下,L76K上电后约30秒会获取到定位信息,如下图运行程序显示的信息
L76K pico6.png
3.用户可以复制Thonny中terminal显示的定位信息,使用Google Map,Baidu Map进行坐标标注

ESP32

硬件连接

L76K ESP32 connet2.png

模块 ESP32
VCC 5V
GND GND
TX P16
RX P17
PPS NC


环境搭建

在Arduino IDE中安装ESP32插件

  1. 打开Arduino IDE,点击左上角的文件,选择首选项
    L76K ESP321.png
  2. 在附加开发板管理器网址中添加如下链接,然后点击OK
    https://dl.espressif.com/dl/package_esp32_index.json

    L76K ESP322.png
    注意:如果您已经有 ESP8266 板 URL,您可以使用逗号分隔 URL,如下所示:

    https://dl.espressif.com/dl/package_esp32_index.json,http://arduino.esp8266.com/stable/package_esp8266com_index.json
  3. 下载packages压缩包,将解压的packages文件复制到如下路径下
    C:\Users\xutong\AppData\Local\Arduino15

    ESP32平台安装包水印.jpg
    注意:将里面用户名:xutong替换成自己的用户名

使用例程

  • 下载例程并解压,使用配置好的Arduino IDE打开ESP32目录下L76X.ino文件,等待文件全部加载。
  • 使用数据线将esp32开发板连接到电脑,选择正确的开发板型号和端口号。
  • 这里以ESP32-S芯片开发板举例:依次点击:工具->开发板->esp32->ESP32 Dev Module,并且选择对应的端口号
  • 点击左上角“验证”,等待验证完成无报错后点击“上传”
  • 上传完成后程序自动运行,依次点击:工具->串口监视器,在串口监视器窗口即可观察到程序运行效果:

L76K esp32 2.png
模块首次定位需要35秒的等待时间.(如果信号条件不佳可能会更久)
前面是模块输出的原始数据。Time是L76X GPS Module输出的时间。Lat和Lon是输出的经纬度和经纬方向。
B_Lat和B_Lon为转换后的百度地图坐标,复制坐标到http://api.map.baidu.com/lbsapi/getpoint/,就可以看到你的位置了(坐标格式为经度Lat在前,纬度Lon在后,中间用英文符号的逗号分隔)。

Jetson Nano使用

该示例已在烧录ubantu系统的JETSON-NANO-DEV-KIT开发板上验证

硬件连接

L76K JETSON.png

模块 JETSON-NANO-DEV-KIT
VCC 5V
GND GND
TX 10
RX 8
PPS NC

环境配置

安装pip工具

使用apt-get工具安装python工具pip

sudo apt-get install python3-pip   #python3
#之后需要输入用户密码验证
sudo apt-get install python2-pip   #python2
#之后需要输入用户密码验证

等待安装完成。

安装python库

#python3程序需要的库:
sudo pip3 install pyserial     #串口控制库
sudo pip3 install settools     #安装工具
cd jetson/python3/micropyGPS-master
sudo python3 setup.py install  #数据解析库
#python2程序需要的库:
sudo pip install pyserial     #串口控制库

使用例程

进入目录运行main.py

cd jetson/python3
sudo python3 main.py

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

资料

文档

程序

软件

数据手册

FAQ

  • 用以下指令改115200:
$PCAS01,5*19
  • 改为默认的9600
$PCAS01,1*1D 

L76K baud.png

{{{4}}}

{{{5}}}



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


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


L76 GPS HAT ERR1.png
务必保证一面的第一步是关闭的,因为这个会把树莓派的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

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