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

来源:互联网 发布:诸葛武侯巧连神数 算法 编辑:程序博客网 时间:2024/05/17 09:01

目的:树莓派用串口连接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:接收机模式和卫星工作数据,包括位置和水平/竖直稀释精度等。稀释精度(Dilution of Precision)是个地理定位术语.一个接收器可以在同一时间得到许多颗卫星定位信息,但在精密定位上,只要四颗卫星讯号即已足够了

        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)/100        print "Longitude: ", float(rmc.lon)/100        break 

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

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



使用USB连接的教程:http://blog.csdn.net/qq_32384313/article/details/77744542

原创粉丝点击