第一篇:基于单片机的智能跟随小车的设计与实现
基于单片机的智能跟随小车的设计与实现
【摘要】本文设计了一种能够通过传感器实时采集信号、智能分析周围环境以及路径信息、自动控制方向等功能的智能小车。小车以STC89c52单片机控制为核心,利用车前三个反射式红外发射―接收探头检测周围信息,以及利用光电传感器检测前方物体,并将检测信号反馈给单片机,实现小车的避障和跟随功能。基于STC89C52单片机的智能小车系统结构简单,性价比高,易于推广和移植,具有广阔的应用前景。
【关键词】STC89C52;避障;跟随;光电传感器
引言
随着科技的发展和人民生活水平的提高,越来越多的智能车得到普及普及,和传统汽相比,智能小车具有更好的安全性,机动性和广泛的应用性。智能小车,也就是轮式机器的智能化成果,是一种集传感器应用,智能芯片控制,驱动控制的高科技创意性设计。智能小车的功能是对指定的目标物进行跟踪和实时的躲避障碍物,这是他与其他小车最大的区别也是最大的一个特点。小车通过红外传感器对目标物体进行实时识别和跟踪,并且及时的躲避障碍物,具有灵敏性好,智能化程度高的特点。如果把它用在超市,将会极大地方便人们的生活。如果用在商城和机场,人们也不用提着沉重的行李箱满地跑了。
1、总体方案设计
智能小车总体设计内容:一是STC89C52芯片控制电路的设计;二是驱动电路的设计;三是光电传感器电路的设计;四是避障系统的设计;五是电源稳压电路的设计;六是硬件的焊接组装;七是软件的编程调试。小车总共分为5个部分,以单片机为核心的主控模块,电源模块,红外传感模块,驱动模块,避障模块。具体工作原理是:红外传感器在预设距离内检测前方是否有目标物体,如果有则自动进行跟随。同时,红外光电对管检测前方障碍物,当检测到前方有障碍物并且小于预设值时将把信息发回给单片机,控制驱动电路让车轮停止转动并后退绕过障碍物继续跟随。
2、系统的硬件设计
2.1主控模块
主控模块通过单片机利用程序来精确控制小车的运动,从而实现对小车的自动控制。STC89C52单片机具有控制简单、方便、快捷等优点,因此我们采用STC89C52单片机作为控制芯片。
2.2传感器模块
本设计所采用的传感器是集发射与接收为一体的光电传感器,具有很多其他传感器所没有的特性比如发射机距离远,抗干扰能力强,结构简单,可调节等优良的特点[1]。红外传感器是利用物体对近红外线光束的反射原理,由同步回路感应反射回来的光,据其强弱来检测物体的存在与否。通过有无信号来输出高低电平,然后把信号送给单片机处理,实现实时跟随的功能。红外探测法是避障模块所使用的方法,就是利用红外线在不同颜色的物理表面具有不同反射性质的特点来进行避障[2]。由于红外光遇到白光的时候会发生漫反射,光电传感器就可以不断向外发射红外光,接收管就能接收到反射回来的信号,然后发送到单片机。若遇到黑色的物体将不会接收到信号而检测到障碍物进而启动躲避系统。传感器模块原理图如图2所示。
2.3驱动模块
驱动模块采用L298N驱动芯片,总共有四路输入,四路输出。INX均接单片机的P1口,IN1和IN3口控制轮子正转,IN2和IN4口控制轮子逆转,通过调节输入信号的占空比来调节小车轮子转动的速度。当小车左侧遇到障碍物时,驱动电路控制右侧轮子不动,左侧轮子加速转动,进行右转;当小车右侧遇到障碍物时,情况正好相反;当小车前方遇到障碍物时,驱动电路控制轮子停止,然后反转后退,绕过障碍物继续前进。
2.4电源模块
电源供电模块,使用的是直流稳压[3]电源,输入的是直流+12V电压,运用三线稳压器件7805,输出+5V直流电压。电源部分电路设计简单方便,同时也充分发挥了稳压器保护电路的作用。
3、系统的软件设计
软件设计部分决定了智能小车能否实现其跟随和避障的功能,是本次设计的关键部分。小车程序分为以下三部分:主程序部分,跟随和避障程序部分,驱动程序部分[4]。主程序流程图如图3所示。
4、仿真测试
基于PROTEUS仿真软件,我们设计了智能跟随小车控制电路的仿真图,如图4所示。
由于PROTEUS软件中没有红外传感器,所以我们用从上到下编号1-6的六个开关代替传感器,来实现探测目标的功能[5]。图中四个电机的转动方向代表四个轮子的转动方向,同时速度的快慢也可以从图中显示出来。首先,闭合开关3,表示发现目标物体,四个轮子正转,并且加速前进,闭合开关4,表示遇到障碍物,轮子停止转动并且反向转动直到障碍物离开检测范围。断开开关3、4,闭合开关5,表示目标物体向左移动,此时左侧轮子停止转动,右侧轮子正转并且加速转动,当小车右侧出现目标物是动作与之相反。闭合开关6,表示左侧有障碍物,这时右侧轮子不动,左侧轮子正转,实现向右转向的目的。当小车右侧出现障碍物时动作与之相反。
5、系统调试
先进行硬件调试,通过仿真好的电路图[6],用万用表检测已经焊好的电路板上每一个节点是否有短路、断路和接触不良的情况,看各个节点电压是否正常。当硬件调试没有问题,完成了以后进行软件调试,通过修改各个接口对应的程序进行调试,最终完成软件的修改,达到了预期的效果。
6、结束语
本次项目设计非常成功,通过老师的指导和我们的团队合作,小车很好了实现了其跟随和避障的功能效果。最然在开始我们对这个项目没有任何的头绪,但是经过我们共同的努力成功完成了这个作品,每一个人都感到了团队合作的艰辛和成功后的喜悦。通过实验测试智能跟随小车的灵敏性,效果良好,能够很好的按照预期完成指定动作,并且运行稳定。
参考文献
[1]周继明,江世明.传感器技术及应用[M].长沙:中南大学出版社,2005.[2]冯博琴,吴宁.微型计算机原理与接口技术[M].北京:清华大学出版社,2011.[3]余锡存,曹国华.单片机原理及接口技术[M].西安:西安电子科技大学出版社,2007.[4]李学礼.基于Proteus 的8051单片机的实例教程[M].北京:电子工业出版社,2008.[5]谭浩强.C++面向对象程序设计[M].清华大学出版社,2006.[6]周润景,郝晓霞.传感器与检测技术[M].北京:电子工业出版社,2009.[7]来清民.传感器与单片机接口及实例[M].北京:北京航空航天大学出版社,2008.作者简介
张文霞,女,1982年生,鄂尔多斯市人,在读博士,讲师,工作于内蒙古大学鄂尔多斯学院,研究方向为图像处理及模式识别。
第二篇:毕业设计论文-基于单片机的循迹智能小车的设计与实现
编号
南京航空航天大学
毕业设计
题 目
基于单片机的智能小车的设
计与实现
学生姓名 学 号 系 部 专 业 班 级 指导教师
计算机科学与技术
讲师
二〇一七年五月
南京航空航天大学
本科毕业设计(论文)诚信承诺书
本人郑重声明:所呈交的毕业设计(论文)(题目:基于单片机的智能小车的设计与实现)是本人在导师的指导下独立进行研究所取得的成果。尽本人所知,除了毕业设计(论文)中特别加以标注引用的内容外,本毕业设计(论文)不包含任何其他个人或集体已经发表或撰写的成果作品。
作者签名:
年 月
日
(学号):
毕业设计(论文)报告纸
基于单片机的智能小车的设计与实现
摘要
在以计算机技术为代表的高新技术的迅猛发展下,机械系统大步迈向智能化。轮式机器人是我们最常见到的智能化设备。从生产制造业的无人搬运车,到特种行业的灾难救援、排爆灭火机器人,再到军事领域的侦查和防御机器人以及航天领域的星球表面探测器,处处可以见到智能小车的身影。
本文针对智能小车硬件和软件的设计进行了详细的介绍。在硬件方面,提出由电源模块、车体模块、单片机控制模块、电机驱动控制模块、电机模块、传感器模块等构成智能小车硬件系统。在软件方面,利用Keil uVision 5集成开发工具进行C51高级语言的程序设计,开发出控制程序。智能小车利用搭载在车前端两侧的红外传感器,识别路况,并以STC11F32XE单片机为控制核心,根据接收的信息发出相应的控制指令,通过--L298驱动控制模块来驱动小车以实现循迹。本系统的硬件和软件均采取了模块化的设计结构,系统电路简单,可靠性高,拓展性强。在实际调试过程中(无人为干扰下),智能小车能适应直道、S弯、环形等路况,达到循迹智能小车设计的目的和要求。
关键词:智能小车,软件设计,单片机,循迹
i
毕业设计(论文)报告纸
Design and Implementation of Intelligent Car Based on Single-Chip Microcomputer
Abstract With the rapid development of new technology which is symbolized by computer technology, mechanical system has taken a step towards the intelligence.Wheeled robots are the most common intelligent devices in our life.Ranging from the unmanned van of manufacturing industry , to the special industry disaster relief, and the detection and defense robots in the military field and the surface detector in the aerospace field , the smart car figure can be seen everywhere.This article introduces the hardware and software design of the smart car in detail.In terms of the hardware, the hardware system of intelligent car is made up of power module, body module, single chip microcomputer module, motor drive module, motor module and sensor module.In the aspect the software, C51 high-level language programming can be designed by the employment of Keil uVision 5 integrated development tools,.thus developing a control program.The intelligent car uses the infrared sensor mounted on both sides of the front end of the car to identify the road condition and uses the STC11F32XE single chip as the control core, sending out the corresponding control instruction according to the received information , through the
第三篇:基于单片机设计智能小车的参考文献
参考文献
[1] 赵海兰.基于单片机的红外遥控智能小车的设计[J].无线互联科技, 2011年3期.[2] 何立民.单片机技术的现状与未来[J].中国计算机报, 2012年 No:30.[3] 姚培等.基于单片机控制的智能循迹避障小车[J].机电信息,2010年12期.[4] 赵振德.多功能遥控智能小车的制作[J].电子制作, 2011年4期.[5] 李瀚霖等.智能小车研究与设计[J].科技致富向导,2011年26期.[6] 周淑娟.基于单片机智能寻迹小车的设计方案[J].工业技术与职业教育,2011年6月第9卷第2期.[7] 黄杰.基于模糊控制的智能车辆设计[J].中国科技信息,2010.20.[8] 陈铁军.智能控制理论及应用[M].北京:清华大学出版社,2009.1.[9] 张毅刚,彭喜元,彭宇.单片机原理及应用[M],高等教育出版社,2010.5.[10] 刘南平.电子产品设计与制作技术[J].科学出版社,2008.[11] 杨刚.电子系统设计与实践[J].电子工业出版社,2009.3.[12] 寸晓非.基于飞恩卡尔的智能循迹车设计.荆楚学院报,2012.04.[13] 隋研.基于数字PID的智能小车控制[J].杂志商店,2012.06 [14] 张友德.单片机原理与应用技术.机械工业出版社,2004 [15] 吴黎明.数字控制技术.科学出版社,2009.11.
第四篇:基于89C51单片机的智能小车设计
湖北轻工职业技术学院
单片机实训报告
题
姓
学
专 目:基于STC89C52的智能小车设计 名:刘
加
象 号:20110302113 业:电子信息工程技术
指导老师:何
伶
俐 日
期:2013-01-06
信息工程系电信教研室
目录
引言...............................................................................................................................3 一 整体方案设计.........................................................................................................4 1.1整体方案设计的思路............................................4 1.2整体方案的流程图..............................................4 二 智能小车系统概况.................................................................................................4 2.1恒压恒流桥式2A驱动芯片L298N...................................................................4 2.2直流电机简介..................................................5 2.3显示模块的综合概括............................................7 三 模块方案比较与论证:.........................................................................................9 3.1 电机模块的选择..............................................9 3.2 电机驱动模块的选择..........................................9 3.3 控制器模块的选择............................................9 四 系统硬件电路设计...............................................................................................11 4.1 显示模块的设计.............................................11 4.2 直流电机的驱动模块.........................................12 五 软件的简单介绍...................................................................................................14 5.1 KEIL的简介..................................................14 5.2 PROTUES的简介................................................14 5.3 STC_ISP_V483的简介.........................................15 六 结论.......................................................................................................................18 七 致谢.......................................................................................................................18 参考文献.....................................................................................................................19 附录一:实物图.........................................................................................................20 图1实物图.................................................................................................................20 图2实物图.................................................................................................................21 附录二:总程序.........................................................................................................21
第 1 2 页
湖北轻工职业技术学院
引言
随科学技术的进步,智能化和自动化技术越来越普及,也广泛应用于机器人玩具制造领域,使智能机器人越来越多样化。智能机器人是一个多种高新技术的集成体,它融合了机械、电子、传感器、计算机硬件、软件、人工智能等许多学科的知识,涉及到当今许多前沿领域的技术。而随着社会的不断发展,智能设备的不断出现,无线遥控的运用也越来越广泛。无线遥控器由于控制距离远,抗干扰性强,已越来越多的出现在生活的各个方面。本文使用了一款通用的无线遥控电路,基于STC89C52作为控制核心,采用专用编码解码电路,由于其体积小、功能强大,因此可非常方便的移植到遥控机器人、遥控小车上等,并实现远距离控制。在早期,遥控小车并不少见,但大多产品制造简单,实现的功能少,往往只有一些简单的功能,例如左转右转,前进后退等,大多采用红外控制,外加一些复杂的电路组合而成。遥控小车的使用者针对的是小孩子,但笨重的设备和昂贵的价格往往让许多小孩的甜美梦想落空。在现在,用单片机进行无线遥控小车的方案,利用较少的外设实现了基本的功能。其较强的抗干扰性使得该遥控器具有很好的通用性其功能也日趋完善。其中包括防撞防爆系统和基本的方向控制,另外在行进中可以尽享柔美的音乐,看美丽的灯光随音律而闪烁,让孩子玩得更开心!此外,电路的简化,材料的减少使得价格也降低了不少,真的是物美价廉,可以为孩子的童年再添一些笑语。
第 3 1 页
湖北轻工职业技术学院
一 整体方案设计
1.1整体方案设计的思路
利用红外线传感器发射和接收信号模块来控制单片机,让单片机翻译传输指令,从而实现相应的功能。具体的过程如下:四路红外传感器,每一路发射一个信号,检测接收到的信号,若出现高电平,则说明该方向前方有障碍物,则单片机控制电机正转和反转,从而实现绕开障碍物继续前行。同时还增加一个无线发射和无线接收模块控制单片机,让单片机翻译传输指令,从而实现相应的功能。无线发射模块发出指令,无线接收模块接收信号后,传递给单片机,单片机翻译接收到信号后,传输给驱动电路驱动电机旋转,从而实现让小车的前进、后退、左转和右转。1.2整体方案的流程图
基于单片机STC89C52整体设计的智能小车,根据原来设计的思路上画出了相对应的流程路,由于是整体结构图,就只是画出了大致的结构流程,而细节将在后面做出介绍。
图1整体方案的流程图 二 智能小车系统概况
2.1恒压恒流桥式2A驱动芯片L298N L298是SGS公司的产品,比较常见的是15脚Multiwatt封装的L298N,内部同样包含4通道逻辑驱动电路。可以方便的驱动两个直流电机,或一个两相步进电机。L298N芯片可以驱动两个二相电机,也可以驱动一个四相电机,输出电压最高可达50V,可以直接通过电源来调节输出电压;可以直接用单片机的IO
第 4 页
湖北轻工职业技术学院
口提供信号;而且电路简单,使用比较方便。
L298N可接受标准TTL逻辑电平信号VSS,VSS可接4.5~7 V电压。4脚VS接电源电压,VS电压范围VIH为+2.5~46 V。输出电流可达2.5A,可驱动电感性负载。1脚和15脚下管的发射极分别单独引出以便接入电流采样电阻,形成电流传感信号。L298可驱动2个电动机,OUT1,OUT2和OUT3,OUT4之间可分别接电动机,本实验装置我们选用驱动一台电动机。5,7,10,12脚接输入控制电平,控制电机的正反转。EnA,EnB连接控制使能端,控制电机的停转。表1是L298N功能逻辑图。In3,In4的逻辑图与表1相同。由表1可知EnA为低电平时,输入电平对电机控制起作用,当EnA为高电平,输入电平为一高一低,电机正或反转。同为低电平电机停止,同为高电平电机刹停。等。
图2单片机利用L298控制电机的原理图
15脚是输出电流反馈引脚,其它与L298相同。在通常使用中这两个引脚也可以直接接地。上图是其与51单片机连接的电路图 2.2直流电机简介 2.2.1直流电机的应用
电动机简称电机,是使机械能与电能相互转换的机械,直流电机把直流电能变为机械能。作为机电执行元部件,直流电机内部有一个闭合的主磁路。主磁通在主磁路中流动,同时与两个电路交联,其中一个电路是用以产生磁通的,称为激磁电路;另一个电路是用来传递功率的,称为功率回路或电驱回路。现行的直流电机都是旋转电驱式,也就是说,激磁绕组及其所包围的铁芯组成的磁极为定子,带换向单元的电驱绕组和电驱铁芯结合构成直流电机的转子。直流电机有以下4方面的优点:
1)调速范围广,且易于平滑调节。
第 5 页
湖北轻工职业技术学院
2)3)4)过载、启动、制动转矩大。易于控制,可靠性高。调速时的能量损耗较小。
所以,在调速要求高的场所,如轧钢机、轮船推进器、电机、电气铁道牵引、高炉送料、造纸、纺织、拖动、吊车、挖掘机械、卷扬机拖动等方面,直流电机均得到广泛的应用。
2.2.2直流电机的基本工作原理
直流电机工作原理:当电刷A,B接在电压为U的直流电源上时,若电刷A是正电位,B是负电位,在N极范围内的导体ab中的电流是从a流向b,在S极范围内的导体cd中的电流是从c流向d。载流导体在磁场中要受到电磁力的作用,因此ab与cd两导体都受到电磁力的作用。根据磁场方向和导体中的电流方向,利用电机左手定则判断,ab边受力的方向是向左的,而cd边则是向右的。由于磁场是均匀的,导体中流过的又是相同的电流,所以ab边和cd边所受电磁力的大小相等。这样,线圈上就受到了电磁力的作用而按逆时针转动。当线圈转到磁极的中性面上时,线圈中的电流等于零,电磁力等于零,但是由于惯性的作用,线圈继续转动。线圈转过半周之后,虽然ab与cd的位置调换了,ab边转到S极范围内,cd边转到N极范围内,但是由于换向片和电刷的作用,转到N极下的cd边中电流方向也变了,是从d流向c,在s极下的ab边中的电流则是从b流向a。因此电磁力的方向仍然不变,线圈仍然受力按逆时针方向转动。可见,分别处在N,S极范围内的导体中电流方向总是不变的,因此线圈两个边的受力方向也不变,这样线圈就可以按照受力方向不停地旋转,通过齿轮或皮带等机构的传动,便可以带动其他机械工作。
从以上分析可以看到,要使线圈按照一定的方向旋转,关键问题是当导体从一个磁极范围转到另一个异性磁极范围时(也就是导体经过中性面后),导体中电流的方向也要同时改变,换向器和电刷就是完成这一任务的装置。在直流电机中,换向器和电刷把输入的直流电变为线圈中的交流电。可见,换向器和电刷是直流电机中不可缺少的关键部件。
当然,在实际的直流电机中,不只有一个线圈,而是有许多线圈牢固地嵌在转子铁芯槽中,当导体中通过电流在磁场中因受力而转动时,就带动整个转子旋转,这就是直流电机的基本工作原理。2.2.3直流电机的参数
转矩-电机得以旋转的力矩,单位为㎏•m或N•m。
转矩系数-电机所产生转矩的比例系数,一般表示每安培电驱电流所产生的转矩大小。
摩擦转矩-电刷、轴承、换向单元等因摩擦而引起的转矩损失。
第 6 页
湖北轻工职业技术学院
启动转矩-电机启动时所产生的旋转力矩。
转速-电机旋转的速度,工程单位为r/min,即转每分。在国际单位制中为rad/s,即弧度每秒。
电枢电阻-电枢内部的电阻,在有刷电机里一般包括电刷与换向器之间的接触电阻,由于电阻中流过电流时会发热,因此总希望电枢电阻尽量小。
电枢电感-因为电枢绕组由金属线圈构成,必然存在电感,从改善电机运行性能的角度来说,电枢电感越小越好。
电气时间常数-电枢电流从零开始达到稳定值的63.2%时所经历的时间。测定电气时间常数时,电机应处于堵转的状态并施加阶跃性质的驱动电压。工程上,常常利用电动机转子的转动惯量J、电枢电阻Ra、电机反电动势系数Ke和转矩系数Kt求出机械时间常数:
Tm(J*Ra)(/Ke*Kt)„1-1 转动惯量-具有质量的物体维持其固有运动状态的一种性质。
反电动势系数-电机旋转时,电枢绕组内部切割磁力线所感应的电动势相对于转速的比例系数,也称发电系数或感应电动势系数。
功率密度-电机每单位质量所能获得的输出功率值。功率密度越大,电机的有效材料的利用率就越高。
转子-rotor;定子-stator;电枢-armature;励磁-excitation。2.3显示模块的综合概括
显示模块包括:LCD1602,温度传感器DS18B20,时钟芯片DS1302三个部分组成。
2.3.1LCD1602的简介
1602B可以显示2行16个字符,有8位数据总线D0-D7,和RS、R/W、EN三个控制端口,工作电压为5V,并且带有字符对比度调节和背光。该模块也可以只用D4-D7作为四位数据分两次传送。这样的话可以节省MCU的I/O口资源。1602B引脚说明如下:
表2.3 LCD液晶显示器各引脚功能及结构
编号 1 2 3 4 符号 VSS VDD VL RS
引脚说明 电源地 电源正极 对比度调节 数据/命令选择
编号 9 10 11 12
符号 D2 D3 D4 D5
引脚说明 双向数据口 双向数据口 双向数据口 双向数据口
第 7 页
湖北轻工职业技术学院 6 7 8 R/W E D0 D1
读/写选择 模块使能端 双向数据口 双向数据口 14 15 16
D6 D7 BLK BLA
双向数据口 双向数据口 背光源地 背光源正极
注意事项:从该模块的正面看,引脚排列从右向左为:15脚、16脚,然后才是1-14脚(线路板上已经标明): VDD:电源正极,4.5-5.5V,通常使用5V电压;
VL:LCD对比度调节端,电压调节范围为0-5V。接电源的正极时对比度最弱,接地电源时对比度最高,但对比度过高时会产生“鬼影”,因此通常使用一个10K的电位器来调整对比度,或者直接串接一个电阻到地;
RS:MCU写入数据或者指令选择端。MCU要写入指令时,使RS为低电平;MCU要写入数据时,使RS为高电平;
R/W:读写控制端。R/W为高电平时,读取数据;R/W为低电平时,写入数据; E:LCD模块使能信号控制端。写数据时,需要下降沿触发模块。D0-D7:8位数据总线,三态双向。如果MCU的I/O口资源紧张的话,该模块也可以只使用4位数据线D4-D7接口传送数据。本充电器就是采用4位数据传送方式;
BLA:LED背光正极。需要背光时,BLA串接一个限流电阻接VDD,BLK接地,实测该模块的背光电流为50mA左右;
BLK:LED背光地端。
第 8 页
湖北轻工职业技术学院
三 模块方案比较与论证:
3.1 电机模块的选择
方案1:采用步进电机作为该系统的驱动电机。由于其转过的角度可以精确的定位,可以实现小车前进路程和位置的精确定位。虽然采用步进电机有诸多优点,步进电机的输出力矩较低,随转速的升高而下降,且在较高转速时会急剧下降,其转速较低,不适用于小车等有一定速度要求的系统。经综合比较考虑,我们放弃了此方案。
方案 2:直流电机:直流电机的控制方法比较简单,只需给电机的两根控制线加上适当的电压即可使电机转动起来,电压越高则电机转速越高。对于直流电机的速度调节,可以采用改变电压的方法,也可采用PWM调速方法。PWM调速就是使加在直流电机两端的电压为方波形式,通过改变方波的占空比实现对电机转速的调节。
基于以上分析,我们选择了方案二,使用直流电机作为电动车的驱动电机。3.2 电机驱动模块的选择
方案 1:采用SM6135W电机遥控驱动模块。SM6135W是专为遥控车设计的大规模集成电路。能实现前进、后退、向右、向左、加速五个功能,但是其采用的是编码输入控制,而不是电平控制,这样在程序中实现比较麻烦,而且该电机模块价格比较高。
方案 2:采用电机驱动芯片L298N。L298N为单块集成电路,高电压,高电流,四通道驱动,可直接的对电机进行控制,无须隔离电路。通过单片机的I/O输入改变芯片控制端的电平,即可以对电机进行正反转,停止的操作,非常方便,亦能满足直流减速电机的大电流要求。调试时在依照上表,用程序输入对应的码值,能够实现对应的动作。表1是其使能、输入引脚和输出引脚的逻辑关系。
表3.2 L298N的引脚和输出引脚的逻辑关系
EN A(B)
H H H L
IN1(IN3)
H L 同IN2(IN4)
X
IN2(IN4)
L H 同IN2(IN4)
X
电机运行情况
正转 反转 快速停止 停止
基于以上分析,我们选择了方案二,用L298N来作为电机的驱动芯片。3.3 控制器模块的选择
方案1:采用凌阳的SPCE061A小板作为主控制芯片,而且可以采用凌阳的小车模组,可以很快的完成其基本功能,当是用该小板存在一定的局限性,较难
第 9 页
湖北轻工职业技术学院
扩张功能,而且各个模块的拼凑,没有比集成在一块板的稳定性高。
方案2:采用STC89C52作为主控制芯片,该芯片有足够的存储空间,可以方便的在线ISP下载程序,能够满足该系统软件的需要,该芯片提供了两个计数器中断,对于本作品系统已经足够,采用该芯片可以比较灵活的选择各个模块控制芯片,能够准确的计算出时间,有很好的实时性。
基于以上分析,我们选择了方案二,用STC89C52作为电机的主控制芯片。
第 10 页
湖北轻工职业技术学院
四 系统硬件电路设计
系统采用存储空间较大的STC89C52作为主控制芯片,电动车电机驱动芯片采用L298N;并利用直流电机驱动小车,能较有效的控制其在特定位置转弯及行驶出错处理,该系统无论在结构和技术上都具有较好的科学性。4.1 显示模块的设计
4.1.1 显示模块的仿真图
显示模块中主要考虑的是显示什么,综合考虑后,我想到的首先是时间的显示,于是我采用时钟芯片DS1302来实现时间的显示,单纯的显示时间似乎很无趣,于是我加入了温度的显示,温度传感器DS18B20结构完善,连接简单,功能齐全,易于控制。合并以上的思路,我确定出了显示的模块,具体的仿真图如下:
图3 显示模块的电路原理图
4.1.2 显示模块的流程
显示模块是智能小车额外增加的功能,但它仍然是重要的组成部分,显示模块是如何工作的呢?其实,先是由按键控制时钟芯片DS1302,进行时间的调节,在调节的过程中,信号传递给STC89C52,单片机将其翻译后发送信号给时钟芯片DS1302,时钟芯片DS1302会将时间的改变显示在LCD1602上,同样的道理,温度传感器DS18B20也是先将检测到的信号传递给单片机,单片机再传递给LCD1602
第 11 页
湖北轻工职业技术学院
4.2 直流电机的驱动模块
4.2.1 直流电机驱动模块的仿真图
图4 直流电机驱动模块的仿真图
4.2.2 直流电机驱动模块的流程图
电机驱动模块的核心是电机的驱动芯片及电机,电机选择了直流电机,这样可以方便控制,而电机的驱动芯片L298可以同时控制两个直流电机,其中芯片中连接单片机的5引脚和7引脚用于控制直流电机1,而芯片中的10引脚和12引脚用于控制直流电机2.电机1接的是小车的左轮,电机2接的是小车的右轮,当两个电机一起正向转动时,小车前进;当两个电机一起反向转动时,小车后退;当电机1正转,电机2反转时,小车右转;当电机1反转,电机2正转时,小车左转。由于无线模块只能控制锁存的4条线路,不能将功能都进行有效控制,只能控制前进和后退,所以额外采用按键来控制左转和右转。
第 12 页
湖北轻工职业技术学院
图5 直流电机驱动模块的流程图
第 13 页
湖北轻工职业技术学院
五 软件的简单介绍
在这次研究中,主要用到了keil,protues,proter和STC_ISP_V480等软件 5.1 Keil的简介
单片机开发中除必要的硬件外,同样离不开软件,我们写的C语言源程序要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果你使用C语言编程,那么Keil几乎就是你的不二之选(目前在国内你只能买到该软件、而你买的仿真机也很可能只支持该软件),即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。5.2 protues的简介
Protues软件是英国Lab center electronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。Protues软件具有其它EDA工具软件(例:multisim)的功能。这些功能是:(1)原理布图(2)PCB自动或人工布线(3)SPICE电路仿真。
支持当前的主流单片机,如51系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列、68000系列等。软件仿真功能如下:1)提供软件调试功能 2)提供丰富的外围接口器件及其仿真RAM,ROM,键盘,马达,LED,LCD,AD/DA,部分SPI器件,部分IIC器件。这样很接近实际。在训练学生时,可以选择不同的方案,这样更利于培养学生。3)提供丰富的虚拟仪器,利用虚拟仪器在仿真过程中可以测量外围电路的特性,培养学生实际硬件的调试能力。4)具有强大的原理图绘制功能。电路功能仿真特点如下:在PROTUES绘制好原理图后,调入已编译好的目标代码文件:*.HEX,可以在PROTUES的原理图中看到模拟的实物运行状态和过程。PROTUES 是单片机课堂教学的先进助手。PROTUES不仅可将许多单片机实例功能形象化,也可将许多单片机实例运行过程形象化。前者可在相当程度上得到实物演示实验的效果,后者则是实物演示实验难以达到的效果。
第 14 页
湖北轻工职业技术学院
它的元器件、连接线路等却和传统的单片机实验硬件高度对应。这在相当程度上替代了传统的单片机实验教学的功能,例:元器件选择、电路连接、电路检测、电路修改、软件调试、运行结果等。
课程设计、毕业设计是学生走向就业的重要实践环节。由于PROTUES提供了实验室无法相比的大量的元器件库,提供了修改电路设计的灵活性、提供了实验室在数量、质量上难以相比的虚拟仪器、仪表,因而也提供了培养学生实践精神、创造精神的平台。
随着科技的发展,“计算机仿真技术”已成为许多设计部门重要的前期设计手段。它具有设计灵活,结果、过程的统一的特点。可使设计时间大为缩短、耗资大为减少,也可降低工程制造的风险。相信在单片机开发应用中PROTUES也能获得愈来愈广泛的应用。
软件缺点:器件库溃乏,库中缺少很多重要芯片,严重影响电路仿真软件出错或乱码,此时仿真效果不及硬件仿真。5.3 STC_ISP_V483的简介
在运行STC_ISP_V483下载软件之前,应该先给出ISP的C程序源代码ISP.C.要注意的是:此程序是在Keil-C中要建立工程文件,包含IAP.C函数,并且在IAP.C和ISP.C中都要保留STC的定义.传入用户代码时,需要与计算机进行通信,一般采用RS232串行通信,数据协议采用简单协议。具体的使用方法:
一、先把学习实验板和计算机连接好(接好串口线和电源)
二、打开STC-ISP v483,在MCU Type栏目下选中单片机,如STC89C52RC:根据您的9针的数据线连接情况选中COM端口,最好把波特率适当下调一些,按图示选中各项:
第 15 页
湖北轻工职业技术学院
图6STC-ISP v483的界面图
三、先确认硬件连接正确,按下图点击“打开文件”并在对话框内找到您要下载的HEX文件:
四、选中两个条件项,这样可以使您在每次编译KEIL时HEX代码能自动加载到STC-ISP,点击“Download/下载”:
五、手动按下电源开关便即可把可执行文件HEX写入到单片机内,下图是正在写入程序截图:
第 16 页
湖北轻工职业技术学院
图7 单片机程序下载截图
第 17 页
湖北轻工职业技术学院
六 结论
根据本次设计要求,我们认真分析了设计课题的需求,还系统学习了51系列单片机的工作原理及其使用方法,并独自设计智能小车的整个项目。
虽然条件艰苦,但经过不懈钻研和努力,购买到了所有所需的元器件,并系统的进行了多项试验,最终做出了整个小车的硬件系统,然后结合课题任务和小车硬件进行了程序的编制,本系统能够基本满足设计要求,能够较快较平稳的是小车沿引导线行驶,但由于经验能力有限,该系统还存在着许多不尽人意的地方有待于进一步的完善与改进。
通过本次课题设计,不仅是对我们课本所学知识的考查,更是对我的自学能力和收集资料能力以及动手能力的考验。本次毕业设计使我们对一个项目的整体设计有了初步认识,还认识了几种传感器。本次毕业设计使我们意识到了实验的重要性,在硬件制作和软件调试的过程中,出现了很多问题,最终都是通过实验的方法来解决的。还有以前对程序只是一个很模糊的概念,通过这次的课题设计使我对程序完全有了一个新的认识,并能使用Keil软件熟练的进行编程了。通过本次课题设计,极大的锻炼了我们的思考和分析问题的能力,并对单片机有了一个更深的认识。
总之,在课题设计的过程中,无论是对于学习方法还是理论知识,我们都有了新的认识,受益匪浅,这将激励我们在今后再接再厉,不断完善自己的理论知识,提高实践运作能力。
七 致谢
本设计能够顺利完成,还承蒙何老师以及身边的组队同学的指导和帮助。在设计过程中,何老师给予了悉心的指导,最重要的是给了我们组队解决问题的思路和方法,并且在设计环境和器材方面给予了大力的帮助和支持,在此,我对何老师表示最真挚的感谢!同时感谢所有帮助过我的同学!
第 18 页
湖北轻工职业技术学院
参考文献
[1]康华光.电子技术基础模拟部分[M].(第四版).北京:高等教育出版社,1999.[2]康华光.电子技术基础数字部分[M].(第四版).北京:高等教育出版社,2000.[3]陈大钦.电子技术基础实验[M].(第二版).北京:高等教育出版社,2000.[4]谢自美.电子线路设计•实验•测试[M].(第三版).武汉:华中科技大学出版社,2006.[5]胡乾斌 李光斌 李玲等.单片微型计算机原理与应用[M].(第二版).武汉:华中科技大学出版社,2006.[6]郭天祥.新概念51单片机C语言教程[M].电子工业出版社,2009.[7]谭浩强.C语言设计[M].(第三版).清华大学出版社,2005.[8]崔炳哲.电子控制入门[M].北京:科学出版社,2003.[9]樊昌信 曹丽娜.通信原理[M].(第六版).北京:国防工业出版社,2009.[10]全国大学生电子设计竞赛组委会编.全国大学生电子设计竞赛[M].北京理工大学出版社,1999.[11]郭强.液晶显示应用技术[M].北京:电子工业出版社,2003.[12]郁有文 常健 程继红.传感器原理及工程应用[M].(第二版).武汉:西安电子科技大学出版社,2006.[13]许纪倩.机械工人速成识图[M].(第二版).北京:机械工业出版社,2009.[14]高军.电动智能小车[D].http://www.xiexiebang.com/ [15]Zhi-HongJiang.51MCU technology and application development case selection[M].Tsinghua University Press 2008.第 19 页
湖北轻工职业技术学院
附录一:实物图
图1实物图
第 20 页
湖北轻工职业技术学院
图2实物图
附录二:总程序
}
void dianji1(){
for(j=10;j--;j>0)left2=0;#include
if(num>=10)
num=0;
else
{
if(num<=m1)
left=1;
else if(num<10)
left=0;
}
}
{
}
}
void run(){ m=2;
m1=2;left1=1;
left3=1;left4=0;
}
void zuo(){
m=0;m1=1;left1=1;left2=0;left3=1;}
left4=0;void you()
第 21 页
if(num1>=10)num1=0;else {
if(num1<=m)
right=1;else if(num1<10)
right=0;
}
湖北轻工职业技术学院
{ m=1;m1=0;left1=1;left2=0;left3=1;left4=0;} void timer0()interrupt 1 { TH0=0XF8;//1ms定时
TL0=0X30;num++;num1++;dianji2();dianji1();} void main(){ TMOD=0X01;TH0= 0XF8;//1ms定时
TL0= 0X30;TR0= 1;ET0= 1;EA = 1;while(1){
switch(P0&0x03){
case 0x00:
// 全部没有压线,直转
run();
break;
case 0x01:
// 右压线,左转
zuo();
break;
case 0x02:
// 左压线,右转
you();
break;} } }
第 22 页
第五篇:智能小车跟随系统的设计与制作分析
本科毕业论文(设计)
题目: 智能小车跟随系统的设计与制作
学院: 物理与电子科学学院
班级:
姓名:
指导教师: 职称:
完成日期: 年 月 日
智能小车跟随系统的设计与制作
摘要:
现在,小车跟随系统正处于研发与试用阶段,它有着多方面的优势:一方面,充分利用现有的道路资源,有效缓解交通阻塞;另一方面,可以大幅提高驾驶的安全性,减少交通事故的发生。因而推广和应用小车跟随系统已经成为解决交通问题的一个重要途径。
本文的主要研究工作是设计和制作智能小车跟随系统,整个系统包括硬件及软件两个部分。硬件部分包括控制电路,蓝牙通信电路,路径循迹电路,电源驱动电路,电机驱动电路等。软件部分主要包括通过编程使得小车按设定路径实现前进,左拐,右拐,加速,减速,并在小车前进的过程中不断调整小车所在位置等功能。
本文是以电动小车为基础,增加红外传感器,蓝牙等。利用传感器来有效地确定小车前进路径、小车所在位置等信息。单片机接收并处理传感器所产生的信号并加以一定的算法来判断两个小车的状态及其相互间距。最后通过蓝牙来进行小车间的通信,从而控制两个小车加、减速度来使得小车间距相对恒定。该智能小车跟随系统能够实现的功能有:自动循迹;保持车距;紧急停车等。
关键词:智能小车跟随系统;蓝牙通信;单片机;软件设计
目 录 引言..............................................................1 1.1 研究背景及意义..............................................1 1.2 智能车辆研究现状............................................1 1.3 研究内容....................................................1 2 功能分析..........................................................2 2.1 主控模块....................................................2 2.2 循迹模块....................................................3 2.3 电机驱动模块................................................3 2.4 电源模块....................................................3 2.5 通信模块....................................................3 3 硬件设计..........................................................3 3.1 主控硬件设计................................................4 3.2 循迹硬件的设计..............................................4 3.3 驱动硬件设计................................................5 3.4 电源硬件设计................................................5 3.5 蓝牙通信串口硬件设计........................................6 3.6 本章总结....................................................6 4 软件的设计与实现..................................................6 4.1 概述........................................................6 4.2 软件的结构设计..............................................7 4.3 主要模块的实现..............................................8 4.3.1循迹流程图.............................................8 4.3.2 电机驱动流程图.........................................9 4.3.3 位置判断流程图........................................10 4.3.4 蓝牙通信流程图........................................11 4.4 本章小结...................................................11 5 系统功能测试.....................................................11 5.1 系统功能测试...............................................12 2 5.2 测试结果分析...............................................13 6 结论与展望.......................................................13 6.1 结论.......................................................13 6.2 展望.......................................................13 参考文献...........................................................14 致谢...............................................................15
1 引言
1.1 研究背景及意义
随着经济的快速发展,城市的人口不断增加,从而城市的交通压力也越来越大。在中国的一些大中型城市,由于严重的堵车问题,上、下班路途中所消耗的时间可能会长达数个小时。此外,近些年来,交通事故频繁发生,这已经危害到了许多人的生命和财产。因此,想要解决交通问题已经不能仅仅依靠交通管理部门,更需要从科技的角度来解决这一问题。幸运的是,在最近几年传感器、单片机技术突飞猛进,受此影响,智能小车跟随技术正在逐步从可能转为现实。智能小车跟随技术是指通过车载传感系统感知道路环境,通过现代通信技术使车间进行通信,同时加以一定的算法分析,使得后车紧跟前车行驶。这一特点使得它具有如下优点:首先,充分利用道路资源,减少堵车事件发生的概率。此外,它还能够在行驶过程中探测可能发生危险事故,由于计算机有着比人脑更快的反应速度,从而能够避免交通事故的发生。1.2 智能车辆研究现状
智能车辆的发展过程可以分为以下三个阶段:
第一阶段:20世纪50年代。在这一时期,人们刚刚开始接触研究智能车辆。尽管这一时期的智能小车系统仅能在一个固定的轨道上运行,自动化水平比较低,但已经符合智能车辆的基本要求。
第二阶段:80年代中后期。在这一阶段,随着计算机的应用与传感器技术的不断发展,智能车的研究有了较大的进展,尤其在一些发达国家,取得了巨大的进步,促使智能车辆不断深入各个实用领域。
第三阶段:90年代至今,智能车辆的研究取得了更快的发展。尤其是近些年来,随着各个国家在智能车辆的研究之中投入的人力、财力不断加大,智能小车的发展越来越快。如今,智能车辆已经不仅仅局限于科学研究和工厂使用,它也不断地走入了许多人的日常生活中。1.3 研究内容
本设计是基本AT89S52单片机的,通过蓝牙使两个智能电动车相互通信来组成智能小车跟随系统。设计的主要内容是对电动车进行硬件电路与软件的设计。其中硬件电路主要包括控制电路,蓝牙通信电路,路径循迹电路,电源驱动电路,电机驱动电路等。其中,AT89S52单片机作为每个小车的控制核心,控制着电动车的各个模块正常工作,并通过编程使得小车按照预定路径实现前进,左拐,右 1 拐,紧急停车,加速,减速等功能。
本设计是以电动小车为基础,增加红外传感器,蓝牙等。利用传感器来有效地确定小车前进路径、小车所在位置等信息。单片机接收并处理传感器所产生的信号并加以一定的算法来判断各个小车的状态及其相互间距。最后通过蓝牙来进行小车间的通信,从而控制各个小车加、减速度来使得小车间距相对恒定。
综上所述,本设计中整个系统电路结构简单,性能相对较高。主要采用如下技术:首先是选择适当的传感器。利用传感器来实时监测小车位置并传送给单片机,单片机根据传感器所传回的信息来控制小车的两个电机运转,实现循迹行走功能。其次,利用蓝牙设备在两个小车之间进行通信,由其中一个小车的单片机来判断两小车的相对位置,从而产生控制指令,来改变小车的行驶速度。2 功能分析
根据设计内容的要求,采用基于单片机的控制方式,使用蓝牙设备进行通信。图2-1为系统框图。
图2-1 系统框图
2.1 主控模块
目前,具有人工智能的电子产品、设备通常采用的控制器都是单片机。现在市场上的单片机厂商很多,单片机种类也不尽相同,功能更是各具特色。本文设计的是一个相对简单的控制系统,无需采用一些特殊功能的单片机。因此,根据实际条件,最终选择在两辆小车上各搭载一片ATMEL公司的AT89S52芯片作为每个小车的主控器件。图2-2为AT89S52控制原理图。
图2-2 AT89S52控制原理图
2.2 循迹模块
循迹装置类型选择:采用集成QTI传感器DM-S53401,它是一种通过光电接收管来探测其下表面反射光强度的传感器。根据反射光强度的不同,从而导致传感器输出的变化。由于它的体积较小、具有日光过滤器,因而在小车中使用性能较好。
循迹硬件数目选择:采用4路QTI传感器循迹。在小车行驶过程中,根据轨道的设计,小车会遇到直行或左、右拐弯的路段,因而可以使用中间2路来判断小车与直行道的相对位置,而用外侧2路来判断小车是否在拐弯路段。因此,4路循迹可以完成任务的要求,且设备数目最少。2.3 电机驱动模块
电机选择:采用直流伺服电机,它主要通过接收脉冲来运转。相比于步进电机,直流伺服电机有着一定的优势:精度更高,克服了步进电机中的失步问题;高速性能好;抗过载能力强;运行稳定;反应时间短;发热和噪声都有着明显的降低。2.4 电源模块
电源选择:采用干电池组加移动电源共同供电,即在采用4节1.5V干电池通过稳压单元降至5V后给单片机及其他设备(如传感器、电机等)供电的基础上,增加一个移动电源同时供电。一方面,可以保证小车电压稳定,设备正常运行而不会断电。另一方面,也不像蓄电池所占体积那么大,安装相对容易。2.5 通信模块
通信设备选择:采用蓝牙装置进行通信。尽管相比红外通信,它的成本相对较高。但其有着诸多特有的优点:通信距离相对较长,一般在10米左右,且可以转弯,不用对准。传输速度快,且可以加密,更加安全。3 硬件设计
3.1 主控硬件设计
对于每个小车而言,主控电路的核心器件为AT89S52单片机,通过此单片机来控制小车完成预计的功能。其中,小车的启动、复位、断电都需要手动开关来控制。由QTI循迹模块组成的循迹电路进行实时监测,不断判断小车的位置,并将检测到的信息发回给单片机,单片机经过运算后,发送PWM波给电机,从而控制小车速度、启停、转弯、直线行驶等。除此之外,两个小车的单片机还都需要连接一个蓝牙设备,用于在两个单片机之间传递信息。系统框图如图3-1所示。
图3-1 主控电路连接图
3.2 循迹硬件的设计
由于本设计在循迹模块中采用的是集成的QTI循迹模块,故循迹装置内部电路无需再重新设计,仅需将集成的QTI循迹模块正确连入AT89S52单片机中集可。具体电路连接图见图3-2。
图3-2 QTI设备连接图
3.3 驱动硬件设计
电机选择:采用直流伺服电机。伺服电机具有如下特点:它在接收到一个PWM波形脉冲时就会旋转一定的角度,通过不断接收脉冲就可以使得小车持续运动。对于本设计所选用的电机而言,当接收到的脉冲是高电平持续时间为1.5ms而低电平持续时间是20ms时,电机不发生转动;当低电平时间保持不变,高电平持续时间越接近1.7ms时,电机顺时针转速越快,在1.7ms时,电机顺时针旋转速度达到最大;反之,高电平持续时间越接近1.3ms时,电机逆时针转速越快,在1.3ms时,电机逆时针旋转速度达到最大。
在小车运行过程中,单片机AT89S52通过P1.1和P1.2口发送脉冲波形来分别控制左右电机运转,即将左右电机分别与P1.1和P1.2口相连即可。3.4 电源硬件设计
本系统中的单片机所需的供电电压为+5V工作电压,而电路板的设计是采用6-9V的直流电输入,再通过稳压芯片来为单片机输入5V的工作电压。每节干电池所提供的电压为1.5V,采用4节干电池串联后可以得到直流电输入口所要求的最小电压6V。因此,选择4节干电池串联后接入单片机的供电口。此外,由 于干电池所供电压并不稳定,容易造成小车传感器、蓝牙等设备的掉电,从而影响小车的正常工作,故再额外通过USB-ISP线将输出为5V的移动电源连接至小车的ISP下载口即可。3.5 蓝牙通信串口硬件设计
本系统中两辆小车需要在一定情况下进行通信,因而需要使用一个近距离的无线通信装置。在本设计中,选用蓝牙通信装置HC-05来实现此功能。HC-05的引脚原理图如如图3-3所示。
图3-3 蓝牙引脚原理图
此蓝牙在配对成功后的使用方法与串口的使用方法一样,故同样是将蓝牙接口TXD、RXD分别连至单片机的P3.0、P3.1口,VCC接高电平,GND接地即可正常使用。3.6 本章总结
本章主要分析了小车实现各个功能所需的硬件设备,硬件选择,硬件设备连接等问题,主要包括主控硬件、循迹硬件、驱动硬件、电源硬件、蓝牙硬件等,通过对硬件的分析与设计,为小车能正常运行做好的硬件方面的准备工作。4 软件的设计与实现 4.1 概述 在基于单片机的系统设计中,除了要对系统硬件进行设计外,还要对系统的软件进行设计。在本设计之中,大量的执行工作需要对程序进行设计,这一工作对于系统而言尤为重要。
在编写程序时,要注意一下几点要求: 1.实时性,即软件反应、执行速度快。
2.程序简练,即要求既要完成目标,又要以最简洁的方式表述出来。3.程序的灵活性与可拓展性,即程序拥有较强的适应能力,在功能需要拓展时可以方便的修改。
4.可靠性,即在系统运行过程中因为软件方面的故障而造成的系统错误尽可能的少。
此外,在用C语言进行程序设计时,具体步骤如下: 1.明确要求,确定软件所要实现的功能。2.分析具体问题,建立数学模型。3.绘制出各个程序模块的流程图。
4.将各个程序组合在一起,构成一个完整的程序。最后,在程序设计的过程中,应注意一下几点要求: 1.各个功能、模块尽量层次化。2.存储空间合理,节省内存。
3.软件流程要合理,软件布局要清晰。4.2 软件的结构设计
在本设计中,软件的结构设计采用了模块化的结构设计,将整个系统分成五大模块,包括主程序模块、循迹程序模块、电机程序模块、蓝牙通信程序模块、位置判断程序模块等,依次设计系统整体软件结构和各个模块的软件结构,最后再将其汇总成为一个完整系统。系统的软件结构图如图4-1所示。
图4-1系统软件结构图
4.3 主要模块的实现 4.3.1循迹流程图
循迹流程图如图4-2所示。
图4-2循迹流程图
小车在启动后会直接进入循迹路段,正常直行情况下,有且只有中间两路QTI装置(中左与中右)将能够探测到黑线。而在执行前进过程中,会因为一些因素而造成略微偏离轨道,此时,小车的中间两路QTI装置可能将会存在其中一路脱离黑线。此时,则应向单片机发出调整指令,改变小车的行驶状态,使其回归黑线中央行驶。当小车来到拐弯路段时,外部两个QTI装置(左与右)将会探测到黑线,表明小车来到拐弯路段,则应向单片机发出调整指令,改变小车的行驶状态,使其完成拐弯任务。而当小车到达定位处时,四路QTI循迹装置将全部探测到黑线,此时则应向单片机发出计数自加指令后使小车继续向前行驶。4.3.2 电机驱动流程图
电机驱动流程图如4-3所示。
图4-3电机驱动功能流程图
在两个小车进行通信时,按照预期,随着两个小车的位置变化,两个小车的行驶速度也应该随之变化。在此设计中,整个轨道共有8个定位点。对于小车A,速度变化是从检测到定位点时开始的,所以小车A的驱动流程图应从检测到定位点开始。而对于小车B,速度变化是在中断中产生的,所以小车B的驱动流程图应从中断中开始。此外,本设计的要求是使小车B跟随小车A行驶,使得小车A 与小车B的距离始终保持在大约等于两个定位点间的距离。因此,想要确定两个小车的速度,首先要计算两个小车距离。本设计是通过计算两小车共检测到的定位点数之差来判断两个小车的距离。当两个小车所探测到的定位点数相差为1,表示两车距离适中,驱动电机使两车都快速行驶;当两个小车探测到的定位点数相同,表示两车距离过近,驱动电机使前车快速行驶而后车慢速行驶,从而拉大两车间距;而当两个小车所探测到的定位点数相差大于1,表示两车距离过远,驱动电机使前车慢速行驶而后车快速行驶,以此来缩短两车距离。另外,前车发生故障时,应使得后车在与其距离过近时自动停车,防止出现两车相撞的情况。4.3.3 位置判断流程图
位置判断流程图如图4-4所示。
图4-4 位置判断流程图
本设计中,两个小车需要构成一个协作的系统平台,因此,需要不断地判断自己的位置。在此设计中,在完整轨道中平均选择了8个定位点,在小车途经这8个定位点时,单片机选择一个变量来计算小车在行驶过程中所经过的总点数,从而来大致判断小车的所在位置。当计数达到8时,表示小车已经运行了一整圈回到出发点,故计数清零。
轨道图如图4-5所示。
图4-5 轨道图
4.3.4 蓝牙通信流程图
在本设计中,两个小车要通过相互协作来构成一个智能小车系统,因此,在小车运行过程中,两小车需要在必要的时刻相互通信并发送指令。在此系统中,小车A为整个系统的中枢,一切信息要在小车A的单片机中进行运算处理,再将控制命令由小车A发出。蓝牙通信流程图如图4-6所示。
图4-6 蓝牙通信流程图
4.4 本章小结
本章首先介绍了针对软件设计的要求、过程等注意事项,然后系统的介绍了针对本设计的软件结构各个模块的设计方案、思路,并列出了各个主要模块的设计流程图。5 系统功能测试
在完成系统的设计与制作后,必须要对所设计的系统进行测试。通过测试,检测需要单片机所完成的功能是否能够实现。5.1 系统功能测试
测试过程中,首先依次对各个小车进行单独的模块功能测试,然后再进行整个系统的功能测试。即首先分别对小车A、小车B进行单独循迹功能的测试,查看小车A、B的性能。然后再将小车A、B通过蓝牙连接相互通信,测试整个系统的性能。
小车A循迹功能单独测试,结果如表5-1所示。
表5-1 小车A循迹测试结果
第一圈 第二圈 第三圈 第四圈 第五圈 1 完成 完成 完成 完成 完成 完成 完成 完成 完成 完成 完成 完成 完成 完成 完成 6 完成 完成 完成 完成 完成 完成 完成 完成 完成 完成 完成 完成 完成 完成 完成
卡顿
完成 完成 卡顿
完成 完成 完成
卡顿
完成 卡顿
小车B循迹功能单独测试,结果如表5-2所示。
表5-2 小车B循迹测试结果
第一圈 第二圈 第三圈 第四圈 第五圈 1 完成 完成 完成 完成 完成 完成 完成 完成 完成 完成 完成 完成 完成 完成 完成 完成 完成 完成 完成 完成 完成 完成 完成 完成 完成 完成 完成 完成 完成 完成 完成 完成 完成 完成 完成
卡顿
完成 完成 完成 完成
系统性能测试,结果如表5-3所示。
表5-3 系统功能测试结果
第一圈 第二圈 第三圈 第四圈 第五圈
运行正常 运行正常
小车A在定位点3处连续探测到2次定位标志,造成出错
运行正常 运行正常
5.2 测试结果分析
小车A在运行过程中,由于传感器、电机等设备问题,有时会造成中途卡顿,导致小车无法正常运行,但总体结果基本正确,不影响实验结果。
小车B与小车A相比,运行较为流畅,基本可以正常运行,很少会出现故障,达到预期目标。
在整个系统协调运行时,除了小车偶尔发生的卡顿意外,基本不会造成其他故障,基本可以达到预期的效果。
总体而言,主要是由于传感器并不精确,在室内光线、太阳光等灯光的影响下,偶尔会导致运行出现故障。但从整体来看,基本功能都可以正常实现,不影响观测结果,系统基本能够正常运行。6 结论与展望 6.1 结论
在本设计中,A、B两个小车的控制核心都选用的是AT89S52单片机,这使得小车具有较好的稳定性和持续性。循迹装置选择的是体积小、功耗低、应用方便、集成度高的QTI传感器DM-S53401。电机选择的是两轮独立的直流伺服电机,通过控制两个轮不同的转速来改变方向。车间通信选择的是蓝牙通信装置HC-05,它具有较高的可靠性,可以保证两车顺利的完成通信功能。
在小车运行的过程中,利用QTI传感器来实时监测小车的路面信息,单片机接收并处理传感器监测到的信号,将运动控制指令发送给电机,使得小车正常行驶。此外,两个小车还通过蓝牙装置进行车间通信,并根据两车的状态调整小车的运动状况。该系统最终能够完成的功能有:循迹、变速、保持两车间距稳定、紧急停车。6.2 展望
本智能小车系统最主要的前景是运用到无人驾驶汽车上。一方面,可以通过小车系统的车间通信规划行车路径,充分利用现有的道路资源,提高道路利用率,减少堵车事件的发生;另一方面,还通过安装各种传感器感知路面状况来避免交通事故的发生。参考文献:
[1] 李建忠.单片机原理及应用.第二版,西安电子科技大学出版社,2008.2 [2] 李晓莹.传感器与测试技术.高等教育出版社,2005.1 [3] 禹帆.蓝牙技术.清华大学出版社,2002年
[4] 杨代强.基于单片机的智能玩具电动车的设计与实现.电子科技大学硕士论文,2012.11 [5] 高峰.单片微机应用系统设计及实用技术.北京:机械工业出版社,2004.4 [6] 刘彩虹.智能小车路径跟踪技术的研究.浙江大学硕士论文,2007.6 [7] 碰新荣.基于智能小车平台的多车协作研究.上海交通大学硕士论文,2010.2 [8] 谭浩强.MCS-51单片机应用教程.清华大学出版社,2000.5 [9] V.Gradinescu, C.Gorgorin, R.Diaconescu, V.Cristea, L.Iftode.Adaptive traffic lights using car-to-car communication.IEEE Vehicular Technology Conference,2007 [10] Seki K.Applications of DSRC in Japan.ITS Center,Japan Automobile Research Institute,2002
致谢
历时四个多月的本科毕业论文即将完成了,心中有着许多感慨。这几个月来,从最初的选题、查找资料、撰写开题报告、选择零件设备、学习软硬件的使用、测试、撰写初稿、以及后期的论文修改,无时无处不存在卢教授的帮助和指导,这一幕幕都在我的脑海中留下了深深的印象,这让我的心中有着无限的感激和感动。
由于考研复试占用了一定的设计论文的时间,所以在开始毕业设计的时侯时间已经有点儿紧张。在回到学校开始做毕业设计的前两个月,几乎每天都呆在实验室。在此,我非常感谢仝老师提供给我的实验环境。如果没有一个理想的实验环境,我的论文和设计根本无法在短短的几个月内完成。
同时,在这一年里,我也查阅了不少的资料,这些资料使我的论文更加完整。所以,非常感谢大同大学图书馆,感谢参考文献中的每一位作者。
最后,还要感谢我的同学、朋友在我做毕业设计时为我提供的帮助和支持!