1. 设计背景
1.1. 设计背景
无盖杂物桶是日常生活中必不可少的工具,因为使用便利被各大场合所接受。但同时也存在很多问题,包括杂物味道的扩散、接触感染等。智能杂物桶的出现很好的解决了这些问题,不仅能够识别人体、声音来控制翻盖,而且其大容量、精美的封装使用户有更好的体验。我们基于普通杂物桶也设计了一款智能杂物桶,在能够实现自动翻盖的基础上增添了超声波测距,使杂物桶装载程度实时显示在液晶屏上,一旦超过装载程度则会通过RS485通讯将信息传递至PC端供使用者实时监控。
1.2. 智能杂物桶的研究现状及问题描述
如今智能杂物桶功能强大,包括自动翻盖、语音交流、定时消毒等等。而针对杂物桶装载程度的检测这一功能却不多,考虑到我们设计的智能杂物桶用来检测的杂物起伏并不大,所以我们在HC-SR05人体热释电传感器实现自动翻盖的基础上通过超声波模块对杂物装载程度进行检测 [1],通过接收发出的反射波与时间计算出距离并显示在液晶屏,更能通过RS485通讯与PC相连,让使用者在扔杂物的时候对杂物桶装载程度有更好的了解。
1.3. 设计理念及创新性
本装置设计理念基于单片机,根据人体热释电传感器检测是否有人经过。一旦检测到人体发出的红外线,该传感器则会发出数字信号给单片机,此时通过给步进电机各相上电进行控制桶盖并配合超声波模块、1602液晶对杂物桶的装载程度进行显示。一旦杂物装载到预定程度则自动通过485通讯将数据发送给监控人员以此实现人机交互的友好。
2. 硬件系统设计方案及实现
2.1. 进行自己设计的整体思路
为了能够提高用户的体验感觉,我们对常用杂物桶进行了改造。首先是针对自动翻盖功能,采用红外线传感器可重复触发方式,一旦检测到人则控制电机进行翻盖,然后此时利用超声波模块进行测距并刷新液晶上的数据,当人离开后电平变低则控制电机对桶盖进行闭合。最后通过RS485通讯进行上位机交互。
2.2. 设计方案
本装置可以分为3个模块,即为模块a:红外线翻盖模块。模块b:超声波检测满溢程度模块。模块c:杂物信息监控。
2.2.1. 红外线翻盖模块设计
本设计采用HC-SR05红外线传感器可重复触发式对人体进行检测。当进入感应范围,人体释放的红外光透过菲涅尔透镜被聚集在传感器某个段的同心环上,此时同心环与红外线探头的焦距使红外光被探头接受,探头将光信号变成电信号,最后通过模数转化成数字信号传至单片机对应I/O。单片机在接收到红外传感器的信号后是不能直接驱动电机,因为单片机的I/O口一般输出的电压电流比较小,供电电压在5 V左右驱动负载能力不够,所以需要用一个功率放大电路来放大用单片机产生的信号,而且输出的是单片机数字信号而不是驱动电流,所以我们选用具有大电流输出能力的ULN2003模块,引脚图设计如下图1所示。
对于控制步进电机,一旦红外传感器对应的I/O口变成高电平,步进电机(28BYJ-48)则在ULN2003控制下进行翻盖 [2]。桶盖采用半翻式,设计图如下图2所示。
所以我们需用执行的操作就是控制步距角为90˚。考虑到半面桶盖负载轻,我们采用一相励磁法,如图3所示,不仅耗电低而且精确良好。然后通过控制脉冲个数控制角位移量达到定位的目的,同时控制脉冲频率来控制电机的转动速度。
2.2.2. 超声波检测满溢程度模块设计
本模块设计采用超声波模块(如图4所示)对杂物装载程度进行检测。通过单片机给超声波Trig这一IO口至少10 us的高电平信号,此刻模块会自动发送8个40 kh的方波检查信号是否返回,一旦检测到Echo端口会输出高电平 [3]。通过单片机内部定时器会测出高电平时间,测出的距离为S:
式中:S——超声波测距;
T高——高电平持续时间;
声速——340 M/S。
然后通过1602LCD,如图5所示进行显示。
接正电源其对比度最弱,接地时对比度最高,一旦对比度过高会有“鬼影”,所以使用时通过给V0引脚一个10 k电位器调整对比度使其显示更清晰。使用前我们对液晶进行了相应的配置,首先进行初始化、写命令函数、写数据函数等操作。因为1602液晶只能显示字符型数据,所以我们将超声波测得的数据逐位拆开并参考CGRAM将数字转换成字符最后通过DDRAM操作地址写入使得液晶显示,一旦有人扔完杂物则重新启动超声波测距将测得的新数据重新写入以此来实现数据的刷新显示。
2.2.3. 杂物信息监控模块设计
本模块设计我们基于单片机最小系统进行了扩展(如图5所示),分别将单片机的P3.0 (RXD)与P3.1 (TXD)端和485通讯模块的TXD (接收)和RXD (发送)相连接,PC端采用USB转485模块并用双绞线将两个模块的发送接收端连接(图6),并将PC端的上位机波特率,COM口配置好。因为我们是要发送检测的数据,所以首先我们将串口初始化,波特率调至9600 bps并选好串口通讯的工作方式 [3]。如图7所示RE、DE两个引脚连在一起此时引脚默认为接收状态。
最终我们将485引脚电位拉高,然后利用循环将需要的数据逐字节发送,发送完数据后再将电位拉低。
2.2.4. 单片机最小系统及供电
单片机最小系统由stc89C51单片机,如下图7所示。
晶振电路组成。晶振电路由11.0592 M晶振与单片机相连接,同时将两个22 pF的电容接地接引脚。用来过滤掉晶振的高频部分。复位电路由10 uf的电容正极接5 V电源,1 k电阻一段接地(GND)。因为本装置供电电压为5 V,为了避免换电池带来的麻烦,我们利用LN7805集成稳压器,在被整流滤波后送入LM7805稳压,在输出端接一个470 U和0.1 U电容进一步滤除纹波,得到5 V稳压电源,使得可以直接给其进行供电。
3. 软件系统设计方案及实现
3.1. 红外线翻盖软件设计流程
利用热释电红外传感器检测是否有人并用if函数进行判断。并对步进电机各个相电位状态进行定义,如下图8所示:

Figure 8. Schematic diagram of stepper motor control
图8. 步进电机控制原理图
通过定义旋转时间控制脉冲个数进行翻转,通过定义延迟函数来控制脉冲频率来控制电机转速 [4]。没人则为低电平步进电机保持原状。有人为高电平则控制桶盖进行翻转,然后通过延迟函数延时3 s,如果人离开检测范围则将给各相I/O与之前相反的上电顺序使步进电机下翻复位。控制流程图如图9所示。

Figure 9. Design flow chart of the infrared clamshell software
图9. 红外翻盖软件流程设计图
3.2. 超声波测距液晶显示设计流程
首先超声波模块由Trig引脚发出至少10 us的方波,Echo引脚一旦检测到则输出高电平并利用单片机定时器中断测出高电平时间,然后通过公式计算出与杂物的距离 [5]。1602LCD初始化读写命令等操作完后将测得的距离显示在液晶屏,并判断与杂物的具有是否小于3厘米,小于则没有变化,大于警示灯亮起。当杂物扔走后则灯熄灭,最后并通过485通讯传至PC端方便监控。如下图10所示。

Figure 10. Ultrasonic ranging software process design
图10. 超声波测距软件流程设计图
4. 总结
本文主要是基于AT89C51单片机设计了一款智能无感杂物桶,本杂物桶设计的过程中包了以下四点的创新如下:
1) 检测人体红外实现自动翻盖;
2) 液晶显示杂物桶装载程度;
3) 使用者通过上位机实时检测杂物桶装载程度;
4) 直接供电不需要额外装载电池。
同时我们知道在整个设计过程中仍然还存在若干不足之处和可以改良的点。如在电机运转带来一定声音方面,在后续的研究和设计工作上我们会用直流减速电机进行驱动,在增强精度的同时给使用者更好的体验。此外并用stm32系列芯片来替代AT89C51芯片重构系统架构和相关数据和协议,最终来丰富无感杂物桶更多的功能。
基金项目
本项目受上海对外经贸大学人工智能变革与管理研究院区块链技术与应用研究中心资助。项目号:SUIBE-ABC-2020-2。
NOTES
*共一作者。
#通讯作者。