【骑驴玩儿漂移-原创】树莓派爱上GPS

2016-08-023.5万
AI 快速预览详细 收起
本教程介绍了如何使用树莓派和USB-GPS模块搭建GPS定位系统。首先,你需要准备树莓派、USB-GPS模块、USB转microUSB线缆、GPS天线、7寸USB触摸屏、HDMI电缆和移动电源模块。然后,通过安装gpsd服务和客户端组件,配置并启动gpsd守护进程。最后,使用cgps -s命令读取和展示GPS数据。这个项目适合初学者和有一定经验的创客,可以帮助你快速实现GPS数据展示。
    脑洞大赛告一段落了,之前做了一些GPS的测试,今天整理图片的时候突然想到,何不发到论坛上造福大家呢?所以夜里爬起来开始码字,很久没有这样了,觉得好特别,听着音乐,喝着绿茶,吹着空调,就差葛优躺了。。。
【骑驴玩儿漂移-原创】树莓派爱上GPS图1
话说为何我要写GPS的内容?因为看到论坛上lisper写了GPS数据展现在OLED上,但是没有写教程,正好,我就把我之前整理的笔记拿来给大家分享一下吧。

这个项目需要用的设备:
+--------------------------------------------------------------------------------------------------------------------+
|  树莓派 x 1   (我这里用的是Raspberry Pi 3 B型, 简称3B,树莓派后面文章中就简称为Pi了。)|
|  USB-GPS模块 x 1                                                                                                              |
|  USB转microUSB 线缆  x 1                                                                                                  |
|  GPS 天线  x 1                                                                                                                   |
|  7 寸USB触摸屏支持HDMI                                                                                                   |
|  HDMI 电缆 x 1                                                                                                                  |
|  RPI 移动电源模块 x 1                                                                                                        |
+--------------------------------------------------------------------------------------------------------------------+

很多朋友可能会问:什么是树莓派啊?呃, 这个。。。百度一下吧。
有人会跳出来说: Arduino 不是更好,为何要用树莓派? 这个我也不做回答了哦,因为我会linux所以选择树莓派,对我来说更加方便(呵呵)

好了,简单的教程就要来了。
来之前看看GPS模块到底什么样子哦?
【骑驴玩儿漂移-原创】树莓派爱上GPS图2

是不是很小? 接上树莓派就这个样子,我没有拍摄GPS加上GPS天线的状态,天线很给力的
【骑驴玩儿漂移-原创】树莓派爱上GPS图4

喏,天线就是这样的,看上去很low,但是加上它,你就可以把GPS模块留在室内了,让天线去找卫星吧。

【骑驴玩儿漂移-原创】树莓派爱上GPS图3
好了,组装非常简单,基本上就是拧紧螺丝,插紧USB插头即可。
然后你需要做的就是到树莓派官方www.raspberryPi.org 去下载最新的安装镜像,然后烧录到TF卡上。(如何烧录请自行百度)
当这些都准备好了,就启动你的树莓派吧。
哦,对了,忘记介绍pi的移动电源模块了。
上图:
【骑驴玩儿漂移-原创】树莓派爱上GPS图7

就是没有正面的照片了。。大家凑合看看吧。接驳就不说了,关键看配置方法。
我之前看了google的一篇帖子说是要用很多步骤才可以完成GPS的操作。。。
我的内心是崩溃的,实际上。。。。。
【骑驴玩儿漂移-原创】树莓派爱上GPS图6

你要知道关键是做什么操作,一般情况下,GPS都是用串口工作的,也就是你就当是一个usb的串口设备来进行数据读取就好。
在系统上甚至可以直接通过下面的命令读取出来:
  1. sudo cat  /dev/ttyUSB0
复制代码
但是满屏的数据杂乱无章也是醉了,现在我要给大家一个关键,一个关键的操作!

【骑驴玩儿漂移-原创】树莓派爱上GPS图5
你看到了么?一把通往成功的钥匙。哈哈
好了,我要变身Linux超级程序猿了。
前方高能,请做好准备迎接字符界面下的命令弹幕冲击。。。。
1. 我要更新我的系统,并且安装gpsd服务和gpsd-clients客户端组件,还有python-gps模块。
用一条命令完成它!
  1. sudo apt-get update && sudo apt-get -y install gpsd gpsd-clients python-gps
复制代码
2.重新启动树莓派然后登陆后,执行下面的配置来进行管理gpsd服务,如果你够狠,直接编辑配置文件的话,我就给你点个赞!
  1. sudo dpkg-reconfigure gpsd
复制代码
3. 启动gpsd的守护进程,可以通过如下命令进行:
  1. sudo gpsd /dev/ttyUSB0 -F /var/run/gpsd.sock
复制代码
其实之前需要用lsusb看看GPS被识别为什么设备了。这里我的树莓派识别出来的GPS设备在系统中显示为: /dev/ttyUSB0  
4. 如果需要停止gpsd服务,可以用超级杀手来干掉它。哈哈
  1. sudo killall gpsd
复制代码

如果如前面我所说的,你是个技术高手,可以熟练使用vim.tiny编辑器编辑配置文件的话,可以编辑/etc/default/gpsd,改为如下配置即可:

然后通过systemctl管理进程的启动和关闭。更加人性化。哈哈
启用gpsd服务:
  1. sudo systemctl enable gpsd.sock
复制代码

启动gpsd服务:
  1. sudo systemctl start gpsd.sock
复制代码

停止gpsd服务:
  1. sudo systemctl  stop gpsd.sock
复制代码

禁用gpsd服务开机自动加载:
  1. sudo systemctl disable gpsd.sock
复制代码
然后你要做的就是去尝试获取gps的信息,可以用cgps -s 命令:
  1. sudo cgps -s
复制代码
然后你会看到如下图:
【骑驴玩儿漂移-原创】树莓派爱上GPS图8这里的time就是时间戳了。
然后用latitude,Longitude,altitude。。。speed。。。
heading。。。status,这些信息就是我们需要的数据。
PS:
Latitude: 纬度
Longitude: 经度
Altitude:  海拔高度
speed:   速度
Heading : 航向角??
那个Status 如果出现3D Fix 说明三维定位成功了(好像这么说的吧,具体GPS术语猛戳下面的链接去下载吧。
猛戳这里:
下载附件GPS专业术语缩写.wps.zip

-------------------------------------------------------
下面是更简单的操作方法,也更坑爹。。。
当然,cgps命令已经帮我们搞定了数据的排版,如果你想读取数据其实直接用sudo cat /dev/ttyUSB0也可以获取:
【骑驴玩儿漂移-原创】树莓派爱上GPS图9

可以通过awk,grep等命令执行过滤和输出,然后得到你想要的结果。
下面是我的7寸屏幕卡在方向盘上的效果:
【骑驴玩儿漂移-原创】树莓派爱上GPS图11

如果加上google earth,打上信标,就更加帅了,但是我不会。。。呵呵
所以,到这里,GPS数据就这么华丽丽的展现了。其实没有什么技术难度,大家赶紧去尝试做自己的GPS定位系统吧。
另外,我稍微嘚瑟一下,我的树莓派的时钟目前都是通过卫星校准的哦,是不是屌炸天了?





gps-car.jpg (42.81 KB, 下载次数: 11082)

树莓派 · GPS定位系统搭建教程_image_3.webp

Gpsconfig.png (63.37 KB, 下载次数: 11163)

树莓派 · GPS定位系统搭建教程_image_6.webp

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(11)
木森林的年轮
那个移动电源是自己做的吗?听期待正面照的。
yoyojacky
移动电源是淘宝买的。。。等了很久才拿到。不过我们公司也做了。
yoyojacky
yoyojacky
作者
然而并没有什么卵用。哈哈
我只是想试试GPS信号。
本来是想把GPS信号信息,速度,经纬度信息等等采集出来,然后在google earth上做出一个轨迹的。。。
iooops
虽然不知道这东西能有啥用……
iooops
哇 大神出经验帖了……
steven-guo
干的漂亮,骑驴老师。不过放方向盘上看GPS数据,霸气!直接根据经纬度确定位置信息,哈哈哈哈。最近,我补习下arduino课程,准备做一个GPS便携跑步设备,带着手机跑步太麻烦了,有GPS功能的手表又太贵了,只能自己做个便宜好用的便携设备
yoyojacky
yoyojacky
作者
回复steven-guo
找个pro mini 或者beatle? nano都可以,然后串口连GPS,加上5v的供电模块,再加上一个0.96的OLED屏幕,一段松紧带,哇~ 可穿戴GPS定位腰带诞生了。再3D打印个外壳。。。哗~颜值飚升有木有? 加油,期待你的作品咯。哈哈
yoyojacky
yoyojacky
作者
回复steven-guo
评论内容
visionsl
收藏!
原来Linux下有直接读取的应用啊!
yoyojacky
yoyojacky
作者
回复visionsl
对啊,甚至你直接cat 设备 也可以读取信息的。就是要过滤什么的。
yoyojacky
yoyojacky
作者
回复visionsl
对啊,甚至你直接cat 设备 也可以读取信息的。就是要过滤什么的。
dsweiliang
手机导航会不会更好用呢
yoyojacky
yoyojacky
作者
回复dsweiliang
当然了啊,手机导航更好啊,就是想做着玩儿。
源代码
我的树莓派B2都丢在抽屉里2年了,看来要利用起来~~~
svw
这个好玩。
虽然在天朝,闲人捡到以为是个宝贝,很容易失踪。
yoyojacky
恩,这个有趣,就是UI那块需要好好设计啊。
外壳可以做成七龙珠的龙珠雷达的样子。

然后在公园里找地方埋好,活动的时候可以让大家去找。。
这个想法不错的。以前看到过ben hackshow上面有做过。。。
但是好像很多人一起的项目很难落实。。。
共6条回复,已加载2条,点击查看更多共6条回复,已加载全部
luna
能卡在方向盘好评~
hnyzcj
期待期待。
yoyojacky
yoyojacky
作者
回复hnyzcj
但是开车时候低头看会很危险,所以,决定不用屏幕的方式了,换成语音播报。
可以尝试用espeak尝试一下,我找时间试试。再更新帖子。
共4条回复,已加载2条,点击查看更多共4条回复,已加载全部
hnyzcj
顶起
yoyojacky
yoyojacky
作者
回复hnyzcj
恩,给力。
yoyojacky
yoyojacky
作者
我得自己占个楼,哈哈
- 没有更多了 -