1赞

19回答

6收藏

[原创] QT4的GPS行车记录仪

 

Raspberry Pi Raspberry Pi 14023 人阅读 | 19 人回复 | 2015-02-26

本帖最后由 PokeBox 于 2016-9-13 14:13 编辑

之前弄过一个QT4的指南针,之后我又在此基础上修改做了个GPS【当时发帖好像我也说了要弄个GPS的】。不过前两天出了点小意外,重新烧写香蕉派的系统时忘记备份,因为这个程序我是在香蕉派上弄的,毕竟香蕉派速度快嘛……所以呢,程序源码也一起被擦掉了……只剩可执行程序在树莓派上……为了防止更悲剧的事情发生我决定发帖做备份,留下这最后的种子~~23333

先来点图……

这是树莓派,最上面是我自己用洞洞板制作的指南针模块和GPS模块的板子,实际上只是为了固定那两个模块而已,这个程序用了2个串口,一个是树莓派自身的串口/dev/ttyAMA0,这个是读取指南针模块时用的双向通讯,另一个是USB串口/dev/ttyUSB0,这个是用来读取GPS模块数据的,只用了RX,用来接收GPS模块数据。
同时因为我这个主要是用在自行车上,所以在板子上加了LED灯用于晚上骑车照明。



这是最初版本的运行图,可以看到这货能实时更新时间,可以获取当前行驶速度,可以指明方向,可以显示经纬度,等等……乃是有车一族的出门必备装备~

这个时间是UTC时间,没有转换到+8的中国时区,需要转的话可以自己修改gpsawk.sh脚本,因为这个程序的GPS数据是在接收到后传递给这个脚本进行处理然后再返回给程序的,至于为什么要这样做,因为C++我不太会……文本处理什么的我还是比较熟悉bash,所以就传递给bash处理了……这样修改也方便,该脚本就好了,不用再修改程序然后编译……

这是最终版本的效果图,添加了18B20温度显示,以及那个时速按钮的自定义功能按键,这里默认我是写的拍照,按一下时速按钮进行后台拍照,照片直接存储在/home/pokebox/camera/gpstake里。要修改的话直接修改gpsawk.sh脚本即可……
至于这个脚本,需要放在/home/pi/gpsawk.sh这里,不然无法运行……你可以用ln命令链接到那里,gps程序随便放在哪都可以。
以及在实际测试中发现有点小小的问题,就是那个粉色的航向指针没法正常工作,不知道是哪里出了问题,反正现在源码也木有了,要弄只能重写……
下面是程序在开发时的各种照片截图……

这是开发时的截图……

嗯……都是自己做的~

开发环境…………TAT脏乱差的桌面23333

下面我来简单介绍一下这个程序的功能吧。

首先,程序运行后会出现主界面【废话】,可以点击菜单栏上的窗口选择全屏、最大化窗口,然后也能点击还原弹回原来的样子……
启动程序后,在主界面有个最大的仪表盘【如上图的橙色框内】,那个是速度表,模拟汽车的车速表……实际速度是通过GPS获取的,然后在下面的输入框显示出来,单位是KM/h。
然后,右边有2个仪表盘,蓝色指针的是指南针【白色框的】,指南针的更新速度可以通过菜单来选择更新速度,最上面的同步GPS就是和gps一起更新【也就是1秒更新一次】。粉色是当前航向【暂时没用】,下面的那个度也是当前航向的角度,也是暂时没用……
再是上面,显示00:00:00那的【图里的红框】是GPS时间,当GPS成功连接卫星后这里会显示时间,时区是UTC+0的,要转换到+8就自己在gpsawk.sh脚本里计算吧~
然后旁边的是天线高度,也可以看作是当前海拔高度,当然这个变化很大,估计是因为卫星一直在运行忽高忽低的……然后最旁边是当前GPS卫星连接个数,最大为12,实测连接5颗卫星就可以定位了,3颗卫星即可授时【就是时间显示框实时显示时间】
然后速度表旁边有2个框,最上面的是18B20的温度显示,这个也是通过脚本传递的数据,程序每15秒更新一次数据。需要注意的是脚本里写的18B20数据获取的地址是我的18B20的设备地址,你要自己修改为你的。至于什么意思就参考我曾经发过的帖子树莓派获取18B20温度数据吧。第二个框没用。
然后是下面,那个时速按钮,实际上是个自定义按钮,按下后会传递take参数给脚本,脚本通过获取这个参数来执行对应的操作,你可以自己写成其他的功能,比如关机或者其他什么的,这里我写的脚本是通过树莓派的raspistill命令拍照,然后保存……

最下面是经纬度的显示,这个大家都知道是什么了……
至于那个菜单的各种项目我就不多说了,大家自己探索吧……
最后还要说明一下,那个脚本,那个脚本可以自动记录有效GPS数据到/mnt/mmc/gps/gps.log文件里,这个文件就是你的航迹,你可以在骑车的时候使用这个程序记录下你的行驶轨迹,回来后把这个文件导出到电脑上,用谷歌地球查看你的航迹~

就像这样……


这才是这个程序最终的目的……今天去了哪里,在地图上看一目了然~
这个程序可以在树莓派上运行,也可以在香蕉派上运行【毕竟是香蕉派上开发的的怎么能无法运行~而且效率更高,因为香蕉派有很多个串口,甚至可以不需要USB串口的,而树莓派只有1个串口……所以香蕉派是最佳的选择……】
pokebox_gps.zip (37.69 KB, 下载次数: 6, 售价: 2 与非币)



分享到:
回复

使用道具 举报

回答|共 19 个

倒序浏览

沙发

fjjjnk1234

发表于 2015-2-26 22:53:17 | 只看该作者

顶一个!!!真厉害!
相由心生境随心转一切法从心想生
板凳

PokeBox

发表于 2015-2-26 23:16:43 | 只看该作者

来一些花絮~
这是当时写程序时拍的和截图的图片照片……大家就拿来欣赏一下吧

这个是最最最早的版本,就是在制作电子指南针时的截图,各种信号槽~后面的电子指南针和这次的GPS都是在这个基础上制作的。

这个是最初写完框架后进行的数据调试,调试输出GPS和指南针的数据

这个是在调试GPS数据和脚本之间的交互……红色的是脚本输出的内容【当然发布的版本这些没必要的东西早就木有拉……】

然后下面是从香蕉派写好程序后上传到树莓派上机测试

上机看看实际效果~因为屏幕分辨率不一样,所以为了更好的兼容树莓派的小屏幕每次写好界面都要上机看看效果



这个是进行数据模拟测试的照片,就是利用以前记录下的GPS数据传递给程序伪造GPS看看每个程序功能是否正常……


开发环境~23333,最左边那个白色的屏幕后来就是用作香蕉派电脑的那个显示器,之前是学习机的屏幕,可以看到那根HDMI线还很长~~

这里是硬件部分~可以清楚的看到指南针模块、GPS模块和最全面的LED灯,然后一切都是用启蒙作为外壳固定的……那个可怜的小人就给我做活页固定板子吧~233333





最后做好准备出门前,上个QQ空间发个说说~GPS上QQ空间,小伙伴们表示都惊呆了~2333

这个是骑车数据实测时按下那个【时速:】按钮拍下的照片~还不错吧~


地板

franki

发表于 2015-2-27 08:30:19 | 只看该作者

不错不错  !
5#

奋斗哥

发表于 2015-2-27 09:55:49 | 只看该作者

灰常厉害!!!!
6#

奮闘ing

发表于 2015-2-27 11:59:18 | 只看该作者

不错不错  !
7#

waytoanswer

发表于 2015-3-8 17:01:03 | 只看该作者

厉害,话说楼主桌上那个STM32F429的板子是DIY的示波器?
8#

PokeBox

发表于 2015-3-11 19:29:16 | 只看该作者

waytoanswer 发表于 2015-3-8 17:01
厉害,话说楼主桌上那个STM32F429的板子是DIY的示波器?

是的。之前就是用那个开发板的屏幕做树莓派的屏幕的……
9#

_ilikerome_

发表于 2015-3-23 10:47:48 | 只看该作者

LZ好厉害。。。
10#

daniren

发表于 2016-5-11 22:41:05 | 只看该作者

楼主附件的里面是源码还是编译后的文件?
您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条