【骑驴玩儿漂移-原创】树莓派爱上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的内容?因为看到论坛上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加上GPS天线的状态,天线很给力的 ![]() 喏,天线就是这样的,看上去很low,但是加上它,你就可以把GPS模块留在室内了,让天线去找卫星吧。 ![]() 好了,组装非常简单,基本上就是拧紧螺丝,插紧USB插头即可。 然后你需要做的就是到树莓派官方www.raspberryPi.org 去下载最新的安装镜像,然后烧录到TF卡上。(如何烧录请自行百度) 当这些都准备好了,就启动你的树莓派吧。 哦,对了,忘记介绍pi的移动电源模块了。 上图: ![]() 就是没有正面的照片了。。大家凑合看看吧。接驳就不说了,关键看配置方法。 我之前看了google的一篇帖子说是要用很多步骤才可以完成GPS的操作。。。 我的内心是崩溃的,实际上。。。。。 ![]() 你要知道关键是做什么操作,一般情况下,GPS都是用串口工作的,也就是你就当是一个usb的串口设备来进行数据读取就好。 在系统上甚至可以直接通过下面的命令读取出来: 但是满屏的数据杂乱无章也是醉了,现在我要给大家一个关键,一个关键的操作!![]() 你看到了么?一把通往成功的钥匙。哈哈 好了,我要变身Linux超级程序猿了。 前方高能,请做好准备迎接字符界面下的命令弹幕冲击。。。。 1. 我要更新我的系统,并且安装gpsd服务和gpsd-clients客户端组件,还有python-gps模块。 用一条命令完成它! 2.重新启动树莓派然后登陆后,执行下面的配置来进行管理gpsd服务,如果你够狠,直接编辑配置文件的话,我就给你点个赞!3. 启动gpsd的守护进程,可以通过如下命令进行:其实之前需要用lsusb看看GPS被识别为什么设备了。这里我的树莓派识别出来的GPS设备在系统中显示为: /dev/ttyUSB0 4. 如果需要停止gpsd服务,可以用超级杀手来干掉它。哈哈 如果如前面我所说的,你是个技术高手,可以熟练使用vim.tiny编辑器编辑配置文件的话,可以编辑/etc/default/gpsd,改为如下配置即可: 然后通过systemctl管理进程的启动和关闭。更加人性化。哈哈 启用gpsd服务: 启动gpsd服务: 停止gpsd服务: 禁用gpsd服务开机自动加载: 然后你要做的就是去尝试获取gps的信息,可以用cgps -s 命令:然后你会看到如下图: 这里的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也可以获取: ![]() 可以通过awk,grep等命令执行过滤和输出,然后得到你想要的结果。 下面是我的7寸屏幕卡在方向盘上的效果: ![]() 如果加上google earth,打上信标,就更加帅了,但是我不会。。。呵呵 所以,到这里,GPS数据就这么华丽丽的展现了。其实没有什么技术难度,大家赶紧去尝试做自己的GPS定位系统吧。 另外,我稍微嘚瑟一下,我的树莓派的时钟目前都是通过卫星校准的哦,是不是屌炸天了? ![]() |
-
gps-car.jpg (42.81 KB, 下载次数: 11082)
-
Gpsconfig.png (63.37 KB, 下载次数: 11163)








这里的time就是时间戳了。






我只是想试试GPS信号。
本来是想把GPS信号信息,速度,经纬度信息等等采集出来,然后在google earth上做出一个轨迹的。。。
原来Linux下有直接读取的应用啊!
虽然在天朝,闲人捡到以为是个宝贝,很容易失踪。
外壳可以做成七龙珠的龙珠雷达的样子。
然后在公园里找地方埋好,活动的时候可以让大家去找。。
这个想法不错的。以前看到过ben hackshow上面有做过。。。
但是好像很多人一起的项目很难落实。。。
可以尝试用espeak尝试一下,我找时间试试。再更新帖子。