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

2016-08-013.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
yoyojacky
作者
然而并没有什么卵用。哈哈
我只是想试试GPS信号。
本来是想把GPS信号信息,速度,经纬度信息等等采集出来,然后在google earth上做出一个轨迹的。。。
iooops
iooops
虽然不知道这东西能有啥用……
iooops
iooops
哇 大神出经验帖了……
steven-guo
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
visionsl
收藏!
原来Linux下有直接读取的应用啊!
yoyojacky
yoyojacky
作者
回复visionsl
对啊,甚至你直接cat 设备 也可以读取信息的。就是要过滤什么的。
yoyojacky
yoyojacky
作者
回复visionsl
对啊,甚至你直接cat 设备 也可以读取信息的。就是要过滤什么的。
dsweiliang
dsweiliang
手机导航会不会更好用呢
yoyojacky
yoyojacky
作者
回复dsweiliang
当然了啊,手机导航更好啊,就是想做着玩儿。
源代码
源代码
我的树莓派B2都丢在抽屉里2年了,看来要利用起来~~~
svw
svw回复微笑的rockets
这个好玩。
虽然在天朝,闲人捡到以为是个宝贝,很容易失踪。
yoyojacky
yoyojacky
作者
回复微笑的rockets
恩,这个有趣,就是UI那块需要好好设计啊。
外壳可以做成七龙珠的龙珠雷达的样子。

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