汪老师分享 - 51单片机具有避障控制及路径规划功能的清洁机器人设计


🔥 毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。
为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天要分享的是:基于51单片机具有避障控制及路径规划功能的清洁机器人设计

3 硬件系统设计

3.1 单片机及最小系统

3.1.1 STC89C52单片机的介绍

我采用的是STC89C52单片机芯片来作为电路控制核心处理器。STC89C52是由美国爱特梅尔Atmel公司所开发的一种通过运用高密度非易失性存储器,成本低能源消耗低的控制器。存储空间为8K,空间相对比较大。可进行编程的控制芯片,STC89C52被人们广泛的运用于各方面。在本小节中将对STC89C52的引脚结构进行挑选式讲解其中的一部分来说明该芯片的运用方式。

STC98C52单片机的引脚共有如下:VCC、GND、P3.0RXD、P3.1TXD、P3.2/INT0、P3.3/INT1、P3.4T0、P3.5T1、P3.6/WR、P3.7/RD、RST、ALE/PROG、/PSEN、/EA/VPP、XTAL1、XTAL2。

前10个引脚为别是供电的VCC和接地的GND,INT0和INT1则是外部中断0和1,还有计时器外部输入,分别是T0和T1,数据写选通P3.6和数据读选通P3.7;第十一个引脚是代表着复位输入的RST,它的功能是在复位器件时,会有两个周期的高电平存在在RST引脚中;ALE/PROG引脚的功能就比较复杂,下面用举例子的方式表达,当有人访问的时候,会先记住来访者的信息。当需要用到的时候就会把这些信息取出来。在平常情况下,即是不需要用到的情况下,ALE会进行周期性的运动,就是发送日常消息一样。它可以被外来的信号所使用,也能够用于定时。这里需要着重强调一点,当外面来的信号使用时,要在下一个周期才能正式生效;/PSEN引脚在选通信号的时候会用到,就像是逛超市一样,进门和出门都会有提示,但是没人光顾的时候,这两次提示信号就失去的出现的条件;/EA/VPP的功能相当于一个单刀双置开关,如果接在低电平的时候,会处在一个状态,而接在高电平的时候会处在另外的一个状态;XTAL1是输入端,主要输入的是来自反向震荡放大器还有内部时钟的信号;XTAL2是输出反向振荡器的输入。STC89C52引脚图如下图所示:

图3.1 STC89C52单片机引脚图

3.1.2 STC89C52单片机的最小系统

纵观整个单片机系统的设计,主要是各个部件的设计和安置需要深入分析,整个系统主要是由时间电路以及复位电路这两种电路所构成。复位电路拥有按键复位和自动复位这两种复位的方式。实践使用的电路设计相对是比较简单的,并且容易操作,出现问题也比较容易解决。这种复位方式是通过将电源VCC与RST端经电阻作为连接而接通电路来实现其功能的。主要是让整个系统保持独立工作不受外界影响,就需要对时钟电路分外看重。时钟信号的控制是本次设计的首要选择,能够及时反映出个部件的运行情况。而内部时钟跟外部时钟是时钟电路设计的两种基本形式。针对这次的研究,我们利用的是时钟电路中的内部时钟电路,这种电路能够及时准确的显示各部件的工作情况。单片机的最小系统的工作电路图,如图3-2所示:

STC89C52单片机的最小系统的完整的电路图如图3.2所示。

图3.2 单片机最小系统

其次XTAL1和XTAL2是晶振电路中的独立的输入和输出反相放大器,而晶振电路主要被设置在内部电路振荡器上面,进行内外部的驱动信息的转化,根据图3.2可以知道,本次研究主要是利用震荡电路的原理结合时钟模式将晶振电路中XTAL1、XTAL2的引脚上外接定时元件,主要元件是晶体和电容,通过电路输送进行振荡反应,晶振的频率如果越来越高,那么消耗的电能也越来越大,晶振在正常情况下是在1.2~12MHz之间任意选择,不过有时候可以达到24MHz甚至更高。由于AS608指纹识别模块与单片机直接采用的是串口方式进行通讯,而选用11.0592MHz晶振可以产生9600波特率0%误差,主要采用的11.0592MHz的石英晶振。电容的主要作用在于削弱晶振,降低频率。本次研究的是30pF,陶瓷谐振器件可以在30~50pF之间的电容范围做选择,而石英晶振可以在20~40pF之间的电容范围做选择。

图3.3 晶振电路

对于整个复位电路的设计,主要是自动和手动两种方式。图3.3中所示的复位电路既有手动也有自动。当接上电源的时候,电容的负极和RESET相连,电阻有电压通过,当RESET的一端输入高电平的时候,整个芯片就会被还原位置。然后芯片还是处于不断的工作当中,当加大电源的时候,电压就会逐渐变小并接近于0。由图可以知道,复位的按钮需要跟电容并联起来,如果复位的按钮没有启动,那么整个电路就不允许通电。正常运动的前提下接通芯片以后,为了让RST管脚有比较高的电频从而进行到手动复位的效果,需要按下按键。正常情况而言,令单片机能够有效地复位,就需要在RST管脚上保持至少10ms的高电平。

图3.4 复位电

3.2 供电电源的电路设计

电源供给装置部分主要设计成7805芯片,78系列组成一个电源所需要的外围元件是极小部件,此外,电路内部存在过度加热及调节,可靠性,成本高,效率高和经济型管道保护电路。同时,扫地机单片机控制系统和L298N芯片可完美满足电力需求,805芯片内依次是输入IN端、输出OUT端和接地GND端这3个引脚组成,而且在通常情况下能够给出1.5A的恒定电流,如果在有良好的散热的环境下,能够供给超出1.5A的电流。7805芯片在9V,12V及15V之间的输入电压发生变化,功率电压在+或+以下0.2V,稳定在5V。7805芯片如图8。基于与发动机启动电压结合的这些情况,我们选择了6节9V干式自旋式组件作为7805的电源供应装置,并建立了电源电路的一部分。如图3.5.

图3.5 7805芯片

智能扫地机的控制系统对多种电路模块需要多种运转电压和电流。现在至少有32个芯片系统和其他模块需要提供5V的启动电压,在这个设计中,需要使用12V的电机驱动模块,使用12780的供应电压。如图3.6为电源模块电路。

图3.6 电源模块图

3.3 驱动电路设计

在该项目中,12VDC发动机作为智能冲压发动机的能源。在智能电机吸尘器上,为了推进发动机,使用了L298H特定芯片。L298是与TTL/CMOS输出水平兼容的芯片,各级别都有两个频道,当A处于较高的电力水平时,输出A也处于较高水平,相反的情况,频道B与频道A相同,因此,采用1110h电路的PWM信号,采用单一芯片控制初始机械静止,保证水平差,防止障碍物,从而形成整体智能配置的运行基础。同时L298H可以驱动12V以下的电机,其范围比较广。

驱动方面主要是电机驱动,一般使用的是H桥型电路,在L298N的内部集成了H桥型驱动电路,所以我们可以将它作为清洁机器人的发动机,通过控制L298N电路的PWM信号,达到让小车能按我们理想的状态运行。如图3.7为L298N引脚图。

3.7 L298N引脚图

L298N的第五、第七第十和第十二个引脚接到单片机相应位置上,通过对单片机进行编程,在对比我们的要求让两个直流电动机做出正转或者反转。

3.8 电机驱动电路

3.4 超声波避障电路设计

HC-SR04就像是清洁机器人的眼睛,即便是在恶劣的天气环境下也依然能够很好地测量出距离,这是最终设计选择它的原因。通过发送和接受超声波,计算其时间可以得出清洁机器人和障碍物的距离,再根据实际的需要选择转动的方向,如图3.9示。

超限检测电路设计采用HC-SR04超声波模块测量车头和障碍物的距离,所以超声波模块需要安装在顶盖。超限检测电路设计如图3.9所示:

图3.9 超声波避障电路设

3.5 风扇驱动电路设计

本次设计的清洁机器人采用风扇吸尘原理,主要利用8550放大风扇,前段接入2K电阻,后saodi接入单片机p28口,如下所示:

图3.10 风扇驱动电路

3.6 显示器电路设计

市场上的液晶屏有很多种型号,常见的、比较普及的要数液晶屏LCD1602和液晶屏LCD12864,这两款液晶屏也是有区别的,典型的就是LCD12864能够显示汉字,LCD1602不能显示汉字。本论文不需要显示汉字,则使用性价比强的LCD1602。LCD1602能够显示16*02个点阵字符。

LCD1602体积小巧,低功耗且可靠性强,5V电源即可供其上电,LCD1602与单片机之间的电路连接图如图3-7所示。LCD1602显示车子与障碍物之间的距离,显示单位为M。

图3.11 液晶显示屏LCD1602电路

从上图可看到LCD1602共有16个引脚,其中VDD、VSS引脚分别与电源正、负极连接,这个电源主要是给显示屏提供电量工作。VO引脚与上拉电阻连接,方便用户调节显示屏的亮度,命令控制引脚RS与单片机P0.7引脚相连,通过高低电平来选择指令读操作还是写操作。片选引脚E和单片机P0.7引脚相连,改变高低电平来巨顶是选择指令寄存器还是选择数据寄存器。读写控制将会控制引脚WR和单片机P0.6引脚相连接,通过改变高低电平来决定是选择指令读操作还是选择写操作。片选引脚E与单片机P0.5引脚相连,当显示屏收到单片机发来的指令后,通过片选引脚E来给一个相应的脉冲信号,才确定开始执行相应的操作。DP0至DP7引脚分别与单片机P2.0至P2.7引脚相连来控制IO口。A和K引脚与电源的正极和负极连接,主要用来调节显示屏的背光亮度。

图3.12 晶显示屏LCD1602接线图

 产品制作和调试

5.1 实物焊接

1.焊前准备

在进行焊接之前,要先了解每一个电路板装配图,根据图纸上所需要的元件,进行相关型号、规格和数量进行核查,各线路之间也要严格排查是否存在接触不良等问题。

2.焊接顺序

首先安装的是电阻,再者是电容器,接着是相关的二极管和三极管,最后是各大集成电路等,剩余其他的器件按照由小到大安装。

3.对元器件焊接要求

(1)电容器焊接

针对电容器的安装注意正负极,电容器上面有正负极的标志,一旦接错方向,就容易出现短路,在安装的过程中,要先安装玻璃釉电容器、有机介质电容器、瓷介质电容器,最后装电解电容器。

(2)二极管的焊接

针对二极管的焊接,有几个注意事项,首先要明确阴阳极的方向,每个二极管上面都有标注,并且安装时候标注要朝外看得清楚。对于焊接时间主要是控制2S,这个是针对最短的引线来说的。

(3)三极管焊接

针对三极管的焊接,正常焊接过程中是需要引线的,引线需要用镊子夹住,这样防止烫伤。当需要大量散热的时候,就需要装散热片,那么接触面就需要平整光滑才能添加。当需要进行绝缘设置的时候,就需要添加绝缘薄膜。管脚一般是利用塑料导线与电路板连接在一起。

(4)集成电路

电路的形成主要是将各个部件焊接在电路板上,每个部件所在的位置,所需要的型号,引脚的位置都是尤为重要的。首先要将两只引脚焊接稳定一边,然后再焊接另外一边,从左到右,从上到下顺序进行焊接操作。当出现参差不齐的引脚时候,就需要进行齐根剪。

5.2 系统硬件调试

硬件调试主要是核查电路是否存在问题,是否有接触不良、焊接是否到位以及具有方向的元件是否方向弄错、电路设计错误等情况。

当遇到了漏焊或者元器件方向接错的情况,则对照着绘制的PCB图来正确焊接,实物图的原理图上的导线和元件必须要一一对应。如果遇到了焊多了或者没有正确对应位置的情况就要重新对比原理图进行更正。

短路、断路或者虚焊的处理方法就非常简单,直接用数字万用表测试,在数字万用表打在二极管挡位的时候,通过红黑表笔短路的时候就会发出声音提示。这种检测方法是相对比较简单的,能够测出电路是短路还是断路等。将红黑笔放在相应的元件上,如果出现鸣叫声,说明此段电路存在问题,进而将相关的问题解决好。

在着手进行调试的时候,会发现自己留了很多坑导致系统没有办法正常运作,这时候需要一点点地检查问问题,就像扫雷一样逐步逐步解决问题,这是将整体拆分为多个模块地优点。最后将软件和硬件组合到一起的时候,我们的任务也就完成了,也达到了预期的目标,同时将所遇到的问题进行相应的整理和汇总,列出问题和有关的解决办法。

如果遇到程序没有办法下载到单片机上的时候,可以试试下面的方法:

最初查看下用于转化的芯片还能不能用,卸载芯片的驱动程序再重新安装检查;如果前面两步都没有问题那么可以试一试重新开启计算机重新打开要用的软件;如果还是不能成功那就看一看连接的线路有没有断开,主要是检查RXD/TXD;如果单片机出现了糟糕的状况可以试试用替代法以旧换新;选择ISP软件中的“低速下载”模式;多按几次单片机的复位键尝试是否可以使用。

除了程序的问题以外,步进电机也有可能会有问题,例如它不运转:

设计过程中,步进电机不运转一定是让我们担心的问题之一,首先最简单的肯定是直接更换电机看一看是不是电机出了问题,如果没有办法解决那就要结合其他的驱动电路一起检查,因为步进电机运转的时候电流会比较大;那如果还是不能解决问题,那就看一看delay函数参数,看一看是不是参数没有调好太低了,这种情况也会导致步进电机不转动;最后的可能就是供电不足的情况了,这时候需要换一个更大的供电装置。

除了这两个之外,指示灯也有可能会有问题,不是不亮,而是经常性的亮起来,那可以按下面的方法顺序排查一下问题:

通常来说,这种常亮情况是设计的模块本身的问题,将模块好好检查一下,看看是不是有些探测数值太大了,那就会一直亮,因为实际距离永远小于设置的警告距离,可以把警告的距离改小一些,如果这一系列操作下来还是不能解决问题,那就直接用代替法以旧换新。

5.3 系统软件调试

1、选择单片机型号。上面说到,为了能够满足设计的需要,最终选择了将STC89C52作为我们的核心大脑,而Keil自身带有的芯片库中是没有STC89C52的,这种情况可以用Atmel中的AT89C52跟STC89C52的测试效果是一样的,所以可以作为代替。下面的窗口中有有关AT89C52的简单说明,这里就能确认它可以作为STC89C52的替代品。点击确定。

5.1 选择单片机型号

2、先编写有关的代码,然后选择单击Tramslate。如果语法没有出现什么问题,点击单击OptionforTarget选项,找到里面的Output选项,再选择CreateHEXfile,如图5.7所示。接下来点击构建选择项,就能看到烧录

出来的。HEX文件,这个文件会自动保存在目标文件夹中。

图5.2 置生成.HEX文件

3、烧录.HEX文件。这里就要说到前面的设计选择ISP软件的好处了,由于STC89C52自带的优势,可以很方便地烧录设计需要的内容,不过这里会用到USB转TTL芯片,准备好以后将转换芯片和STC89C52的RXD、TXD引脚对应连接,按图5.7设置好ISP软件,选择正确的串口号后点击下载/编程,复位单片机即可进行程序烧录。

图5.3 ISP软件的使用

5.4 测试结果分析

这次设计最终确定选择了STC89C52作为整个清洁机器人的核心大脑;设计的智能清洁车自带了手动复位功能;LCD1602显示车子与障碍物之间的距离,显示单位为M;避障功能模块会通过HC-SR04探测小车和障碍物的距离,当实际距离小于设计的警告距离时,程序会作出应对进行对应的转弯,从而达到躲避障碍物的功能。清洁方面则是需要按下扫地的开关。

图5.4 成品图

电路图

如果您在计算机领域有任何疑虑或不确定的地方,请毫不犹豫地与老师交流噢,我们期待着为您提供有针对性的建议和指导。您的问题和讨论对我们来说都非常重要。

  • 28
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值