本帖最后由 Earlobe 于 2019-7-30 12:30 编辑
嗒嗒嗒, 我我我我来了 ヽ(* ̄▽ ̄*)ノミ
继上一篇用python读取MPU6050与树莓派连接后显示的数据(链接戳这里:https://www.52pojie.cn/thread-998097-1-1.html)
后,我们趁热打铁,再研究一下树莓派3B+与GPS模块的连接,以及数据的获取。
需要的材料:
1.BD+GPS二合一天线,北斗双模卫星定位天线
2.GPS+北斗双定位模块
3.usb转ttl模块一个,使用它的原因呢就是ttyUSB0串口使用起来更方便,可以随意的插拔,还可以在电脑、手机等其他设备上使用
方法/步骤一
用杜邦线连接树莓派和GPS模块和USB转ttl 接线好的硬件如下 然后将usb接入到USB接口,就欧克了。
方法/步骤二
1.那如何获取GPS模块发出的内容呢,就要通过 minicom 这个工具,来获取串口的数据。 写入命令:sudo apt-get install minicom
2、安装gpsd相关的软件和库
sudo apt-get install gpsd gpsd-clients python-gps
3.安装好之后通过minicom命令获取串口上的数据:
minicom -b 38400 -o -D /dev/ttyUSBO
-b 设定的是波特率,是模块参数而定;-o 是不初始化Modem且不锁定文件;-D 设定的是接口
1.关于显示数据的分析,根据GPS模块的文档,知道这是一种叫NMEA-0183的协议,包括GSA当前卫星信息、GSV可见卫星信息、GGAGPS定位信息、RMC推荐定位信息。
2.在 minicom界面里,可以按Ctrl+A,然后按Z获取帮助;Ctrl+A、然后按Q来退出。
注意: 1.GPS模块的串口默认波特率要找对,我的是38400
2.ttyUSBO是我的GPS模块的设备名,可以通过ls /dev/ttyUSB*命令,查看设备名
如果界面成功打开,却没有显示下面的数据,那请继续看步骤三。
方法/步骤三:
一、设置树莓派串口为默认打开,由于树莓派3B+的端口默认是被蓝牙模块占据的,所以如果你之前没有修改过设置的话,要想启用串口还需调试一番。
1.在树莓派的boot目录修改这两个文件内的配置
输入以下的指令:sudo nano /boot/config.txt 在里面添加如下语句:
enable_uart=1
dtoverlay=pi3-miniuart-bt
//以上两行的作用是将端口从指向蓝牙改为指向串口,并在启动时打开串口
2.再打开cmdline.txt文件进行修改:
输入以下的指令:sudo nano /boot/cmdline.txt
修改或添加内容为:dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait 之后Ctrl+O保存,Ctrl+X退出
3.最后再打开树莓派的系统设置界面启用串口
sudo raspi-config
选择Interfacing Options,回车进入后找到 Serial , 回车进入后选择enable,然后点击finish确认就完成了。
4.最后重启树莓派即可
sudo reboot
二、关闭板载蓝牙
1.输入以下指令关闭蓝牙:sudo systemctl disable hciuart
2.再打开hciuart.service文件:
1.sudo nano /lib/systemd/system/hciuart.server
2.将文件内全部的“ttyAMA0”修改为“ttyS0”,如果没有就可以不改了。
3.更新并重启: sudo apt-get update && sudo apt-get upgrade
4.最后重启树莓派即可 sudo reboot
5.重启后输入以下指令查看端口 ls -l /dev
如果能够如下图所示,serial0 ->指向ttyAMA0就代表设置成功了,打开minicom界面就能看到GPS模块收到的数据了。
方法/步骤四:python编程获取串口数据
上述步骤成功以后我们就可以输出数据啦~以python为例,进行数据解析和展示。
1.代码测试会用到gps3库和serial,所以 我们在写入以下命令 sudo apt-get install python-serial
pip3 install gps3
2.python代码如下
注意
1.line 8,9 将代码中的str转换成bytes类型
2.line10 ,11将gps地址按照规则转化成经纬度
3.执行结果如下 至此就大功告成啦
未经本人书面许可,禁止以任何形式引用、抄袭、转载本篇文章。 |