南 阳 理 工 学 院
本科生毕业设计(论文)
学院(系):计算机与信息工程学院
专 业: 物联网工程
学 生: 乔蒙蒙
指导教师 : 周国运
完成日期 2019 年 5 月
南阳理工学院本科生毕业设计(论文)
基于单片机&GPS的导航系统设计
Design of Navigation System Based on Single-chip
Microcomputer & GPS
总 计:34页
表 格:4个
插 图:23幅
南 阳 理 工 学 院 本 科 毕 业 设 计(论文)
基于单片机&GPS的导航系统设计
Design of Navigation System Based on Single-chip
Microcomputer &GPS
学 院(系): 计算机与信息工程学院
专 业: 物联网工程
学 生 姓 名: 乔 蒙 蒙
学 号: 1506955060
指导教师(职称): 周国运(教授)
评 阅 教 师: 王海琳(讲师)
完 成 日 期: 2019年5月
南阳理工学院
Nanyang Institute of Technology
基于单片机&GPS的导航系统设计
物联网工程 乔蒙蒙
[摘 要] 该设计实现了基于单片机&GPS的定位及导航功能.。系统硬件方面主要由51单片机,GPS模块以及蓝牙模块组成;系统软件由单片机主控制器程序和手机APP定位导航程序组成:单片机主控制器使用c语言编程,使用keil uVision5编程工具,编写了GPS位置信息接收、解析以及传输的程序。手机APP定位导航使用易语言编程,使用E4A编程开发工具,编写了定位程序和导航程序。系统的主要原理是51单片机作为主控制器负责接收来自GPS模块的位置信息,进行解析,之后发送给蓝牙模块,最后编写手机程序负责接收位置信息并进入地图实现导航功能.。系统主要应用于车辆导航定位、户外探险定位以及其他领域。但是现实生活中的定位导航工具比这些精进很多,所以该设计需要做更深入地研究。
[摘 要] 51单片机;导航;GPS;蓝牙;手机程序
Design of Navigation System Based on Single-chip Microcomputer &GPS
Internet of Things Engineering Major Qiao mengmeng
Abstract:This design realizes the positioning and navigation function based on single chip microcomputer &GPS. The hardware of the system is mainly composed of 51 single chip microcomputer, GPS module and bluetooth module. The system software is composed of MCU main controller program and mobile phone APP positioning and navigation program: the MCU main controller USES c language programming and keil uVision5 programming tool to write the program for receiving, analyzing and transmitting GPS position information. Mobile phone APP positioning and navigation using easy language programming, using E4A programming development tools, wrote the positioning program and navigation program. The e main principle of the system is 51 single-chip microcomputer as the main controller is responsible for receiving position information from the GPS module, to analyze, and then sent to the bluetooth module, finally write a mobile phone program is responsible for receiving position information and entering the map to achieve navigation function. The system is mainly used in vehicle navigation and positioning, outdoor adventure positioning and other fields. However, real life location and navigation tools are much more sophisticated than these, so the design needs to be further studied.
Key words: 51 single-chip microcomputer; navigation; GPS; bluetooth; mobile phone program
目 录1 绪论 11.1设计背景及研究现状 11.2设计内容 11.3设计意义 22 方案选择及总体设计 22.1 方案选择 22.1.1 主控制器方案选择 22.1.2 GPS模块方案选择 22.1.3 通信模块方案选择 32.2 系统功能总体设计 32.2.1 系统总体实现的功能 32.2.2 系统总体设计原理图 33 开发工具简介 43.1 单片机程序开发软件keil uVision5 43.2 手机程序开发软件易安卓 44 系统硬件设计 54.1 51单片机 54.2 GPS定位模块 74.3 蓝牙传输模块 95 系统软件设计 105.1 51单片机主控制程序流程 105.2 51单片机主控制器程序设计 115.2.1 GPS数据接收程序设计 115.2.2 串口配置程序设计 125.2.3数据传输控制程序设计 125.3 手机接收定位信息程序设计 145.4 手机导航程序设计 166 系统调试运行及测试 186.1 GPS模块定位测试 186.2 蓝牙传输模块测试 196.3 51单片机串口调试 216.4 手机APP接收GPS数据测试 226.5 定位信息解析 227 总结 25参考文献 25致谢 27 1 绪论
1.1设计背景及研究现状
20世纪50年代,考虑到自身经济利益以及军事效益,美国开始研究设计卫星导航系统,经过30多年的努力,终于建成了全球定位系统。1994年4月,24颗工作卫星发射完毕,导航系统进入全面运行阶段,主要应用于军事。此外,该系统还可以实现各种交通工具的导航定位,国家部队的调用,军事目标的定位等等,尤其是在沙漠风暴和对科索沃的轰炸这两场典型高技术战争中,由于其精确定位的优势应用于制作巡航导弹,从而打击敌军,甚至是地面士兵也会随身携带该装置,利于作战。总之,GPS应用领域本来挺广泛。
在国际公认的八项重大无线产业之中,卫星导航是非常具有代表性的。对于GPS定位技术的卫星导航应用,我国的发展速度较为迅速。北斗卫星导航系统的逐渐应用,就是一个非常有力的证明。随着无线通讯的发展,GPS技术更是以精度高,自动化,效率高,全天候,定位导航,精确测量等优势受到很多领域的欢迎,应用范围更广泛。
总的来说,无论是发展速度还是发展阶段,在国内GPS技术在国内还是有非常乐观的局势的。对于GPS技术的模型化,即GPS接收机的设计已经进入到了一个比较成熟的阶段,甚至可以与计算机的发展相比。尽管如此,由于GPS技术起步较晚,GPS还是存在一些问题的 。以前,在国内,GPS导航技术应用最广泛的是渔业,但随着时间的推移,GPS导航技术越来越多地应用在车辆定位上。值得欣慰的是,我国的无线通信工程技术的高速发展,对于位置信息的定位服务也将走上快速上升的坡道上并高速前进。单从北斗三号,我们就可以知道对于我国的导航系统建设来说一个非常大的进步。但我们仍需不断的努力,进一步研究GPS技术,从而解决GPS技术出现的问题,争取将导航系统建设做到极致并为全球的用户服务,将它的用途发挥到极致,适用范围更大。
1.2设计内容
本设计主要分为以下几个部分:第一部分,设计定位接收装置系统,由51单片机控制GPS模块以及蓝牙模块从而实现位置信息的接收。第二部分,接收GPS模块的位置信息并对GPS数据进行解析和处理,通过蓝牙模块建立51单片机和手机的通信,第三部分,编写手机APP程序,首先,有类似蓝牙串口APP的功能,用于接收单片机通过蓝牙发送的位置信息,最后,实现定位和导航的功能:即对接收到的位置信息的定位,定位之后的搜索路线和路线模拟场景以及实时场景的路线规划。
1.3设计意义
本次设计使用51单片机为主控制模块,对定位系统综合进行硬件部分的设计以及对其进一步地开发,以及使用E4A开发APP客户端。
GPS定位功能适用于许多领域,商业价值很高,但是从某种层面上来说,GPS定位系统还是有一些需要解决的问题比如(1)对于成本的提高,最有现实性的直接影响的就是,消费者们的购买意愿。(2)无线通信技术与GPS定位芯片相配套的技术文件的缺少(3)如何使卫星导航技术在国民经济建设社会发展中发挥更大的作用已经成为人们关注的问题。尽管如今GPS技术一直在不断地完善,但是对于以上产生的问题还是不容忽视的,要想使GPS继续的更加前进一步的发展,对于那些问题是急需解决的。因此,设计一个定位导航系统还是非常必要的。由于GPS应用范围广泛,潜在商业价值高,所以需要我们去对其更加的深入研究。
2 方案选择及总体设计
2.1 方案选择
2.1.1 主控制器方案选择
本次设计采用51单片机中的90系列的STC90C516RD+型号的单片机作为本次设计的主控制器,由其控制GPS全球定位模块的定位,对位置信息的解析以及蓝牙模块的位置信息的传输。
STC90C516RD+型号的单片机是功耗比较低,速度超高的90系列的单片机,相比89系列,版本的更新方面,生产工艺方面,安全性方面,稳定性方面等都有更好的优势。其内部有专门的复位威廉希尔官方网站
,时钟频率等必备的威廉希尔官方网站
设计。而且STC90C516RD+型号的单片机有一个串口(P3.0和P3.1)可以实现与串口外部设备相连接,并实现对串口外设的控制,并且可以通过串口调试助手看出来接收区的数据从而对硬件的程序进行进一步的修改以及完善。
2.1.2 GPS模块方案选择
本文研究定位导航的的功能,定位是及其重要的。定位不成功或者有差错,则会导致后续导航路线的严重错误,可见定位无法忽视,对定位的精度及其严格。不过需要注意的是,最好采用配有SMA天线的GPS模块。将天线置于窗户附近即可,很容易就可以搜索到定位的位置信息,如果使用陶瓷天线则定位效果不是很好。
本次设计采用NEO-6M模块作为定位模块接收位置信息,内配有3m天线与之连接搜索信号。NEO-6M模块具有很高性能的定位装置。他们结构紧密,适合电池驱动,但是有成本和空间方面上的限制。NEO-6M模块由于其专用采集引擎的量大,能够进行在最大范围的空间内进行特别精确的搜索,使其能够以最快速度找到卫星。不仅如此,该模块还能减少干扰,即使处在有挑战性的天气情况下,也能有很精确的定位功能。
2.1.3 通信模块方案选择
对于该设计来说,51单片机主控制器的SBUF接收了来自GPS定位模块的位置信息之后,对其进行解析(将原始数据解析成我们平时能一看就懂的位置信息或者说是高德地图可以直接使用的位置信息),那么之后的工作就是传输了,该设计的通信模块使用的是HC-05 蓝牙串口通信模块,它是一个最常用的通信模块,配置简单,并且容易上手。需要注意的是,使用之前要查询该型号的蓝牙模块的AT配置指令集并查询其名称,配对码,MAC地址,主从模式等重要信息,如果想修改则可以使用AT配置语句对其进行修改。该蓝牙模块配置的条件很简单,只要上电以及蓝牙模块的EN置于高电平即可。使用起来非常的灵活,方便,是个很好的通信传输模块的选择。
2.2 系统功能总体设计
2.2.1 系统总体实现的功能
(1)GPS模块实现定位功能;
(2)51单片机实现对各个模块的控制功能和位置信息的信息解析;
(3)易安卓APP实现位置信息(经纬度)显示功能;
(4)易安卓实现定位以及导航(路线规划)功能;
2.2.2 系统总体设计原理图
该定位导航系统的硬件设计:以51单片机为主控制器,控制GPS模块和蓝牙模块的硬件系统。对单片机编程,读取GPS模块的定位数据,并通过蓝牙通信模块把定位信息发送给手机APP,通过所编写的手机导航程序,在手机上规划行驶路线,并把接收的位置进行定位以及按照已搜索的路线进行导航。该设计的综合性的系统原理如图2-1所示:
图6-6 51单片机串口通信图
6.4 手机APP接收GPS数据测试
手机自带蓝牙与蓝牙模块配对成功后,将手机蓝牙与蓝牙模块连接。对于蓝牙透传模块发送过来的解析过的位置信息,手机端编写的相应的程序来负责接收HC-05模块发送的数据,并对接收到的数据调用高德地图api接口,并设计了目的地和与定位地点所处的城市,从而更精确地搜索行驶路线。APP接收定位数据图如图6-7所示:
图6-7 APP接收定位数据图
6.5 定位信息解析
首先,要了解到GPS接收信息是遵循一个统一标准的协议的,即NMEA-0183 协议。目前已经成了GPS定位导航设备默认的统一的一个行业内的标准协议。 NMEA-0183协议传递GPS的位置信息是通过数据帧来进行传递的。
帧格式形如: a a c c c , d d d , d d d , … , d d d ∗ h h ( C R ) ( L F ) 1 、 “ aaccc,ddd,ddd,…,ddd*hh(CR)(LF) 1、“ aaccc,ddd,ddd,…,ddd∗hh(CR)(LF)1、“”:帧命令起始位
2、aaccc:地址域,前两位为识别符(aa),后三位为语句名(ccc)
3、ddd…ddd:数据
4、“”:校验和前缀(也可以作为语句数据结束的标志)
5、hh:检验和,中间所有字符ASCII码的检验和
6、(CR)(LF):帧结束,回车和换行符
了解到,数据帧一共有七种基本的语句格式,选择接收其中一种数据格式,再对其进行解析即可。
$GPRMC,055037.00,A,3258.29117,N,11232.54636,E,0.236,260419,A7A
$GPVTG,T,M,0.236,N,0.437,K,A24
$GPGGA,055037.00,3258.29117,N,11232.54636,E,1,06,2.49,125.2,M,-17.5,M,7A
$GPGSA,A,3,07,16,27,30,08,28,2.90,2.49,1.480F
$GPGSV,2,1,07,07,64,308,47,08,71,015,36,16,22,078,39,18,45,147,77
$GPGSV,2,2,07,27,37,041,40,28,08,285,39,30,30,315,464C
G P G L L , 3258.29117 , N , 11232.54636 , E , 055037.00 , A , A ∗ 6 C 比 如 GPGLL,3258.29117,N,11232.54636,E,055037.00,A,A*6C 比如 GPGLL,3258.29117,N,11232.54636,E,055037.00,A,A∗6C比如GPRMC,这个是比较常用的。 G P R M C 语 句 中 一 共 有 十 二 个 信 息 , 分 别 用 逗 号 隔 开 。 可 以 解 析 几 个 比 较 重 要 的 即 可 。 比 如 , U T C 时 间 , 定 位 状 态 , 经 度 , 纬 度 等 。 可 以 将 G P S 模 块 直 接 接 在 U S B − T T L 上 , 可 以 看 出 来 未 解 析 的 原 始 数 据 。 对 GPRMC语句中一共有十二个信息,分别用逗号隔开。可以解析几个比较重要的即可。比如,UTC时间,定位状态,经度,纬度等。可以将GPS模块直接接在USB-TTL上,可以看出来未解析的原始数据。对 GPRMC语句中一共有十二个信息,分别用逗号隔开。可以解析几个比较重要的即可。比如,UTC时间,定位状态,经度,纬度等。可以将GPS模块直接接在USB−TTL上,可以看出来未解析的原始数据。对GPRMC格式的数据进行解析:
$GPRMC,055037.00,A,3258.29117,N,11232.54636,E,0.236,260419,A7A
可以看得出来,经纬度的格式与我们平时看到的经纬度的格式是不一样的,需要进一步换算。我们需要将解析过而且转化过的经纬度信息将位置信息传给蓝牙模块。
红线里面的是北纬32度58.29117分,东经112度32.54636分,可以知道在地图中的经纬度的单位是度,所以将其换算成度,例如:
北纬32度58.29117分换算过程如下:
58.29117分=0.9715195度(58.29117/60),把之前的度加起来是32.9715195度。
东经112度32.54636分换算过程如下:
32.54636分=0.542439333度(32.54636/60),把之前的度加一起是112.54243933度。
所以对于GPS数据的解析不只是把时间,经度,维度等信息分别解析分离出来并保存,还需要将经纬度换算成我们日常生活中能够使用的经纬度才可以,即要将换算过的经纬度信息发送给蓝牙模块,然后进行传输,传给手机APP。
7 总结
本次毕业设计,我的课题是基于GPS&单片机的导航系统设计,刚开始知道自己的课题是这个题目的时候,说实话,对于一个对单片机只是有一点皮毛的我来说,根本不知道该从何处做起。大学期间虽说,学过单片机这门课,但是只是了解一些皮毛而已,要想完成一个小课设都是很艰难的,更别说是完成综合性这么强的毕业设计了。从一开始选题后,就一直在学习单片机,看的学习视频就是结合的学校实验室的普中的51单片机开发仪,整个过程学习结束对单片机有了很深的了解。在进行毕业设计的过程中主要出现了两个比较重要的问题:(1)在对单片机的串口通信进行调试的时候,结果发现串口助手接收区一直出现乱码现象。于是搜了很多的串口通信的例子,发现几乎都不能用,全都会出现乱码的现象。最后经过查阅博客,了解到串口通信对于单片机晶振的波特率要求特别严格,如果是12MHZ的晶振,使用4800的波特率可以使误差降到最低,如果使用9600的波特率,误差可以高到百分之八点多。但是如果使用11.0592MHZ的晶振并且串口的波特率为9600,误差可以达到0,也就是0误差。(2)对于STC90C516RD+单片机来说,只有一个串口,那就是P3.0和P3.1,那么如何连接两个串口外部设备呢?一开始想的方案是用STC15系列的单片机,这种系列的单片机有两个串口可以用,也就是说串口肯定是够用的,可是后来突然想到,这个设计,并不需要双向通信,即当GPS模块和单片机通信时,只需要GPS的发送引脚(TXD)和单片机的接收引脚(RXD)连接,单片机的发送引脚(TXD)和蓝牙模块的接收引脚(RXD)连接接口,这样一来,单片机串口不够的问题便可以解决了。之所以这么去想问题解决的方法是,是因为GPS模块和单片机不需要互相通信,单向通信就可以实现单片机接收GPS模块发送的位置信息了,而蓝牙模块和和单片机也不需要互相通信,单向通信就可以实现单片机发送数据给蓝牙模块了。
虽说整个过程有煎熬,但是也有开心,每每解决一个小问题,就觉得特别的开心。总的来说,对于这个课题的毕业设计,我从中真的是受到了很大的启发,尤其是出现问题之后的心态,不是放弃,而是对于解决问题的那种渴望。从不会到会,从不擅长到做出来,内心充满了成就感。而且,我们这次毕设,不仅仅有硬件还有软件。虽说有难度,但不得不说特别锻炼对于理论知识在现实实物中的实践与应用方面上的能力。
对于我们工科来说,最重要的不是理论的理解,而是对理论的实践。实践也是检验理论学习情况,对理论理解深度的的很重要的硬性条件。在实践中不断的成长,在问题中不断的进步,进而解决一个个出现的问题,最终完成设计。
参考文献
[1] 袁博. 梁怡林 STM32主控的GPS/GPRS移动终端定位跟踪系统[J], 2018.
[2] 周国运等. 单片机原理与接口技术(C语言版)[M]. 清华大学出版社, 2014.
[3] 霍玲玲.易语言入门与提高[M].国防工业出版社2012.
[4] 关东升,赵志荣 .Android开发案例驱动教程[M].机械工业出版社,2011.
[5] 袁东等.51单片机应用开发实战手册[M].电子工业出版社,2011.
[6] 谭浩强.c语言程序设计[M].北京:清华大学出版社,2011.
[7] 刘基余.GPS 卫星导航定位原理与方法(第二版)[M].北京:科学出版社有限责任公司, 2016.
[8] 谢扬,潘子豪.易安卓开发平台可视化界面在智能家居领域的应用[J].单片机与嵌入式系统应用.2015.
[9] 宋戈.51单片机应用开发范例大全[M].人民邮电出版社,2012.
[10] 徐爱钧.Keil C51 单片机高级语言应用编程技术[M].电子工业出版社,2015.
致谢
本次毕业设计,我要感谢我的毕业指导老师周老师和我的同组同学,特别是周老师。就这次毕业设计来说,老师和同学帮助了我很多。从起初的定毕业设计课题,到后来的带我们一组人借硬件设备,比如51单片机,GPS模块,以及蓝牙模块,再到最后的论文细心批阅,周老师一直在帮助我们。
在这次毕业设计的过程中,无论是硬件还是软件编程方面都出现了许许多多的问题。很多硬件和软件的问题,也是老师耐心帮助我们解决的。每每遇到一些自己和同学都无法解决的问题的时候,我们都会寻求周老师的帮助,周老师每次都会很认真地对于我们出现的问题进行一次次地解决。就算是一开始的开题报告,对于不合适的地方也是做了修改和批注,并退回来重新做了部分的删减和修改。对于硬件模块所需要的资料以及原理图,防止我们找的不全或者不对,会帮我们整理好并发给我们。对于一些比较简单的问题,同学也帮助了我很多。要是没有老师和同学的帮助,我可能不能按时地完成该设计。
再一次真心地感谢我的毕业设计指导老师和同学。
南 阳 理 工 学 院
本科生毕业设计(论文)
学院(系):计算机与信息工程学院
专 业: 物联网工程
学 生: 乔蒙蒙
指导教师 : 周国运
完成日期 2019 年 5 月
南阳理工学院本科生毕业设计(论文)
基于单片机&GPS的导航系统设计
Design of Navigation System Based on Single-chip
Microcomputer & GPS
总 计:34页
表 格:4个
插 图:23幅
南 阳 理 工 学 院 本 科 毕 业 设 计(论文)
基于单片机&GPS的导航系统设计
Design of Navigation System Based on Single-chip
Microcomputer &GPS
学 院(系): 计算机与信息工程学院
专 业: 物联网工程
学 生 姓 名: 乔 蒙 蒙
学 号: 1506955060
指导教师(职称): 周国运(教授)
评 阅 教 师: 王海琳(讲师)
完 成 日 期: 2019年5月
南阳理工学院
Nanyang Institute of Technology
基于单片机&GPS的导航系统设计
物联网工程 乔蒙蒙
[摘 要] 该设计实现了基于单片机&GPS的定位及导航功能.。系统硬件方面主要由51单片机,GPS模块以及蓝牙模块组成;系统软件由单片机主控制器程序和手机APP定位导航程序组成:单片机主控制器使用c语言编程,使用keil uVision5编程工具,编写了GPS位置信息接收、解析以及传输的程序。手机APP定位导航使用易语言编程,使用E4A编程开发工具,编写了定位程序和导航程序。系统的主要原理是51单片机作为主控制器负责接收来自GPS模块的位置信息,进行解析,之后发送给蓝牙模块,最后编写手机程序负责接收位置信息并进入地图实现导航功能.。系统主要应用于车辆导航定位、户外探险定位以及其他领域。但是现实生活中的定位导航工具比这些精进很多,所以该设计需要做更深入地研究。
[摘 要] 51单片机;导航;GPS;蓝牙;手机程序
Design of Navigation System Based on Single-chip Microcomputer &GPS
Internet of Things Engineering Major Qiao mengmeng
Abstract:This design realizes the positioning and navigation function based on single chip microcomputer &GPS. The hardware of the system is mainly composed of 51 single chip microcomputer, GPS module and bluetooth module. The system software is composed of MCU main controller program and mobile phone APP positioning and navigation program: the MCU main controller USES c language programming and keil uVision5 programming tool to write the program for receiving, analyzing and transmitting GPS position information. Mobile phone APP positioning and navigation using easy language programming, using E4A programming development tools, wrote the positioning program and navigation program. The e main principle of the system is 51 single-chip microcomputer as the main controller is responsible for receiving position information from the GPS module, to analyze, and then sent to the bluetooth module, finally write a mobile phone program is responsible for receiving position information and entering the map to achieve navigation function. The system is mainly used in vehicle navigation and positioning, outdoor adventure positioning and other fields. However, real life location and navigation tools are much more sophisticated than these, so the design needs to be further studied.
Key words: 51 single-chip microcomputer; navigation; GPS; bluetooth; mobile phone program
目 录1 绪论 11.1设计背景及研究现状 11.2设计内容 11.3设计意义 22 方案选择及总体设计 22.1 方案选择 22.1.1 主控制器方案选择 22.1.2 GPS模块方案选择 22.1.3 通信模块方案选择 32.2 系统功能总体设计 32.2.1 系统总体实现的功能 32.2.2 系统总体设计原理图 33 开发工具简介 43.1 单片机程序开发软件keil uVision5 43.2 手机程序开发软件易安卓 44 系统硬件设计 54.1 51单片机 54.2 GPS定位模块 74.3 蓝牙传输模块 95 系统软件设计 105.1 51单片机主控制程序流程 105.2 51单片机主控制器程序设计 115.2.1 GPS数据接收程序设计 115.2.2 串口配置程序设计 125.2.3数据传输控制程序设计 125.3 手机接收定位信息程序设计 145.4 手机导航程序设计 166 系统调试运行及测试 186.1 GPS模块定位测试 186.2 蓝牙传输模块测试 196.3 51单片机串口调试 216.4 手机APP接收GPS数据测试 226.5 定位信息解析 227 总结 25参考文献 25致谢 27 1 绪论
1.1设计背景及研究现状
20世纪50年代,考虑到自身经济利益以及军事效益,美国开始研究设计卫星导航系统,经过30多年的努力,终于建成了全球定位系统。1994年4月,24颗工作卫星发射完毕,导航系统进入全面运行阶段,主要应用于军事。此外,该系统还可以实现各种交通工具的导航定位,国家部队的调用,军事目标的定位等等,尤其是在沙漠风暴和对科索沃的轰炸这两场典型高技术战争中,由于其精确定位的优势应用于制作巡航导弹,从而打击敌军,甚至是地面士兵也会随身携带该装置,利于作战。总之,GPS应用领域本来挺广泛。
在国际公认的八项重大无线产业之中,卫星导航是非常具有代表性的。对于GPS定位技术的卫星导航应用,我国的发展速度较为迅速。北斗卫星导航系统的逐渐应用,就是一个非常有力的证明。随着无线通讯的发展,GPS技术更是以精度高,自动化,效率高,全天候,定位导航,精确测量等优势受到很多领域的欢迎,应用范围更广泛。
总的来说,无论是发展速度还是发展阶段,在国内GPS技术在国内还是有非常乐观的局势的。对于GPS技术的模型化,即GPS接收机的设计已经进入到了一个比较成熟的阶段,甚至可以与计算机的发展相比。尽管如此,由于GPS技术起步较晚,GPS还是存在一些问题的 。以前,在国内,GPS导航技术应用最广泛的是渔业,但随着时间的推移,GPS导航技术越来越多地应用在车辆定位上。值得欣慰的是,我国的无线通信工程技术的高速发展,对于位置信息的定位服务也将走上快速上升的坡道上并高速前进。单从北斗三号,我们就可以知道对于我国的导航系统建设来说一个非常大的进步。但我们仍需不断的努力,进一步研究GPS技术,从而解决GPS技术出现的问题,争取将导航系统建设做到极致并为全球的用户服务,将它的用途发挥到极致,适用范围更大。
1.2设计内容
本设计主要分为以下几个部分:第一部分,设计定位接收装置系统,由51单片机控制GPS模块以及蓝牙模块从而实现位置信息的接收。第二部分,接收GPS模块的位置信息并对GPS数据进行解析和处理,通过蓝牙模块建立51单片机和手机的通信,第三部分,编写手机APP程序,首先,有类似蓝牙串口APP的功能,用于接收单片机通过蓝牙发送的位置信息,最后,实现定位和导航的功能:即对接收到的位置信息的定位,定位之后的搜索路线和路线模拟场景以及实时场景的路线规划。
1.3设计意义
本次设计使用51单片机为主控制模块,对定位系统综合进行硬件部分的设计以及对其进一步地开发,以及使用E4A开发APP客户端。
GPS定位功能适用于许多领域,商业价值很高,但是从某种层面上来说,GPS定位系统还是有一些需要解决的问题比如(1)对于成本的提高,最有现实性的直接影响的就是,消费者们的购买意愿。(2)无线通信技术与GPS定位芯片相配套的技术文件的缺少(3)如何使卫星导航技术在国民经济建设社会发展中发挥更大的作用已经成为人们关注的问题。尽管如今GPS技术一直在不断地完善,但是对于以上产生的问题还是不容忽视的,要想使GPS继续的更加前进一步的发展,对于那些问题是急需解决的。因此,设计一个定位导航系统还是非常必要的。由于GPS应用范围广泛,潜在商业价值高,所以需要我们去对其更加的深入研究。
2 方案选择及总体设计
2.1 方案选择
2.1.1 主控制器方案选择
本次设计采用51单片机中的90系列的STC90C516RD+型号的单片机作为本次设计的主控制器,由其控制GPS全球定位模块的定位,对位置信息的解析以及蓝牙模块的位置信息的传输。
STC90C516RD+型号的单片机是功耗比较低,速度超高的90系列的单片机,相比89系列,版本的更新方面,生产工艺方面,安全性方面,稳定性方面等都有更好的优势。其内部有专门的复位威廉希尔官方网站
,时钟频率等必备的威廉希尔官方网站
设计。而且STC90C516RD+型号的单片机有一个串口(P3.0和P3.1)可以实现与串口外部设备相连接,并实现对串口外设的控制,并且可以通过串口调试助手看出来接收区的数据从而对硬件的程序进行进一步的修改以及完善。
2.1.2 GPS模块方案选择
本文研究定位导航的的功能,定位是及其重要的。定位不成功或者有差错,则会导致后续导航路线的严重错误,可见定位无法忽视,对定位的精度及其严格。不过需要注意的是,最好采用配有SMA天线的GPS模块。将天线置于窗户附近即可,很容易就可以搜索到定位的位置信息,如果使用陶瓷天线则定位效果不是很好。
本次设计采用NEO-6M模块作为定位模块接收位置信息,内配有3m天线与之连接搜索信号。NEO-6M模块具有很高性能的定位装置。他们结构紧密,适合电池驱动,但是有成本和空间方面上的限制。NEO-6M模块由于其专用采集引擎的量大,能够进行在最大范围的空间内进行特别精确的搜索,使其能够以最快速度找到卫星。不仅如此,该模块还能减少干扰,即使处在有挑战性的天气情况下,也能有很精确的定位功能。
2.1.3 通信模块方案选择
对于该设计来说,51单片机主控制器的SBUF接收了来自GPS定位模块的位置信息之后,对其进行解析(将原始数据解析成我们平时能一看就懂的位置信息或者说是高德地图可以直接使用的位置信息),那么之后的工作就是传输了,该设计的通信模块使用的是HC-05 蓝牙串口通信模块,它是一个最常用的通信模块,配置简单,并且容易上手。需要注意的是,使用之前要查询该型号的蓝牙模块的AT配置指令集并查询其名称,配对码,MAC地址,主从模式等重要信息,如果想修改则可以使用AT配置语句对其进行修改。该蓝牙模块配置的条件很简单,只要上电以及蓝牙模块的EN置于高电平即可。使用起来非常的灵活,方便,是个很好的通信传输模块的选择。
2.2 系统功能总体设计
2.2.1 系统总体实现的功能
(1)GPS模块实现定位功能;
(2)51单片机实现对各个模块的控制功能和位置信息的信息解析;
(3)易安卓APP实现位置信息(经纬度)显示功能;
(4)易安卓实现定位以及导航(路线规划)功能;
2.2.2 系统总体设计原理图
该定位导航系统的硬件设计:以51单片机为主控制器,控制GPS模块和蓝牙模块的硬件系统。对单片机编程,读取GPS模块的定位数据,并通过蓝牙通信模块把定位信息发送给手机APP,通过所编写的手机导航程序,在手机上规划行驶路线,并把接收的位置进行定位以及按照已搜索的路线进行导航。该设计的综合性的系统原理如图2-1所示:
图6-6 51单片机串口通信图
6.4 手机APP接收GPS数据测试
手机自带蓝牙与蓝牙模块配对成功后,将手机蓝牙与蓝牙模块连接。对于蓝牙透传模块发送过来的解析过的位置信息,手机端编写的相应的程序来负责接收HC-05模块发送的数据,并对接收到的数据调用高德地图api接口,并设计了目的地和与定位地点所处的城市,从而更精确地搜索行驶路线。APP接收定位数据图如图6-7所示:
图6-7 APP接收定位数据图
6.5 定位信息解析
首先,要了解到GPS接收信息是遵循一个统一标准的协议的,即NMEA-0183 协议。目前已经成了GPS定位导航设备默认的统一的一个行业内的标准协议。 NMEA-0183协议传递GPS的位置信息是通过数据帧来进行传递的。
帧格式形如: a a c c c , d d d , d d d , … , d d d ∗ h h ( C R ) ( L F ) 1 、 “ aaccc,ddd,ddd,…,ddd*hh(CR)(LF) 1、“ aaccc,ddd,ddd,…,ddd∗hh(CR)(LF)1、“”:帧命令起始位
2、aaccc:地址域,前两位为识别符(aa),后三位为语句名(ccc)
3、ddd…ddd:数据
4、“”:校验和前缀(也可以作为语句数据结束的标志)
5、hh:检验和,中间所有字符ASCII码的检验和
6、(CR)(LF):帧结束,回车和换行符
了解到,数据帧一共有七种基本的语句格式,选择接收其中一种数据格式,再对其进行解析即可。
$GPRMC,055037.00,A,3258.29117,N,11232.54636,E,0.236,260419,A7A
$GPVTG,T,M,0.236,N,0.437,K,A24
$GPGGA,055037.00,3258.29117,N,11232.54636,E,1,06,2.49,125.2,M,-17.5,M,7A
$GPGSA,A,3,07,16,27,30,08,28,2.90,2.49,1.480F
$GPGSV,2,1,07,07,64,308,47,08,71,015,36,16,22,078,39,18,45,147,77
$GPGSV,2,2,07,27,37,041,40,28,08,285,39,30,30,315,464C
G P G L L , 3258.29117 , N , 11232.54636 , E , 055037.00 , A , A ∗ 6 C 比 如 GPGLL,3258.29117,N,11232.54636,E,055037.00,A,A*6C 比如 GPGLL,3258.29117,N,11232.54636,E,055037.00,A,A∗6C比如GPRMC,这个是比较常用的。 G P R M C 语 句 中 一 共 有 十 二 个 信 息 , 分 别 用 逗 号 隔 开 。 可 以 解 析 几 个 比 较 重 要 的 即 可 。 比 如 , U T C 时 间 , 定 位 状 态 , 经 度 , 纬 度 等 。 可 以 将 G P S 模 块 直 接 接 在 U S B − T T L 上 , 可 以 看 出 来 未 解 析 的 原 始 数 据 。 对 GPRMC语句中一共有十二个信息,分别用逗号隔开。可以解析几个比较重要的即可。比如,UTC时间,定位状态,经度,纬度等。可以将GPS模块直接接在USB-TTL上,可以看出来未解析的原始数据。对 GPRMC语句中一共有十二个信息,分别用逗号隔开。可以解析几个比较重要的即可。比如,UTC时间,定位状态,经度,纬度等。可以将GPS模块直接接在USB−TTL上,可以看出来未解析的原始数据。对GPRMC格式的数据进行解析:
$GPRMC,055037.00,A,3258.29117,N,11232.54636,E,0.236,260419,A7A
可以看得出来,经纬度的格式与我们平时看到的经纬度的格式是不一样的,需要进一步换算。我们需要将解析过而且转化过的经纬度信息将位置信息传给蓝牙模块。
红线里面的是北纬32度58.29117分,东经112度32.54636分,可以知道在地图中的经纬度的单位是度,所以将其换算成度,例如:
北纬32度58.29117分换算过程如下:
58.29117分=0.9715195度(58.29117/60),把之前的度加起来是32.9715195度。
东经112度32.54636分换算过程如下:
32.54636分=0.542439333度(32.54636/60),把之前的度加一起是112.54243933度。
所以对于GPS数据的解析不只是把时间,经度,维度等信息分别解析分离出来并保存,还需要将经纬度换算成我们日常生活中能够使用的经纬度才可以,即要将换算过的经纬度信息发送给蓝牙模块,然后进行传输,传给手机APP。
7 总结
本次毕业设计,我的课题是基于GPS&单片机的导航系统设计,刚开始知道自己的课题是这个题目的时候,说实话,对于一个对单片机只是有一点皮毛的我来说,根本不知道该从何处做起。大学期间虽说,学过单片机这门课,但是只是了解一些皮毛而已,要想完成一个小课设都是很艰难的,更别说是完成综合性这么强的毕业设计了。从一开始选题后,就一直在学习单片机,看的学习视频就是结合的学校实验室的普中的51单片机开发仪,整个过程学习结束对单片机有了很深的了解。在进行毕业设计的过程中主要出现了两个比较重要的问题:(1)在对单片机的串口通信进行调试的时候,结果发现串口助手接收区一直出现乱码现象。于是搜了很多的串口通信的例子,发现几乎都不能用,全都会出现乱码的现象。最后经过查阅博客,了解到串口通信对于单片机晶振的波特率要求特别严格,如果是12MHZ的晶振,使用4800的波特率可以使误差降到最低,如果使用9600的波特率,误差可以高到百分之八点多。但是如果使用11.0592MHZ的晶振并且串口的波特率为9600,误差可以达到0,也就是0误差。(2)对于STC90C516RD+单片机来说,只有一个串口,那就是P3.0和P3.1,那么如何连接两个串口外部设备呢?一开始想的方案是用STC15系列的单片机,这种系列的单片机有两个串口可以用,也就是说串口肯定是够用的,可是后来突然想到,这个设计,并不需要双向通信,即当GPS模块和单片机通信时,只需要GPS的发送引脚(TXD)和单片机的接收引脚(RXD)连接,单片机的发送引脚(TXD)和蓝牙模块的接收引脚(RXD)连接接口,这样一来,单片机串口不够的问题便可以解决了。之所以这么去想问题解决的方法是,是因为GPS模块和单片机不需要互相通信,单向通信就可以实现单片机接收GPS模块发送的位置信息了,而蓝牙模块和和单片机也不需要互相通信,单向通信就可以实现单片机发送数据给蓝牙模块了。
虽说整个过程有煎熬,但是也有开心,每每解决一个小问题,就觉得特别的开心。总的来说,对于这个课题的毕业设计,我从中真的是受到了很大的启发,尤其是出现问题之后的心态,不是放弃,而是对于解决问题的那种渴望。从不会到会,从不擅长到做出来,内心充满了成就感。而且,我们这次毕设,不仅仅有硬件还有软件。虽说有难度,但不得不说特别锻炼对于理论知识在现实实物中的实践与应用方面上的能力。
对于我们工科来说,最重要的不是理论的理解,而是对理论的实践。实践也是检验理论学习情况,对理论理解深度的的很重要的硬性条件。在实践中不断的成长,在问题中不断的进步,进而解决一个个出现的问题,最终完成设计。
参考文献
[1] 袁博. 梁怡林 STM32主控的GPS/GPRS移动终端定位跟踪系统[J], 2018.
[2] 周国运等. 单片机原理与接口技术(C语言版)[M]. 清华大学出版社, 2014.
[3] 霍玲玲.易语言入门与提高[M].国防工业出版社2012.
[4] 关东升,赵志荣 .Android开发案例驱动教程[M].机械工业出版社,2011.
[5] 袁东等.51单片机应用开发实战手册[M].电子工业出版社,2011.
[6] 谭浩强.c语言程序设计[M].北京:清华大学出版社,2011.
[7] 刘基余.GPS 卫星导航定位原理与方法(第二版)[M].北京:科学出版社有限责任公司, 2016.
[8] 谢扬,潘子豪.易安卓开发平台可视化界面在智能家居领域的应用[J].单片机与嵌入式系统应用.2015.
[9] 宋戈.51单片机应用开发范例大全[M].人民邮电出版社,2012.
[10] 徐爱钧.Keil C51 单片机高级语言应用编程技术[M].电子工业出版社,2015.
致谢
本次毕业设计,我要感谢我的毕业指导老师周老师和我的同组同学,特别是周老师。就这次毕业设计来说,老师和同学帮助了我很多。从起初的定毕业设计课题,到后来的带我们一组人借硬件设备,比如51单片机,GPS模块,以及蓝牙模块,再到最后的论文细心批阅,周老师一直在帮助我们。
在这次毕业设计的过程中,无论是硬件还是软件编程方面都出现了许许多多的问题。很多硬件和软件的问题,也是老师耐心帮助我们解决的。每每遇到一些自己和同学都无法解决的问题的时候,我们都会寻求周老师的帮助,周老师每次都会很认真地对于我们出现的问题进行一次次地解决。就算是一开始的开题报告,对于不合适的地方也是做了修改和批注,并退回来重新做了部分的删减和修改。对于硬件模块所需要的资料以及原理图,防止我们找的不全或者不对,会帮我们整理好并发给我们。对于一些比较简单的问题,同学也帮助了我很多。要是没有老师和同学的帮助,我可能不能按时地完成该设计。
再一次真心地感谢我的毕业设计指导老师和同学。