ImageVerifierCode 换一换
格式:DOCX , 页数:32 ,大小:1.13MB ,
资源ID:4148998      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4148998.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于51单片机的智能垃圾桶的设计与实现.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于51单片机的智能垃圾桶的设计与实现.docx

1、基于51单片机的智能垃圾桶的设计与实现基于51单片机的智能垃圾桶的设计与实现摘 要:本文主要介绍了本智能垃圾桶硬件设计方案。采用AT89C51单机片作为核心控制器,在此基础上增加了各种接口电路板组成整个硬件系统,包括垃圾清理电源模块、信号采集模块、视频分离模块、垃圾清理电机驱动模块、垃圾清理舵机转向模块、测速模块及人机交互模块等模块。设计采用CCD摄像头采集赛道信息,通过视频分离芯片LM1881对视频信号进行分离供单片机用于判断控制,通过黑线位置与车体中心的偏移程度来对舵机的转向进行控制。利用旋转编码器实现对当前速度的采集,用于实现对车速的反馈。此外论述了智能垃圾桶机械结构和调整方法,智能垃圾

2、桶转向模块和驱动模块的设计、参数和有关测试,图像采样模块的摄像头工作机制以及安装选型、采样电路设计和采样策略。关键词:CCD摄像头 图像采样 电机驱动 电源 AT89C51ABSTRACTThis paper mainly introduces the hardware design of the small garbage truck. AT89C51 single chip is used as the core controller, and various interface circuit boards are added to form the whole hardware sys

3、tem, including garbage cleaning power module, signal acquisition module, video separation module, garbage cleaning motor drive module, garbage cleaning steering module, speed measurement module and human-computer interaction module.CCD camera is used to collect the track information, video signal is

4、 separated by video separation chip LM1881, which is used by single chip microcomputer to judge and control, and steering of steering gear is controlled by the offset degree of black line position and car body center. The current speed is collected by rotary encoder, which is used to realize the fee

5、dback of vehicle speed.In addition, the paper discusses the mechanical structure and adjustment method of the small garbage truck, the design, parameters and relevant tests of the steering module and driving module of the small garbage truck, the working mechanism of the camera of the image sampling

6、 module, the installation and selection, the design of the sampling circuit and the sampling strategy.KEY WORD: CCD Image Sampling Motor Drive Source AT89C51 目 次1 引言1.1 研究背景及意义随着现代化进程的日益推进,科技越来越发达,人们的生活水平也提高了,城市化程度越来越高,与此同时也带了许多问题,生活垃圾越来越多垃圾设施却不够完善。无论是在公共场合还是家庭厨房的垃圾大都是没有盖或者有盖但需要人用手打开的,比如夏天的家庭厨房没有及时清

7、理的垃圾放在垃圾桶里就可能会散发出刺鼻的异味。而医院的垃圾更是会滋生病毒,传播疾病。那么实现垃圾桶的自动开启闭合就显的非常必要。 本次毕业设计的主要内容是利用单片机设计并制作一套智能垃圾箱。该系统具有自动感应并自动开关的功能。即当有人扔垃圾时可以自动感应,实现圾箱盖自动打开。如果人一直在垃圾桶旁边时,垃圾桶将一直打开,当人离开数秒后,盖子将自动盖上。当桶内红外检测到垃圾满时,单片机将开启声光报警,并且自动取消打开桶盖模式,当然也可以智能通过手动按键打开桶盖来清理垃圾,当垃圾清理完时,系统将恢复自动模式实验测试。该系统操作简单,确实方便了在日常生活中对垃圾的处理。1.2研究现状小型垃圾清理智能垃

8、圾桶,是一个结合环境感知、规划决策、多等级辅助驾驶等功能于一体的综合系统,它集中地运用了计算机、现代传感、信息融合、通讯、人工智能及自动控制等技术,是典型的高新技术综合体.它具有道路障碍自动识别、自动报警、自动制动、自动保持安全距离、车速和巡航控制等功能。小型垃圾清理智能垃圾桶致力于提高垃圾清理车的安全性、舒适性和提供优良的人车相互界面,是目前各国重点发展的智能交通系统中一个重要组成部分,也是世界智能垃圾桶工程领域研究的热点和垃圾清理车工业增长的新动力。国际方面,美国研究了一种自动垃圾收集器清扫车(AGCB),其可以在指定区域进行无人垃圾收集工作。该研究通过 Google Maps 对清扫车进

9、行定位,使用超声波传感器进行障碍检测,使用编码器计算清扫车行进距离,使用陀螺仪确定机器方向,应用I2C 协议通信。该设计较为新颖,理论技术成熟,但项目仍处于计划进行阶段,还没有实物出现。国外的研究大都属于人工驾驶的清扫机研究,或清扫机清扫技术的研究,而对无人驾驶垃圾清扫装置的研究大多出现在专利文章上,缺乏实物。随着科学技术的发展,特别是计算机技术、信息技术、人工智能、电子技术的突飞猛进,小型垃圾清理智能垃圾桶技术有了实现的技术基础。目前小型垃圾清理智能垃圾桶技术在轿车和重型垃圾清理车上主要应用于碰撞预警系统、防撞及辅助驾驶系统、智能速度适应、自动操作等,其在军事上的应用更加广泛和重要。智能垃圾

10、桶智能化是垃圾清理车工业今后的发展趋势,也是人们对安全性要求越来越高未来垃圾清理车的发展方向。随着计算机技术和信息技术为代表的高新技术的发展,人工神经网络技术、模糊控制技术、神经模糊技术、虚拟实现等新技术的出现,小型垃圾清理智能垃圾桶技术的研究将会有突破性的进展。小型垃圾清理智能垃圾桶系统的实用化是是小型垃圾清理智能垃圾桶发展的前进方向,适应性强、环境适应性好的小型垃圾清理智能垃圾桶将是研究的重点。2系统总体方案设计2.1设计要求本次毕业设计主要是利用单片机设计并制作一套智能垃圾箱。要求以单片机为控制核心,通过红外传感器检测是否有人扔垃圾,并自动打开垃圾箱盖,扔完垃圾后再自动关闭。当人离开数秒

11、后,盖子将自动盖上。当桶内红外检测到垃圾满时,单片机将开启声光报警,并且自动取消打开桶盖模式,当然也可以智能通过手动按键打开桶盖来清理垃圾,当垃圾清理完时,系统将恢复自动模式实验测试。因此,可以直接把传感器检测到数据送入单片机进行处理,再执行相应的动作。此外,还需接入液晶显示,报警电路等。2.2总体模块分析据以上系统方案设计,智能垃圾桶共包括六大模块:MC9S12XS12主控模块、CCD传感器模块、电源模块、电机驱动模块、速度检测模块和辅助调试模块。各模块的作用如下:1. AT89C51主控模块:作为整个智能垃圾桶的“大脑”,将采集CCD、光电编码器等传感器的信号,根据控制算法做出控制决策,驱

12、动直流电机和伺服电机完成对智能垃圾桶的控制。2. CCD传感器模块:是智能垃圾桶的“眼睛”,可以通过一定的前瞻性,提前感知前方的赛道信息,为智能垃圾桶的“大脑”做出决策提供必要的依据和充足的反应时间。3. 电源模块:为整个系统提供合适而又稳定的电源。4. 电机驱动模块:驱动直流电机和伺服电机完成智能垃圾桶的加减速控制和转向控制。5. 速度检测模块:检测反馈智能垃圾桶后轮的转速,用于速度的闭环控制。6. 辅助调试模块:主要用于智能垃圾桶系统的功能调试、智能垃圾桶状态监控等方面,主要包括拨码开关、数码管及LED指示等。综合以上智能垃圾桶整体框图如图2-1所示:图2-1 智能垃圾桶控制系统整体框图(

13、1)数据采集系统以单片机为控制核心,外围电路带有LCD显示以及键盘响应电路,无需要其他计算机,用户就可以与之进行交互工作,完成数据的采集、存储、计算、分析等过程。(2)如何完成低功耗、小型化、高性价比等特点的系统。(3)用单片机系统控制电机和LCD显示来实现人机交互操作。3 硬件电路具体设计实际需要设计的硬件系统主要包括以下几个部分:AT89C51单片机最小系统模块、电源模块、电机驱动模块、路径识别模块、车速反馈模块及人机接口模块,下面将分别介绍。3.1 AT89C51单片机最小系统3.1.1 AT89C51系统板本次毕业设计中采用了清华大学DSP应用研发中心开发的AT89C51系统板,实物图

14、见附录。该系统板具有MCU核心系统,支持串口调试下载,有扩展接口进行二次开发,支持uCOS。此开发板兼容性较高,监控程序功能强大,可以提供给用户各种基本的开发和调试功能:程序的下载和运行、断点设置、内存显示等等。用户还可以利用S12的FLASH在线编程技术,实现了对用户程序的在线写入和对FLASH存储内容的随时修改。而且用户可以对自编程序在线实时方针和监测7。此开发板附带有一款针对FREESCALE的S12系列的MCU开发工具BDM,能实现对S12系列的MCU的仿真和编程功能。其特点是:(1) 成本低,接口方便,采用USB来提供电源。(2) 支持至少一种广泛使用的调试器Codewarrior。

15、(3) 目标MCU具有宽的供电电压(3.3V-5V)。3.1.2 AT89C51最小系统设计根据智能垃圾桶的需求分析,AT89C51单片机系统的必要组成部分,包括时钟电路、锁相环滤波电路、A/D转换器滤波电路、调试用的 LED、电源以及各 I/O口接口和BDM调试器接口等。电机驱动板上规划了小车的各个设备的接口电路,包括电机驱动电路、各I/O 口的引出线、舵机接口、人机交互电路、测速电路接口以及赛道识别传感器接口。具体AT89C51最小系统设计电路图,如图3-1所示。图3-1 AT89C51最小系统电路图3.1.3 单片机的引脚分配主控制器的引脚分配如表3-1所示。 表3-1 单片机端口分配表

16、模 块端口功能IO口PM6视频选通信号PA0奇、偶场信号ECT模块PT7速度传感器外部中断IRQ行同步信号人机模块PB0-PB7LED指示PH0-PH7、PA2数码管PP0-PP7拨码开关PWM模块PWM01驱动舵机PWM23,PWM45驱动电机3.2电源设计模块硬件电路的电源由7.2V、2A/h的可充电镍镉电池提供。由于电路中的不同电路模块所需要的工作电压和电流容量各不相同,因此电源模块应该包括多个稳压电路,将充电池电压转换成各个模块所需要的电压。主要包括如下不同的电压: 1.5V电压。主要为单片机、信号调理电路以及部分接口电路(如速度传感器)提供电源,电压要求稳定、噪声小,电流容量大于50

17、0mA。 2.6V电压。主要是为舵机提供工作电压。实际工作时,舵机所需要的工作电流一般在几十毫安左右,电压无需十分稳定。 3.7.2V电压。这部分直接取自电池两端电压,主要为后轮电机驱动模块提供电源。 4.12V电压。采用摄像头进行道路检测时,需要12V工作电源。因此,此次设计具体需要设计的电源电路及实现方案如图3-2所示。图3-2 电源模块总体框图3.2.1 5V电源模块本设计采用LM2940将电池电压稳压到5V,LM2940具有外围电路简单、转换效率高,波形稳定等特点9。考虑到一片稳压芯片LM2940有时会有发热现象,同时为了避免各个模块的供电相互干扰,采用两片LM2940分别对单片机电路

18、、车速检测电路供电,以保证系统正常运行。具体的5V电源电路图如图3-3所示。图3-3 5V稳压电源原理图3.2.2 6V电源模块6V电源主要为舵机供电,采用摩托拉罗公司的低压降,能够线性调整输出的LM1117芯片制作可调电源10,6V稳压电路如图3-4所示。图3-4 6V稳压电路原理图3.2.3 CCD升压模块CCD摄像头需要12V的工作电压。本文设计中是使用MC34063A搭建一个由7.2V升压到12V的升压电路,MC34063A是单片双极型线性集成电路,专用于直流直流变换器控制部分,一个占空比周期控制振荡器,驱动器和大电流输出开关,能输出1.5A的开关电流。它能使用最少的外接元件构成开关式

19、升压变换器,降压式变换器和电源反向器。根据厂商提供的内部原理图和外围器件参数计算公式(计算方式见附件),设计MC34063A外围电路11。经过计算符合摄像头正常工作时候的升压电路如图3-5所示。图3-5 MC34063升压电路图3.3 电机驱动模块竞速启动的智能垃圾桶最关键的就是要有强劲的驱动力。这个“驱动力”不光包括我们通常所说的驱动电机,同时还包括一个强劲的电机驱动电路。由于启动规则严禁改动更换驱动电机,故智能垃圾桶动力的强劲与否便直接与驱动电路性能画上了等号。优秀的电机驱动电路,不但要能为智能垃圾桶提供强大的动力这里的动力包括了瞬间的加减速性能与持续的输出能力,同时自身的功耗要小,能够保

20、证长时间大电流输出的情况下不升温且要稳定持续工作。MC33886芯片及引脚图如图3-6所示。图3-6 MC33886芯片及引脚图第一种:采用两片MC33886组成的驱动电路如图3-7所示:图3-7 MC3386驱动电路第二种:采用BTS7960驱动电路鉴于MC33886输出电流有限,不能提供较为强劲的驱动力,我们专门使用大功率驱动芯片BTS7960设计大功率驱动电路13。该驱动芯片BTS7960特性如下:输入电压:6-24V输出电流:最大可达40A 内阻:16毫欧 输入信号:TTL/CMOS控制线电压:5V PWM控制频率:25K 短路保护、欠压保护、过温保护等;BTS7960芯片及实物图如图

21、3-8所示。图3-8 BTS7960芯片及实物图采用两片BTS7960组成的驱动电路如图3-9所示。图3-9 BTS7960驱动电路鉴于BTS7960输出电流还不能提供较为强劲的驱动力,我们专门使用BTS7960的升级版驱动芯片BTS7970设计大功率驱动电路14。该驱动芯片BTS7970特性如下:输入电压:6-24V输出电流:最大可达60A 内阻:16毫欧 输入信号:TTL/CMOS控制线电压: 5V PWM控制频率:25K 短路保护、欠压保护、过温保护等;BTS7970芯片及引脚图如图3-10所示。图3-10 BTS7970芯片及引脚图采用两片BTS7970组成的驱动电路如图3-11所示。

22、图3-11 BTS7970驱动电路根据驱动输出电流、加速、制动时间、稳定性能、发热情况等原则,对三种驱动电路的驱动能力进行比较,如表2所示。表2 三种驱动电路性能比较表方案加速性能减速性能稳定性内阻效率发热情况MC33886一般一般好120毫欧低很热BTS7960好好好16毫欧高微热BTS7970很好很好好16毫欧很高不热综合实际运用和对各个驱动电路的性能比较,最终选用了BTS7970驱动电路。3.4 人机交互模块3.4.1 拨码开关 由于在智能垃圾桶启动开始后,不能够对智能垃圾桶硬件及软件进行修改,在保证了硬件有效可靠的同时,软件有可能不能够适应新场地,所以设计拨码开关对智能垃圾桶有关参数进

23、行设置也是必要的。拨码开关电路如图3-12所示。图3-12 拨码开关原理图这是一个八段的拨码开关,一边都接入地,显然,每个部分都有 16 种状态,前2个来改变舵机参数,中间两个用于定时检测起跑线定时检测,后四个改变直流电机参数,这样对于适应新的场地很有好处。 另外,由于拨码开关和速度调试联系紧密,因此我们在调试过程中,将拨码开关的数值和调速、转向及检测都联系起来,从而将调速、转向都变成人为可控制的因素,增加了对场地的适应性。3.4.2 起跑线检测显示电路起跑线的检测对于摄像头来说一直是个难点,因此设计了一个数码管电路来显示检测起跑线的次数,以便更好的设计起跑线程序。具体起跑线检测显示电路,如图

24、3-13所示。图3-13 起跑线检测显示电路3.5 车速检测模块为了使得智能垃圾桶能够平稳地沿着赛道运行,需要控制车速,使智能垃圾桶在急转弯时速度不至过快而冲出赛道。通过控制驱动电机上的平均电压可以控制车速,但是如果开环控制电机转速,会受很多因素影响,例如电池电压、电机传动摩擦力、道路摩擦力和前轮转向角度等。这些因素会造成智能垃圾桶运行不稳定。通过速度检测,对车模速度进行闭环反馈控制,即可消除上述各种因素的影响,使得车模运行得更稳定。车速检测初次主要由红外对管电路和后轮齿轮做编码盘组成。红外对管之间的红外光束被编码盘挡住时接收管截止,与接收管串联的电阻电压为逻辑0,当红外光束通过编码盘的孔时,

25、接收管开通,与接收管串联的电阻电压为逻辑1。通过输出比较器定时T中断一次去读取脉冲累加器PACN32的所得脉冲数N而得车速V。设后轮周长为C、减速齿轮数为n。得车速公式:V=(Cn)NT。本次用作测速的光电传感器型号为H42B6,在5V测试电压下,上升沿时间和下降沿时间为15us;这样的向应时间是够用的,我们可以粗略估算一下:假设车速为4m/s, 即0.004us/mm;后轮的周长为170mm,码盘等分76*2=152;所以每等分为170mm/152=1.118mm;所以每个时间间隔为:1.118mm0.004us/mm279.5us。远远大于H42B6的反应时间。此部分的测速示意图如图3-1

26、4所示。图3-14 光电管和编码盘组成的测速示意图但经过后来实践证明,该检测方法精度较低,可靠性较差,容易受环境光影响,当车速达到3m/s时候,检测会发生问题,后来采用OMRON 公司生产的 E6A2-CS100型旋转编码器。它由 5V 的直流供电,速度传感器通过后轮轴上的齿轮与电机相连,车轮每转一圈,速度传感器转过 2.75 圈。旋转编码器实物如图3-15所示。图3-15 旋转编码器实物图该旋转编码器有四根线,黑线和红线为地线和电源线,白线和绿线分别为A相B相信号线,在实际测速过程中只需要一相即可。车轮每前进一段距离时,速度传感器便产生一定数目的脉冲,单片机利用 ECT 对脉冲进行计数,从而

27、得到速度值15。3.6 舵机驱动模块舵机驱动模块采用 Futaba 公司 S3010 型舵机作为智能垃圾桶方向控制部件。在具体应用中,采用 PWM 信号开环控制。只要舵机的开环转向力矩足够,并且和给定的 PWM 信号与舵机打的角度一一对应,这样控制电路既简单又能满足我们的控制要求。给定舵机的工作电压为6V左右,输出为PWM信号,从而控制其摆动角度。舵机接口一般采用三线连接方法,黑线为电源地线,红线为电源线,一般采用两种标准,4.8V和6V,另外一根连线为控制信号线。控制信号是周期在20ms左右的脉冲信号,脉冲信号的宽度决定舵机输出舵盘的角度。影响舵机控制特性的一个主要参数是舵机的响应速度,而舵

28、机的响应速度直接影响智能垃圾桶通过弯道时的最高速度,提高舵机的响应速度是提高智能垃圾桶平均速度的一个关键。舵机的响应速度与工作电压有关系,电压越高速度越快,所以应在舵机允许的工作电压范围内,尽量选择最大的工作电压。舵机实物图如图3-16所示。图3-16 舵机实物图提高舵机控制前轮转向速度的办法是可以在舵机的输出舵盘上安装一个较长的输出臂,将转向传动杆连接在输出臂末端。这样可以在舵机输出一个较小的转角下,取得较大的前轮转角,从而提高了整个车的转向速度。此外舵机的正常工作频率是50Hz,设计中考虑到加快舵机的反应速度,将舵机的工作频率提高到100Hz。即PWM1的输出频率为100Hz。实际测量,可

29、以得出结论,在100Hz的PWM1输出控制下,舵机没有出现不正常的反应,而且响应速度确实比50Hz时快。4软件程序设计4.1 系统总控制流程图及说明图4-10 系统总控制流程图如流程图所示(1)单片机控制电机时,系统首先进入中断保护过程。中断保护过程将完成如下5方面的工作:(a)保存端口的状态值。保存中断前的片内寄存器值。保存存储器的寻址地址。保存主程序的执行代码断点。初始化脉冲宽度、延时长度和状态信息。(2)完成中断保护后,系统将检查脉冲宽度计时时间是否达到。脉冲宽度计时用于开启可控硅,控制电机运行。如果既定时间宽度的脉冲已完成(即判定结果为是),则必须撤销脉冲;如果既定时间宽度的脉冲已完成

30、(即判定结果为否),则不撤销脉冲。(3)判断电机是否正在运行。如果电机没有运行,则恢复寄存器初始值,完成中断,返回系统主程序;如果电机正在运行,则继续执行。(4)判断脉冲延时时间是否到达。如果延时到达,中断将重新开启脉冲,并给出脉冲初始值,重新决定是否开启可控硅,控制电机运行;如果延时不到,则恢复寄存器初始值,完成中断,返回系统主系统。(5)完成中断,返回系统主程序。4.2 PWM波软件设计PWM波软件设计的思想是:通过控制总中断使能EA控制电机的开关,同时使能对霍尔传感器输出的方波在单位时间内脉冲个数的计数。其中定时器T0,T1分别对脉冲的宽度、霍尔元件输出的脉冲数对应的1秒时间定时。对脉冲

31、宽度的调整是通过改变高电平的定时长度,由变量high控制。变量change、 sub_speed 、add_speed分别实现电机的转向、加速、减速。其程序流程图如图4-11所示。 图4-11 PWM波软件设计方框图部分程序代码如下:/*通过按键实现对电机开关、调速、转向的控制的程序*/ void motor_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 != 0) if(add_speed = 1)high-; if(high = 5) high = 5;while(ad

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1