树莓派GPS【图形界面】

  • pokebox
  • LV2工程师
  • |      2015-02-26 22:01:39
  • 浏览量 5975
  • 回复:14

之前弄过一个指南针,这次弄的是GPS,当然也包括了指南针在内,两个模块一起用。源码我是用香蕉派写的,然后前两天刷系统的时候忘记了源码也一起被抹掉了……只剩可执行程序在树莓派上……所以这次就直接发程序吧


先献上开发时的截图和作品……

树莓派GPS【图形界面】

这是树莓派,最上面是我自己用洞洞板制作的指南针模块和GPS模块的板子,实际上只是为了固定那两个模块而已,这个程序用了2个串口,一个是树莓派自身的串口/dev/ttyAMA0,这个是读取指南针模块时用的双向通讯,另一个是USB串口/dev/ttyUSB0,这个是用来读取GPS模块数据的,只用了RX,用来接收GPS模块数据。

同时因为我这个主要是用在自行车上,所以在板子上加了LED灯用于晚上骑车照明。

树莓派GPS【图形界面】

开灯的效果……

树莓派GPS【图形界面】

这个是早期版本的实际运行效果图,可以看到GPS定位的信息,主要是用来显示行驶速度和时间的,这个时间是UTC时间,没有转换到+8的中国时区,需要转的话可以自己修改gpsawk.sh脚本,因为这个程序的GPS数据是在接收到后传递给这个脚本进行处理然后再返回给程序的,至于为什么要这样做,因为C++我不太会……文本处理什么的我还是比较熟悉bash,所以就传递给bash处理了……这样修改也方便,该脚本就好了,不用再修改程序然后编译……树莓派GPS【图形界面】

这是最终版本的效果图,添加了18B20温度显示,以及那个时速按钮的自定义功能按键,这里默认我是写的拍照,按一下时速按钮进行后台拍照,照片直接存储在/home/pokebox/camera/gpstake里。要修改的话直接修改gpsawk.sh脚本即可……

至于这个脚本,需要放在/home/pi/gpsawk.sh这里,不然无法运行……你可以用ln命令链接到那里,gps程序随便放在哪都可以。

以及在实际测试中发现有点小小的问题,就是那个粉色的航向指针没法正常工作,不知道是哪里出了问题,反正现在源码也木有了,要弄只能重写……

树莓派GPS【图形界面】

这是开发时的截图……

树莓派GPS【图形界面】

上机测试~

树莓派GPS【图形界面】

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


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

树莓派GPS【图形界面】

首先,程序运行后会出现主界面【废话】,可以点击菜单栏上的窗口选择全屏、最大化窗口,然后也能点击还原弹回原来的样子……

启动程序后,在主界面有个最大的仪表盘【如上图的橙色框内】,那个是速度表,模拟汽车的车速表……实际速度是通过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文件里,这个文件就是你的航迹,你可以在骑车的时候使用这个程序记录下你的行驶轨迹,回来后把这个文件导出到电脑上,用谷歌地球查看你的航迹~


就像这样……

嗯……



  • 0
  • 收藏
  • 举报
  • 分享
我来回复

登录后可评论,请 登录注册

所有回答 数量:14
浮沤 2016-11-23
好,学习
0   回复
举报
发布
yangzi8000 2016-06-02
界面是用什么开发的???
0   回复
举报
发布
前进的小马 2016-05-08
请问楼主的电子指南针界面是如何做出来的?
0   回复
举报
发布
pokebox 2015-07-09
闪退是因为你没有接模块吧,没接模块读取不到数据会导致内部段错误的。而且那个脚本文件也要放在正确的位置才能正常工作,不然获取不到sh脚本的数据也会导致段错误
0   回复
举报
发布
tomyjpda 2015-06-04
真是强大,技术啊。
0   回复
举报
发布
onlyLinux 2015-06-04
不错,支持一下
0   回复
举报
发布
winoga 2015-06-02

楼主!打开了你这个软件!经常闪退·你的GPS模块串口速率和模块刷新率是多少啊


0   回复
举报
发布
winoga 2015-06-02

学习了

0   回复
举报
发布
pokebox 2015-02-26

来一些制作过程中的花絮~

都是在制作时的一些截图和照片

调试指南针和GPS

调试GPS……

开发环境~23333,那个小屏幕是用来显示ftp服务器下载和上传程序到香蕉派和树莓派的……然后主屏幕连接香蕉派远程来编译和写程序……

这个是最初弄电子指南针时的截图……各种信号槽各种乱~~

制作GPS和指南针固定盘

用GPS上QQ空间,我的小伙伴们都惊呆了~

这个是实际GPS功能测试时在自行车上按下那个时速按钮拍的照片~还不错吧~

0   回复
举报
发布
pokebox 2015-02-26
哈哈,玩电子就是自己一点点弄出来才最有成就感啊~哪怕只是一个小小的程序,一个小小的功能。弄的多了,一堆的小功能组合起来就是个强大的设备
0   回复
举报
发布
查看更多
x
收藏成功!点击 我的收藏 查看收藏的全部帖子