Pico-GPS-L76B

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

说明

产品简介

本产品是一款基于 L76B 模组的 Raspberry Pi Pico 的 GNSS (全球导航卫星系统) 扩展板,支持 GPS、北斗(BDS) 和 QZSS 多重卫星系统,具有定位快速、精准和功耗低等优点。搭配树莓派 Pico 使用,可轻松实现全球定位。

产品特性

  • 板载 Raspberry Pi Pico 接口,适用于 Raspberry Pi Pico 系列主板
  • 支持 GPS、北斗(BDS)和 QZSS 多重卫星系统
  • 支持 EASY 自生成轨道预测功能,可实现快速定位
  • 支持 AlwaysLocate 功能,可实现周期模式智能控制
  • 支持 D-GPS,SBAS (WAAS/EGNOS/MSAS/GAGAN)
  • 支持串口通信波特率范围:4800~115200bps (默认 9600bps)
  • 板载电池座,可接入 ML1220 充电电池,用于掉电保存星历数据和热启动
  • 板载 4 个 LED 指示灯,方便查看模块运行状态
  • 提供完善的配套资料手册 (Raspberry Pi Pico C/C++ 和 MicroPython 等示例程序)

产品参数

GNSS参数
信号频段:

GPS L1 (1575.42Mhz) BD2 B1 (1561.098MHz)

信道数:33 个跟踪信道,99 个捕获信道和 210 个 PRN 信道
C/A code
SBAS:WAAS、EGNOS、MSAS、GAGAN
水平定位精度 (自主定位) <2.5m CEP
首次定位时间@ -130dBm(EASY 功能开启)
冷启动:<15s
温启动:<5s
热启动:<1s
灵敏度
捕获:-148dBm
追踪:-163dBm
重捕获:-160dBm
动态性能
海拔高度(max):18000m
速度(max):515m/s
加速度(max):4g
其它参数
通信接口 UART
串口波特率 4800~115200bps (默认 9600bps)
更新速率 1Hz (default),10Hz (max)
通信协议 NMEA 0183,PMTK
供电电压 5V
工作电流 13mA
整机耗流 小于 40mA@5V(Continue 模式)
工作温度 -40℃ ~ 85℃
产品尺寸 52 × 21mm

硬件说明

硬件连接

Pico-GPS-L76B 006.jpg
1. 注意Pico-GPS-L76B 上USB Logo标志和Raspberry Pi Pico的USB连接方向对应
2. 下载C程序时, 注意按住BOOT键再接入USB线缆
3. 注意天线无标签一侧朝向天空,不要遮挡天线,如下图所示
Pico-GPS-L76B 009.jpg

引脚说明

Pico-GPS-L76B 002.jpg
1. 板载默认使用UART0(GPIO0,GPIO1),可选UART1(GPIO4,GPIO5)进行通信,将原理图中H1,H2焊接到B端位置,软件上重新选择UART1
2. 板载按键和开关控制L76B的唤醒和休眠,将原理图中的R18,R19位置焊接0R电阻可改为GPIO控制
3. 板载LDO给L76B模块供电 ,若将原理图中R3位置上的0R移到R6位置,此时可以使用GPIO14完全关断Pico-GPS-L76B上的电源, 或将R3位置的0R移到R7位置, 则使用RP2040上的3.3V电源
4. L76B模组的PPS引脚默认不连接GPIO, 若需要使用, 则使用0R连接原理图中R20位置

按键说明

1. 当Pico-GPS-L76B模块通过软件指令进入休眠状态后,可以使用FORCE ON按键进行唤醒
2. STANDBY开关用于手动设置Pico-GPS-L76B进入standby状态,standby状态下L76B不再输出NMEA

产品尺寸

center800px


NMEA0183

  • Pico-GPS-L76B从串口输出NMEA0183信息,Raspberry Pico Pico解析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识别号,后接自定义的数据体。

环境搭建

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

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

Pico-10DOF-IMU013.jpg

程序下载

1. 点击下载示例程序
2. 解压示例程序,Micorpython示例程序请上传到Pico文件系统,如图所示
Pico-10DOF-IMU014.jpg

例程使用

Micropython

1. 打开Thonny IDE,将文件上传到Raspberry Pi Pico 文件系统, 打开coordinate_convert.py文件然后运行例程,如图所示
Pico-GPS-L76B 007.jpg

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

例程简析

  • 注意coordinates_converter.py中创建NMEA0183语句解析器类型使用的dd形式的值,初始化为其它如ddm,dms形式经纬值形式需要重新编写坐标转换函数

# make an object of NMEA0183 sentence parser
"""
Setup GPS Object Status Flags, Internal Data Registers, etc
local_offset (int): Timzone Difference to UTC
location_formatting (str): Style For Presenting Longitude/Latitude:
                           Decimal Degree Minute (ddm) - 40° 26.767′ N
                           Degrees Minutes Seconds (dms) - 40° 26′ 46″ N
                           Decimal Degrees (dd) - 40.446° N
"""
parser = MicropyGPS(location_formatting='dd')

  • coordinates_converter.py文件将NMEA0183语句转换成WGS84坐标经纬度值和BD09坐标系经纬度值 , 分别适用于在谷歌地图,百度地图等进行坐标标注

while True:
    if gnss_l76b.uart_any():
        sentence = parser.update(chr(gnss_l76b.uart_receive_byte()[0]))
        if sentence:
            
            print('WGS84 Coordinate:Latitude(%c),Longitude(%c) %.9f,%.9f'%(parser.latitude[1],parser.longitude[1],parser.latitude[0],parser.longitude[0]))
            print('copy WGS84 coordinates and paste it on Google map web https://www.google.com/maps')

            gnss_l76b.wgs84_to_bd09(parser.longitude[0],parser.latitude[0])
            print('Baidu Coordinate: longitude(%c),latitudes(%c) %.9f,%.9f'%(parser.longitude[1],parser.latitude[1],gnss_l76b.Lon_Baidu,gnss_l76b.Lat_Baidu))
            print('copy Baidu Coordinate and paste it on the baidu map web https://api.map.baidu.com/lbsapi/getpoint/index.html')
            
            print('UTC Timestamp:%d:%d:%d'%(parser.timestamp[0],parser.timestamp[1],parser.timestamp[2]))
            
#           print fix status
            '''
            1 : NO FIX
            2 : FIX 2D
            3 : FIX_3D
            '''
            print('Fix Status:', parser.fix_stat)
            
            print('Altitude:%d m'%(parser.altitude))
            print('Height Above Geoid:', parser.geoid_height)
            print('Horizontal Dilution of Precision:', parser.hdop)
            print('Satellites in Use by Receiver:', parser.satellites_in_use)
            print('')
  • gnss_setting.py文件中列出了L76B相关设置信息,如下代码中的NMEA输出频率,和热启动等相关设置
# set NMEA0183 sentence output frequence
'''
optional:
SET_POS_FIX_100MS
SET_POS_FIX_200MS
SET_POS_FIX_400MS
SET_POS_FIX_800MS
SET_POS_FIX_1S
SET_POS_FIX_2S
SET_POS_FIX_4S
SET_POS_FIX_8S
SET_POS_FIX_10S
'''
gnss_l76b.L76X_Send_Command(gnss_l76b.SET_POS_FIX_1S)

#set #Startup mode
'''
    SET_HOT_START
    SET_WARM_START
    SET_COLD_START
    SET_FULL_COLD_START
'''
gnss_l76b.L76X_Send_Command(gnss_l76b.SET_COLD_START)


Pico快速上手

固件下载

MicroPython固件下载
Pico MicroPython.gif
C_Blink固件下载
Pico Blink.gif
教程名3
列表3
教程名4
列表4
教程名5
列表5
教程名6
列表6
教程名7
列表7
教程名8
列表8

视频教程

PICO系列教程1——基础介绍

PICO系列教程2——外设GPIO

PICO系列教程3——PWM(脉冲宽度调制)

PICO系列教程4——ADC(模拟数字转换器)

PICO系列教程5——UART (异步收发传输器)

PICO系列教程6——I2C(集成电路总线)

PICO系列教程7——SPI(串行外设接口)

PICO系列教程8——PIO(可编程输入输出端口)

文字教程

基础介绍

Raspberry Pi Pico的基础介绍

MicroPython系列

【MicroPython】machine.Pin类函数详解
【MicroPython】machine.PWM类函数详解
【MicroPython】machine.ADC类函数详解
【MicroPython】machine.UART类函数详解
【MicroPython】machine.I2C类函数详解
【MicroPython】machine.SPI类函数详解
【MicroPython】rp2.StateMachine类函数详解

C/C++系列

【C/C++】 Windows教程1——环境搭建
【C/C++】 Windows教程2——创建工程

Arduino IDE 系列

环境搭建

  • 打开Arduino IDE,进入File->Preferences
  • 在弹出的对话框中,在“Additional Boards Manager URLs”字段中输入以下URL(需要梯子):
https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json
  • 点击OK关闭对话框。
  • 进入IDE中的工具->开发板管理器
  • 在搜索框中输入“pico”,然后选择“添加”:
  • 无法下载的,可以点击此处下载压缩包提取密码为 0755 ,然后复制到指的目录下
    • 解压后,复制到C:\Users\username\AppData\Local\Arduino15下
    • 例如:我的用户名是ZhangSan,那么就是C:\Users\ZhangSan\AppData\Local\Arduino15下
    • 注意:要将文件管理器中的隐藏的项目打开:点击查看 -> 勾选隐藏的项目,不勾选会看不见AppData文件夹

Pico-W系列教程(即将上线)

  • 敬请期待

开源例程

MircoPython视频例程(github)
MicroPython固件/Blink例程(C)
树莓派官方C/C++示例程序 (github)
树莓派官方micropython示例程序 (github)
Arduino官方C/C++示例程序 (github)

FAQ


技术支持


联系人:钟工
EMAIL:3004517899@qq.com
电话:0755-83040712
QQ:3004517899
微信:扫下方二维码添加
Zsh.jpg

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