L76K GPS Module
| ||||||||||||||||||||
|
说明
产品说明
L76K 是一款支持多卫星系统(GPS、BeiDou、GLONASS、QZSS)、可多系统联合定位和单系统独立定位、支持AGNSS 功能、内置低噪声放大器和声表面滤波器、可向用户提供快速、精准、高性能定位体验的 GNSS 模块。
本模块提供树莓派、Arduino、Raspberry Pi Pico、ESP32控制例程。
产品参数
产品 | LC76G(AB) | L76K | L76B |
---|---|---|---|
可兼容 | |||
产品图片 | |||
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>支持以下波特率: |
$PCAS02,<Interval>*<Checksum> | 设置定位频率 | $PCAS02,1000*2E | 设置定位频率为1Hz <Interval>定位间隔: |
$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星系配置: |
$PCAS10,<Flag>*<Checksum> | 重启模块 | $PCAS10,0*1C | 热启动 <Flag>重启模式: |
注意:更改配置内容后需要对应修改校验位<Checksum>
详见L76K芯片GNSS协议规范
windows使用
- 连接GPS天线,连接USB转UART模块(须另购),再接连接到电脑。如图所示。连接之后,电源指示灯(PWR)长亮。
模块 | USB转串口 |
---|---|
VCC | 5V/3.3V |
GND | GND |
RX | TXD |
TX | RXD |
PPS | 不接 |
- 打开电脑串口调试助手,设置对应的串口号(我这里是COM5),波特率9600,8 位数据位,1 位停止位,无校验位,无流控制。
串口助手可以在此处下载
注:1.由于 GPS 室内搜星不稳定,请将模块或者天线放到阳台或窗户旁,或者直接在户外进行实验。
2. 模块首次定位(冷启动),在正常情况下(户外,天气良好,没有大型建筑遮挡),需要35秒时间才能定位成功,请耐心等待。如果天气条件不好,可能需要更长的定位时间,甚至无法定位。
下载 u-center解压打开安装。运行程序,点击 Receiver 菜单,选择 Port,设置实际的串口号,Baudrate: 9600。点击 (连接按钮) ,即可连接到GPS模块, u-center 将显示各种信息,如下图:
树莓派使用
树莓派提供C与pyton两种程序控制
开启Uart接口(若已开启可跳过)
打开树莓派终端,输入以下指令进入配置界面
sudo raspi-config
选择Interfacing Options -> Serial,关闭shell访问,打开硬件串口:
硬件连接
模块 | RaspberryPi |
---|---|
VCC | 5V |
GND | GND |
TX | P15 |
RX | P14 |
PPS | 不接 |
minicom调试
下载安装minicom工具:
sudo apt-get install minicom
定位硬件串口对应串口号:
ls -l /dev/serial*
如果系统曾经使用过串口且修改过配置,可能会出现下面两种情况:
打开串口功能后默认状态:
修改串口配置后状态:
需要找到与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。
退出: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
- 打开树莓派终端,并运行以下指令
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 左边选择百度地图,就可以看到你的位置了(如果直接去“百度拾取坐标系统”需要交换经纬度两个数的位置)。
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左边选择百度地图,就可以看到你的位置了(如果直接去“百度拾取坐标系统”需要交换经纬度两个数的位置)。
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左边选择百度地图,就可以看到你的位置了(如果直接去“百度拾取坐标系统”需要交换经纬度两个数的位置)。
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在后,中间用英文符号的逗号分隔)。
文件中也附带了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设备,如下图所示
程序下载
1. 点击下载示例程序
2. 解压示例程序;
3. 打开Thonny,先确认已经连接到了pico,之后在左上角打开解压后的程序路径,右键pico文件夹,选择上传,如图所示
例程使用
1. 打开Thonny IDE,选择pico目录,双击打开coordinate_convert.py文件然后运行例程,如图所示
2. 天气晴朗条件下,L76K上电后约30秒会获取到定位信息,如下图运行程序显示的信息
3.用户可以复制Thonny中terminal显示的定位信息,使用Google Map,Baidu Map进行坐标标注
ESP32
硬件连接
模块 | ESP32 |
---|---|
VCC | 5V |
GND | GND |
TX | P16 |
RX | P17 |
PPS | NC |
环境搭建
在Arduino IDE中安装ESP32插件
-
打开Arduino IDE,点击左上角的文件,选择首选项
-
在附加开发板管理器网址中添加如下链接,然后点击OK
https://dl.espressif.com/dl/package_esp32_index.json
注意:如果您已经有 ESP8266 板 URL,您可以使用逗号分隔 URL,如下所示:https://dl.espressif.com/dl/package_esp32_index.json,http://arduino.esp8266.com/stable/package_esp8266com_index.json
-
下载packages压缩包,将解压的packages文件复制到如下路径下
C:\Users\xutong\AppData\Local\Arduino15
使用例程
- 下载例程并解压,使用配置好的Arduino IDE打开ESP32目录下L76X.ino文件,等待文件全部加载。
- 使用数据线将esp32开发板连接到电脑,选择正确的开发板型号和端口号。
- 这里以ESP32-S芯片开发板举例:依次点击:工具->开发板->esp32->ESP32 Dev Module,并且选择对应的端口号
- 点击左上角“验证”,等待验证完成无报错后点击“上传”
- 上传完成后程序自动运行,依次点击:工具->串口监视器,在串口监视器窗口即可观察到程序运行效果:
模块首次定位需要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开发板上验证
硬件连接
模块 | 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
模块首次定位需要35秒的等待时间。
前面是模块输出的原始数据。
Time是L76X GPS Module输出的时间。
Latitude and longitude是输出的经纬度和经纬方向。
Baudu Coordinates 为转换后的百度地图坐标,复制坐标到http://www.gpsspg.com/maps.htm 左边选择百度地图,就可以看到你的位置了(如果直接去“百度拾取坐标系统”需要交换经纬度两个数的位置)。
资料
文档
程序
软件
数据手册
FAQ
{{{5}}}
将天线置于室外空旷地域,天线有字一面朝下,开机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内。
技术支持
联系人:黄工
EMAIL:3005423122@qq.com
电话:0755-83040712
QQ:3005763927
微信:扫下方二维码添加