LC76G GNSS Module

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

产品说明

LC76G GNSS Module是一款 GNSS (全球导航卫星系统)模块,支持 GPS、北斗(BDS)、GLONASS、Galileo 和 QZSS 多重卫星系统,可多系统联合定位和单系统独立定位、支持 EPO™ (扩展预测轨道)和 EASY™ (嵌入式辅助系统)功能,可向用户提供快速、准确、高性能定位体验的 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²
授时精度 30ns 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 电源正(3.3V~5V )
GND 电源地
TX 串口数据输出
RX 串口指令输入
PPS GPS 状态指示灯
RST 复位引脚
SDA I2C 数据线
SCL I2C 时钟线

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识别号,后接自定义的数据体。

PAIR语句

本章介绍常用PAIR消息(芯片组供应商定义的专有NMEA消息)。“P”表示专有消息,“AIR”表示芯片组供应商定义的命令

语句 描述 示例 功能
$PAIR864,<PortType>,<PortIndex>,<Baudrate>*<Checksum> 配置 NMEA 串口波特率 $PAIR864,0,0,115200*1B
$PAIR864,0,0,9600*13
设置串口波特率为115200/9600

<CMD>支持以下波特率:
9600
115200(default)
230400
460800
921600
3000000

$PAIR050, 设置定位频率 $PAIR050,1000*12 设置定位频率为1Hz

<Interval>定位间隔:
100–1000, (Default:1000) (如果设定频率大于1 Hz,则在设定频率下仅输出RMC和GGA,其他NMEA句子的输出保持在1Hz。)

$PAIR062,<Type>,<OutputRate>*<Checksum> 配置 NMEA 语句输出类型和输出频率 $PAIR062,0,3*3D 设置NMEA输出中GGAT语句输出频率为每定位3次输出一次
(详见Quectel_LC26G&LC76G&LC86G_GNSS_Protocol_Specification_V1.0.0_Preliminary,2.3.13
$PAIR066,<GPS_Enabled>,<GLONASS_Enabled>,<Galileo_Enabled>,<BDS_Enabled>,<QZSS_Enabled>,0*<Checksum> 配置星系 $PAIR066,1,1,1,1,0,0*3A 配置星系为GPS+GLONASS+Galileo+BDS

<*_Enabled>GNSS星系配置:
0 = Disable 1 = Enable (通过修改各个使能位配置GNSS星系模式)

$PAIR004*<Checksum> 热启动 $PAIR004*3E 热启动
$PAIR005*<Checksum> 温启动 $PAIR005*3F 温启动
$PAIR006*<Checksum> 冷启动 $PAIR006*3C 冷启动
$PAIR007*<Checksum> 清除系统配置并冷启动 $PAIR007*3D 清除系统配置并冷启动

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

windows使用

  • 连接GPS天线,连接USB转UART模块(须另购),再接连接到电脑。如图所示。连接之后,电源指示灯(PWR)长亮。

LC76G CP2102.png
注意:红线不是VCC,黑线不是GND

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

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

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

树莓派使用

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

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

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

sudo raspi-config

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

硬件连接

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

LC76G Raspberry-Pi-4-Model-B-4GB 2.png

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。
LC76G RPi minicom.png
退出:Ctrl+A 然后单独按X,YES 回车

下载并运行测试例程

下载程序

cd
sudo apt-get install unzip -y
sudo wget https://www.waveshare.net/w/upload/d/dc/LC76G_GPS_Module_code.zip
sudo unzip LC76G_GPS_Module_code.zip -d ./LC76G_GPS_Module_code
sudo chmod 777 -R ./LC76G_GPS_Module_code
cd ./LC76G_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 python 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 左边选择百度地图,就可以看到你的位置了(如果直接去“百度拾取坐标系统”需要交换经纬度两个数的位置)。
LC76G RPi C.png

python3程序

cd python
sudo python main.py

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

python2程序

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

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在后,中间用英文符号的逗号分隔)。
LC76G Arduino.png
文件中也附带了Arduino uno例程,但是该平台数据精度不足,仅实现了显示卫星数据中的时间,想其它信息可自行修改程序。

Raspberry Pi Pico使用

硬件连接

LC76G Raspberry-Pi-Pico 2.png

模块 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文件夹,选择上传,如图所示
LC76G RPi pico2.png

例程使用

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

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

ESP32

硬件连接

LC76G ESP32 connet3.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,并且选择对应的端口号
  • 点击左上角“验证”,等待验证完成无报错后点击“上传”
  • 上传完成后程序自动运行,依次点击:工具->串口监视器,在串口监视器窗口即可观察到程序运行效果:

LC76G esp32.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开发板上验证

硬件连接

LC76G JETSON2.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

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

资料

文档

程序

软件

数据手册

FAQ

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


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


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


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


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


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


LC76-GNGGA.png 有的,海拔高度是24.239米,详细说明如下:

$GNGGA,085509.000,2232.467506,N,11404.694718,E,2,14,0.95,24.239,M,-1.934,M,,*57
$GNGGA:NMEA语句的类型,表示这是GGA(Global Positioning System Fix Data)语句。
085509.000:UTC时间,格式为hhmmss.sss,这里是08时55分09.000秒。
2232.467506:纬度,格式为ddmm.mmmmmm,这里是22度32.467506分。
N:纬度方向,N表示北纬。
11404.694718:经度,格式为dddmm.mmmmmm,这里是114度04.694718分。
E:经度方向,E表示东经。
2:定位状态,2表示差分GPS(DGPS)定位。
14:使用的卫星数量。
0.95:水平精度因子(HDOP)。
24.239:天线的海拔高度,以米为单位。
M:海拔高度的单位,M表示米。
-1.934:大地水准面相对于椭球面的高度差,以米为单位。
M:单位,同样为米。
空字段:差分GPS数据的年龄(没有值)。
空字段:差分参考站ID(没有值)。
*57:校验和,用于检查数据的完整性。





技术支持


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

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