单片机的智能垃圾桶设计
2021-04-09东南大学成贤学院胡婷婷吴玉莲
东南大学成贤学院 李 宠 仝 倩 胡婷婷 吴玉莲
无论是在家庭空间还是公共场所,如何做到合理性的对垃圾进行分类和收集一直都是不容小觑的问题。在炎热的夏天,如果不能及时处理食物的残渣,就会导致其发臭发霉。对于人头攒动的公共场所,更应该花费时间与经历解决关于垃圾处理的问题。目前市面上销售的垃圾桶都带有盖子,由于传统的工艺设计使其在打开过程中需要采取手动或者脚踩的方式,也确实不适用于快节奏下的人类使用。为了更好地适应科技迅猛的发展,更好的解决人们的生存问题,我的设计目标是打造出可以利用传感器检测的方式,自行打开垃圾桶盖的设计产品,并且具有语音功能,能够极大改善人们的生活质量。
通过查阅的数据分析,我国约有50%以上的城市深陷“垃圾围城”的困境之中。这些垃圾往往处于露天堆放的状态,严重影响了人们的生活健康,造成水资源、土壤、大气的污染。实际生活中,当你手上有一块需要扔掉的香蕉皮,但一想到要用手打开脏兮兮的垃圾桶盖,立马就会变得不想靠近,如何解决这一问题,让垃圾桶变得具有亲和力,也是需要考虑解决的问题之一。
1 研究内容
在本次设计中主要利用STC89C52单片机作为实验基础,致力于设计开发出智能垃圾桶系统。该系统能够实现智能开盖的设计,且在垃圾装满后具有自动语音报警的功能。此设计的控制中心为单片机,利用红外传感器对周围是否有人做出探测,如果有人经过,单片机会通过对电机的控制,打开卡机桶盖,在通过延时设定一段时刻后,自动关闭垃圾桶盖。电机通过线的正反缠绕控制桶盖的打开与关闭。红外对管模块能够精确检测出垃圾桶内现存垃圾高度是否超过限定高度,如果已经装满,单片机会控制语音播放芯片,以语音播放形式提醒人们及时处理垃圾。
2 总体方案设计
方案的设计运行主要由单片机、红外对管传感器、电机驱动模块、语音报警、稳压模块几部分共同组成。红外传感器是单片机最重要的信号输入源头,因为单片机需要对输入进来的信号处理完毕后,才能输出信号给语音模块与电机驱动模块,最终完成系统的总体设计。
人体检测模块中红外传感器如果监察到有人存在,就会把信号带给单片机,单片机处理信号后更好的控制电机驱动模块,人只要一离开系统就会自动关盖。如果此时垃圾的高度达到原始设定高度,红外对管传感器会及时发送信号给单片机,单片机处理信息后控制语音播放模块,报警提示人们。
3 硬件系统设计
单片机得以运行起来的条件有两个,包括时钟电路和复位电路两方面的外围电路,还有电源参与其中。满足上述条件之后,才可以进行程序运行和单片机的下载。时钟电路使用过程中产生的震荡频率会操控单片机的运行速度,一般情况下速度越快频率运转越高;单片机的复位电路中,电阻和电容的值都可以利用频率公式计算出来,例如本次设计晶振频率则控制在12.0123MHz,复位电路的电容值有30pF,电阻值为11KΩ。
红外对管指的是光敏接收管与发射管结合而成的总称,传感器能够反射红外线进行目标的探测,被测到的物体外形和反射率两方面会直接影响距离和测量精密度。研究显示,黑色物体的最远距离最小;白色物体能探测的最远距离最大。红外线的原理告诉我们,被检测物体不需要与模块之间发生碰触,所以它的反应是十分迅速敏捷的。
当模块的有效探测范围内有障碍物时,模块的绿灯亮起,同时OUT引脚电平变低。模块检测距离为2~20cm,检测角度为40°,可以通过电位器旋钮调节检测距离。上图蓝色方块即为电位器,顺时针调节电位器,检测距离增加,反之则检测距离减小。模块的VCC引脚与电源正极相连,GND引脚与电源负极相连,OUT引脚与单片机P2.7口相连。
4 系统软件设计
设计的思路主要是在系统启动后,在对其进行初始化流程的操作,人体的红外检测电路能够准确探测出一定范围内是否有垃圾,如果有人在扔垃圾,单片机此时就会迅速做出反应,将桶盖打开;如果机器没有检测到人的存在,此时桶盖就会一直处于持续保持打开的状态,直到有人突然离开。当垃圾桶里的垃圾有外溢倾向时,检测电路就会及时检测垃圾的高度是否达到上限高度,这时它会提示人们不可以再将里面投入垃圾,程序就会以这样的规律循环往复。
在进行系统检测的过程中,单片机每间隔1s会对传感器的输出进行检测,这时需要一个用于定义定时器的中断函数。程序设计中规定设计循环为20次,每次为50ms的数值,定时器的初始值计算公式为:(216—X)×10—6=50×10—3,X的值为36260=3CB0H。
5 进行系统调试
硬件系统和软件系统在设计过程中,需要进行拆分研究,所以需要将它们分别调试好后,将程序下载至单片机中进一步查看工作情况,通过不断调试解决可能出现的问题。调试的过程也很重要,要一遍遍检查软件是否能够有效配合硬件的正常运行,还要考虑运行和运输的速率是否能够达到预期的目标。全部调试的过程中不可避免会出现几类问题:编程逻辑的错误、硬件连接不牢靠等等。下文将详细介绍几个调试的过程,并记录出现的问题与解决思路。
5.1 单片机型号的选择上
本设计便用的单片礼是STc89C52,但是Keil自带的芯片库中没有这个型号的单片机,使用Atmel的AT89C52可以代替使用,结果相同。弹窗右侧是AT89C52特性的简要说明,可见其参数和本设计使用的STC89C52基本相同。之后再点击确定。
5.2 对电机的正反转进行调试
在正反转的子程序中,通过delay延时函数调节步进电机转速,延时越大则转速越慢,但经过调试发现显低只能设置为2,再低则电机不会转动已保存到相册盾环的次数来设置步进电机旋转的角度,经过反复试验后,最终确定循环450次可以正好打开桶盖,约85°左右。
5.3 对系统硬件进行调试
确保了每个元器件都没有出现故障后,再进行硬件调试。首先需要检测电路是否存在断路、焊锡过量或过少的问题,因为焊锡控制不好会引起断路或者虚焊的情况发生。最后将已经焊接好的电路板进行通电,利用万能表对引脚的状态细致检查,测量每个模块间输出的电压值是否正确。
5.4 调试结果与分析
在调试的过程中,会逐步发现很多细节问题的产生导致系统无法正常运转与工作,所以只能对每个部分进行检查检测,逐个解决问题,这也是模块化设计的优势之一。硬件和软件最终能够完美的融为一体,并且达到本案设计的目标,但是也遇到一些特殊问题需要解决,例如程序不能下载到单片机中。为了解决这一问题,我对转换芯片能否正常运行做了深入检查,不断尝试安装新的芯片进行系统的驱动,不断重启电脑和ISP软件,检测TXD终端是否接触好。还会出现红外对管传感器输出指示灯常亮的现象发生,导致其原因一般是由于模块自身电位器的问题,当把探测距离设置过大时,会造成模块一直输出低电平,这是可以尝试调节电位器减小探测距离,若问题还未解决则,建议更换红外对管传感器模块。
6 实验相关结果
通过本次研究,我们完成了原本预定的目标,设计的成果能够对一些要求进行满足:例如,能够实时监测是否有人存在,它能够自动型开关盖子。当人手在垃圾桶上面小于10cm的距离,垃圾桶能够迅速做出反应且立马开盖;当人逐渐离开,它又可以在三秒钟内关盖,无需人为操控。当垃圾堆积的总高度超过桶口时间大于3s时,语音报警功能响起,垃圾会被清扫干净,关盖时候垃圾桶不会发出声响。
7 展望与实验总结
在此次产品设计中,我们主要使用单片机作为垃圾桶的主控制芯片,在一定的时效内完成对语音报警功能的实现,也实行了垃圾桶的自动开盖功能,从而完成了设计智能垃圾桶的任务。
当有人将垃圾扔进桶内时,红外对管传感器此时就会做出反应,将其信号传送给单片机,在内部系统的处理后发送脉冲信号,使得电机的驱动模块能够打开垃圾桶盖,人离开时只需要延时几秒钟就可以自动关盖。电机在驱动过程中使用ULN2003模块,步进电机是开盖的主要动力源,旋转角度能够得到有效控制。垃圾达到一定限制高度时候,红外传感器就会对单片机发出信号,信号被处理后语音模块会及时报警。在软硬件调试过程中也遇到了一些困难,我们小组成员始终坚持不放弃的原则,细心调整内在问题,最终系统得到完善的设计。
本次设计方案由于时间的紧促,还存在一些不足之处,不够成熟。垃圾桶虽然能够开盖,满足语音报警的功能,但是内部环节还有很多需要调整提升品控的地方。首先语音质量方面还不能趋向于完美,目前使用中的芯片需要手动录制音频,音效不够流畅,还会受到周边杂音的干扰。开盖的机械结构还需要调整设计,由于用料方面受到限制,只能用线拉的方式把桶盖拉扯开,这样的方式使得电机运转速度受到影响,在后面提升过程中可以利用齿轮间的相互配合驱动桶盖的突然打开。除此以外,还需要更换人体检测电路的传感器,因为热释电传感器会因为环境受影响导致输出状态并不稳定,在后面的研究过程中会用到红外对管传感器进行实践。