基于51单片机&GPS的导航系统设计(1)---(设计思路)

在做完这个毕业设计之后,一直想着抽时间写一下这个毕业设计的博客!!!
先说一下基本设计思路吧!!希望对个位博友有用处。哈哈
首先,从题目分析,即基于单片机&GPS的导航系统设计。
(1)单片机可以用32也可以用51,如果想按照我的思路去做设计的话可以用51。我用的是51单片机的最小系统。51单片机最小系统如下图所示:
基于51单片机&GPS的导航系统设计(1)---(设计思路)
(2) GPS指的是GPS模块,大家可以自行购买,一般几十块,我买的是NEO-6M型号的GPS定位模块(GPSmini版)。如果大家不是专门搞研究的话,买mini版的即可,自带SMA接口用于连接天线,便于定位。GPS模块效果图如下图所示:
基于51单片机&GPS的导航系统设计(1)---(设计思路)
(3)导航系统指的是,手机程序APP的设计,具有导航的功能。
其次,说一下大致设计思路。
GPS定位模块接收位置信息,51单片机负责接收GPS模块接收的位置信息并解析(解析出时间,经纬度等),并通过蓝牙透传模块发送给手机APP(当然在此之前,手机APP里面要有接收蓝牙数据的相关程序),之后根据当前定到的位置(起点)以及终点搜索并规划行驶路线,从而实现定位+导航的功能。
最后,讲一下硬件电路的设计。
(1)51单片机我使用的是单片机最小系统。本页上图有效果图,还挺好用的,但是需要注意的是买一个好一点的最小系统,最好不要买我上图所示的那一种,里面的CH340(烧录代码需要的芯片)用了几次就烧坏了,导致我后面调试代码烧录进去的时候特别麻烦。
对于51单片机的使用,需要注意:
1,单片机串口通信问题:也就是SBUF的问题,他们是两个东西,一个是发送缓冲区,一个是接收缓冲区,只不过名字一样。对于SBUF(这里指接收)里面的数据如何到单片机,大家无须细究。只需知道,放在SBUF里面,单片机就会自动接收。对于单片机的发送(单片机是发送方,蓝牙或者其他传输模块是接收方)就是往单片机的SBUF(这里指发送)放入数据。这里不是很懂的可以自行百度,很重要。如果这个都不会,那么是无法进行下一步的。
2,51单片机的主控芯片:大家可以使用STC89或者90系列的芯片,最好不要使用AT系列的,因为GPS数据很多,使用AT有可能不够用。我使用的是STC90C516RD+,现在市面上一般多用这个系列。
3,51单片机一般都只有一个串口,即TXD和RXD引脚。不过对于该设计一个串口就够用了,亲测。网上很多帖子说不够用,他们没有考虑到具体情况。他们认为,需要单片机和GPS模块通信,需要单片机和蓝牙模块通信,通信串口就会出现不够用的问题。其实这个问题的解决有两个方法。第一,使用不只有一个串口的51单片机,如stc15系列,不过这样一来,需要了解关于双串口通信的知识。第二(推荐使用),这个设计无须实现双向通信。即对于GPS模块,只需发送即可,对于蓝牙模块只需接收即可。即实现单片机和GPS模块的单向通信(GPS的TXD连接单片机的RXD),单片机和蓝牙模块的单向通信。(单片机的TXD连接蓝牙模块的RXD),我使用的就是这个方法。
4,对于串口出现乱码的问题,一般都是波特率的问题。对于蓝牙模块以及51单片机一般使用9600的波特率,一定要一致,否则会出现乱码的问题。
好了,对于单片机的问题,就说这么多就够用啦 。
(2)GPS定位模块,这个需要注意的就一个问题,就是需室外或者窗户旁边定位,不然不易定位,信号不好。
(3)蓝牙模块大家可以自行购买。我使用的是HC-05模块,使用之前提前对其进行AT指令的配置,直接连接在51单片机上,即可实现透传功能(单片机给蓝牙模块法搜是那个什么内容,蓝牙模块就会原封不动地传送什么内容给手机APP)。大家无须了解蓝牙与手机通信的协议主机发送,从机响应什么的,便于上手。只需要知道其透传功能即可。
(4)对于APP的设计,分为两个部分,一个是接收蓝牙模块发送的信息。另一个是对接收的定位信息进行定位以及导航。这部分可以使用E4A(一个中文编程工具,很好用),里面自带很多例程,可以直接使用。
基本上,设计思路已经说得很清楚啦,需要注意的问题以及描述清楚。进一步的实施需要下一篇博客啦。