基于单片机的自动避障小车设计和实现.doc

上传人:xin****828 文档编号:6656483 上传时间:2020-03-01 格式:DOC 页数:41 大小:2.72MB
返回 下载 相关 举报
基于单片机的自动避障小车设计和实现.doc_第1页
第1页 / 共41页
基于单片机的自动避障小车设计和实现.doc_第2页
第2页 / 共41页
基于单片机的自动避障小车设计和实现.doc_第3页
第3页 / 共41页
点击查看更多>>
资源描述
郑州工业应用技术学院本科生毕业设计题 目:基于单片机的自动避障小车设计与实现指导教师: 张朝阳 职称: 讲师 学生姓名: 周红宇 学号: 1102120515 专 业: 电气工程及其自动化 院 (系): 机电工程学院 答辩日期: 年 月 日 2015年 月 日摘 要智能小车是一种能够通过编程手段完成特定任务的小型化机器人,主要是在自动化控制领域,它具有制作成本低,电路结构简单,程序调试方便等优点,具有很强的趣味性。智能小车深受广大机器人爱好者以及高校学生的喜爱。该设计利用单片机STC89C52RC作为主控芯片,该芯片是一种高速、低功耗、抗干扰能力强的芯片,其最高时钟工作频率为48MHz,用户应用程序空间为8K。能够满足程序空间需要。驱动采用L298N驱动芯片,它是一种双全桥步进电机专用芯片,通过对其输入端的控制可以实现小车的启动、转向、停止等动作。为节省成本,小车由两个直流减速电机加一个万向轮构成,并采用后轮驱动。采用了E18-D50NK红外光电开关组成的避障传感器来避障。由于采用了6节干电池供电使系统的抗干扰性得到加强。充分利用STC89C52的系统资源,使智能小车完美的实现了障碍物检测、避开障碍物自动巡航等功能。经实践验收测试,该智能小车的电路结构简单,调试方便,系统反映快速、灵活,设计方案正确、可行,各项指标稳定、可靠。本文首先介绍了智能车的发展前景,接着介绍了该课题设计构想,各模块电路的选择及其电路工作原理,最后对该课题的设计过程进行了总结与展望,并附带各个模块的电路原理图和本设计实物图及完整的C语言程序。关键词:智能小车 单片机 避障 红外线Abstract Smart car is a small robot to accomplish specific tasks by programming, mainly in the field of automation control, it has low production cost, simple circuit structure, debugging convenient, has the very strong interest. Smart car robot lovers as well as by the majority of College students. This design uses STC89C52RC micro controller as the main control chip, the chip is a chip of high speed, low power consumption, strong anti-interference ability, and the maximum clock frequency is 48MHz, the user application space for 8K. To meet the needs of the space program. Driven by the L298N drive chip, it is a kind of dual full bridge stepper motor dedicated chip, the input end of the control can realize the car start, stop, turn. In order to save costs, the car by two DC motor and a universal wheel, and the rear wheel drive. The obstacle avoidance sensor E18-D50NK infrared photoelectric switch to obstacle avoidance. Due to the adoption of the 6 battery supplies power to the anti-interference of the system has been strengthened. To make full use of the system resources of STC89C52, the perfect realization of the intelligent vehicle obstacle detection, obstacle avoidance automatic cruise function. Through the practice of acceptance testing, circuit structure of the smart car is simple, convenient debugging, the system to reflect the rapid, flexible, the design scheme is correct and feasible, stable, reliable indicators. This paper first introduces the development prospects of the smart car, and then introduces the design idea, working principle and circuit of each module circuit, the design process of the project are summarized and prospects, with each module circuit diagram and the design of the physical map and the integrity of the C language program.Keywords: Smart Cars Single-chip Obstacle Avoidance Infrared 目 录1 绪论11.1 课题研究背景及意义11.2 国内外研究现状11.3 单片机及直流电机的发展11.4 课题主要研究内容42 工作原理及总体设计52.1 工作原理52.2 总体设计53 硬件设计73.1 小车车体设计73.2 电源模块73.3 电机驱动模块83.4 电机模块93.5 检测模块93.6 最终方案94 硬件实现及单元电路设计114.1 主控制模块114.2 单片机的复位电路与振荡电路设计114.3 电源设计134.4 驱动电路144.5 E18-D50NK光电开关避障模块154.6 红外光电开关传感器的安装174.7 小车车体总体设计175 软件设计与仿真调试185.1 主程序流程185.2 Keil uVision3环境195.3 单片机程序烧写215.4 系统的安装与调试22结束语24致 谢25参考文献26附录27附录A 整体电路图27附录B 部分源程序28附录C 小车实物图321 绪论1.1 课题研究背景及意义随着第一台机器人的诞生,机器人的发展已经涉及到航空、交通、国防等领域。近年来机器人的智能化水平不断提高,也在改变着人们的生活方式。人们在不断探讨、认识和改变自然的过程中,制造能代替人力劳动的机器一直是人类的梦想。智能避障电动小车是一个运用传感器、单片机、电机驱动等来实现环境感和自动行驶为一体的高新技术综合体,它在民用和科学研究等发面已获得了广泛应用。当前的电动小汽车大部分是直线行驶,也有一部分是在遥控下实现前进、后退、转弯、停车等动作。但这并不能满足某些特殊场合下的要求。因此,本文设计了智能避障小车的控制系统。它的主要功能是探测前方是否有障碍物,如果有障碍物时,经过判断障碍物的位置,实现避障功能。智能是现代社会的标志性产物,是以后的发展趋势,它可以按照预先设定的模式在特定的环境里运作,无需人为操作,便可以完成预期达到的目的。此设计主要体现小车的智能避障模式,设计中理论、分析方法及创新都可以为运输机器人、采矿机器人、家用清洁机器人等自动半自动机器人的设计提供一些依据。同时小车也是玩具的发展方向,为中国玩具市场技术含量的缺乏进行一定的弥补,实现经济增长,形成商业价值。我国是一个世界大国,在高科技领域也应占据一席之地,汽车的智能化是汽车产业发展的必然趋势,在这种情况下研究智能避障小车具有深远意义。本智能小车的前景就可用于未来的智能汽车上了,当驾驶员因瞌睡或疏忽时这样的智能汽车的设计就能体现出它的作用。如果汽车偏离车道或距离障碍物小于安全距离时,汽车就会发出报警,如果驾驶员没有及时作出反应,汽车就会自动减速或停止。这样的小车同样可以用于月球探测的无人探月车,帮助我们传达月球上的信息,让我们更加的了解月球。该智能小车是机器人的典型代表。它有三大部分组成:传感器检测模块、驱动电路和单片机模块。机器人要实现自动避障功能,还可以发展循迹功能,感知引导物和障碍物。可以实现小车自动识别路线,选择正确的路线,还可以检测到障碍物自动躲避。1.2 国内外研究现状随着科学技术的不断发展,智能机器人在各方面的应用也越来越广泛。这是一个蓬勃发展而又有无限前景的技术产业领域,在各方面都有很大的发展空间,它将会向着更高定位精度发展,随着智能机器人技术的进步,机器人将从具有单一的判断功能发展到具有学习功能、创新能力的全智能化机器人。虽说目前我们对智能机器人的研究尚处于探索阶段,但是我们已经取得了很多不凡成就。在70年代,斯坦福研究院研制出了名叫Shakey的自主智能机器人。目的是研究复杂环境下机器人的自主推理、规划和控制能力。同时,首个步行机器人也研制成功,对此种机器人结构的研究是为了解决机器人在不平整地理状况下的运动问题。在此基础上,研制成功了多足步行机器人,其中最著名的是General Electric Quadruped的步行机器人。从80年代开始美国国防高级研究计划局专门立项制订了地面无人作战平台战略计划。如DARPR的“战略计算机”计划中的自主地面车辆计划。能源部制订了为期十年的机器人和智能系统计划,以及后来的空间机器人计划。美国NASA研究的火星探测机器人于1997年登上了火星。为了在火星上进行距离探测,又开始了新一代样机的研制,命名为Rocky7,并在Lavic湖的岩溶流上和干枯的湖床上进行了成功的实验。美国的MDARS项目是在著名的保安机器人ROBART的基础上建立的一个多智能机器人平台,后来在指定地点执行巡逻任务。德国研制了一种轮椅机器人,并在乌尔姆市中心车站的客流高峰期的环境中和1998年汉诺威工业商品展览会大厅环境中进行了超过36消失的考验,所表现出的性能是其它现存的轮椅机器人和智能机器人所不可比的。日本开发出协助盲人行走的导盲机器人LZI.清华大学智能机器人于1994年通过鉴定,涉及到五个方面的关键技术:基于地图的全局路径规划研究;基于传感器信息的局部路径规划研究;路径规划的仿真技术研究;传感器技术、信息融合技术研究;智能机器人的设计和实现。另外,还有中国科学院沈阳自动化研究所的AGV和防爆机器人;中国科学院自动化所自行设计制造的全方位智能机器人视觉导航系统;哈尔滨工业大学于1996年研制成功了导游机器人。1.3 单片机及直流电机的发展单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等共跟那个集成到一块硅片上的一个小而完善的微型计算机系统。从上世纪80年代的4位、8位单片机,发展到现在的300M的高速单片机。目前单片机已经参与到我们生活的各个领域,很难找到哪个领域没有单片机的影子。导弹的导航装置,飞机上不同仪表的控制,计算机的通讯与数据传输,工业自动化过程的控制和数据处理,各种IC卡,豪华汽车的安全系统,录像机、摄像机、全自动型洗衣机控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械以及各种智能机械了。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的高科技人才。单片机的诞生是计算机发展史上的又一个里程碑。近年来,随着高科技技术的发展,以及市场对产品功能和性能的要求不断提高,直流电动机的应用更加广泛,尤其是在智能机器人中的应用。而作为其核心单片机,正朝着多功能、高速度、低功耗、大存储容量和强I/O功能等方向发展。随着计算机功能的不断完善,单片机已更加广泛地应用在各种领域的自动化、智能化等方面,特别是在直流电动机的调速控制系统中。单片机具有体积小、功能全、抗干扰能力强、可靠性高、结构合理、指令丰富、控制功能强,造价低等优点。所以选用单片机作为控制系统的核心。直流电机PWM控制系统的主要功能包括:对直流电机的加速、减速,能够很方便的实现电机的智能控制。直流电机PWM控制模块电路主要由STC89C52单片机的I/O端口、定时计数器、外部中断扩展等控制直流电机的加速、减速以及转弯,并且可以调整电机的转速。其间是通过STC89C52单片机产生脉宽可调的脉冲信号输入到L298驱动芯片来控制直流电机工作。早期直流传动控制由模拟分离器件构成,由于模拟器件有其固有的缺点,如存在温漂电压、零漂电压等,使得模拟直流传动的控制系统精度以及可靠性都比较低。随着计算机技术的发展,微处理器已经越来越多的应用于直流传动系统,实现了全数字化控制。微处理器已数字信号工作,控制手段灵活方便,抗干扰能力强。所以,直流传动控制采用微处理器实现全数字化,使直流调速系统进入一个崭新的时代。随着集成电路级超大规模集成电路制造工艺的发展,微处理器性价比越来越高。此外,由于电力电子技术的发展,制作工艺的提升,使得大功率电子器件的性能大大提高。使微处理器普遍用于控制电机成为可能,利用微处理器控制电机完成各种新的、高性能的控制策略,使电机的各种能力得到充分发挥,使电机的性能更符合工业生产使用要求,还促使了电机生产商研发出各种如步进电机、无刷直流电机、开关磁阻电动机等便于控制且使用的新型电机。对于简单的微处理器控制电机,只需利用微处理器控制继电器、电子开关元器件,使电路开通或关断就可实现对电机的控制。现在带微处理器的可编程控制器已经在各种机床设备和各种生产流水线中普遍应用,通过对可编程控制器进行编程就可以实现对电机的自动化控制。对于复杂的微处理器控制电机,则要利用微处理器控制电压、电流、转矩、转速、转角等,使电机按给定的指令工作。通过微处理器控制,可使电机的性能有很大的提高。交流电机,不论是异步电动机还是同步电动机,结构都比直流电机简单,工作也比直流电机可靠,但在频率恒定的电网上运行时,它们的速度不能方便的调节。高性能的微处理器的实现,为采用新的控制理论和控制策略提供了良好的物质基础,使电机传动的自动化程度大大提高。1.4 课题主要研究内容系统采用STC89C52单片机作为核心控制单元,小车车体前方的红外线传感器检测前方障碍物,用于判断是否需要转弯,防止小车碰到障碍物。本设计题目为基于单片机的自动避障小车设计,主要研究小车的避障功能,小车遇到障碍物时,当距离障碍物大于25cm,PWM信号自增,驱动电机加速,小车加速前进,当小于15cm时,PWM信号自减,驱动电机减速,小车减速前进,并且小车采取相应的避障措施。这里探测装置必不可少,因为红外在距离检测方面的准确定位。所以采用红外线传感器作为探测装置。运用单片机搭建控制电路,把红外信号接到单片机上,通过单片机对信号的检测和处理,控制外围电路使小车转向,来避开障碍物。通过H桥驱动电路来控制电机的转向和前进。 2 工作原理及总体设计2.1 工作原理在这里我们采用STC89C52作为控制电路,把两个红外信号接到单片机上,通过单片机对信号的接收和处理,控制外围电路使小车转向,来避开障碍物。通过H桥驱动电路来控制电机的转向和前进。通过为微控制芯片对数据进行处理,处理速度远远满足小车的运行和避障的需求。也可以通过编写不同的程序,增加模块来增加小车的功能。本小车使用STC89C52单片机作为主控芯片,它通过红外线传感器获知前方的障碍物情况,若不存在障碍物,小车直线前进;若左前方发现障碍物,左前放的红外传感器将信号传给单片机,单片机作出处理后控制小车向右转弯以躲开障碍物;若右前方发现障碍物,右前放的红外传感器将信号传给单片机,单片机作出处理后控制小车向左转弯以躲开障碍物;若正前方发现障碍物,则两个红外传感器将信号传给单片机,单片机作出处理后控制小车倒车至合适距离后,通过传感器传来的信号决定转弯方向,以躲开障碍物。2.2 总体设计通过学习相关技术资料可了解到,红外测模块是系统的关键模块之一,红外检测方案的好坏直接关系到整体性能的优劣,因此确定红外检测方案是总体方案的关键。检测使用的红外传感器是专业的红外避障传感器,当有障碍物时,它能够反映出电平高低的变化,而且更加廉价易得,适合简单的避障。系统总体设计方框图如图2-1所示。图2-1 系统总体设计方框图根据系统方案设计,系统包括以下模块:STC89C52主控模块、L298N电机驱动模块、电源模块、红外检测模块等。各模块作用如下:STC89C52主控模块,作为整个智能小车的“大脑”,将根据传感器的信号,控制算法做出控制决策,驱动直流电机等完成对智能小车的控制。电源模块,为整个系统提供合适而又稳定的电源。红外检测模块,检测障碍信号,为单片机提供前方道路信息。电机驱动模块,驱动直流电机完成智能车的加减速和转向控制。3 硬件设计3.1 小车车体设计小车的车体是整个智能小车的载体,在这个载体上,添加合适的控制单元以实现智能化,因此这个小车车体需要符合相关的设计要求。我们有以下两种方案可以考虑:方案1:市场上存在很多不同型号的电动玩具小车,这种小车都有完整的车体和车轮以及电机和驱动电路。但是这种小车存在很多的缺点,由于是成品电动玩具车,一般都是装配紧凑,要想在其才车体上安装用于检测的传感器十分困难。还有就是这种小车一般采用的都是前轮转向后轮驱动的模式,不能方便迅速的进行原地90度或180度旋转。而且这种电动玩具车多为直流电机,力矩小,负载性能差,且不易调速,因此我们放弃了此方案。方案2:买现成的车模。经过反复考虑论证,我们制定了买左右两轮分别驱动,后万向轮转向的车模方案。即左右轮分别用两个转速和力矩基本完全相同的直流减速电机进行驱动,后装一个万向轮。这样,当两个直流电机转向相反同时转速相同时就可以实现电动车的原地旋转,由此可以轻松的实现小车坐标不变的90度和180度的转弯。综上考虑,本设计选择方案2。3.2 电源模块 本设计为避障小车的设计,由于小车需要独立运行进行避障,因此系统采用电池供电,我们考虑了如下几种方案为系统供电。 方案1:采用12V蓄电池为系统供电。蓄电池具有较强的电流驱动能力以及稳定的电压输出性能。但是蓄电池的体积过于庞大,在小型电动车上使用极为不方便。因此我们放弃了此方案。 方案2:采用6节1.5 V干电池共9V做电源,经过7805的电压变换后为单片机,传感器供电。经过实验验证小车工作时,单片机、传感器的工作电压稳定能够满足系统的要求,而且电池更换方便。综上所述,本设计采用方案23.3 电机驱动模块 电机的驱动模块是小车运行的基础,也是小车实现自动避障的实现方法,因此合适的电机驱动模块就显得尤为重要。我们有以下几种方案可以考虑。 方案1: 利用继电器控制电机,通过继电器的开关来切换小车的速度,此方案电路简单,但是其有严重缺点,就是继电器的响应时间较长,不利于小车较为精准的躲避障碍,且易损坏,寿命较短,可靠性不高。 方案2: 利用电阻或者电位器控制电机,电阻或电位器控制电机的电压,进而达到控制电机速度的目的。但是,数字电阻元器件成本较高,且电机的电流较大,采用分压的方法会降低效率,而且是指操作困难。 方案3: 利用三极管控制电机,三极管控制电机的电路原理简单,而且加速性能强,利用功率三极管组成的H型桥式电路如下图3-1所示。图3-1 H型桥式电路 用单片机控制功率三极管在占空比可调的状态下工作,精准的对电动机的转速进行调整。H型桥式电路工作在管子的饱和截止模式下,效率非常高,H型桥式电路保证了简单的实现电机转速大小和运行方向的控制,由于电子三极管的开关速度很快,其稳定性也极强,是被广泛采用的 PWM调速技术。现市面上有很多此种芯片,我选用了L298N,L298N是一个具有高电压大电流的全桥驱动芯片,该驱动芯片的工作频率较高,而且一枚芯片可以控制两个直流电机的运行,还具有控制使能端。利用该芯片作为电机驱动,操作方便,稳定性好,性能可靠优良。 因此本设计选用方案3。3.4 电机模块本系统为智能自动巡航电动车,对于电动车来说,其驱动轮电机的选择就显得十分重要。我们综合考虑了一下两种方案。 方案1: 采用步进电机,步进电机不能直接接到工频交流或直流电源上工作,而必须使用专用的步进电动机驱动器,它由脉冲发生控制单元、功率驱动单元、保护单元等组成。驱动单元与步进电动机直接耦合,也可理解成步进电动机微机控制器的功率接口。虽然步进电机已被广泛地应用,但用好步进电机实非易事,它涉及到机械、电机、电子及计算机等许多专业知识。且步进电机输出力矩低,转速升高力矩会下降,在较高转速时会急剧下降,其转速较低,不适用于有特定速度要求的系统。综合比较考虑,我们放弃了此方案。 方案2:采用直流减速电机。直流减速电机转动力矩大,体积小,重量轻,装配简单,使用方便。由于其内部由高速电动机提供原始动力,带动变速(减速)齿轮组,可以产生大扭力。能够较好的满足系统的要求,因此本设计选择此方案。3.5 检测模块检测模块,是小车自动避障的“眼睛”,它的存在至关重要,它为单片机提供障碍信号,为小车的运行提供参考数据。检测的方法很多,比如超声波检测、红外线检测等,综合考虑,红外线线检测更加实用,因此我们采用红外线检测,市场上有现成的红外E18-D50NK光电开关,完全符合我们本次设计的要求,且使用简单,因此我们采用这种红外避障传感器作为检测模块。3.6 最终方案 经过反复论证,最终确定如下方案:1、车模用两驱车模。2、采用STC89C52单片机作为主控制器。3、用6节干电池供电。4、用红外E18-D50NK光电开关进行避障巡航。5、L298N作为直流电机的驱动芯片。4 硬件实现及单元电路设计4.1 主控制模块主控制最小系统电路图如图4-1所示:图4-1 最小系统电路图4.2 单片机的复位电路与振荡电路设计本系统采用STC系统列单片机,相比其他系列单片机具有很多优点。一般STC单片机资源比其他单片机要多,而且执行速度快;STC系列单片机使用串口对单片机进行烧写,下载程序较为方便;STC51单片机内部集成了看门狗电路;且具有很强抗干扰能力。 单片机的置位和复位,都是为了把电路初始化到一个确定的状态,一般来说,单片机复位电路作用是把一个例如状态机初始化到空状态,而在单片机内部,复位的时候单片机是把一些寄存器以及存储设备装入厂商预设的一个值。 单片机复位电路原理是在单片机的复位引脚RST上外接电阻和电容,实现上电复位。当复位电平持续两个机器周期以上时复位有效。复位电平的持续时间必须大于单片机的两个机器周期。具体数值可以由RC电路计算出时间常数。 复位电路由上电复位和上电与按键均有效的复位两种基本形式。上电复位要求接通电源后,单片机自动实现复位操作。上电瞬间RST引脚获得高电平,随着电容器的充电,RST引脚的高电平将逐渐下降。RST引脚的高电平只要能保持足够的时间(2个机器周期),单片机就可以进行复位操作。上电与按键均有效复位其原理和上电复位基本相同,另外在单片机运行期间,还可以利用按键完成复位操作。本系统采用上电与按键均有效的复位电路,如下图4-2所示:图4-2 复位电路 单片机系统里都有晶振,在单片机系统里晶振作用非常大,全程叫晶体振荡器,他结合单片机内部电路产生单片机所需的时钟频率,单片机晶振提供的时钟频率越高,单片机的运行速度也就越快,单片机执行的所有指令都要依赖于这种时钟频率。一般工作条件下,普通晶振频率绝对精度一般可达百万分之五十。高级晶振频率的精度更高。压控振荡器(VCO)可以在外加电压的作用下于一定范围内调整频率。晶振用一种能把电能和机械能相互转化的晶体在共振的状态下工作,以提供稳定,精确的单频振荡。 单片机晶振是为了给系统提供基本的时钟信号。一般情况下一个系统共用一个晶振,以便于各部分保持同步。在部分特殊情况下使用不同的晶振,但是要通过电子调整频率的方法保持同步。 晶振通常与锁相环电路配合使用,以提供系统所需的时钟频率。如果不同子系统需要不同频率的时钟信号,可以用与同一个晶振相连的不同锁相环来提供。STC89C52使用11.0592MHz的晶体振荡器作为振荡源,由于单片机内部带有振荡电路,所以外部只要连接一个晶振和两个容量在15pF至50pF之间的电容即可,如图4-3所示。图4-3 振荡电路 由于单片机P0口内部不含上拉电阻,为高阻态,不能正常地输出高/低电平,因而该组I/O口在使用时必须外接上拉电阻。4.3 电源设计电源部分的设计主要采用7805芯片,使用7805芯片搭建的电路的优点是简单、实用,7805三端稳压IC内部电路具有过压保护、过流保护、过热保护功能,这使它的性能很稳定。能够实现1A以上的输出电流。器件具有良好的温度系数,因此产品的应用范围很广泛,而且价格便宜。并且完全能够满足壁障小车单片机控制系统和L298N芯片的逻辑供电的供电需要。 7805芯片有3个引脚,分别为输入IN端、输出OUT端和接地GND端,通常情况下可以提供1.5A的电流,在散热足够的情况下可以提供大于1.5A的电流。7805芯片的输入电压可以为9V、12V、15V不等,输出电压稳定在5V,正负误差不超过0.2V。7805芯片如图4-4所示。 图4-4 7805芯片基于这样的情况再结合电机的工作电压,选取了6节干电池9V作为7805的输入电源,搭建的电源部分电路如下图4-5所示:图4-5 系统电源模块电路图4.4 驱动电路电机驱动一般采用H桥式驱动电路,L298N内部集成了H桥式驱动电路,从而可以采用L298N电路来驱动电机。通过单片机给予L298N电路PWM信号来控制小车的速度,起停。其引脚图如图4-6所示,驱动电路原理图如图4-7所示。图4-6 L298N芯片引脚图图4-7 驱动电路原理图4.5 E18-D50NK光电开关避障模块本系统对障碍物的检测采用E18-D50NK型号的红外传感器,E18-D50NK传感器是一种红外线反射式接近开关传感器,用于物体的反射式检测,该传感器具有体积小,功耗低,应用方便,稳定可靠等优点。输出信号为数字量,不需要进行A/D转换,可直接与单片机的I/O口相连,检测到目标时信号线输出是低电平,正常状态时为高电平,为能让单片机正常检测,在信号输出端需外接一个1K上拉电阻。检测距离可达50cm,距离可通过可调电位器调节。图4-8 E18-D50NK光电开关光电开关E18-D50NK的技术参数: 1、输出电流 DC/SCR/继电器 Control output:100mA/5V供电 2、消耗电流 DC25mA 3、响应时间 2ms 4、指向角:15,有效距离3-50CM可调 5、检测物体:透明或不透明体 6、工作环境温度:-25+55 7、标准检测物体:太阳光10000LX以下 白炽灯3000LX以下 8、外壳材料:塑料电气特性: U:5VDC I:100mA Sn:3-50CM尺寸: 直径:17MM 传感器长度:45MM 引线长度:45CM 其工作原理如图4-9所示:图4-9 光电开关工作原理图 E18-D50NK红外光电开关发射出红外线,被物体阻断或部分反射,E18-D50NK内部红外接收管接收到反射回来的红外线,然后有一个由高到低的电压变化,E18-D50NK内部电压比较器根据这个电压的变化输出数电信号给单片机处理。当有光线反射回来时E18-D50NK信号脚输出低电平。4.6 红外光电开关传感器的安装我们所设计的红外光电传感器在每一侧都有一个,为了可以全面的检测前方障碍物的实际情况,传感器的安装方向为略向外15度。红外光电传感器的实物安装图如图4-10所示:图4-10 红外光电传感器安装图4.7 小车车体总体设计本系统共设计两个减速电机,分别置于车体两端控制左右车轮;后轮使用万向轮,维持车身平衡;E18-D50NK红外光电开关置于车体前方左右两边;电池盒置于主板下方。小车车体设计如图4-11所示:图4-11 小车整体设计图5 软件设计与仿真调试该方案的编程思路是先确定主程序,之后根据各硬件电路功能来设计子程序模块,最后再将各模块嵌入主程序中。这样编程结构简单,由于子程序模块与硬件电路一一对应,所以调试起来十分方便。本设计软件方框图如图5-1所示。图5-1 软件设计方框图5.1 主程序流程微机控制系统的设计,除了系统的硬件设计,大量的工作是根据各生产设计应用的实际需要怎样的对象。因此,软件设计占据了计算机控制系统设计的重要地位。 单片机中的程序是控制整个系统的最重要的一部分,所有的控制系统中,程序的重要性是毋庸置疑的,要想写出合理的正确的程序,首先要做的是成功设计出对应生产设备的控制程序的流程图,也只有有完善合理的流程图后,后续的编写程序就会顺利很多。此次设计的智能避障小车为简单的设计,经我们多方设计,确定其主程序流程图如图5-2所示。图5-2 系统流程图5.2 Keil uVision3环境Keil软件是众多单片机应用开发的软件之一,keil uVision3不仅支持许多品牌的单片机,还支持ARM的开发,Keil uVision3内嵌C编程器/汇编器/工程管理器/调试器等功能模块,是一款稳定可靠的开发工具,适用于不同层次的用户,能够满足从专业的应用开发工程师到初学嵌入式软件开发的学生的所有使用要求。类似于8051的智能平台将大幅度缩短开发周期,各大半导体厂商的所有ARM型号将逐一得到全面支持。还增添了一些更具人性化的功能,使初学者易学易懂。Keil的使用第一步 单击Keil uVision3图标,出现如图5-3所示界面:图5-3 Keil uVision3开始界面第二步 新建工程1、 单击“文件”菜单,在下拉菜单中“新建”中选择“新建工程”。2、 选择保存路径,输入工程名,点击保存。保存后会弹出如下图5-4所示的对话框,单击Atmel选项,选择下拉菜单的STC89C52,单击确定。图5-4 芯片选择界面这时出现下面的对话框,单击“否”选项。4、单击“文件”菜单,选择下拉菜单中的“新建”选项中的“新建文件”,然后单击“文件”菜单下的“保存”,出现保存对话框,输入“文件名.c”或“文件名.asm”单击保存,注:如果用C语言编写程序文件的扩展名是.c,如果用汇编语言编写程序文件的扩展名是.asm。5、添加文件右击Target 1菜单下Source Group1,选择其下拉菜单中的Add Files-选项,这时会出现添加文件对话框,单击“.c”文件,之后单击“Add”,当“Source Group1”文件前出现加号,说明添加文件成功,然后单击“Close”。6、 在空白处编辑程序,并编译程序。编译步骤如下:第一步 单击Project下拉菜单的Translate选项;第二步 单击Project下拉菜单的Build Target选项;第三步 单击Project下拉菜单的Rebuild all target files选项。编译完成之后,软件的Output Window窗口会出现“0Error(s),0Warning(s)”,说明编译成功。7、 生成HEX文件右击Project Workspace窗口下的Target 1,单击下拉菜单中的“Options for Target Target 1”,出现下面对话框,选中Output选项卡下的“Create HEX File”单击确定。单击确定后,再单击Project下拉菜单的Rebuild all target files选项,“Output Window”会出现“Greating hex file form-”如图所示,HEX文件成功生成。5.3 单片机程序烧写打开STC下载软件,此时出现如下图5-5操作界面:图5-5 程序烧写界面1、将单片机与计算机连接起来,打开单片机电源;2、单击STC-ISP.EXE图标,出现上图对话框;3、在上图“单片机型号”选择与所使用单片机相同型号的单片机;4、在上图“最高最低波特率”处选择与程序相对应的波特率,一般默认的波特率为115200;5、打开HEX文件,单击上图“打开程序文件”选项,按照文件设置的保存路径选用编译成功的扩展名为HEX的文件,打开文件;6、单击“下载/编程”按钮,下载程序。5.4 系统的安装与调试本设计的智能避障小车,一共分为四大模块。分别是单片机主控模块、电机驱动模块、红外检测模块和电源模块。其中的电源模块和红外检测模块采用现成的实物,无需焊接。单片机主控模块的电路部分相对简单,对于焊接只要多加练习就可以了,但单片机的电路系统出现一处错误,就会对后来的检测造成极大的不便,而且电路的交叉线较多,对于各种锋利的引脚都要注意处理,防止刺破带有包皮的导线,造成短路现象。在小车的测试中,首先将电机控制小程序烧录入单片机,通电后测试控制电机的正反转以及停止均正常。说明电机及驱动电路无误。然后在程序中加入避障子程序,在小车运转正常时,调节避障效果的灵敏度达到理想效果。在调试程序时,发现有的指令不正确,导致电路功能不能完全实现,另外软件程序中的延时过长或过短等类似问题,都可以通过调试来解决。最后测试出合理的正确的程序,烧入单片机后,组装出整车,完成小车的实物制作和整车验收。结束语本智能小车电路在硬件上采用了E18-D50NK红外光电开关组成的避障传感器来避障。由于采用了6节干电池供电使系统的抗干扰性得到加强。在软件上,充分利用了STC89C52的系统资源,使智能小车完美的实现了障碍物检测、避开障碍物自动巡航等功能。本设计结构简单,调试方便,系统反映快速灵活,硬件电路由可拆卸模块拼接而成有很大的扩展空间。经实验测试,该智能小车设计方案正确、可行,各项指标稳定、可靠。虽然智能小车系统有很多优点,但在设计当中也存在着一些不足。由于红外光电开关有检测死角,对很小的障碍物难以检测出来,所以在使用中需要注意障碍物大小。通过这次对作品的制作,使我学到许多东西,不管软件方面还是硬件方面都需要掌握,还有合作协调方面,动手能力,调试时候注意的事项,都有着很大的要求,使我收获颇大。致 谢历时几个月的毕业设计已经结束。通过自己不断的努力以及老师的耐心指导和热情帮助,本设计已经完成。在这段时间里,老师严禁的治学态度和热忱的工作作风令我十分钦佩,他的指导使我受益匪浅。俗话说兴趣是最好的老师,在这次毕业设计中我深深的体会到了兴趣所带给我的动力。我们都是从小孩子过来的,都有着一段奇特的童年经历,我们都有着各式各样的小玩具,我们总是叹服人家的智慧,觉得人家有多么的了不起,能设计出那么好的东西,有些事我们想做但是总是缺少勇气。但经过此次设计后我将不再害怕,我在此次设计之前就打定主意为自己制作一个玩具,但这个过程是艰辛的,为了这次设计,我查阅了很多的资料,了解了很多关于单片机、驱动电路等方面的知识,也去学习了那些枯燥的编程。这些不仅仅使我成功的设计制作出了此次的设计内容,也将为我以后这方面的生活、工作带来巨大的收益。我热爱这次设计,喜欢那种成功之后的喜悦。我会把这种精神带到以后的工作生活中,让自己更加的充实。通过此次毕业设计,使我深刻的认识到了学好一门专业知识的重要性,也了解了理论联系实际的含义,并且检验了我大学四年的学习成果。虽然在这次设计中对于知识的运用不够熟练。但我将在以后的工作和学习中继续努力、不断完善。这几个月的设计是我对过去所学知识的系统提高和扩充的过程,为今后的发展打下了良好的基础。由于自身水平和专业知识有限,设计中仍旧存在诸多不足之处,敬请各位老师批评指正。参考文献1 常健.检测与转换技术M.北京:机械工业出版社,19992 李科杰.新编传感器技术手册M.北京:国防工业出版社,20023 王之芳.传感器应用技术M.西安:西安工业大学出版社,19964 李朝青.单片机原理与接口技术M.北京:北京航空航天大学出版社,20075 李群芳.单片微型计算机与接口技术M.北京:电子工业出版社,20056 李刚.新概念单片机教程M.天津:天津大学出版社,20047 瓮嘉民.单片机典型系统设计与制作实例解析M.北京:电子工业出版社8 张毅刚.MCS-51单片机应用设计M.哈尔滨:哈尔滨工业大学出版社,19979 宋银斌.电机拖动基础M.北京:冶金工业出版社,200310 李正军计算机控制系统M.北京:机械工业出版社,200511 元增民单片机原理与应用基础M.长沙:国防科技大学出版社,200612 李朝青单片机原理及接口技术M.北京:航空航天大学出版社,200513 肖洪兵、等跟我学用单片机M.北京:北京航空航天大学出版社,200214 童诗白、华成英模拟电子技术基础M.北京:高等教育出版社,200315 高峰单片微型计算机原理与接口技术M.北京,科学出版社,200316 阎石数字电子技术基础M.北京:高等教育出版社,198317 霍孟友单片机原理与应用M.北京:机械工业出版社,200418 肖洪兵等跟我学用单片机M.北京:北京航空航天大学出版社,200219 童诗白、华成英模拟电子技术基础M.北京:高等教育出版社,200320 高峰单片微型计算机原理与接口技术M.北京,科学出版社,200321 阎石数字电子技术基础M.北京:高等教育出版社,198322 霍孟友单片机原理与应用M.北京:机械工业出版社,200423 许实章电机学:上册M.北京:机械工业出版社,199024 许实章电机学:下册M.北京:机械工业出版社,199025 周鄂电机学M.3版北京:中国电力出版社,199326 顾绳谷电机及拖动基础:上册M.3版北京:机械工业出版社,200427 顾绳谷电机及拖动基础:下册M.3版北京:机械工业出版社,200428 彭鸿才电机原理与拖动M.北京:冶金工业出版社,2002附录附录A 整体电路图附录B 部分源程序#include /调用单片机头文件#define uchar unsigned char /无符号字符型 宏定义变量范围0255#define uint unsigned int /无符号整型 宏定义变量范围065535sbit biz_l = P11; /左边避障sbit biz_r = P10; /右边避障/*LN298电机驱动IO口定义*/sbit qu_ll = P21; /左边电机控制IN1sbit qu_zl = P20; /左边电机控制IN2sbit qu_zr = P22; /右边电机控制IN1sbit qu_rr = P23; /右边电机控制IN2/*1ms 延时函数*/void delay_1ms(uint q)uint i,j;for(i=q;i0;i-)for(j=120;j0;j-);/*小车前进函数*/void go()qu_ll = 1; qu_zl = 0; qu_zr = 0; qu_rr = 1; /*小车后退函数*/void back()qu_ll = 0; qu_zl = 1; qu_zr = 1; qu_rr = 0; /*小车左转函数 只有一个轮子动*/void left()qu_ll = 0; qu_zl = 0; qu_zr = 0; qu_rr = 1; /*小车左转函数 左边轮子后退 右边轮子前进*/void left_s()qu_ll = 0; qu_zl = 1; qu_zr = 0; qu_rr = 1; /*小车停下函数*/void stop()qu_ll = 0; qu_zl = 0; qu_zr = 0; qu_rr = 0;/*小车右转函数 只有一个轮子动*/void right()qu_ll = 1; qu_zl = 0; qu_zr = 0; qu_rr = 0; /*小车右转函数 左边轮子前进 右边轮子后退*/void right_s()qu_ll = 1; qu_zl = 0; qu_zr = 1; qu_rr = 0;/*红外避障头避障*/void hongwai_bizhang()if(biz_l = 1) & (biz_r = 1) /没有障碍物时就前进 go();else if(biz_l = 0) & (biz_r = 0)/两个传感器都有障碍物时,先后退然后再右转 stop(); delay_1ms(100); back(); delay_1ms(500); right_s(); delay_1ms(380);else if(biz_l = 0) /左边传感器都有障碍物时,先停下然后再右转stop();delay_1ms(100);right_s();delay_1ms(200);else if(biz_r = 0)/右边传感器都有障碍物时,先停下然后再左转stop();delay_1ms(100);left_s();delay_1ms(200);go();/*主函数*/void main()while(1)
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 其他分类 > 大学论文


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!