;
LC76G GNSS Module是一款 GNSS (全球导航卫星系统)模块,支持 GPS、北斗(BDS)、GLONASS、Galileo 和 QZSS 多重卫星系统,可多系统联合定位和单系统独立定位、支持 EPO™ (扩展预测轨道)和 EASY™ (嵌入式辅助系统)功能,可向用户提供快速、准确、高能定位体验的 GNSS 模块。。
本模块提供树莓派、Arduino、Raspberry Pi Pico、ESP32控制例程。
主控设备从串口输出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种协议帧请查阅
Recommended Minimum Specific GPS/TRANSIT Data(RMC)推荐定位信息
$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>*hh
本章介绍常用PAIR消息(芯片组供应商定义的专有NMEA消息)。“P”表示专有消息,“AIR”表示芯片组供应商定义的命令
注意:更改配置内容后需要对应修改校验位
详见 连接GPS天线,连接USB转UART模块(须另购),再接连接到电脑。如图所示。连接之后,电源指示灯(PWR)长亮。
注意:红线不是VCC,黑线不是GND
打开电脑串口调试助手,设置对应的串口号(我这里是COM5),波特率9600,8 位数据位,1 位停止位,无校验位,无流控制。
串口助手可以在
注:1.由于 GPS 室内搜星不稳定,请将模块或者天线放到阳台或窗户旁,或者直接在户外进行实验。
2. 模块首次定位(冷启动),在正常情况下(户外,天气良好,没有大型建筑遮挡),需要35秒时间才能定位成功,请耐心等待。如果天气条件不好,可能需要更长的定位时间,甚至无法定位。
下载 解压打开安装。运行程序,点击 Receiver 菜单,选择 Port,设置实际的串口号,Baudrate: 9600。点击 (连接按钮) ,即可连接到GPS模块, u-center 将显示各种信息,如下图:
树莓派提供C与pyton两种程序控制
打开树莓派终端,输入以下指令进入配置界面
sudo raspi-config
选择Interfacing Options -> Serial,关闭shell访问,打开硬件串口:
下载安装minicom工具:
sudo apt-get install minicom
定位硬件串口对应串口号:
ls -l /dev/serial*
如果系统曾经使用过串口且修改过配置,可能会出现下面两种情况:
打开串口功能后默认状态:
修改串口配置后状态:
需要找到与serial0(即GPIO上的串口)对应的串口号,如图一该串口号是ttyS0,图二是ttyAMA0; 使用minicom打开串口:
sudo minicom -D /dev/ttyS0 -b 9600hth官网首页
-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/d/dc/LC76G_GPS_Module_code.zip sudo unzip LC76G_GPS_Module_code.zip -d https://www.waveshare.net/wiki/LC76G_GPS_Module_code sudo chmod 777 -R https://www.waveshare.net/wiki/LC76G_GPS_Module_code cd https://www.waveshare.net/wiki/LC76G_GPS_Module_code
或者点击下载,解压后放入树莓派
安装例程相关函数库
#打开树莓派终端,并运行以下指令 wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.71.tar.gz tar zxvf bcm2835-1.71.tar.gz cd bcm2835-1.71/ sudo https://www.waveshare.net/wiki/configure && sudo make && sudo make check && sudo make install # 更多的可以参考官网:http://www.airspayce.com/mikem/bcm2835/ 打开树莓派终端,并运行以下指令
cd sudo apt-get install wiringpi #对于树莓派2019年5月之后的系统(早于之前的可不用执行),可能需要进行升级: wget sudo dpkg -i wiringpi-latest.deb gpio -v # 运行gpio -v会出现2.52版本,如果没有出现说明安装出错
#Bullseye分支系统使用如下命令: git clone cd WiringPi https://www.waveshare.net/wiki/build gpio -v # 运行gpio -v会出现2.70版本,如果没有出现说明安装出错
新版树莓派系统运行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
cd C make clean make sudo https://www.waveshare.net/wiki/main
Baudu Coordinates 为转换后的百度地图坐标,坐标到http://www.gpsspg.com/maps.htm 左边选择百度地图,就可以看到你的位置了(如果直接去“百度拾取坐标系统”需要交换经纬度两个数的位置)。
cd python sudo python main.py
预期效果
模块首次定位需要35秒的等待时间。
前面是模块输出的原始数据。
Time是L76X GPS Module输出的时间。
Latitude and longitude是输出的经纬度和经纬方向。
Baudu Coordinates 为转换后的百度地图坐标,坐标到http://www.gpsspg.com/maps.htm 左边选择百度地图,就可以看到你的位置了(如果直接去“百度拾取坐标系统”需要交换经纬度两个数的位置)。
cd python sudo python main.py
预期效果 模块首次定位需要35秒的等待时间。
前面是模块输出的原始数据。
Time是L76X GPS Module输出的时间。
Latitude and longitude是输出的经纬度和经纬方向。
Baudu Coordinates 为转换后的百度地图坐标,坐标到http://www.gpsspg.com/maps.htm 左边选择百度地图,就可以看到你的位置了(如果直接去“百度拾取坐标系统”需要交换经纬度两个数的位置)。
本例程已经在Arduino MEGA2560上进行了验证。
或在资料中下载。
选择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例程,但是该平台数据精度不足,仅实现了显示卫星数据中的时间,想其它信息可自行修改程序。
本教程使用进行代码测试,点击下载相关IDE并安装后打开Thonny
请参考搭建python环境,在Thonny的Tools->Options->Interprete选择Raspberry Pi Pico设备,如下图所示
1. 点击下载
2. 解压示例程序; 3. 打开Thonny,先确认已经连接到了pico,之后在左上角打开解压后的程序路径,右键pico文件夹,选择上传,如图所示
1. 打开Thonny IDE,选择pico目录,双击打开coordinate_convert.py文件然后运行例程,如图所示
2. 天气晴朗条件下,LC76G上电后约30秒会获取到定位信息,如下图运行程序显示的信息
3.用户可以Thonny中terminal显示的定位信息,使用,进行坐标标注
打开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文件到如下路径下
C:UsersxutongAppDataLocalArduino15
注意:将里面用户名:xutong替换成自己的用户名 下载例程并解压,使用配置好的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在后,中间用英文符号的逗号分隔)。
该示例已在烧录ubantu系统的JETSON-NANO-DEV-KIT开发板上验证
使用apt-get工具安装python工具pip
sudo apt-get install python3-pip #python3 #之后需要输入用户密码验证
sudo apt-get install python2-pip #python2 #之后需要输入用户密码验证
等待安装完成。hth网页版在线登录
#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 左边选择百度地图,就可以看到你的位置了(如果直接去“百度拾取坐标系统”需要交换经纬度两个数的位置)。