摘要 Abstract 第1章 概述 1.1 选题背景 1.2 研究意义和发展前景 1.3 设计概况 第2章 方案选取与分析 2.1主控系统 2.2电源模块 2.3电机驱动模块 2.3.1 电机模块选取与分析 2.3.2电机驱动模块选取与分析 2.4 黑线循迹模块 2.5 超声波避障模块 第3章 系统硬件电路设计 3.1 总体设计 3.2 电源电路设计 3.3 电机驱动电路设计 3.4 黑线循迹设计与实现 3.5 红外避障电路的设计 3.6 超声波避障的设计 3.6.1 超声波避障原理 3.6.2 超声波模块工作原理 第4章 软件设计 4.1 软件设计思想 4.2 黑线循迹程序设计 4.3 红外避障程序设计 4.4 超声波避障程序设计 第5章 系统调试 5.1 硬件调试 5.2 软件调试 5.3 软硬联调 5.4 成果展示 5.4.1 实物图 5.4.2 黑线循迹 5.4.3 红外避障 5.4.4 超声波避障 5.4.5 红外遥控 结束语 参考文献 附录 原理图 基于单片机的多功能智能小车设计
摘要 社会的经济和科技日新月异的发展着,汽车行业也屡创新高,由于汽车数量的增加,拥挤堵车,车辆事故等现象早已屡见不鲜,交通运输方便面临着严峻考验。为了避障类似情况的发生,设计新型的智能化、安全并高效的汽车控制系统势在必行。 本课题的内容是基于单片机的多功能智能小车设计,由于STC89C52具有良好的易用性,功能比较全面,又相对廉价,所以采用STC89C52这款单片机来作为整个系统的控制核心芯片。同时还采用L293D作为电机的驱动芯片,以及其他的硬件模块,如HC-SR04超声波探测模块、红外避障模块、电源模块、红外遥控模块等共同构成。软件上采用简单易懂的C语言编程来完成程序代码的编写,从而达到智能小车黑线循迹、红外避障、红外遥控、超声波避障等功能的实现。 第1章 概述
1.1 选题背景自从首辆的智能小车出现以后,其发展就迅速地普遍用于侦查、运输、自动化、监测和航空等各个领域。 一方面是因为智能小车那日渐提高的智能水平,而且正在迅速地使人们的生活形式发生改变。人们从未停止过对自然的认知、探讨和改造,能够让帮助或代替人类劳动的机器创造出来是人类梦寐以求的事情。 另一方面,汽车在人们生活中越来越普遍与常见,发展十分迅速,相关的研究也层出不穷。不仅如此,在学校学习中智能小车的字眼也不陌生,尤其是电子设计相关的项目中。大学生们经常会参加一些电子项目的比赛竞赛,往往也会拿到小车类的题目设计,这说明全国各大高校对这类题目的研究亦是十分重视。本设计即是产生于上述背景之下,设计出来的智能小车可以实现黑线循迹、红外线躲避障碍、红外遥控和超声波避障等功能。 1.2 研究意义和发展前景由于智能化的产生,我们的生活发生了很大改变,它为我们提供了许多便利的同时,也作为今后的一个发展方向。对于智能而言,就是人们预先把所需的模式设定完成,在指定的环境里不用通过人为的操作和管理即可自动地运作。它的应用领域非常广,如科学探索、智能家居、工业生产等等领域都可以发现它的影子。而智能小车就属于智能领域的一个产物,它也可以分类到智能玩具中的一种,因为这类智能玩具的可操作性和互通性比较好,而且还能够根据人们提前设置好的模式自动地去运作,所以深受到用户的喜爱。 另外,智能化还可以被高危搜索、机器领域等许多方面所利用,尤其是在机器人开发上有着良好的发展前景。自从人类进入了21世纪,由于科技水平的迅速发展以及对生活质量的高要求,人们在汽车相关如舒适度和安全性等等的要求愈发强烈。各种新兴的先进技术,比如汽车自动驾驶、汽车智能交通和车辆巡航技术等等都被应用和研究,人类对于智能汽车不断地开发和研究着,这类技术也正成为全球汽车研究的热门领域。 因此,智能化的小车的研究很有必要,它的发展对于未来或许有着举足轻重的作用,所以智能化小车在当前有着很重要的研究意义的同时,还具备着广阔的发展前景和无法估量的市场价值。 1.3 设计概况本设计是一种新型的智能小车,它采用了STC89C52RC单片机来进行智能控制。在功能上其集合了黑线循迹、红外线避障、红外遥控,利用超声波避障等功能于一体。在实现一些简单的功能的同时,智能小车只是智能车辆的一个雏形,它的拓展空间无比强大,若在其基础上继续发展下去,一些基于智能汽车的高科技功能亦可实现,比如智能小车导盲、智能生产运输、智能测距等等。 其设计的思路比较相似于目前一些高新技术产业中的智能化机器人,对于智能机器人已经不再是罕见的东西了,它渐渐的融入到人们的日常生活之中,并为人类的生活带来便捷。但是与常见产品相比,智能化小车在某些方面更具有创新和独特性,这点是其他的产品所不足的地方,因此有着不可小觑的发展前景。超声波传感器是一种新型技术,并且立即被广泛地应用到众多领域之中,其采用了这个技术后可以在工作中不被能见度问题如光照强弱的影响所干扰。产品整体的灵敏度很高,而且需要的能耗比较低,可以在较为复杂的环境里将误差降到最低而完成工作。 小车的生产成本很低,对环境没有污染,而且使用的寿命长,安全性能好,十分符合在当今时代对智能产品所规定的各项指标。 第2章 方案选取与分析
2.1主控系统单片机的性能很强,资源也很多,价格相比更为实惠,而且还有着强大的控制功能,基于以上种种特点,由STC89C52单片机来作为本次设计最重要的一环,使其控制整个小车从而来实现预定的性能指标。STC89C52单片机是一种增强型的51单片机,具有超低功耗的特点,与普通的51系列单片机相比,它的抗干扰能力更强,运算的速度也更快,同时还能够支持ISP在线编程,片上集成了512字节的随机存取数据存储器,而且片内还含有32个I/O口,以及8k字节空间的闪速只读存储器,定时计数器共有三个。它的指令系统能够完全兼容一般的51系列单片机指令系统,这大大减小了系统软件方面设计的难度系数,而且其物美价廉,电路设计也比较容易。在后续的实验中了解到,STC89C52十分符合对系统的要求,无论是精确度还是运算速度都符合。 2.2电源模块稳压电源作为单片机控制系统中必不可少的组成部分,不仅仅给系统提供了多路电源电压,更是在系统的技术指标和抗干扰性能方面起到了举足轻重的作用。近年来,高效率的开关电源正在逐渐取代传统线性稳压电源的地位,尤其是单片机开关电源被迅速而广泛的应用,使其为设计出节能、环保、高效率的新型电源提供了良好的条件。本机采用2节3.6V可充电锂电池组,可充电电池组的电流驱动能力比较强,而且电压输出性能相对稳定。在电充满时,2节电池电压可以达到7.2v,经7805稳压到5v供给单片机。 2.3电机驱动模块
2.3.1 电机模块选取与分析第一种方案:对于整个小车系统的电机模块的需求,选择步进电机实现。这种电机有一个好处,它的每次转动都会产生不同的角度,而这个角度其能够计算出来,并且十分准确,这个优势对于智能小车在前行的过程中走了多远的距离,达到了什么位置都可以很容易的计算出来。但是这个电机也存在很明显的缺点,当电机工作时,旋转速度会越来越快,如此一来它的力矩就开始降低,并且成正比的规律下降。所以小车的运行速度就会有所限制,不利于智能小车的功能实现。。 第二种方案:对于整个小车系统的电机模块的需求,选择直流减速电机实现。这一种的电机质量相对较轻,很小巧不占用空间,非常好用和常见。与上述方案相比,此电机旋转起来的力矩就大得多。在它的电机内部里面,还存在一个齿轮组,能够起到减速的作用,这样的话就避免了反反复复调速的问题。只要用单片机来控制,就可以直接命令电机正向旋转或是反向旋转或是停止运行。 对比上述两方案的优劣度最终决定选择第二种方案的电机种类。 2.3.2电机驱动模块选取与分析第一种方案:对于整个小车系统的电机驱动模块的需求,选择继电器实现。这种驱动有个明显的好处就是它的电路比较简单易懂,不像有些电机的驱动电路十分复杂。但是它也有许多的不足之处,这种电机驱动的寿命很短,易损坏,而且它的响应时间相对比较慢,不是很可靠。因此决定放弃此方案。
第二种方案:对于整个小车系统的电机驱动模块的需求,选择L293D此款电机驱动芯片实现。这种驱动芯片负载很强,无论是电压还是电流都十分大,而且该芯片采用16脚封装,属于H桥集成电路。除此之外,它还有许多的优点。当电机驱动开始工作时,电压最高可以达到36福特,电流也十分大,最大可以达到2安培,保持1安培的电流稳定工作。能用来驱动直流电动机和继电器线圈等感性负载,由于其输入端能够直接与单片机相连,所以可以很方便地受到单片机的控制。当小型直流电机被驱动时,其可以直接控制两路的电机,并实现电机的正、反转,只要改变输入端的逻辑电平即可实现此功能。 综合以上考虑最终决定采用第二套方案,选用L293D芯片更合适。 图2-3 L293D 2.4 黑线循迹模块第一种方案:对于整个小车系统的循迹模块的需求,选择光敏电阻实现。此种方案简单易行,因为光敏电阻的阻值会很敏感的产生变化,而使其阻值发生变化的原因就是它附近的明暗度,所以让其处在黑白截然相反的颜色上时,阻值会很明显的发生变化,由此电压比较器接收到阻值的变化值时就能够输出不同的电平信号,单片机就由此可以判断从而释放对应命令来实现小车的左右转向、前进或者停止等行动。但是实际发现效果并不好,而且有较大的误差现象,很容易被周围的环境所影响,稳定性太差。所以考虑放弃此方案。 第二种方案:对于整个小车系统的循迹模块的需求,选择HJ-IR2抗干扰型高性能红外避障模块实现。该传感器是一种一体化反射型光电探测器,它受到光线的影响非常小,甚至几乎无影响,哪怕是在外面受到太阳的照射影响,也不会带来太大误差,准确度非常高。我们都知道黑色的东西会吸收光线,然而白色的东西吸收光线的能力很差,绝大部分会被发射回去。利用这一原理,只需要将轨道设置为黑色并且布置在白色的路面上即可完成环境设计。释放出红外线探测,受到外界可见光的干扰很小,对信号不会产生影响。LM324可以用来比较检测信号,再由单片机最后完成处理。 比较两种方案认为第二种方案更加的稳定,具有很强的适应性。然而方案一的误差对于整个设计来说影响过大,综上分析最终用第二种方案。 2.5 超声波避障模块第一种方案:对于整个小车系统的避障模块的需求,选择漫反射式光电开关实现。此套方案的一个最大优点就是操作上十分简单,这种模块可以射出一束光,光线径直的向前一旦遇到障碍物的阻拦后,立即会反射回来,此时的接收电路就能够得知并且运行判断。如果被阻挡回收到光线就给一低电平,没有任何反应的话就给一高电平即可。但同时这套方案有个明显的缺陷就是能够测到的距离相对太近。 第二种方案:对于整个小车系统的避障模块的需求,选择超声波传感器实现。利用压电陶瓷超声波传感器产生超声波传输,不仅仅速度快而且路径直,一旦碰到任何的阻碍物体立即返回被接收。在各式各样的避障设计中,超声波十分的常见,也十分的被偏爱。本设计对于超声波探测器方面拟定HC-SR04模块。 考虑到本系统并不需要在复杂的环境中工作,只需要检测到障碍物实现避障,方案二的模块更加符合系统设计的需求,综合分析最终选择第二种方案。
第3章 系统硬件电路设计3.1 总体设计智能小车采用两个前轮和一个万向轮的方式,在前轮的左右两端各安装一个电机驱动,利用电机驱动芯片L293D来控制两个前轮的左右转向和停止,后轮是一个万向轮,有支撑和转向的作用。在车体底盘的前端装有4个红外光电传感器,用以实现路迹检测和避障功能。 小在小车的车头还装置有超声波探测模块HC-SR04,当前方检测到障碍物时,小车能够做出相应的反应。 总体设计框图如图3-1。
图3-1 总体设计框图(见附件)
3.2 电源电路设计电压的稳定性尤其重要,对此专门设计了稳压电路。使用7805三端稳压集成块,可以保持电压为+5V不变。同时开关起到了为最小系统板上的程序烧写提供电源的作用。电源电路如下图3-2所示。 图3-2 5V稳压电源 3.3 电机驱动电路设计L293D 共有16个引脚,属于DIP封装。是四倍高电流的H桥驱动程序。双极型脉冲调宽有很多的优点,比如低速时更平稳;释放连续电流;能够四角限运行;电机停止工作后产生微振电流,有助于除去转动时的静摩擦死区等。L293D的使能信号可以起到调节脉宽的作用,给H桥电路输入不同的值后,那么马达向什么方位旋转就会有所不同。不仅如此,在L293D的一个芯片上存在有两个H桥电路,这就说明两个电机可以同时被一个芯片直接控制。电机含有三个必备的信号,一个是使能信号EN12,另外的是旋转方向的控制信号IN1和IN2。当IN1=1、IN2=0时,电机开始正向的进行转动,当IN1=0、IN2=1时,电机开始相反的进行转动。选中一PWM与使能端引脚相连接,那么PWM的占空比直接与整个电机的旋转速度挂钩。选中一I/O口,通过反向器74HC14与两个方向控制信号的引脚相连接,使其控制转向问题。
L293D引脚图如下图3-3所示。
图3-3 L293D引脚图 其中L293D电路原理图和内部逻辑等效图如下图所示。 图3-4 电机驱动原理图 图3-5 L293D内部等效图 3.4 黑线循迹设计与实现小车循迹的原理是在白色路面中贴有黑色胶带的轨道上运行,因为不同的颜色对光线的吸收程序不一样,自然反射回去的数据就不同,所以通过最后收到的反射光的情况就可以判断道路的黑白。本设计采用应用广泛且操作比较简单的红外光线探测方法。 红外光线探测法其实原理十分简单,就是红外线对于各种各样的颜色有不同的反射性质。小车开始前进,那么传感器的红外发射二极管就会往外放出红外线,若此时小车行驶在白色的路面上,置于车底的红外发射管发出的红外线会被反射回来,接收管一旦接收到红外信号,那么就会导通光敏三极管,从而输出低电平,经过电压比较器后送往单片机控制。若小车一旦开始位于黑色胶带轨道的上方,黑色物体就能够吸收一直释放出来的红外线,此时的三极管立即就被阻断了,放出的信号变化为高电平。这样一来用到红外线就可以判断是否有信号。然后前面的信号会被传送往单片机继续判断,若I/O口发现是高电平的信号,则意味着光线并没有被反射回来而是被黑色吸收,小车是处于黑色胶带上前进。相反,若是发现信号为低电平,说明车子正处于在白色路道上。即是说若小车底部的红外线接收管遇到黑线则输入电平为高电平,反之则为低电平。避障亦是此原理。
传感器原理图如图3-6所示。 图3-6 传感器模块电路原理图 3.5 红外避障电路的设计红外线避障的原理和黑线循迹基本相似,都是利用光线反射性质,只要有阻碍物体在前方挡路,之前施放出的光线就可以被反射回来。所以传感器会输出的电平就为0,L3、L4灯会亮起来。当前方没有遇到障碍物时,由于传感器位于小车的上方,因此传感器反射能力不强,只能反射少许的红外光线,不能够使得传感器运作,所以传感器输出电平1。只要通过单片机来检测传感器的输出端电平是高还是低,就能得知是否遇到障碍。 3.6 超声波避障的设计3.6.1 超声波避障原理本设计实现避障功能选取的是超声波探测传感器。把这个传感器固定在小车的最前方,事先调整好测量的距离,只要在能够检测到的距离内,一旦有阻碍物体出现在道路前面,单片机就可以立即收到由传感器发来的信号,从而发出命令让小车开始改变原始的方向,避免撞上障碍物。所以超声波传感器的优点还是很多的,频率高,速度快,方向性又好。 3.6.2 超声波模块工作原理本设计采用的是HC-SR04超声波探测模块,给一个高电平的信号(大于10千赫兹),HC-SR04模块就会释放出八个方波(约40千赫兹),而且检测是否信号返回来完全是自动的。一旦模块这边收到了返回的信号,就会让IO输出一个高电平,高电平维持了多长的时间,就表明超声波从发出到回来一共是多少时间。测试距离有一个公式等于高电平维持的时间乘以声速,因为是往返的距离,所以还要除以2。
选取超声波完成避障的电路连接如图3-7所示。 图3-7 超声波避障电路原理 第4章 软件设计4.1 软件设计思想本设计属于单片机控制系统的设计,除了相应的系统硬件方面相关的设计,对于智能小车的不同功能的实现也需要着不同的应用程序。因此,在设计过程中软件设计也占有重要的地位。 我在进行软件相关设计时,并没有采用传统的整体代码编写,而是将整体分割成n个不同的部分,每一个部分都可以被称作是一个模块。其实这些所谓的模块都只是单独的程序代码,它们都对应着相关的功能,为每个功能程序的实现模块,这样的设计方法其实就是模块程序设计法。 模块程序设计法有如下的一些优点:
- 每个模块都很容易去编写,并且单独的去调试更为方便;
- 这些模块单独实现自己的功能,不会互相影响和冲突;
- 模块的程序代码更易被调用,可以随时利用现有的程序。
本系统软件采用模块化结构,由黑线循迹程序、红外避障程序、超声波避障程序、红外遥控程序构成。 4.2 黑线循迹程序设计部分程序清单如下: 4.3 红外避障程序设计部分程序清单如下:
4.4 超声波避障程序设计程序清单如下:
第5章 系统调试
5.1 硬件调试硬件调试,对系统的每个模块分别进行调试,主要的目的是调试各个模块的功能是否按照要求实现。调试的过程包括检查硬件实物电路的连接与逻辑图是否一致无误,用万用表检测电路是否存在短路、断路的情况,器件的规格属性和极性是否存在错误。当这些检测完毕以后,再用万用表检测一下位于电路板电源两端之间的电阻,排查以免存在电源短路的情况。 5.2 软件调试本系统采用的是STC89C52作为核心模块,因此软件调试起来比较容易。开发环境选用的是keil软件,此软件可以判断出程序的语法和逻辑错误,使得调试更为简单方便。由于本系统是通过分模块的方式来进行程序的设计,所以在软件调试时各个模块会分别地被调试。如小车黑线循迹程序,调试到此模块时只需将其放入一个子程序中单独地进行测试,如果能够顺利完成指定的功能即视为通过测试,否则就修改程序后再不断测试直到成功通过。 5.3 软硬联调本系统的调试方法主要由硬件调试、软件调试和软硬件联调来实现。因为在整个系统中采用的是模块程序设计法,所以对各个模块进行逐级调试时更为方便。先是对单片机控制模块、避障传感器模块、电机控制模块、超声波探测模块的分别调试,最后将所有模块组合成一体再进行整体的调试。即是说若硬件调试和软件调试都基本通过后,再进行系统的软硬件联调。按照模块化的设计理念由上而下地对各个模块依次调试,最后再连接成一个完整的系统调试。 5.4 成果展示当系统的调试任务都完成后,还要对本设计的功能进行测试。在预先设计好的轨道上,检验小车的功能能否一一实现。 5.4.1 实物图图5-1 小车实物图 5.4.2 黑线循迹图5-2 小车黑线循迹图 在地面上预先设定好的一条黑色的轨迹,智能小车启动后能够沿着这条黑线循环地行驶而不会出现偏离轨道的情况。 5.4.3 红外避障图5-3 小车红外避障图 将智能小车放入一个周围充满着障碍物的环境中,小车的红外探测器能够发射红外光探测前方有无障碍,然后反馈信号使得小车可以做出判断从而躲避开身边的障碍。 5.4.4 超声波避障图5-4 小车超声波避障图 在智能小车的车头上安装好超声波探测模块,当小车行驶途中检测到前方有障碍物时,就会立即停止然后向反方向行驶,检测障碍物的距离设定也可以进行调整。 5.4.5 红外遥控通过红外遥控器发送出操作的信号,每个按键都对应着不同的数字编码,此时的发射器能够发出一个按下的数字编码,然后被红外接收模块的输出端接收。单片机最终就会解码出之前的数字编码从而清楚是哪个按键被按下,让小车开始实现对应的前进、后退、左右转向和停止等动作。 图5-5 小车红外遥控图 结束语本次设计的基于单片机的智能小车系统能够实现多功能的展示,基本上达到了预期的目标。在设计的途中并非一帆风顺,也遇到了许多的问题,其中主要包括两大难点。首先是电路实物的焊接和复杂电路的检测,非常考验焊接的技术水平和电路检测等操作能力。在焊接上由于实验室的设备比较优良,所以焊接的工作相对来说并非十分困难,电路的检测就比较困难了,各种复杂交错的电路,需要一次次的查验,一次次的修改之后才能保证电路连接正确从而完成智能小车的正常工作。其次就是软件程序的编写和修改。本设计的智能小车要实现许多的功能从来满足多功能化的要求,那么每个功能的实现都要有对应的程序代码编写,而且程序代码编写的好坏会直接影响到功能的准确度。所以在程序编写上下个大功夫,每一段代码都要反复的斟酌以求最优。但是由于本设计软件程序采用了分模块化的方式,所以针对各个模块的程序编写并非特别复杂,难就难在需要将所有的模块设计拼接为一个整体而且能够相互兼容。总之,通过本次的设计实践使我掌握了一些软件程序编写的技巧和检测的手段,并且更深入地了解到了单片机的工作原理,提高了对单片机的操作能力。 由于本设计系统采用了STC89C52单片机作为主控芯片,结构简单,操作方便,功能全面,并且采用了模块化的设计方式后提高了系统的可移植性,总体的设计方案也比较合理,完全符合题目的基本要求与当今智能化的设计理念。在设计的过程中,方案的选择是整个系统的一个难点,因为不同方案的选择就决定了对应的模块的性能的变化,选取最适合、最优化的方案是极其重要的,所以到底采用哪一种方案要及其慎重,因此我通过大量的测试,对于每一种方案所产生的数据记录并且分析,多次的测试之后取平均值来对比,最终选取最优的方案。另外在系统的调试上也存在许多的难题,对于整个系统的调试需要分步进行,软件方面和硬件方面都需要调试,在软件上调试代码的错误相对比较简单,只需要修改有误的代码即可完成工作,但是对于硬件电路的调试就很困难了,需要从许多的地方来进行检测,一一排除,从来使得小车的各个功能都能正确的实现。 智能小车属于新型的技术性产品,虽然目前来说在这方面并没有完善的研究和开发,但它已经渐渐地步入了科学调研的视野之内,许多国家对这方面已经开始了研发和测试,相信其在未来有着广泛的应用领域和良好的发展前景。
附录 原理图
完整的Word格式文档51黑下载地址:
文档.doc
(3.33 MB, 下载次数: 236)
|