失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 树莓派3b连接GPS+BD模块并用python获取数据(串口版)

树莓派3b连接GPS+BD模块并用python获取数据(串口版)

时间:2022-01-24 17:57:15

相关推荐

树莓派3b连接GPS+BD模块并用python获取数据(串口版)

目的:树莓派用串口连接GPS+BD模块获取位置信息

材料:树莓派3b(Ubuntu MATE系统),GPS+BD模块,GPS有源天线,杜邦线

步骤:

1. 连接各模块

2. 修改串口设置,由于树莓派3b添加了蓝牙模块,默认状态下串口是被蓝牙占用的,所以首先要修改系统配置,未修改过的读者请看另一篇文章进行修改(查看文章);配置好的读者进行第三步

3. 通过minicom获取串口数据

sudo apt-get install minicom

若提示Unable to locate package……,请使用sudoapt-get update && sudo apt-get install minicom

安装好后使用minicom命令获取串口上的数据

minicom -b 9600 -o -D /dev/ttyAMA0

-b 设定的是波特率,是模块参数而定;-o 是不初始化Modem且不锁定文件;-D 设定的是接口

如果一切顺利,将会出现如下画面:

我们从这张图上基本找不出有用信息,因为此时的GPS信号太差了,原因是我忘记把天线的一头放到窗外了

放到窗外后,一切正常,将会出现如下画面:

红框标记的为有用信息,为了解读它,让我们来了解一下GNSS卫星协议(只讲重要的):

NMEA0183消息输出格式:$--sss,df1,df2,…[CR][LF]

数据标识是表示某种卫星发射。标识如下:

GN:全球导航卫星系统(GNSS-global navigationsatellite system)

BD:北斗导航卫星系统(COMPASS)

各主要GNNS消息内容识别码的含义如下:

GGA:时间、位置、定位数据

GLL:经纬度,UTC时间和定位状态

GSA:接收机模式和卫星工作数据,包括位置和水平/竖直稀释精度等。稀释精度(DilutionofPrecision)是个地理定位术语.一个接收器可以在同一时间得到许多颗卫星定位信息,但在精密定位上,只要四颗卫星讯号即已足够了

GSV:接收机能接收到的卫星信息,包括卫星ID,海拔,仰角,方位角,信噪比(SNR)等

RMC:日期,时间,位置,方向,速度数据。是最常用的一个消息

VTG:方位角与对地速度

MSS:信噪比(SNR),信号强度,频率,比特率

ZDA:时间和日期数据

4. 用python读取位置信息,nano getGPSInfoBySerial.py,复制如下代码:

import serialimport pynmea2import timeser = serial.Serial("/dev/ttyAMA0",9600)while True:line = ser.readline()if line.startswith('$GNRMC'):rmc = pynmea2.parse(line)print "Latitude: ", float(rmc.lat)/100print "Longitude: ", float(rmc.lon)/100break

这里需要用到pynmea2的库,python官网可以下载,并且有帮助文档

用sudo python getGPDInfoBySerial.py运行程序,注意:这里一定要用sudo不然会报权限不够的错,因为这里访问了串口的数据

使用USB连接的教程:/qq_32384313/article/details/77744542

如果觉得《树莓派3b连接GPS+BD模块并用python获取数据(串口版)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。