【《基于单片机的智能清洁机器人设计》17000字(论文)】_第1页
【《基于单片机的智能清洁机器人设计》17000字(论文)】_第2页
【《基于单片机的智能清洁机器人设计》17000字(论文)】_第3页
【《基于单片机的智能清洁机器人设计》17000字(论文)】_第4页
【《基于单片机的智能清洁机器人设计》17000字(论文)】_第5页
已阅读5页,还剩35页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

绪论1.1研究的背景和意义近年来,随着对移动机器人的研究逐渐深入,已经成为现如今智能研究中最为火爆的课题之一。但其火爆外面的背后也仍然存在着很多问题,那就是其将面临更加多变的环境,执行更加多样的任务。例如,一些人体不便进入的狭小区域可以使用机器人代替进入等。再如,随着各种智能家居的兴起,移动机器人也可以用在清扫的场景下。基于单片机的扫地机器人在这样一个大环境下被提出了,这种机器人有很多种工作方式可以选择。可以按照实际使用条件的不同,来随心所欲的变换其工作方式。扫地机器人出现至今,持续受到世界各地人士的关注,是因为其具有非常可观的发展前景和空间,使它成为一个当前非常火爆的一个热门的研究课题,能创造出很多可能性,且非常具有实用价值智能清洁机器人通过把移动机器人技术与清洁技术二者相结合,实现智能自主化清洁。它极大的解放了人力资源,将人们从重复性质的的清洁工工作中解放了出来。对于相关方面的研究,近年来受到了国内外研究者的重视。随着智能机器人在清洁领域的应用,技术上智能的自主清洁具有强大的表达力,可以体现许多清洁机器人的重要技术。站在市场的角度,清洁机器人使原来需要耗费时间去做重复性清洁工作的人们拥有更多可以自由支配的时间,也为企业节省了用于雇佣清洁工作者的资金,不论在家庭还是公共场所都有广泛的应用前景。 所以,研究智能清洁机器人不论在科研的挑战性上还是市场前景的广阔性上都极具优势。通过将现代传感技术与机器人技术相结合,开发一台高智能化、低成本的全区域清扫覆盖清扫机器人是非常有意义的。它满足人们的需求,替代传统的人工清扫作业,使人们免于重复枯燥的清洁工作。也是人们能够更好的享受智能化的生活,直观体验到科技对日常生活的改变。1.2国内外研究动态在最近几十年,人类社会因为科技的快速提高而迅速发展,但同时也带来了各种各样的问题。不断变快的生活节奏,日益增大的工作压力成为了越来越多人们的烦恼,人们也就越倾向于简单,便捷的日常生活方式。而繁琐的家庭清洁工作就是其中的一个体现,在这种情况下,家庭清洁机器人就有了广泛的应用前景。而在商业场景中,人们对清洁效率的要求不断提高,各种景区和建筑物对于科技和美观的要求,还有人力资源成本的提升等种种原因使得商用级扫地机器也有广泛市场。国外对于智能清洁机器人技术的研究已经有了一段时间,对于产品功能的开发和不同场合的应用已经形成了一套自己成熟的体系。而国内智能清洁机器人开发起步较晚,技术主要是依托于逐渐成熟的低速自动驾驶技术,开发出了户外清扫机器人、无人驾驶环卫车等商用清洁机器人产品。这些产品也可自主完成种种清扫工作,但由于技术相对还没有国外成熟,在智能导航路径识别、地图构建和相关算法等方面仍有一些不近人意的地方。还在努力研发、调试于逐步量产的阶段,技术还在逐步成熟中。最近几年,智能清洁机器人的市场扩张非常快,日益增长的需求不断推动着清洁机器人的普及,越来越多的日常生活场合开出出现它们的身影。在初期发展阶段,清洁机器人的主要发展方向是提高清洁效率。而在现阶段,在清洁效果得到保证的基础上,对于智能化程度的要求也变得更受重视。多传感器结合、导航、路径规划等智能化核心技术将成为新的发展方向。1.3设计任务为了体现出小车系统的智能化,清洁智能小车要在无人情况下满足设计要求,完成设计功能。本次设计具体要完成的任务如下:(1)了解51单片机开发环境,使用C语言对程序进行编写;(2)熟悉所选单片机的内部结构,使用资源和设备调试方法;(3)自行搭建单片机最小系统,对设计各模块原理和功能进行学习;(4)完成硬件电路设计,对整体硬件结构完成设计和组装;(5)对小车程序软硬件进行联调,完成设计要求;1.4章节安排本次设计的清洁小车是基于51系列单片机所实现,首先要完成最基本的清扫任务,在此基础上突出清洁小车的智能性,对于各模块的选择与实现既要保证所要求的功能的稳定实现,又要对性价比有所考虑。最终实现所要求的任务。第一章是引言部分,这部分主要对其历史应用到现在的发展状况、课题的目的与意义与设计任务都做了很详尽的介绍。第二章详细介绍总体设计方案,比较各个模块设计方案,同时根据系统的方案框图做出最优选择。第三章使清洁小车的硬件实现,对各个模块电路进行设计,将各硬件进行组合连接,实现设计功能。第四章详为系统软件设计,在前一章节硬件铺垫的基础上,对系统的软件部分进行了介绍。首先介绍了系统的开发环境,对清洁小车工作模式做出具体介绍并给出了详细的流程图。第五章为软硬件联调。对小车功能进行测试,对测试过程中所出现的问题进行分析并提出解决办法,最后对实物成果进行展示。第六章是本次设计的一个总结,总结了软件和硬件的核心思路,以及对设计的整体性能。2总体方案设计根据题目要求,本次设计系统采用单片作为核心系统控制处理器,用于智能清洁小车的控制。避障模块负责收集工作环境中的信息,智能清洁小车的驱动由电机驱动模块完成进,电源模块负责给单片机供电,充电模块负责电池的充电。系统总体设计方框图见图2.1。图2.1系统总体方框图2.1车体选择方案1在网上购买成品的电动玩具车,然后通过对成品玩具车进行改装实现设计。因为成品电动玩具车自带有配套齐全的车架结构、电机和配套的驱动电路。但直接购买的电动玩具车也有一些缺点,由于电动玩具车的商业属性,它的装配会很紧凑,车体上很少有空位置去添加设计中的一些元器件,不利于改装传感器和一些其他器件。第二,对于市面上常见的电动玩具车多数是由后轮对小车进行驱动,前轮为转向轮,因此,玩具车不能灵活快速地执行诸如保持原地旋转90度或180度掉头之类的功能。三是电动玩具车电动机主要是使用玩具直流电机。由于玩具直流电动机的转矩太小,空载速度快,玩具车的负载性能下降,调速变得困难。且它的价格较高,性价比不高。所以放弃这种方案。方案2直接购买亚克力车身底板,双层亚克力板具有有利于搭建其他结构模块的优点,在其上安装红外传感器容易实施。在经过多次考量后,基本制定了智能清洁小车由四轮驱动,由左右车轮转速差实现转向的车模方案。即左右四个轮分别用四个力矩和转速基本完全相同的直流减速电机作为驱动电机,且左边两个电机串联,右边两个电机串联,当左右两边电机分别进行正反转或转速不同时,就可实现智能清洁小车的转向与掉头等功能,且四轮系统智能清洁小车行驶与执行清扫任务也更稳定。最终选择方案2。2.2单片机控制模块选择本系统最重要的部分是选择适合的核心控制模块,开发小型智能控制系统时无需考虑结构复杂的嵌入式芯片,因此本文在选择控制芯片时以当前市场上应用较多的为主,属于一种单芯片微处理器。在选取本系统核心控制芯片前,要对比市场上多款主流SCM模型。(1)MSP430单片机:全球规模最大的半导体制造公司TT在市场上推出的一款16位高性能混合信号处理芯片,即为MSP430系列MCU芯片,该芯片的特征体现在能耗超低,运行速度快、计算能力强,组装指令集简单且高度集成,用户操作简单,主要在对功耗比较敏感的场景有很好的表现,如数模转换、能耗超低及计算要求高的工业自动控制领域运用。根据功能和内存大小等具体配置的差异,其分为很多个系列。从最开始的11x系列,发展到后来的33x系列和F13系列、F14系列等等。由于其实16位处理器,因此其特点是处理能力强、运算速度快。此外,其片内还有包括看门狗,定时器,以及一些常见的硬件通信接口等等。同时其也有固定的编译软件,方便开发者对其进行开发。(2)STC89C52单片机:STC单片机在长期发展下已经被我国市场所接受,是我国国产单片机的代表。STC89C52单片机是一款入门者广泛接触并使用的微处理器,其是一款8位的处理器。它日常的工作状态非常的稳定,很少出现程序跑飞的情况。其具有两个非常显著的特点,一是供电压低,二是其性能也相对较高。89C52系列单片机的引脚总数是40,其中可以进行编程的引脚一共有32个,其中分为4组,分别记做P0-P3,每组有8个,每个都是8位并行I/O口;有一个可以双向通信的串行端口,还拥有可以随时中断程序的中断源,共5个,两个中断优先级以及位数达到16位的定时器。STC89C52单片机存储分为两个部分,一部分是不可以擦除的存储部分,其程序存储器的大小是4个KB,数据存储器的大小是128个比特。另外一部分是可以擦除的部分,系统都程序都将存储在可以擦除的存储器内部,这样比较方便调试和下载。这部分空间的大小是4KB。STC89C52微控制器含有中断控制,定时器等部件,因此使用起来非常的方便,外部所需要的器件也很少,它与工业标准的MCS51指令集也相互兼容。(3)PIC单片机:PIC单片机系列产品从市场需求出发分为三个等级,分别为高级、中级、低级。美国芯片公司成立后,其生产制造的芯片销售量与销售速度让人意想不到,且PIC微控制器上运用RISC指令集结构,从性能出发可划分为三个等级。系统架构上运用哈佛双总线法,一个指令周期上的工作方式如下:在从内存中读取一条指令后再运行该指令。(4)AVR单片:AVR单片机是同样是8位的,但它的不同之处是——它是一款高速单片机。AVR微处理器内部拥有高质量的FLASH。其始终频率较高,因此他执行指令的速度很快,执行每条指令对程序带来的延时很小。但是AVR单片机内部没有类似累加器的功能,需要靠频繁反复的使用其内部的寄存器进行操作。通过分析智能清洁小车的系统,几种方案相比,MSP430单片机和AVR单片机性能虽好,但是本设计中并没有那么大的资源消耗,同时这两款单片机价格也相对STC89C52单片机来说比较昂贵。而PIC单片机存在四个地址存储区间,在编程过程中要不断选择存储区间,因此对编程造成了一些麻烦。而STC89C52单片机价格低廉,并且内存等资源完全够用。本文设计应用系统时考虑的主要因素为成本核算、功能需求及运行稳定性,STCMCU系列的STC89C52芯片稳定性强、功能完善、运行速度快,可以与8051MCU指令集相互兼容,且价格低廉,基本上可以达到系统设计需求。因此综合以上种种考虑,在本设计中采用方案二使用STC89C52作为主控制器。2.3电源模块选择在对于本次智能清洁小车系统的电源模块选择时,我考虑到小车的续航情况、性价比和环保等方面,设计了以下几种方案。方案1采用12V蓄电池做电源,经过7805三端集成稳压器将12V电压变换后为单片机供电。稳定的电压输出性能与优秀的电流驱动能力完全满足系统要求,且硬件成本低,不论是购买成本还是维修更换成本。对于电子产品适应性好。而蓄电池安装体积大,不易于在一般小型电动车上应用的缺点在本次设计的智能清洁机器人上则不存在,本次设计采用双层亚克力车板结构有足够的地方固定蓄电池,四轮驱动,所以不存在安装与运行时不方便的情况。使用蓄电池也符合小车性价比高的要求,且本次设计还要求有与智能清洁小车配套的充电装置,因此我们选择此方案。方案2采用6节1.5V干电池作为电源,经过7805三端集成稳压器变压后为单片机系统供电。虽然这种方案也能满足智能清洁小车工作室系统的要求,但考虑到小车性价比,环保等方面,放弃这种方案。综上所述采用方案12.4电机模块选择方案1步进电机的工作是通过脉冲信号来进行驱动,其一般实现的转速是相对精确的,通过程序可以控制其实现相对精确的转动。可以通过单片机控制其进行加速、减速、正转等功能。步进电动机的速度由其驱动芯片提供的脉冲频率所决定。它的速度与驱动脉冲的频率成正比。脉冲频率越高,速度越快。但它也存在着缺点,低速行驶时可能会出现异常的抖动,并且由于高速行驶时扭矩损失大且精度相对较低,因此步进电机的运行速度受到限制,不能实现快速的运行。方案2汽车的发动机大部分是使用的直流电机进行驱动的,因为其可控制性强,加速减速也快,所有被广泛的使用。其可以直接使用单片机控制其速度的变换,控制加减速的方式主要是通过控制其两端的电压的大小,也可以通过程序性控制的方式-PWM调速程序控制其占空比来实现控制其速度。故本次设计采用方案2来实现。2.5避障检测模块选择方案1用超声波传感器实现小车的避障检测功能。超声波传感器是将超声波信号转换为另一个能量信号的传感器。它是利用超声波的特性开发的传感器,超声波是频率为20KHZ或更高的机械波。它可以用于检测透明物体、液体,还可以对集装箱状态进行探测,但是,它不适用于室外高温高压环境或压力罐和泡沫物体。精度相对低于反射型光电传感器。方案2红外传感器具有高度敏感,反应快等的优点。通过将发射与接受合二为一,根据不同的需求对检测距离进行调节。具有检测距离长,抗光干扰能力强,成本低,结构简单,使用方便等特点。被大面积使用在机器人避障,流水线计数等自动化相关产品方面。经过以上分析,本设计采用方案2红外传感器。2.6充电模块选择因为智能清洁小车所用的电源为12V蓄电池,在小车充电模块所需完成的任务就是提供12V蓄电池的充电装置,所需要完成的工作为制作一个220V转12V的直流电源,通过一个220V转12V的变压器实现,在直流电源的输出端引出一个与12V蓄电池相接的端口。充电装置如下图2.2所示。图2.2充电装置2.7显示模块选择方案1用LCD液晶显示屏显示,它的原理利用穿过滤色器并产生各种颜色的白光,再通过电流调节不同像素点的透光率来完成对不同颜色的控制。LCD有许多的优点显示更加清晰,内容更丰富,信息量大,使用起来非常便利,但安装占用地方较大,智能清洁小车在固定蓄电池后车体紧凑不宜安装,且价格相对较高,功耗耗能大。方案2用LED灯来进行显示,通过了LED灯亮灭的数量来显示智能清洁小车不同的工作模式。它有格便宜、使用简单、功耗小、无热量、耐冲击等优点,而且LED灯安装简单,占用空间小,也满足车体安装蓄电池后安装空间有限的问题。综上所述选用方案2。2.8选择方案在对智能清洁小车进行反复选择,我最终确定了以下的方案:本次设计以STC89C52单片机为核心部件,使用L298N模块对电机进行驱动,使扫地机器人可以移动。通过红外避障模块来检测障碍物。系统的供电部分是使用电池进行供电,经过板子上的电源转换模块,将电压转换为5V对系统上的各个器件供电。系统可实现的功能:扫地机器人往返清扫、任意清扫和延边清扫的功能,同时该扫地机器人在行进的过程当中可以智能的避开沿途的所有障碍物,可以通过按键来改变扫地机器人的清扫方式,同时还可以通过按键来改变扫地机器人的移动速度。3清洁机器人硬件实现3.1STC89C52单片机介绍STC89C52是一款8位微控制器。它的内核是非常经典MCS-51,有很多微处理器都使用了这一款内核。并在其基础上做了很多改进,在功能上做了一些加强。STC89C52实物图如图3.1所示。从硬件功能上来看,它使用的是一个8位的CPU。随着成本的降低,其在越来越多的智能化场景中被应用了起来。STC89C52的总引脚数量是40个,其中32个可以控制的数据引脚,共分为4组,每组具有8个引脚。为了防止单片机偶然发生的程序跑飞的事件发生,其配备了看门狗定时器的功能,通过这个功能来确保单片机程序运行的稳定,可靠。除了看门狗定时器以外,其内部还具有三个定时器,这三个定时器都具有复用的功能。内部存储单元非常丰富,总体可分为两个部分:不可以擦除的存储部分,其程序存储器的大小是4个KB,数据存储器的大小是128个比特。另外一部分是可以擦除的部分,系统将程序都存储在可以擦除的存储器内部,这样比较方便调试和下载。这部分空间的大小是4KB。由于其高性能的特点,对很多的应用场景其都可以从容应对,对于一些低功耗的应用场景,其可以直接切断电源,使所有资源均停止工作或者让CPU停止工作的方式来降低功耗。图3.1STC89C52实物图3.1.1STC89C52的管脚介绍89C52系列单片机的引脚总数是40,其中可以进行编程的引脚一共有32个,其中分为4组,分每组具有8个引脚,单片机可以对其中的任意一个引脚按照需求进行程序的编写,来控制引脚的输出状态。单片机对引脚的控制方法非常的自由也非常的灵活,只要是系统硬件设计中使用到的引脚,都可以同时进行状态的配置。STC89C52的封装类型,按照焊接方式的不同分为两种,贴片型和直插型。贴片型,顾名思义是牢固的贴在电路板上的,这种封装适用于自己绘制的PCB板上使用,其优势是占用电路板的空间较小,但对于新手来说,焊接贴片型的封装难度是非常大的;另一种封装是直插型,其引脚是一根根引出来的细长的针脚,可以直接插在面包板上进行焊接。为了防止电烙铁过于高的温度损坏到单片机内部,一般在使用直插型封装的时候都会搭配专用的底座,将单片机直接通过插在底座上,通过引脚和金属片进行联通,通过这种方式来使用。STC89C52的引脚图如图3.2所示。图3.2STC89C52引脚图P0口首先毫无疑问其是一个8位的I/O口,这组接口的特点是,这组的8个接口都可以实现双向通信的功能。同时其接口的电平状态是高阻状态,因此这组接口是不具备直接输出高电平的能力的。如果设计中需要使用这组接口进行高电平的输出时,可以使用上拉的方式来完成。但在引脚和电源之间要使用电阻进行串联,防止过大的电流进入到引脚当中,对这组引脚进行损坏,使用的电阻的大小一般是几K的数量级。P1口同样是8位的I/O口,但是不同于P0口的是,其在单片机内部自带了一个电阻,接到单片机的供电引脚上,因此这组单口是可以通过程序控制直接对外输出高电平的。而不需要通过在外部连接电阻的方式,将引脚的电平拉高来实现。P2口与P1口的功能特点基本上是完全一致的,最大的差异点在于P2口只有准双向的输入输出功能。P3口则作为单片机最复杂的功能接口,单片机通过P3口的资源来实现丰富的外设及控制功能。其所有的I/O口都具有特殊的功能。一些中断功能,以及优先级的控制,计时器功能都需要使用这组接口。3.2单元电路设计3.2.1主控制模块采用STC89C52作为处理器,在主控模块上有一个电源开关,负责智能清洁小车的启动与停止。一个复位按键。两个调速按键,负责调节小车速度的加减变化。一个模式调节按键,负责对小车工作模式进行切换。一个风扇清扫控制按键,负责清扫电机的控制。主控制最小系统电路如图3.3所示。图3.3片机最小系统电路图(1)晶振电路晶振电路是单片机外围电路里的另一个重要的部分,其作用是给单片机内部工作所需要的时钟,其稳定与否关系到整个系统时钟的稳定程度。很多微控制器也具有内部时钟,本设计中使用的89C52单片机使用的是外接的晶振。本系统所使用晶振频率为12MHZ,晶振的外围电路图如下图5所示,由晶振Y1及电容C2和C3组成,可以通过修改电容C2和C3的值来对频率进行微调。本设计中使用的晶振Y1属于无源晶振,其不需要外接电源进行供电,因此其使用的范围比较广,对于各种不同电压供电的控制器,都可以使用。同时其价格较低,但是其信号质量不如有源晶振,因此有些时候需要外接的电容C2和C3来进行微调,以满足控制器的需要。图3.4为晶振电路。图3.4晶振电路(2)复位电路在一个正常稳定进行工作的装置中,复位电路扮演着极其重要的角色。复位系统的作用就是在电子系统程序跑偏或者程序卡死的情况下,实现程序的重新启动。当系统出现卡死或跑偏问题时,往往单片机需要重启才能正常的进行复位。复位系统通常分为两种。一种就是通过按键进行复位的,也就是人为输入端一个高电平。当按下按键后,RST算受到VCC所发出的电平。另外一种是上电复位方式,也就是在每次上电后芯片都会发出一个复位的信号施加在RESET脚上,使得单片机回到初始状态并从此状态下开始运行。其都可以实现系统的自动重启。复位之后系统就会自动重启,实现程序的初始化。其接口图3.5所示。 图3.5复位电路3.1.2红外避障模块此模块是扫地机器人最为关键的传感器模块,可以说这个模块是整个系统的眼睛,通过其对外部环境及障碍物的检测,来实现扫地机的智能躲避障碍物的功能。避障模块采用了PMM18-C301NA传感器。它是一种漫反射式传感器,被大面积使用在机器人避障,流水线计数等自动化相关产品方面。其内置抗干扰芯片,抗干扰能力强,测量物体更精准,产品上有可调节灵敏旋钮,向左调灵敏度减弱,向右旋转灵敏度增强。红外传感器通过先向探测目标连续的发射红外光束,然后利用接收器将经物体反射回的光束转换为电信号传送到传感器中的集成电路,通过集成电路的处理,最后由放大器执行放大操作后输出。避障电路如图3.6所示。图3.6避障模块电路3.1.3四轮驱动电机模块清洁机器人的正常工作离不开移动技术,而小车的移动则是通过电机驱动模块带动四个轮子完成,驱动模块功能的好坏直接影响小车的工作性能。电机负责带动轮子的运转,使小车移动。我们使用的电机一般为直流电机和步进电机两种。因为直流电机的性能优秀、控制简单而且直流电源提供简单的优点,本次设计采用的电机就为直流减速电机。对电机的驱动及控制需要电机驱动芯片,常用的电机驱动芯片BTN7960、A4950HR4988和L298N等。本次设计使用的是L298N芯片,L298N是一款应用非常广泛的电机驱动器,直流电机和步进电机都可以驱动。其内部使用的驱动类型是全桥驱动的方式。其具有4个输出的通道,每个输出通道的电流是两个安培。其能接受的最大的电流是3A。其在4.5V至46V的范围下,都可以进行正常的进行工作。同时,其不仅供电电压的范围宽泛,同时其工作的温度范围也是非常的宽泛,从低至零下二十度一直到零上一百三十度的范围,其都可以正常工作。其芯片的封装方式为直插方式,通过将其引脚插入到电路板的通孔封装中进行焊接。其实物及引脚图如3.7,实物图如3.8,驱动原理图如图3.9。图3.7L298N引脚图图3.8L298N实物图图3.9L289N驱动原理图L298N通过输入端1和输入端2接收信号控制输出端1和输出端2的输出端信号。输入端3和输入端4控制输出端3和输出端4的输出信号。根据输出电位的不同,实现电机的正向和反向旋转。在芯片中还存在两个使能端,当使能端为0时电机处于停止状态,当使能端为1时电机工作,但它们不能控制电机旋转方向,对于转向的控制通过调节IN口实现。具体见图3.10。ENAIN1IN2直流电机状态0XX停止100制动101正转110反转111制动 图3.10L298N逻辑功能图。在驱动电路原理图中除了L298N模块,还要考虑对于电路的保护。在电感线圈通电后再断电后会产生一个自感电动势,它大小通常为电压的N倍、极性与电源电压完全相反。当这个自感电动势直接作用于电机驱动芯片的功率开关器件上时,就会将其损坏。为了确保电机驱动芯片不被烧坏,这时就需要采取措施,通过泄放通道将会将功率开关器件损坏的高压和电流释放。此时电路中二极管的作用就显现了出来,它们提供了自感能量的释放途径,同时也避免了电机受外力作用旋转时所造成电机芯片受到损坏。电机驱动电路如图3.11所示。图3.11电机驱动电路3.1.4电源模块电源模块主要使用的芯片是7805稳压芯片,7805稳压芯片后缀05的含义就是输出5V的电压。电源模块将12V电池输入电压降为5V输出电压,为单片机系统供电。且7805芯片构成的外围电路简单,使用起来十分方便,对于初学者十分友好,只要正确的焊接,无需复杂的调试便可以输出稳定的5V电压。但在使用78系列稳压时也要注意输入电压至少要高出输出电压2V。若无法保证这点,就无法得到稳定的输出电压。在本次设计中系统输入电压为12V,远远大于单片机要求的5V工作电压,所以满足要求。但仍要注意当单流过大时,7805的输入电压与输出电压差值也不能过大,不然会使稳压芯片严重发热,这时芯片内部过热保护电路开始工作,使得所得到的输出电压变得不稳定从而影响到单片机的正常运行,在使用时必须外加一个散热片来散热。7805外形及引脚排列如图3.12。图3.1278系列芯片7805内部电路可以实现调整管安全、短路保护、过热保护等,如图3.13。图3.137805内部结构在本设计中,采用电池盒进行供电,电池盒内需要12V锂电池。而系统需要5V供电,所以需要电源转换电路,采用的是芯片LM7805。电源转换部分电路图如图3-4所示。其中电容C4和电容C5的作用输出滤波,使输出端输出的电压更准确,LED是电源指示灯,串联的2K电阻的作用是限流,否则流过LED的电流过大会将LED灯烧毁。电源模块电路如图3.14。图3.14电源电路原理图3.1.5清洁模块在智能清洁小车的情节模块主要通过一个马达,通过STC89C52单片机外接PNP三极管S8550对风扇进行驱动完成清扫工作,因为STC89C52单片机的I/O口驱动能力不足以驱动风扇,所以外接三极管提升驱动能力。PNP型三极管的控制端接到STC89C52单片机的P1.3引脚,串接的2K电阻R7同样是限流作用。如图3.15所示。图3.15清洁模块电路图

4清洁机器人软件设计前文对基于单片机的扫地机器人系统的硬件电路设计部分都进行了详细的介绍。本章将介绍基于单片机的扫地机器人的核心部分,即系统软件部分设计。在实际工作中,C语言作为51单片机的主要开发语言,对程序设计都是通过它来进行编写。由对应的编译器,编写正确的执行代码,这样大大提高了程序的开发效率。C语言具有程序简洁,使用起来十分方便,数据结构多样性高,对结构化程序设计有着极大的优势,在代码编写完成后,有着极高的程序执行效率。C语言函数一般由一或多个函数组成,程序从主函数开始执行,在主函数中可以调用其他函数。但受到单片机硬件的影响,在结合单片机特点的情况下,51单片机所使用的C语言函数与标准的C语言有些不太一样。这种改变后的程序被称为C51程序。软件的编写还可以采用汇编语言,这是一种更接近机器码,理论上性能比C语言更高的语言。当C语言转化为机器码时所耗费的时间于内存都会比编程语言更多,但在平时的一般应用中,这点差别是可以忽略的。而且C语言的众多优点也是汇编语言所不能替代的,汇编语言晦涩难懂,而C语言的简洁,直接面向使用,可读性强,逻辑上的易懂,后期维护和代码的跟新也要更加方便,在遇见高时效要求的情况时还可以通过嵌入汇编代码来解决。所以本次智能清洁小车的软件设计采用C语言来就行编写。4.1软件开发环境在实际工作中,C语言作为51单片机的主要开发语言,对程序设计都是通过它来进行编写。由对应的编译器,编写正确的执行代码,这样大大提高了程序的开发效率。C语言具有程序简洁,使用起来十分方便,数据结构多样性高,对结构化程序设计有着极大的优势,在代码编写完成后,有着极高的程序执行效率。C语言函数一般由一或多个函数组成,程序从主函数开始执行,在主函数中可以调用其他函数。但受到单片机硬件的影响,在结合单片机特点的情况下,51单片机所使用的C语言函数与标准的C语言有些不太一样。这种改变后的程序被称为C51程序。软件的编写还可以采用汇编语言,这是一种更接近机器码,理论上性能比C语言更高的语言。当C语言转化为机器码时所耗费的时间于内存都会比编程语言更多,但在平时的一般应用中,这点差别是可以忽略的。而且C语言的众多优点也是汇编语言所不能替代的,汇编语言晦涩难懂,而C语言的简洁,直接面向使用,可读性强,逻辑上的易懂,后期维护和代码的跟新也要更加方便,在遇见高时效要求的情况时还可以通过嵌入汇编代码来解决。所以本次智能清洁小车的软件设计采用C语言来就行编写。KeiluVision4程序开发软件是由美国KeilSoftware公司研发并首先推出面世的集成开发环境,主要功能是用于程序的编译及仿真。其功能丰富强度,但同时界面非常友好便于使用。Keil软件推出多年,并随着技术的不断发展进步,已经迭代出很多个新的版本。本设计使用的是KeiluVision4,使用其可以打开任意老版本软件输出的工程文件。随着版本的升级,其操作界面仍然进行了保留,方便开发者使用,新版本主要的优化点在于功能的优化,以及性能的提升,使编译速度更快,编译后的文件更小。Keil软件的所有版本都支持C语言编程。并且当编程过程中,出现语法错误时,系统会醒目的提示用户。STC89C52等非常的微控制器,均可在使用Keil4进行程序设计。同时,使用其提供的仿真功能也是非常的方便。Keil4软件的部分特点:(1)可以自动生成完善的启动代码,不需要开发者在枯燥难懂的启动代码上花费时间,因此使用其进行项目的开发,效率会非常的高,可以最大程度上缩短设计的周期。并且其编程界面简单直观,对开发者使用非常友好;(2)KEIL的在线仿真功能非常的实用,通过下载器连接硬件,及可实现实时的在线仿真功能,对于查找BUG非常的方便;(3)其内部集成了很多微处理器的库及开发环境,是单片机开发环境的首选;(4)支持使用ULINK2或者JLINK进行仿真或者下载,速度很快,可靠行很高;下图4.1为本次设计编写程序建立界面。 图4.1LEIL界面在对程序进行编写的过程中,要实现所需要的功能需要经过不断的调试、修改。这是一个极其消耗时间的过程,编译后没有错误的程序才可以生成HEX文件。编译成功如图4.2所示: 图4.2编译成功界面在经过耗时最长的程序编译及调试后,要做的就是将生成的HEX文件下载到我们所选的STC89C52单片芯片中,我所使用的下载软件是普中科技的PZ-ISP下载软件。图4.3为下载界面。图4.3程序下载成功界面4.2程序设计流程 下面将具体的对系统软件编程思路进行介绍,系统上电后,首先进行系统的初始化,然后通过按键的状态来检测使用者是否人为的进行了速度的设定,如果使用者没有进行速度的设定,则扫地机器人按照系统预设的速度行进。如果按下加速按键,则会在预设行进速度的基础上进行加速;反之,如果按下减速按键,则会在预设行进速度的基础上进行减速。系统的加速和减速的调节,在程序内部是通过PWM调速程序实现。此扫地机器人有三种扫地模式,分别为:往返清扫模式、任意清扫模式和延边清扫模式,可以通过模式选择按键来对此三种模式进行切换,每按一次按键则切换一种模式。当扫地机器人工作在往返清扫模式时,机器人会以S型路线进行往返清扫;当扫地机器人工作在往任意扫模式时,当前方出现障碍物时,机器人先后退,然后向右边转向,进行清扫功能;当扫地机器人工作在往返清扫模式时,它会沿着墙壁的边缘进行清扫;其能够自动准确的进行避障,主要是依赖于扫地机器人上面安装的三个红外避障传感器,通过三个红外避障传感器的输出,系统就可以判断出哪个方位存在障碍物,从而进行停止,转弯,继续前进等操作。当扫地机器人工作在任一清扫模式下,扫地风扇都是全程开启状态。整体的设计流程图如下图4.4所示。图4.4主程序流程本次设计为智能清洁小车,程序主要实现的功能是小车在工作时对周边障碍物的识别于躲避,并在工作环境中正确稳定的实现清扫工作,做到对地面的全面清洁。在此要求上设计出了三种不同的清扫模式,来帮助清洁小车应对复杂的工作环境。且三种工作模式可以互相补充,支持清洁小车更好的完成预定工作。模式一:往返清扫模式当清洁小车工作在一个相对障碍物存在较少,环境不太复杂的房间中时。我设计出了往返清扫的工作模式。在这种模式下小车可以清扫到房间地面的每个部分。以房间的一个角作为起点开始工作,沿着边缘开始对房间进行清扫。起点以一个空间平面最左侧平行位置开始,清洁小车先向前沿直线行驶到对面墙壁前,前侧红外传感器与左侧红外传感器此时同时检测到障碍物后小车停止前进,并向后退1秒,然后向右侧转向90度,再向前行进1秒,右转90度,最后后退两秒。同理,当清洁小车行驶到对面墙壁前时,前侧红外传感器感应到障碍物,执行上述操作,完成掉头。整体路径呈现S形。往返清扫模式流程图见图4.5。图4.5往返清扫模式流程图模式二:任意清扫模式设计的第二种模式是任意清扫模式,当清洁小车工作的环境中存在过多的障碍物时,才用往返清扫模式就不能满足清扫到房间中每个方法的要求,至此情况下,可以采用任意清扫模式。在这种工作模式下随着时间的延长也能做到清扫到房间每处的要求,但所需的时间过长。任意清扫模式流程图见图4.6。图4.6任意清扫模式流程图模式三:边缘清扫模式在对前两种清扫模式测试后发现对房间边缘沿墙壁部分清扫结果并不满意。经检验发现是小车清扫模块位于车底正中部分,而车体整体为一个长方体结构,所以车体在正对墙壁时会出现清扫死角,从而导致清扫工作完成的不充分。因此,为解决这种情况,设计出了边缘清扫模式,作为以上两种清扫模式的补充。在边缘清扫模式下,清洁小车主要通过左右两边的红外传感器进行工作。边缘清扫模式流程图见图4.7。图4.7延边清扫模式流程图

5清洁机器人软硬件联调对清洁小车软硬件进行联调,测试设计整体性能。5.1硬件焊接5.1.1车体组装对清洁小车车体结构进行搭建用到了以下原件:PCB材质黑色方型底盘,四个直流减速电机,电机固定件,四个轮胎,四个固定铜柱,固定螺丝与螺母若干。对以上原件进行拼接,得到如图5.1小车车体。它是本次设计的主体结构,之后所有的功能都要围绕着它展开,车体的稳定与否也决定着整体设计工作时的效果。图5.1小车车体结构5.1.2电路系统焊接清洁小车以STC89C52作为核心,在使用时要对单片机的最小系统进行焊接。用到了以下元件:STC89C52单片机芯片,40P芯片座,五个触点开关,一个自锁开关,12MHZ晶振,四个可拼接接线柱,电容若干,电阻若干,二极管若干,一个DC插座,一个电源指示灯,三个模式指示灯,一个电机驱动芯片。电路正面图如5.2所示,电路反面图如5.3所示。图5.2电路正面图图5.3电路反面图5.1.3清洁模块安装清洁小车的清洁模块主要由一个清洁电机和一个清洁风扇组成,它们一起工作,电机进行清扫,风扇进行吸尘。如图5.4所示图5.4清洁模块实物图5.1.4避障模块安装在避障模块使用了三个PMM18-C301NA红外传感器,在对其进行安装时,我用热熔胶将它们固定在了清洁小车的底板上,如图5.5所示图5.5避障模块实物图5.1.5设计实物图再将上述模块进行组合焊接后得到总体设计实物,如图5.6所示。图5.6总体设计实物图5.2电路焊接调试在进行电路的焊接时,我们秉着由低至高,由小到大的原则。在焊接时要控制焊接时间,最长时间不能超过4秒。在对芯片进行焊接前要先焊接一个IC座,然后再装IC。在对焊点进行焊接时,要保证焊点的圆润饱满,不能有毛刺、虚焊、假焊等情况的发生。5.2.1焊接问题焊接完电路后,进行加电检测时,接通电源后却发现电源指示灯却没有点亮,而且有异味。当我触摸稳压芯片7805时,发现它变得非常热,我立即关闭了电源。在使用万用表测量电源的正极和负极后发现电阻非常小。仔细检查后发现是自己将稳压器芯片引脚颠倒连接了,将作为输入引脚的接成了输出端。发现问题后,我立即更换了新的稳压器芯片,确保引脚连接正确,上电后电源指示灯正常点亮,测得的电压满足5V的要求,小车正常工作,问题得到解决。5.3清洁小车功能测试对小车各个功能依次进行测试,检验设计成果。5.3.1单功能测试(1)将清洁小车硬件组装后,将程序下载到单片机中,接通电源后,压下开关按键后,电源指示灯点亮。电源模块正常工作。(2)接通电源后,按下清洁按键,清扫电机与风扇同时开始工作。再次点击清洁按键,电机与风扇停止。清洁模块正常工作(3)接通电源后,在红外传感器前放置障碍物,此时位于传感器末端的指示灯点亮,当移除障碍物后指示灯熄灭。传感器模块正常工作。(4)接通电源后,点击模式切换按键,1号LED等点亮,清洁小车开始执行往返清扫功能;第二次点击按键后1号与2号LED灯点亮,清洁小车开始执行自由清扫功能;第三次点击按键后1号、2号和3号LED灯同时点亮,清洁小车开始执行延边清扫功能;小车模式切换功能正常工作。(5)接通电源后,使清洁小车处于工作状态,点击复位按键,清洁小车停止工作回到初始状态。复位功能正常工作。(6)接通电源后,使清洁小车处于任意工作模式,对小车调速功能进行测试。在连续点击加速按键后,车轮转速明显加快;连续点击减速按键后,车轮转速明显降低直至停止;小车调速功能正常工作。以上通过对清洁小车各功能测试后,小车各功能均实现预期效果。5.3.2整体性能测试将小车放置在一个普通住宅房间中,对小车整体工作性能进行测试:(1)首先对小车往返清扫模式进行测试:当小车第一个LED灯点亮时,小车位于往返清扫模式。使小车从房间一个角落开始工作,当小车工作到角落对面墙壁前是,红外传感器探测到障碍物,小车开始转向,按照程序要求在小车遇见障碍物后转向角度应为90度,但此时小车转向角度确大于90度,使得偏离了预先设计线路,并未按照S型线路对房间进行清扫。经过多次测试,发现这并非偶然现象。停止小车工作,在仔细分析小车工作时出现的问题后发现小车转向角度过大与电机转速有关,因小车转向时间由程序延时时间控制,当小车电机带动车轮转速过快时,会造成转向角度大于原定90度。找到问题后下一步就是找出解决办法,对于小车转速过快影响转向角度的问题,提出对电机转速施加控制控制,增添转速控制按键。当小车转速过快时,通过减速按键对小车速度进行控制。在硬件焊接好后,对小车往返清洁模式功能重新进行测试。将小车转速调低后,清洁小车转向角度正常,小车正常执行清扫工作,问题得到解决。(2)对小车任意清洁模式进行测试:当1号与2号LED灯同时点亮时,小车工作在任意清扫模式。当遇见障碍物时,清洁小车按预期功能正常工作。小车任意清扫功能正常(3)对小车沿边清扫功能进行测试:当1号LED灯、2号LED灯与3号LED灯同时点亮时,小车处于延边清扫模式。将清洁小车放于墙边开始工作,发现当小车前进至距离墙边还有2厘米处时,便开始调整车身。此时墙边2厘米处便存在清洁盲区,小车的原边清扫工作不理想。停止小车工作,在对小车程序进行复查后发现无问题,则因是小车硬件问题。对问题仔细分析后,发现因是红外传感器检测距离过大,使小车还未行驶至墙边便开始执行避障功能。将传感器末端调距旋钮关小半圈,是传感其检测距离降低。再次对小车延边清扫功能进行测试,发现工作正常,问题解决。整体测试完成,小车实现设计功能,运行状态稳定。5.4实验结果分析经过多次反复测试,本设计的基于单片机的扫地机器人的设计,实现了往返清扫、任意清扫和延边清扫的功能,同时该扫地机器人在行进的过程当中可以智能的避开沿途的所有障碍物。可以实现有效的清扫,应用场景十分丰富。本设计实物图如图5.7所示,图中最上面的位置是系统的电源接口,通过此电源接口给整个基于单片机的开关控制系统进行供电。电源接口的左边是电源开关,通过开关来控制是否给系统供电。开关按键左下方的位置是系统的电源电路,包括稳压芯片和滤波电容,以及红色的电源指示灯。电源接口的右侧是电机驱动电路,其实装有散热器的芯片是电机驱动芯片L298N,由于此器件工作的时候发热量很大,因此在其工作时需要外接散热片,防止其因结温过热引起器件烧毁。位于面包板下方是STC89C52单片机,这个单片机没有直接插在面包板上焊接,而是通过接插的方式连接在底座上。单片机的下面的外部晶振,给单片机工作提供时钟;以及系统的复位按键,可以通过按下这个按键对单片机进行复位。面包板的右下角是系统的按键模块,按键模块中含有四个功能按键,其中位于上面的两个按键是扫地机器人速度控制按键,通过其可以控制系统进行加速和减速。第三个按键用来对机器人的工作模式进行切换:按一下此按键以后,单片机左边的第一个功能指示灯会亮起,代表此时的扫地机器人的工作模式为,往返清扫;当再按一次模式切换按键以后,第二个功能指示灯会对应的也点亮,这时系统的工作模式被切换为任意清扫模式;当第三次按下此按键时,三个指示灯会同时亮起,这时扫地机器人切换到最后一种工作模式—沿边清扫模式。 整个系统运行稳定,所有模式均可以正常切换,非常具有实用价值。图5.7系统实物图

6总结通过大量研读国内外文章并对相关知识进行学习,在此基础上开始了本次设计。对于设计要做的层次分明,结构合理。每个模块从设计到实现都需要扎实的理论基础。将各个模块合理拼接到一起组成设计整体,最终完成设计任务。通过本次设计,对我大学四年所学知识进行了融会贯通,将之前独立的一门门课程所学知识联系到了一起,去解决一个整体性的问题。对模拟电子技术、数字电子技术、单片机、C语言和电路分析等知识进行了综合性的考察。也让我认识到了之前学习的不足之处。理论知识看似掌握,可到了真正应用之时却又有各种问题出现,甚至在设计之

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论