版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
毕业设计题目循迹小车设计英文题目Thedesignofcartracking学生姓名:申请学位级别工学学士学号:专业:机械电子工程系别:机械与电子工程系指导教师:职称:二零一三年六月三日摘要该设计是为一个简易的循迹小车软硬件系统,该小车是基于8位的51单片机进行用控制的,循迹小车的研究意义涵盖了勘探、工业、生活以及探月工程。循迹是基于自动引导机器人系统,用以实现小车自动识别路线,以及选择正确的路线。从设计的功能要求出发,设计包括了小车控制系统的软件设计和硬件设计。小车采用了简易的三轮构架式,用由前两轮驱动并控制转向的控制模式。控制系统以STC89C52为控制核心,由STC89C52产生PWM波,控制小车速度。利用红外光电传感器探头对路面黑色轨迹进行检测,并确定小车当前的位置状态,再将路面检测信号反馈给STC89C52。STC89C52对采集到的信号予以分析判断,及时控制并驱动电机以调整小车转向,从而使小车能够沿着黑色轨迹自动行驶,实现小车自动寻迹的目的。关键词:循迹小车,STC89C52,红外光电传感器
ABSTRACTThedesignisasimpleautomaticallytracingthecarsystem,anditssignificancecoverstheindustry,life,exploration,andhumanconcernlunarexploration.Thedesignaimstodesignacanofindependentwalkinginaccordancewiththetrajectoryofhumandefault(orcompletelyautonomouswalking)andtocompletethetasksassignedtothecar.Thedesignincludescontrolsystemhardwareandsoftwaredesign.Relativelyhighstabilityofthefourtrussesinordertoadapttothecomplexterrain,beforetherotationoftherear-wheeldrivecontrolmode.ControlsystemtocontrolthecoretoSTC89C52microcontrollerPWMwavetocontrolthecarspeed.Usinginfraredphotoelectricsensortodetecttheblacktrackontheroadandtodeterminethecurrentstatusofthecar,andthentheroaddetectionsignalisfedtothemicrocontroller.Microcontrollertobecollectedsignalanalysisandjudgment,andtimelycontrolofthedrivemotortoadjustthesteeringofthecar,sothatthecaristravelingalongtheblacktracktoachievethepurposeofthecarautomaticallytracing.Keywords:cartracking;STC89C52;Infraredsensors
目录1. 绪论 绪论循迹小车概述循迹小车是一种能够根据人们预定的路线行走的小车,其应用范围极其广泛。早在二十世纪五十年代就研究出一种智能的搬运机器人,其主要功能是根据预定的路线进行物品搬运。循迹小车装备了一些能够识别路线的传感器,其传感器种类有电磁传感器、光学传感器。智能小车根据传感器识别的路径行进。工业中使用的智能循迹小车主要是以蓄电池为动力来源,可以通过电脑使用程序控制其行走路径和动作,其具有不需要驾驶员操作就能自动的把指定物品从起始点送到目的地。循迹小车还有另一个很鲜明的特点,那就是智能化和自动化,工业使用的智能循迹小车能够根据仓库存储货位情况以及生产流程的一些情况灵活的改变行走路径,而且与传统的运输带和运送线相比改变路径的费用要明显低很多,降低了企业的成本。此外工业使用的智能循迹小车一般都装备有装卸机构,其能实现的功能更多,能与其它的物流设备自动的对接,实现全自动化的物品装卸以及搬运。此外由于工业使用的智能小车的动力是由蓄电池提供的,其使用的能源是无污染的电能,且小车行进过程中基本没有噪音,可以在环境清洁的场地工作。循迹小车的发展历程随着社会的发展,科技水平在不断的提高,人们迫切希望制造出一种能代替人做一些十分危险或者精度要求非常高等一些不适合有人来完成的事情的机器,在这样的环境下诞生了机器人技术这门学科。1959年制作出世界上第一台机器人,至今已五十多年了,在五十多年中,机器人技术一直在飞速发展和进步中,现在的机器人技术已经是一门包含了电子、机械、计算机、信号处理、自动控制、传感器等多学科高端技术。众观循迹小车的发展历史,可以将循迹小车的发展分为三个阶段:第一阶段的循迹小车是没有传感器,只采用了简单的开关来控制,可以通过编程设置小车的运动参数和路径,但是这阶段的小车在工作过程中,不能够根据工作场地的变化而改变自身的行进轨迹。第二阶段的循迹小车支持离线编程并且具有检测并适应场地的能力,这类的循迹小车装备了一些简单的传感器,可以通过传感器知道自身所处的位置、速度等一些物理量。其电路系统闭环控制系统,能够较好的适应场地的变化。第三阶段的循迹小车是多功能的、智能的,但该类循迹小车目前正在研究和发展的阶段。其具有由各种传感器组成的感官系统,通过感官系统采集外部环境的信息,能准确的感知环境的变化。智能的循迹小车能够独立的完成任务,有智能的信息处理系统,在一些结构化和半结构化的工作场地中,能跟据场地的不同而自动的对自身功能进行调整,有简单的决策能力和一定的适应能力,以及学习能力。循迹小车的应用循迹小车的主要应用场所如下:危险的场所与特种行业在军事上的战场侦查以及扫雷排雷等,在核电厂内核材料的运送等,或在黑暗的环境中运送物料等,像这些工作都是十分不适合有人去完成的,在这种情况下循迹小车就可以出色的完成任务。邮局、图书馆、港口码头和机场这些场所都是一些人口密集的场所,其需要运送的物品量大,而且充满了不确定性和动态性,搬运的过程也比较单一。智能循迹小车就有智能化、自动化等优点可以很好的完成运输任务。现在越来越多的这类场所开始使用循迹小车了。烟草、医药、化工、食品这些场所都是一些具有安全、清洁、无排放污染等其他一些特殊环境要求的场所。在这种场所下,使用蓄电池的循迹小车正好能满足这些要求,所以在这些场所的货物的搬运工作大多数都是有循迹小车完成的。制造业在制造行业的生产线上,智能循迹小车能够大显身手,其能准确的、灵活的、快速的完成物料运送任务。智能循迹小车比人力搬运系统更加灵活,其运送路径可以根据生产要求及时调整,能够大大提高生产灵活性,提升了企业竞争力。目前,世界上主要的汽车生存厂,如大众、丰田、克莱斯勒、通用等,智能循迹小车已经得到了广泛运用。仓储业在世界上有超过2100个厂家在使用智能循迹小车,这些智能循迹小车的数量大约有两万台。使用智能循迹小车的数据库处理系统,能够轻松的完成大量的储存和装卸物品的任务。智能循迹小车的关键技术现在世界各国都在研究着多功能、智能化的汽车自动导航系统,并以实现能够不需要有人类驾驶就能自动的到达乘客所指定的目的地为目标。汽车自动导航系统是一种非常复杂的系统,它不仅需要具有普通汽车的运动机构,还需要能够识别指令,根据识别出来的指令来进行路径规划,以及对其他事物的感知,能够做出正确的决策等一些拟人的智能行为。人类就有听觉、嗅觉、味觉、视觉、触觉,能够通过这些感官去感知外部环境,然后通过大脑对感官感知到的信息进行处理、判断和分析,从而能够全面的认知事务。这样一个认知、分析、处理的过程,我们称之为信息融合。机器的多传感器信息融合技术的基本原理就是在模仿大脑的这系列过程。多传感器信息融合是一种将分布在不同位置不同功能不同种类的传感器所测得的数据进行综合,然后消除存在的矛盾和冗余,以减小不确定性,从而得出对环境或物体的一致性描述的过程。多传感器信息融合有许多的优点:增加了系统的生存能力;减少了信息的模糊性;扩展了采集数据覆盖范围;增加了可信度;改善了探测性能;提高了空间的分辨力;改善了系统的可靠性信息的低成本性[1]。方案的设计与论证方案的设计与论证主控系统根据设计要求,我选择以单片机为整个系统的核心,由单片机控制行进中的小车,以实现指定功能。仔细分析小车要实现的功能,其关键是在于实现小车能够根据一些条件进行自动控制,而单片机正好能够满足这一要求,并且单片机还具有一定的优势,其价格较为低廉,控制简单,编程方便,有比较强大的控制功能以及可以位寻址功能等,因此,选用单片机比较适合,且单片机丰富的资源也能得到充分的发挥,故以单片机为系统核心是较为合适的方案。由于该设计具有多个输入量,因此就需要能够处理多个输入量的标准单片机,像那些被精简了I/O和储存器的小体积单片机就不可选用。被设计的输入量都是一些简单的开关量,所以就不需选用数模转换器和模数转换器,如果选用模数转化器和数模转换器不仅会增加设计成本,而且还会增加设计复杂度,增加系统的不稳定性。根据以上分析,我从众多单片机中最终选用了STC89C52系列单片机为本设计的控制核心。STC的51系列单片机不仅价格低廉,而且其功能也十分强大,其输入输出口均能按位寻址,且具有强大的位操作寻址功能,并且还能进行各种位逻辑运算,从而能够很方便的对输入输出口进行控制。综合了对传感器、电机驱动等诸多因素考虑后,我决定选用一片单片机,充分利用了STC89C52单片机的资源。驱动模块对电机进行控制的方法非常的多,首先可以通过继电器对电机进行控制,通过控制继电器的通与断来控制电机电路的接通与断开,从而来调整小车的方向。此方法的优点是电路比较简单,但此方法有较多缺点,如继电器的响应时间较慢,容易损坏,且继电器的可靠度不高,故继电器方案不适合本设计的要求。其次,我们可以采用数字电位器对电动机进行分压,从而达到对电动机进行调速。但是数字电位器的价格十分昂贵,更重要的问题是电动机的内阻一般都是十分小的,通过电动机的电流却很大,对电动机进行分压不仅降低了电机的效率,而且实现起来也十分的困难。另外,我们可以采用功率放大器对电机进行控制,线性型的驱动电路结构简单,加速能力强,通过采用达林顿管组成的H型桥式电路对电机进行驱动。利用单片机控制达林顿管,使达林顿管工作在占空比可调的状态下,精确地调整电机转速。该电路由于工作在管子的饱和和截止状态下,效率很高,而且H型桥式电路能够保证简单的实现转速和方向的控制,电子管的开关速度非常快,稳定性也很强,所以这是一种被广泛采用的PWM技术。现市面上有很多此种芯片,我选用了L298N。循迹模块循迹模块是用来确定循迹小车确定自身位置的,如果循迹模块的选择不当将影响整个系统的稳定性。循迹模块可以采用简易的光电传感器并结合外围电路进行探测,此方案虽然看上去简单可行,但是在实际的测试结果中却并不是很理想,对小车的稳定性要求很高,而且容易引起误测,也容易受环境中光线和路面材料影响。在小车测试过程中很容易出现问题,而且会导致小车因循迹模块的不稳定致使整个循迹小车的不稳定,故循迹模块不适合选用该方案。除此之外,循迹模块采用三只红外传感器,平均的分布在车头上,相邻两传感器的间距小于或黑色轨迹的宽度,根据三只红外传感器检查黑线来控制小车能够循着黑线前进,测试表明,只要比较合理的安装好三只红外传感器的位置就可以较好的实现循迹功能。机械系统本题目要求小车的机械系统稳定、灵活、简单,可选用三轮和四轮式,考虑到简化设计,我选用了三轮式,驱动和转向方式都较灵活。驱动部分:采用玩具小车原有的驱动电机,由L298N双通道马达驱动模块驱动左右两个马达,其力矩完全可以达到模拟效果。电池的安装:将电池放置在车体的下面,降低车体重心,提高稳定性,同时可增加驱动轮的抓地力,减小轮子空转所引起的误差。主要器件介绍主要器件介绍单片机STC89C52的介绍该STC89C52单片机是由宏晶公司生产的种高性能、低功耗的8位微处理器,其有8K的系统可编程Flash、可擦除寿命可达1000次程序存储器。该产品使用的是经典的MCS-51内核,能够与8051系列能够很好的兼容,但是较传统51单片机功能跟强大,并且还可支持两种可以软件设置的省电模式。使实时处理、实时控制的功能更加完善,简化了硬件的配置。STC89C52具有8k字节Flash存储器,512字节内存,32个I/O端口,定时器,内置了4KB大小的EEPROM,16位定时器/计数器3个,外部中断4个,能全双工工作的串行输入输出口。STC89C52实物如图1。STC89C52引脚图STC89C52各引脚都有相应的功能:P0口:P0口是漏极开路的8位双向输入输出口,即可以作为8位输入口,也可以作为8位输出口。当作为输出口,每位都能驱动8个TTL逻辑电平。当对P0口写高电平时,引脚将被用作高阻抗输入。当使用P0口访问外部的程序或数据储存器时,P0口会被作为低8位地址/数据复用总线。在这种模式下,P0要加上一组上拉电阻。在进行Flash烧录程序时,P0口也被用来接收一些指令字节;在进行程序校验时,输出一些指令字节。程序校验时,需要在外部加上一组上拉电阻。P1口:P1口是一个由8个引脚组成的8位数据输入输出口,且每一位引脚已经具有内部的上拉电阻的,P1的输出缓存器能直接驱动4个TTL逻辑电平。当对P1端口写高电平时,内部的上拉电阻会把端口电平拉高,此时P1就可以作为输入I/O口使用了。当P1作为输入口使用时,将会输出电流。此外,P1口的个别引脚还有一些其他功能:P1.0:T2(芯片内的第二个定时器/计数器)的外部计数的输入或时钟的输出引脚(T2);P1.1:T2的捕捉或重载的触发信号和方向的控制信号引脚(T2EX);P1.5:在线系统编程使用的MOSI信号引脚;P1.6:在线系统编程使用的MISO信号引脚;P1.7:在线系统编程使用的SCK信号引脚;P2口:P2口也是一个由8个引脚组成的8位数据输入输出口,且每一位引脚已经具有内部的上拉电阻的,P2的输出缓存器能直接驱动4个TTL逻辑电平。当对P2端口写高电平时,内部的上拉电阻会把端口电平拉高,此时P2就可以作为输入I/O口使用了。当P2作为输入口使用时,将会输出电流。在访问一些外部的ROM或用16位地址寻址访问外部的RAM(例如执行指令MOVX@DPTR)时,P2口会传送高八位的地址。像在这种的应用中,P2口会使用比较强的内部上拉来发送高电平。在使用8位地址寻址(如指令MOVX@RI)访问外部的ROM或RAM时,P2口会输出P2锁存器内的内容。在进行Flash烧录程序和校验时,会由P2口来接收高8位地址的字节和一些特殊的控制信号。P3口:P3口也是一个由8个引脚组成的8位数据输入输出口,且每一位引脚已经具有内部的上拉电阻,使用输出缓存器能直接驱动4个TTL逻辑电平。当对P3端口写高电平时,内部的上拉电阻会把端口电平拉高,此时P3就可以作为输入I/O口使用了。当P3作为输入口使用时,将会输出电流。在进行Flash烧录程序和校验时,P3口也接收一些特殊的控制信号。P3口的许多引脚独有第二功能,主要是STC89C52特殊功能的输入输出口,如下所示:P3.0:串行输入口(RXD)P3.1:串行输出口(TXD)P3.2:外部中断0(INTO)P3.3:外部中断1(INT1)P3.4:定时/计数器0(T0)P3.5:定时/计数器1(T1)P3.6:外部ROM或RAM写选通(WR)P3.7:外部ROM或RAM读选通(RD)ALE/PROG:当要访问外部的ROM或RAM时,该引脚为ALE(锁存允许)功能,该引脚会输出特定的脉冲用来控制锁存低8位地址的锁存器。在一般的情况下,ALE仍会以16晶振频率输出一个固定的脉冲信号,因此它还可以向外输出脉冲信号或者用于定时的目的。然而需要注意:每当访问一次外部的ROM或RAM时都将直接跳过一个ALE的对ROM进行编程期间,该引脚还常用于输入ROM编程脉冲(PROG)信号。如果有必要,也可以通过对特殊功能寄存器区中的8EH单元中的D0位置位,可禁止ALE引脚的输出。当该位置位后,只有MOVX或MOVC指令才能将ALE引脚重新激活。此外,该引脚还会被微弱的拉高,当单片机需要执行外部的程序时,就应设置ALE的禁止位为无效。RST:复位信号的输入口。当晶振工作时,RST引脚如果出现两个机器周期以上高电平将会使单片机复位。PSEN:程序储存允许信号,输出的是对外部的ROM的读选通信号,当STC89C52向外部的ROM取指令或数据时,会输出两个脉冲。EA/VPP:外部访问的允许信号,欲使STC89C52只访问外部的程序存储器,EA端就必须保持低电平。如果EA端为高电平,STC89C52则执行内部的程序存储器内的指令。电机介绍本小车的电机采用了强磁电机,该电机运行稳定,无抖动,扭力大。下图为电机的参数。电机参数电机驱动模块L298N的介绍L298N是由ST公司生产的,是一种大电流、高电压电机驱动芯片。该芯片采用的是15脚封装。L298N的主要特点是:工作电压高,最高的工作电压可以达到46V;输出电流大,瞬间的峰值电流可以达到3A,持续工作的电流为2A;额定的功率为25W。其内部含两个H桥的大电流高电压的全桥式驱动器,既可以驱动直流电动机也可以驱动步进电动机、继电器线圈等;L298N采用的是由标准逻辑电平信号来控制;具有使能控制端两个,还可以外接检测电阻,将变化量直接反馈给控制电路。使用L298N芯片来驱动电机,该芯片可以驱动直接一台两相的步进电机或四相的步进电机,也可以直接驱动两台直流电机。L298N的引脚功能下图即为L298N芯片的外观图。L298N芯片图下图即为L298N的各引脚功能。L298N引脚功能图L298N的工作参数下图即为L298N的工作参数。L298N的工作参数L298N的逻辑控制L298的逻辑控制见如下图5。图中Ven代表ENA或ENB的输入电平,C、D代表为IN1、IN2或IN3、IN4;L代表低电平,H代表高电平。L298N逻辑控制TCRT5000的介绍TCRT5000结构紧凑,发光光源与探测器排列在同一方向上,通过反射红外线光束感知对象的存在。TCRT5000的工作波长为950毫米。该探测器有光电晶体管组成,工作时由蓝色发射管来发射红外线,红外线被遮挡物反射回来后被接收管接收。接收到反射光线后的接收管就会呈导通状态,与一电阻串联即可组成一个由发射管来控制的分压电路,由此可实现对遮挡物反射光线强度进行检测。我们经常利用这个特性去实现颜色识别。其实物外观图及引脚图如下。TCRT5000外观图TCRT5000引脚定义LM324的介绍M324是具有4个运放的集成电路,它采用封装方法是14脚两列直插式塑料封装。它内部包含有四个参数、功能完全相同的集成运算放大器,除了电源是共用的外,四组运放是相互独立的。每一个运算放大器可以用图3.4-1中的符号表示,其有5个引脚,其中“Vi+”、“Vi-”为信号的两个输入端,“V+”、“V-”为正、负电源输入端,“Vo”为输出端。图10为LM324的引脚图。单个运放符号LM324引脚硬件系统设计硬件系统设计总体设计根据设计要求以及初步确定的方案可以确定出总体的框架。下图即为整个系统的框架图。系统框架由TCRT5000对黑线轨迹进行检测,TCRT5000采集到的信息传给LM324电压比较器,经过LM324处理后,TCRC5000采集到的信息就变成了可以由单片机识别的高低电平,单片机对高低电平进行分析,然后发送相应的控制信息给L298N,由L298N控制电机做出响应的动作。循迹红外发射管与接收管分别装在车头的左中右位置。当车头下左边的TCRT5000传感器检测到黑线时,小车右转,当车头下右边TCRT5000传感器检测到黑线时,小车左转。直到小车完全回到黑线。主控电路单片机控制电路是由单片机最小系统组成的,主要作用是处理电压比较器LM324传来的高低电平信号,再通过设定的程序逻辑算法确定并发出电机驱动电路的指令。单片机的最小系统包括MCU,外部的时钟电路,按键复位电路和电源组成。本设计采用图11所示的单片机最小系统。STC89C52控制电路外部时钟电路XTAL1和XTAL2是独立的输入和输出反相放大器,其可以直接由外部的时钟信号驱动,或者使用石英晶振组成片内振荡器。在XTAL1、XTAL2的引脚上接上定时元件,其内部振荡器就能够直接自激振荡。一般单片机的晶振频率在1.2~12MHz之间,甚至有些单片机的晶振频率可达到24MHz或者更高,但是如果晶振频率越高其功耗就会越大。在本设计中所采用是11.0592MHz的石英晶振。和晶振相连的两个电容,其大小对晶振的振荡频率有轻微的影响,可以起到微调频率作用。当采用的晶振是石英晶振时,则电容可以在20~40pF之间选择;当采用陶瓷谐振器时,电容就应适当地增大一些,在30~50pF之间。通常都是选取33pF左右的陶瓷电容就可以了。另外值得一提的是如果在设计单片机系统的印刷电路板(PCB)时,晶振和电容应尽可能的与单片机芯片靠近,以减少由于引线而寄生的电容,保证振荡器可靠工作。用示波器检测晶振是否起振,可以观察到XTAL2输出了十分漂亮的正弦波,使用万用表测量检测时(把挡位打到直流挡,这个时候测得的是有效值)XTAL2和地之间的电压时,可以看到万用表示数为2V左右一点。复位电路在单片机中,复位电路是很关键的,当程序运行不正常或者死机(停止运行)时,就需要进行复位。5l系列单片机的复位引脚RST如果出现两个机器周期以上的高电平,单片机就会执行复位操作。如果RST引脚一直为高电平,单片机就会处于循环复位状态。复位操作一般有两种基本形式:手动复位和上电自动复位。图4.4中所示的复位电路中,这两种复位方式都包含在内。在上电的一瞬间,电容两端的电压不能发生突变,由于电容的负极是和RST引脚相连的,电源电压会全部的加在电容下面的电阻上,RST引脚的电平为高,芯片就会被复位。电路稳定后,电源会给电容充电,电阻上的电压就会逐渐减小,最后约为0V,芯片便能开始正常的工作。并联在该电容两端的按钮为复位按钮,当没有按下复位按钮的时候,电路可以实现上电自动复位,在芯片进入正常的工作后,通过按下复位按钮使RST引脚为高电平从而达到手动去复位的效果。就一般情况来说,只要RST引脚上保持有大约10ms以上高电平,就能够使单片机有效的进行复位。电路图中复位所用电阻的大小和电容的大小为经典值,实际制作时可以使用同一数量级的电阻和电容来代替,也可以通过自行计算RC的充电时间或在工作环境实际测量而得到,以确保单片机的复位电路能可靠运行。P0口外接上拉电阻STC89C51的P0口内部并没有上拉电阻。所以当P0口仅作为普通输入输出口要实现输出数据时,由于V1截止,输出级的电路是漏极开路的电路,要使正常输出高电平,就必须外接一个上拉电阻。P0口其中1位的电路结构另外,为了避免输入时读取数据出现错误,也需要外接上拉电阻。轨迹识别电路循迹的原理是小车在画有黑线的白纸上行驶,由于黑线和白纸对光线的反射程度不同,可以根据接收到的反射光线的强弱来判断是否是黑线。本设计规定正常行驶时三个红外探头只有中探头在黑线的范围以内,左右探头分别位于黑线的左右,如果中探头检测不到黑线说明小车已经偏离了轨道,需要进行校正,此时,系统会读取左右探头的状态,如果左探头检测到黑线,说明小车向左边偏了,此时小车就应该向右转。若果右探头检测到黑线,说明小车向右偏了,此时小车应该向左转。此电路模块是用于检测小车是否偏离轨道并以特定信号给传下一级电路。这一方法就是红外探测。红外探测,即利用由于红外线在颜色不同的物体表面具有的反射性质不同的特点。在小车行进过程中,红发发射管会不断地向轨迹所在的地面上发射红外线,当红外线遇到了白色的地面时发生漫发射,反射光线会被反射到装在小车上的红外接收管,并接收;如果遇到的是黑线,则红外光会被吸收,则小车上的红外接收管就会接收不到足够的信号。电压比较电路电压比较器是在集成运算放大器的基础上去掉反馈电阻从而使放大倍数趋于无穷大。这时运算放大器就形成了一个电压比较器。当同相端的电压大于反相端的电压时比较器就会输出高电平,当反相端的电压高于同相端的电压时输出端就会输出低电平。如下图所示。单红外探头黑线识别电路及LM324电压比较电路用了LM324内部的3个单独的运算放大器外接一个可调电阻来输入基准电压。基准电压输入在反相输入端上,黑先识别电路反馈过来的电压从电压比较器的同相端输入。当TCRT5000反馈的电压比基准电压高时,比较器输出高电平。当TCRT5000反馈的电压比基准电压低时,比较器输出低电平。这样就可以使红外探头把地面反射光线的程度变成了可以被单片机识别的开关量。由于考虑到地面粗超程度不同,我们通过可调电位器去调节基准电压,经过实际测量后确定基准电压的值。直流电机驱动电路电机驱动一般都是采用H桥式驱动电路,L298N内部就集成了H桥式驱动电路,从而可以采用L298N电路来直接驱动电机。通过STC89C52给予L298N电路PWM信号来控制直接小车的速度、起停。为了设计上的方便我采用了市面上已有的L298N电机驱动模块,其不仅便宜而且稳定性高。其原理图如下图所示。L298N模块电路图程序设计程序设计本程序设计采用了模块化程序编程思路。许多程序太长或太复杂,很难写在单一单元中。如果把代码分为较小的功能单元,将大大简化编程过程。模块化程序一般比单块程序容易编写、调试和修改。模块化编程方法类似于包含大量电路的硬件设计。器件或程序在逻辑上被分为多个“黑箱子”,这些黑箱子都有指定的输入和输出。只要把各个单元之间的接口定义好,各个单元的详细设计就可以独立进行了。模块化编程的优点如下:有效率的程序开发:使用模块化方法可以更快地开发程序,因为较小的子程序比大程序更容易理解、设计和测试。定义好模块的输入和输出之后,程序员可以给模块提供需要的输入,通过检测输出来判断模块的正确性。然后由连接器把分立的模块连接、定位,生成一个单一的绝对地址的可执行的程序模块。最后,测试整个模块。子程序可以重用:为一个程序编写的代码经常可以用于其它的程序。在模块化编程中,可以把这些部分保存起来,以备将来使用。因为代码可以被重定位,所以保存的模块可以连接到满足其输入和输出要求的任意程序中。而在单块程序编程中,这样的部分深埋在整个程序中,不易被其它的程序使用。便于调试和修改:模块化程序一般比单块程序易于调试。因为精心定义了程序的模块接口,很容易把问题定位到特定的模块。一旦找到了有问题的模块,更正问题就相当容易了。模块化编程可以简化程序修改的工作。我们可以很有信心地把新的或调试过的模块连接到一个已有的程序,而不用更改程序的其余部分。程序总体框架程序总体流程图如下图所示。
开始开始程序初始化程序初始化定时器初始化并启动定时器初始化并启动读取中探头信号并判断是否为黑线读取中探头信号并判断是否为黑线是是小车向前走小车向前走否否左探头检测到黑线右探头没有检测到黑线左探头检测到黑线右探头没有检测到黑线读取左探头信号和右探头信号并判断是否为黑线小车向左转小车向左转右探头检测到黑线左探头没有检测到黑线右探头检测到黑线左探头没有检测到黑线小车向右转小车向右转其他情况小车停止其他情况小车停止程序总体流程图程序读取循迹模块的信息后确定的小车位置状态与对应输出的驱动指令对应关系如图16,其中黑色代表探头检测到黑色轨迹。循迹模块的状态与小车位置的对应关系主程序模块主程序模块要实现的功能主要是先对单片机进行初始化,然后再进入循迹模块的循迹程序。源文件(mian.c):#include<reg52.h>#include<absacc.h>#include"dianji.h"#include"xunji.h"#include"dingshiqi.h"voidmain(){ EA=1; DingShiQi_QiDong(1); DianJi_QiDong(); while(1) { XunJi();//进入循迹模块的循迹程序 }}循迹程序模块循迹程序模块的功能为:读取黑线检测电路的状态,然后进行判断小车位置,进而进入电机驱动模块中前进、左转、右转程序头文件(xunji.h):#ifndef__XUNJI_H__#define__XUNJI_H__externvoidXunJi();#endif源文件(xunji.c):#include<reg52.h>#include<absacc.h>#include"xunji.h"#include"dianji.h"sbitZuo=P1^0;sbitZhong=P1^1;sbitYou=P1^2;voidXunJi()//循迹程序{ P1=0x00; if(Zhong==1)//中探头检测到黑线 XiangQian();//小车前进函数 else { if((Zuo==1)&&(You==0))//左探头检测到黑线,右探头没有检测到黑线 XiangZuo();//小车左转函数 if((Zuo==0)&&(You==1))//左探头检测到黑线,右探头没有检测到黑线 XiangYou();//小车右转函数 if(((Zuo==1)&&(You==1))||((Zuo==0)&&((You==0))))//其他情况 TingZhi();//小车停止函数 }}电机程序模块电机驱动程序模块实现的主要功能为:提供了小车前进、左转、右转函数,将对电机的控制抽象为小车位置的改变。头文件(dianji.h):#ifndef__DIANJI_H__#define__DIANJI_H__externunsignedintZhanKongBi_Zuo;externunsignedintZhanKongBi_You;sbitENA=P0^4;sbitENB=P0^5;externvoidDianJi_QiDong();externvoidXiangZuo();externvoidXiangYou();externvoidXiangQian();externvoidTingZhi();#endif源文件(dianji.h):#include<reg52.h>#include<absacc.h>#include"dianji.h"#defineDa90#defineXiao10#defineZhong50unsignedZhanKongBi_Zuo;unsignedZhanKongBi_You;sbitIN1=P0^0;sbitIN2=P0^1;sbitIN3=P0^2;sbitIN4=P0^3;voidDianJi_QiDong()//启动定时器函数{ IN1=1; IN2=0; IN3=1; IN4=0;}voidXiangZuo()//小车左转函数{ ZhanKongBi_Zuo=Xiao; ZhanKongBi_You=Da; }voidXiangYou()//小车右转函数{ ZhanKongBi_Zuo=Da; ZhanKongBi_You=Xiao;}voidXiangQian()//小车前进函数{ ZhanKongBi_Zuo=Zhong; ZhanKongBi_You=Zhong; }voidTingZhi()//小车停止函数{ ZhanKongBi_Zuo=0; ZhanKongBi_You=0;}定时器程序模块定时器模块实现的功能为:设置单片机的定时器,对单片机出的PWM进行控制,从而控制小车的速度。头文件(dingshiqi.h):#ifndef__DINGSHIQI_H__#define__DINGSHIQI_H__externvoidDingShiQi_QiDong(int);#endif源文件(dingshiqi.c):#include<reg52.h>#include<absacc.h>#include"dingshiqi.h"#include"dianji.h"#include"xunji.h"unsignedcharShiJian;unsignedcharShiJianShu=0;voidDingShiQi_QiDong(intShiJian)//设置time毫秒定时中断,并启动定时器。{ if(ShiJian>60) ShiJian=60; ShiJianShu=ShiJian; TMOD=0x01; TH0=(65536-ShiJianShu*1000)/256; TL0=(65536-ShiJianShu*1000)%256; ET0=1; TR0=1; }voidDingShiQI()interrupt1{ TH0=(65536-ShiJianShu*1000)/256; TL0=(65536-ShiJianShu*1000)%256; if(ShiJian<ZhanKongBi_Zuo) ENA=1; else ENA=0; if(ShiJian<ZhanKongBi_You) ENB=1; else ENB=0; ShiJian++; if(ShiJian>=100) { ShiJian=0; } 结论结论整个软硬件系统的设计是以51单片机为核心,利用了传感器,综合了软件和硬件。本系统能完美实现如下功能:小车能够自动沿着预设轨道行进,在行进过程中,能够自动通过传感器检测预先设好的黑色轨迹,实现在直线和弧形轨迹上行进。如有偏离,小车能自动纠正位置,返回到预设轨道上来。从运行的情况来看小车的循迹效果比较好,由于没有对电源进行很好的设计,使得电源不够稳定,以至于小车的速度不好控制,这也是我这次设计最大的误区,没有选取稳定的电源设计方案。但是我相信如果在时间的允许下我肯定能解决这一问题。通过本次设计我学会了很多以前不知道的知识,加深了对很多以前不熟悉得东西的认识,这使我在个人认知上又进了一步,也认识到自己的很多不足。参考文献参考文献[1]郭惠,吴迅.单片机C语言程序设计完全自学手册[M].电子工业出版社,2008.10:1-200.[2]王东锋,王会良,董冠强.单片机C语言应用100例[M].电子工业出版社,2009.3:145-300.[3]韩毅,杨天.基于HCS12单片机的智能寻迹模型车的设计与实现[J].学术期刊,2008,29(18):1535-1955.[4]王晓明.电动机的单片机控制[J].学术期刊,2002,13(15):1322-1755.[5]YamatoI,etal1NewconversionsystemforUPSusinghighfre2quencylink[J]1EEEPESC,1988:210-320.[6]YamatoI,etal1HighfrequencylinkDC/ACconverterforUPSwithanewvoltageclamper[J]1IEEEPESC,1990:52-105. 附录附录附图1循迹小车仿真电路图基于C8051F单片机直流电动机反馈控制系统的设计与研究基于单片机的嵌入式Web服务器的研究MOTOROLA单片机MC68HC(8)05PV8/A内嵌EEPROM的工艺和制程方法及对良率的影响研究基于模糊控制的电阻钎焊单片机温度控制系统的研制基于MCS-51系列单片机的通用控制模块的研究基于单片机实现的供暖系统最佳启停自校正(STR)调节器单片机控制的二级倒立摆系统的研究基于增强型51系列单片机的TCP/IP协议栈的实现基于单片机的蓄电池自动监测系统基于32位嵌入式单片机系统的图像采集与处理技术的研究基于单片机的作物营养诊断专家系统的研究基于单片机的交流伺服电机运动控制系统研究与开发基于单片机的泵管内壁硬度测试仪的研制基于单片机的自动找平控制系统研究基于C8051F040单片机的嵌入式系统开发基于单片机的液压动力系统状态监测仪开发模糊Smith智能控制方法的研究及其单片机实现一种基于单片机的轴快流CO〈,2〉激光器的手持控制面板的研制基于双单片机冲床数控系统的研究基于CYGNAL单片机的在线间歇式浊度仪的研制基于单片机的喷油泵试验台控制器的研制基于单片机的软起动器的研究和设计基于单片机控制的高速快走丝电火花线切割机床短循环走丝方式研究基于单片机的机电产品控制系统开发基于PIC单片机的智能手机充电器基于单片机的实时内核设计及其应用研究基于单片机的远程抄表系统的设计与研究基于单片机的烟气二氧化硫浓度检测仪的研制基于微型光谱仪的单片机系统单片机系统软件构件开发的技术研究基于单片机的液体点滴速度自动检测仪的研制基于单片机系统的多功能温度测量仪的研制基于PIC单片机的电能采集终端的设计和应用基于单片机的光纤光栅解调仪的研制气压式线性摩擦焊机单片机控制系统的研制基于单片机的数字磁通门传感器基于单片机的旋转变压器-数字转换器的研究基于单片机的光纤Bragg光栅解调系统的研究单片机控制的便携式多功能乳腺治疗仪的研制基于C8051F020单片机的多生理信号检测仪基于单片机的电机运动控制系统设计Pico专用单片机核的可测性设计研究基于MCS-51单片机的热量计基于双单片机的智能遥测微型气象站MCS-51单片机构建机器人的实践研究基于单片机的轮轨力检测基于单片机的GPS定位仪的研究与实现基于单片机的电液伺服控制系统用于单片机系统的MMC卡文件系统研制基于单片机的时控和计数系统性能优化的研究基于单片机和CPLD的粗光栅位移测量系统研究单片机控制的后备式方波UPS提升高职学生单片机应用能力的探究基于单片机控制的自动低频减载装置研究基于单片机控制的水下焊接电源的研究基于单片机的多通道数据采集系统基于uPSD3234单片机的氚表面污染测量仪的研制基于单片机的红外测油仪的研究96系列单片机仿真器研究与设计基于单片机的单晶金刚石刀具刃磨设备的数控改造基于单片机的温度智能控制系统的设计与实现基于MSP430单片机的电梯门机控制器的研制基于单片机的气体测漏仪的研究基于三菱M16C/6N系列单片机的CAN/USB协议转换器基于单片机和DSP的变压器油色谱在线监测技术研究基于单片机的膛壁温度报警系统设计基于AVR单片机的低压无功补偿控制器的设计基于单片机船舶电力推进电机监测系统基于单片机网络的振动信号的采集系统基于单片机的大容量数据存储技术的应用研究基于单片机的叠图机研究与教学方法实践基于单片机嵌入式Web服务器技术的研究及实现基于AT89S52单片机的通用数据采集系统基于单片机的多道脉冲幅度分析仪研究机器人旋转电弧传感角焊缝跟踪单片机控制系统基于单片机的控制系统在PLC虚拟教学实验中的应用研究基于单片机系统的网络通信研究与应用基于PIC16F877单片机的莫尔斯码自动译码系统设计与研究基于单片机的模糊控制器在工业电阻炉上的应用研究基于双单片机冲床数控系统的研究与开发基于Cygnal单片机的μC/OS-Ⅱ的研究基于单片机的一体化智能差示扫描量热仪系统研究HYPERLINK"/de
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 红河学院《足球》2022-2023学年第一学期期末试卷
- 微创髋关节置换术的护理
- 第七章-拉卡托斯科学研究纲领
- 对患者健康教育总结
- 《常用药膳中药材》课件
- 青年员工拓展培训方案
- 嵌顿性沟疝护理查房
- 2024装饰装修监理合同范本
- 2024安置房屋买卖合同
- 第03讲 等比数列及其前n项和(学生版)-2025版高中数学一轮复习考点帮
- 城市公共空间设计理论与方法(课堂PPT)
- HG20592-97化工部标准法兰规格
- 汉语阅读教程第一册第八课
- 麦克维尔单螺杆冷水机组PFS.C样本
- CCTV雨污水管道检测缺陷内容判断依据判断标准
- 仓管员考核试题仓管员理论知识与业务技能试卷(含答案)
- 土地权属争议案件调查处理文书格
- 樱花栽培管理浅谈
- 《探究串并联电路中电流的规律》说课稿
- 医院回避制度
- 新概念第二册第62课
评论
0/150
提交评论