基于51单片机的智能垃圾桶的设计与实现Word下载.docx
- 文档编号:17065013
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:32
- 大小:1.13MB
基于51单片机的智能垃圾桶的设计与实现Word下载.docx
《基于51单片机的智能垃圾桶的设计与实现Word下载.docx》由会员分享,可在线阅读,更多相关《基于51单片机的智能垃圾桶的设计与实现Word下载.docx(32页珍藏版)》请在冰豆网上搜索。
小型垃圾清理智能垃圾桶致力于提高垃圾清理车的安全性、舒适性和提供优良的人车相互界面,是目前各国重点发展的智能交通系统中一个重要组成部分,也是世界智能垃圾桶工程领域研究的热点和垃圾清理车工业增长的新动力。
国际方面,美国研究了一种自动垃圾收集器清扫车(AGCB),其可以在指定区域进行无人垃圾收集工作。
该研究通过GoogleMaps对清扫车进行定位,使用超声波传感器进行障碍检测,使用编码器计算清扫车行进距离,使用陀螺仪确定机器方向,应用I2C协议通信。
该设计较为新颖,理论技术成熟,但项目仍处于计划进行阶段,还没有实物出现。
国外的研究大都属于人工驾驶的清扫机研究,或清扫机清扫技术的研究,而对无人驾驶垃圾清扫装置的研究大多出现在专利文章上,缺乏实物。
随着科学技术的发展,特别是计算机技术、信息技术、人工智能、电子技术的突飞猛进,小型垃圾清理智能垃圾桶技术有了实现的技术基础。
目前小型垃圾清理智能垃圾桶技术在轿车和重型垃圾清理车上主要应用于碰撞预警系统、防撞及辅助驾驶系统、智能速度适应、自动操作等,其在军事上的应用更加广泛和重要。
智能垃圾桶智能化是垃圾清理车工业今后的发展趋势,也是人们对安全性要求越来越高未来垃圾清理车的发展方向。
随着计算机技术和信息技术为代表的高新技术的发展,人工神经网络技术、模糊控制技术、神经模糊技术、虚拟实现等新技术的出现,小型垃圾清理智能垃圾桶技术的研究将会有突破性的进展。
小型垃圾清理智能垃圾桶系统的实用化是是小型垃圾清理智能垃圾桶发展的前进方向,适应性强、环境适应性好的小型垃圾清理智能垃圾桶将是研究的重点。
2系统总体方案设计
2.1设计要求
本次毕业设计主要是利用单片机设计并制作一套智能垃圾箱。
要求以单片机为控制核心,通过红外传感器检测是否有人扔垃圾,并自动打开垃圾箱盖,扔完垃圾后再自动关闭。
当人离开数秒后,盖子将自动盖上。
因此,可以直接把传感器检测到数据送入单片机进行处理,再执行相应的动作。
此外,还需接入液晶显示,报警电路等。
2.2总体模块分析
据以上系统方案设计,智能垃圾桶共包括六大模块:
MC9S12XS12主控模块、CCD传感器模块、电源模块、电机驱动模块、速度检测模块和辅助调试模块。
各模块的作用如下:
1.AT89C51主控模块:
作为整个智能垃圾桶的“大脑”,将采集CCD、光电编码器等传感器的信号,根据控制算法做出控制决策,驱动直流电机和伺服电机完成对智能垃圾桶的控制。
2.CCD传感器模块:
是智能垃圾桶的“眼睛”,可以通过一定的前瞻性,提前感知前方的赛道信息,为智能垃圾桶的“大脑”做出决策提供必要的依据和充足的反应时间。
3.电源模块:
为整个系统提供合适而又稳定的电源。
4.电机驱动模块:
驱动直流电机和伺服电机完成智能垃圾桶的加减速控制和转向控制。
5.速度检测模块:
检测反馈智能垃圾桶后轮的转速,用于速度的闭环控制。
6.辅助调试模块:
主要用于智能垃圾桶系统的功能调试、智能垃圾桶状态监控等方面,主要包括拨码开关、数码管及LED指示等。
综合以上智能垃圾桶整体框图如图2-1所示:
图2-1智能垃圾桶控制系统整体框图
(1)数据采集系统以单片机为控制核心,外围电路带有LCD显示以及键盘响应电路,无需要其他计算机,用户就可以与之进行交互工作,完成数据的采集、存储、计算、分析等过程。
(2)如何完成低功耗、小型化、高性价比等特点的系统。
(3)用单片机系统控制电机和LCD显示来实现人机交互操作。
3硬件电路具体设计
实际需要设计的硬件系统主要包括以下几个部分:
AT89C51单片机最小系统模块、电源模块、电机驱动模块、路径识别模块、车速反馈模块及人机接口模块,下面将分别介绍。
3.1AT89C51单片机最小系统
3.1.1AT89C51系统板
本次毕业设计中采用了清华大学DSP应用研发中心开发的AT89C51系统板,实物图见附录。
该系统板具有MCU核心系统,支持串口调试下载,有扩展接口进行二次开发,支持uCOS。
此开发板兼容性较高,监控程序功能强大,可以提供给用户各种基本的开发和调试功能:
程序的下载和运行、断点设置、内存显示等等。
用户还可以利用S12的FLASH在线编程技术,实现了对用户程序的在线写入和对FLASH存储内容的随时修改。
而且用户可以对自编程序在线实时方针和监测[7]。
此开发板附带有一款针对FREESCALE的S12系列的MCU开发工具BDM,能实现对S12系列的MCU的仿真和编程功能。
其特点是:
(1)成本低,接口方便,采用USB来提供电源。
(2)支持至少一种广泛使用的调试器Codewarrior。
(3)目标MCU具有宽的供电电压(3.3V-5V)。
3.1.2AT89C51最小系统设计
根据智能垃圾桶的需求分析,AT89C51单片机系统的必要组成部分,包括时钟电路、锁相环滤波电路、A/D转换器滤波电路、调试用的LED、电源以及各I/O口接口和BDM调试器接口等。
电机驱动板上规划了小车的各个设备的接口电路,包括电机驱动电路、各I/O口的引出线、舵机接口、人机交互电路、测速电路接口以及赛道识别传感器接口。
具体AT89C51最小系统设计电路图,如图3-1所示。
图3-1AT89C51最小系统电路图
3.1.3单片机的引脚分配
主控制器的引脚分配如表3-1所示。
表3-1单片机端口分配表
模块
端口
功能
IO口
PM6
视频选通信号
PA0
奇、偶场信号
ECT模块
PT7
速度传感器
外部中断
IRQ
行同步信号
人机模块
PB0-PB7
LED指示
PH0-PH7、PA2
数码管
PP0-PP7
拨码开关
PWM模块
PWM01
驱动舵机
PWM23,PWM45
驱动电机
3.2电源设计模块
硬件电路的电源由7.2V、2A/h的可充电镍镉电池提供。
由于电路中的不同电路模块所需要的工作电压和电流容量各不相同,因此电源模块应该包括多个稳压电路,将充电池电压转换成各个模块所需要的电压。
主要包括如下不同的电压:
1.5V电压。
主要为单片机、信号调理电路以及部分接口电路(如速度传感器)提供电源,电压要求稳定、噪声小,电流容量大于500mA。
2.6V电压。
主要是为舵机提供工作电压。
实际工作时,舵机所需要的工作电流一般在几十毫安左右,电压无需十分稳定。
3.7.2V电压。
这部分直接取自电池两端电压,主要为后轮电机驱动模块提供电源。
4.12V电压。
采用摄像头进行道路检测时,需要12V工作电源。
因此,此次设计具体需要设计的电源电路及实现方案如图3-2所示。
图3-2电源模块总体框图
3.2.15V电源模块
本设计采用LM2940将电池电压稳压到5V,LM2940具有外围电路简单、转换效率高,波形稳定等特点[9]。
考虑到一片稳压芯片LM2940有时会有发热现象,同时为了避免各个模块的供电相互干扰,采用两片LM2940分别对单片机电路、车速检测电路供电,以保证系统正常运行。
具体的5V电源电路图如图3-3所示。
图3-35V稳压电源原理图
3.2.26V电源模块
6V电源主要为舵机供电,采用摩托拉罗公司的低压降,能够线性调整输出的LM1117芯片制作可调电源[10],6V稳压电路如图3-4所示。
图3-46V稳压电路原理图
3.2.3CCD升压模块
CCD摄像头需要12V的工作电压。
本文设计中是使用MC34063A搭建一个由7.2V升压到12V的升压电路,MC34063A是单片双极型线性集成电路,专用于直流―直流变换器控制部分,一个占空比周期控制振荡器,驱动器和大电流输出开关,能输出1.5A的开关电流。
它能使用最少的外接元件构成开关式升压变换器,降压式变换器和电源反向器。
根据厂商提供的内部原理图和外围器件参数计算公式(计算方式见附件),设计MC34063A外围电路[11]。
经过计算符合摄像头正常工作时候的升压电路如图3-5所示。
图3-5MC34063升压电路图
3.3电机驱动模块
竞速启动的智能垃圾桶最关键的就是要有强劲的驱动力。
这个“驱动力”不光包括我们通常所说的驱动电机,同时还包括一个强劲的电机驱动电路。
由于启动规则严禁改动更换驱动电机,故智能垃圾桶动力的强劲与否便直接与驱动电路性能画上了等号。
优秀的电机驱动电路,不但要能为智能垃圾桶提供强大的动力——这里的动力包括了瞬间的加减速性能与持续的输出能力,同时自身的功耗要小,能够保证长时间大电流输出的情况下不升温且要稳定持续工作。
MC33886芯片及引脚图如图3-6所示。
图3-6MC33886芯片及引脚图
第一种:
采用两片MC33886组成的驱动电路如图3-7所示:
图3-7MC3386驱动电路
第二种:
采用BTS7960驱动电路
鉴于MC33886输出电流有限,不能提供较为强劲的驱动力,我们专门使用大功率驱动芯片BTS7960设计大功率驱动电路[13]。
该驱动芯片BTS7960特性如下:
输入电压:
6-24V
输出电流:
最大可达40A
内阻:
16毫欧
输入信号:
TTL/CMOS
控制线电压:
5V
PWM控制频率:
25K
短路保护、欠压保护、过温保护等;
BTS7960芯片及实物图如图3-8所示。
图3-8BTS7960芯片及实物图
采用两片BTS7960组成的驱动电路如图3-9所示。
图3-9BTS7960驱动电路
鉴于BTS7960输出电流还不能提供较为强劲的驱动力,我们专门使用BTS7960的升级版驱动芯片BTS7970设计大功率驱动电路[14]。
该驱动芯片BTS7970特性如下:
最大可达60A
5V
BTS7970芯片及引脚图如图3-10所示。
图3-10BTS7970芯片及引脚图
采用两片BTS7970组成的驱动电路如图3-11所示。
图3-11BTS7970驱动电路
根据驱动输出电流、加速、制动时间、稳定性能、发热情况等原则,对三种驱动电路的驱动能力进行比较,如表2所示。
表2三种驱动电路性能比较表
方案
加速性能
减速性能
稳定性
内阻
效率
发热情况
MC33886
一般
好
120毫欧
低
很热
BTS7960
16毫欧
高
微热
BTS7970
很好
很高
不热
综合实际运用和对各个驱动电路的性能比较,最终选用了BTS7970驱动电路。
3.4人机交互模块
3.4.1拨码开关
由于在智能垃圾桶启动开始后,不能够对智能垃圾桶硬件及软件进行修改,在保证了硬件有效可靠的同时,软件有可能不能够适应新场地,所以设计拨码开关对智能垃圾桶有关参数进行设置也是必要的。
拨码开关电路如图3-12所示。
图3-12拨码开关原理图
这是一个八段的拨码开关,一边都接入地,显然,每个部分都有16种状态,前2个来改变舵机参数,中间两个用于定时检测起跑线定时检测,后四个改变直流电机参数,这样对于适应新的场地很有好处。
另外,由于拨码开关和速度调试联系紧密,因此我们在调试过程中,将拨码开关的数值和调速、转向及检测都联系起来,从而将调速、转向都变成人为可控制的因素,增加了对场地的适应性。
3.4.2起跑线检测显示电路
起跑线的检测对于摄像头来说一直是个难点,因此设计了一个数码管电路来显示检测起跑线的次数,以便更好的设计起跑线程序。
具体起跑线检测显示电路,如图3-13所示。
图3-13起跑线检测显示电路
3.5车速检测模块
为了使得智能垃圾桶能够平稳地沿着赛道运行,需要控制车速,使智能垃圾桶在急转弯时速度不至过快而冲出赛道。
通过控制驱动电机上的平均电压可以控制车速,但是如果开环控制电机转速,会受很多因素影响,例如电池电压、电机传动摩擦力、道路摩擦力和前轮转向角度等。
这些因素会造成智能垃圾桶运行不稳定。
通过速度检测,对车模速度进行闭环反馈控制,即可消除上述各种因素的影响,使得车模运行得更稳定。
车速检测初次主要由红外对管电路和后轮齿轮做编码盘组成。
红外对管之间的红外光束被编码盘挡住时接收管截止,与接收管串联的电阻电压为逻辑0,当红外光束通过编码盘的孔时,接收管开通,与接收管串联的电阻电压为逻辑1。
通过输出比较器定时T中断一次去读取脉冲累加器PACN32的所得脉冲数N而得车速V。
设后轮周长为C、减速齿轮数为n。
得车速公式:
V=[(C÷
n)×
N]÷
T。
本次用作测速的光电传感器型号为H42B6,在5V测试电压下,上升沿时间和下降沿时间为15us;
这样的向应时间是够用的,我们可以粗略估算一下:
假设车速为4m/s,即0.004us/mm;
后轮的周长为170mm,码盘等分76*2=152;
所以每等分为170mm/152=1.118mm;
所以每个时间间隔为:
1.118mm÷
0.004us/mm=279.5us。
远远大于H42B6的反应时间。
此部分的测速示意图如图3-14所示。
图3-14光电管和编码盘组成的测速示意图
但经过后来实践证明,该检测方法精度较低,可靠性较差,容易受环境光影响,当车速达到3m/s时候,检测会发生问题,后来采用OMRON公司生产的E6A2-CS100型旋转编码器。
它由5V的直流供电,速度传感器通过后轮轴上的齿轮与电机相连,车轮每转一圈,速度传感器转过2.75圈。
旋转编码器实物如图3-15所示。
图3-15旋转编码器实物图
该旋转编码器有四根线,黑线和红线为地线和电源线,白线和绿线分别为A相B相信号线,在实际测速过程中只需要一相即可。
车轮每前进一段距离时,速度传感器便产生一定数目的脉冲,单片机利用ECT对脉冲进行计数,从而得到速度值[15]。
3.6舵机驱动模块
舵机驱动模块采用Futaba公司S3010型舵机作为智能垃圾桶方向控制部件。
在具体应用中,采用PWM信号开环控制。
只要舵机的开环转向力矩足够,并且和给定的PWM信号与舵机打的角度一一对应,这样控制电路既简单又能满足我们的控制要求。
给定舵机的工作电压为6V左右,输出为PWM信号,从而控制其摆动角度。
舵机接口一般采用三线连接方法,黑线为电源地线,红线为电源线,一般采用两种标准,4.8V和6V,另外一根连线为控制信号线。
控制信号是周期在20ms左右的脉冲信号,脉冲信号的宽度决定舵机输出舵盘的角度。
影响舵机控制特性的一个主要参数是舵机的响应速度,而舵机的响应速度直接影响智能垃圾桶通过弯道时的最高速度,提高舵机的响应速度是提高智能垃圾桶平均速度的一个关键。
舵机的响应速度与工作电压有关系,电压越高速度越快,所以应在舵机允许的工作电压范围内,尽量选择最大的工作电压。
舵机实物图如图3-16所示。
图3-16舵机实物图
提高舵机控制前轮转向速度的办法是可以在舵机的输出舵盘上安装一个较长的输出臂,将转向传动杆连接在输出臂末端。
这样可以在舵机输出一个较小的转角下,取得较大的前轮转角,从而提高了整个车的转向速度。
此外舵机的正常工作频率是50Hz,设计中考虑到加快舵机的反应速度,将舵机的工作频率提高到100Hz。
即PWM1的输出频率为100Hz。
实际测量,可以得出结论,在100Hz的PWM1输出控制下,舵机没有出现不正常的反应,而且响应速度确实比50Hz时快。
4软件程序设计
4.1系统总控制流程图及说明
图4-10系统总控制流程图
如流程图所示
(1)单片机控制电机时,系统首先进入中断保护过程。
中断保护过程将完成如下5方面的工作:
(a)保存端口的状态值。
保存中断前的片内寄存器值。
保存存储器的寻址地址。
保存主程序的执行代码断点。
初始化脉冲宽度、延时长度和状态信息。
(2)完成中断保护后,系统将检查脉冲宽度计时时间是否达到。
脉冲宽度计时用于开启可控硅,控制电机运行。
如果既定时间宽度的脉冲已完成(即判定结果为‘是’),则必须撤销脉冲;
如果既定时间宽度的脉冲已完成(即判定结果为‘否’),则不撤销脉冲。
(3)判断电机是否正在运行。
如果电机没有运行,则恢复寄存器初始值,完成中断,返回系统主程序;
如果电机正在运行,则继续执行。
(4)判断脉冲延时时间是否到达。
如果延时到达,中断将重新开启脉冲,并给出脉冲初始值,重新决定是否开启可控硅,控制电机运行;
如果延时不到,则恢复寄存器初始值,完成中断,返回系统主系统。
(5)完成中断,返回系统主程序。
4.2PWM波软件设计
PWM波软件设计的思想是:
通过控制总中断使能EA控制电机的开关,同时使能对霍尔传感器输出的方波在单位时间内脉冲个数的计数。
其中定时器T0,T1分别对脉冲的宽度、霍尔元件输出的脉冲数对应的1秒时间定时。
对脉冲宽度的调整是通过改变高电平的定时长度,由变量high控制。
变量change、sub_speed、add_speed分别实现电机的转向、加速、减速。
其程序流程图如图4-11所示。
图4-11PWM波软件设计方框图
部分程序代码如下:
/***********通过按键实现对电机开关、调速、转向的控制的程序*****************/
voidmotor_control()
{
if(open==1)
EA=1;
if(close==1)
EA=0;
if(swap==1)
change=~change;
while(swap!
=0)
{}
}
if(sub_speed==1)
{high++;
if(high==30)
EA=0;
while(sub_speed!
{}
}
if(add_speed==1)
{high--;
if(high==5)
high=5;
while(ad
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 51 单片机 智能 垃圾桶 设计 实现