家居生活中的几乎每一种设备都在经历自动化和智能化的创新。顺应这一趋势,本文将介绍如何创建一个智能垃圾桶设计,当有人接近垃圾桶时会自动打开,并在人离开时自动关闭。这个设计不需要用户触碰垃圾桶。该系统还配备了特殊的按钮来校准距离:用户可以选择垃圾桶感应的距离为20厘米、40厘米或60厘米。该设计通过使用一颗Dialog SLG46140V CMIC、一个伺服电机和一个超声波传感器实现。
我们为这个项目选择了SLG46140,因为它包含了有效执行所有系统功能的合适元素。该IC以脉冲的形式接收来自超声波传感器的信号,其中触发器和接收信号之间的延迟时间表示声音信号移动和从对面物体回弹所需的时间。然后,该IC将时间延迟与距离进行关联;然后,相对于所选择的距离阈值测量该距离。如果满足阈值,则生成合适的PWM信号并发送到伺服电机,使其旋转90º从而打开垃圾桶盖。当用户离开垃圾桶时,该IC从超声波传感器接收新值,生成新的PWM信号,使电机反向旋转90°,从而关闭桶盖。
图1: 电路框图
SLG46140 GreenPAK是一款小型IC,包含很多不同的可配置组件。可以在几分钟内对该IC完成配置实现这个应用,它将能执行所有系统功能,而无需使用微控制器或类似的处理器件。此外,GreenPAK的低功耗性能可以节省电池使用,这使自动垃圾桶传感器对客户更具吸引力。
我们用了一个小型伺服电机(SG90)来创建项目原型设计,这对小型垃圾桶很方便。在选择伺服电机的时候,应检查其扭矩并确保能够正确打开垃圾捅盖。该项目已通过实际原型进行测试和实现。
GreenPAK设计
该设计包括两个基本部分:第一部分用于接收来自超声波传感器的信号,并将其与距离进行关联。 第二部分负责生成PWM信号以旋转伺服电机。
超声波传感器控制设计
我们在这个项目中使用的传感器是HC-SR04超声波传感器模块。该传感器有四个引脚。GND和VCC引脚为传感器提供电源,TRIG和ECHO引脚控制滤波后的超声波信号。如果我们在TRIG引脚上施加高信号至少10 us(微秒),传感器将发送频率为40 kHz的8周期超声波发射脉冲串。如果有物体面向传感器,超声波将反弹并被传感器接收。然后,传感器将在ECHO引脚上输出一个高信号,其周期等于脉冲发送和接收之间的延迟。
根据传感器的数据表,距离可以通过以下公式计算:
时间=回波脉冲宽度(微秒)
距离(以cm为单位)=时间 / 58
或者你可以利用声速(340米/秒)并使用等式:
距离=速度x时间
请注意,我们从传感器接收的时间是声音信号接收和反弹所需的时间。因此距离值加倍,我们需要将时间除以2才能得到正确的距离。
GreenPAK中的Pin3已配置为输出,连接到HC-SRO4的TRIG引脚。CNT2和CNT3每20ms生成一个10us脉冲,发送到Pin3。
CNT2已配置为“延迟”,计数器数据等于270。延迟在来自P DLY的下降沿触发。CNT3负责每10ms生成一个脉冲,其计数器数据为249。
CNT3输出连接到DFF0,已与P DLY一起用作分频器,每20ms触发一次CNT2。
Pin4配置为输入,连接到超声波传感器的ECHO引脚。Pin4的输入信号传递至2-bit LUT0和CNT0;两者都用于计算脉冲宽度,来与所选阈值进行比较。
CNT0被配置为上升沿延迟,计数器数据等于26。该延迟时间等于1.14ms,对应于20cm的距离。 因此,CNT0将为每个20cm距离增量输出一个脉冲,根据来自传感器的ECHO脉冲持续时间计算。
管道延迟块用于计算来自CNT0的一个、两个或三个脉冲。“1 Pipe Out”与20cm距离标记相关联,“Out1”与40cm距离标记相关联,“Out0”与60cm距离标记相关联。
来自管道延迟块的信号传递至4-bit LUT0和3-bit LUT0,以与DFF1、DFF2和DFF5输出进行比较。 如果管道延迟的有效输出与用户选择的值匹配,则高信号产生并存储在DFF3中。
Pin5连接到一个按钮,该按钮通过为由DFF1、DFF2和DFF5组成的3-bit移位寄存器提供时钟,来循环设备的距离灵敏度。DFF输出连接到Pin9、Pin10和Pin11,这几个引脚都配置为输出。这些DFF负责保存用户选择的选项,输出可以发送到LED以示意当前设置。
Pin6将切换反相DFF4,它负责激活或停用系统。DFF4的输出传递至2-L2和2-L3。
Pin5和Pin6均采用外部滤波器去抖,因为我们的设计使用了SLG46140中的所有CNT / DLY模块。
3-L1配置为反相器,转换来自Pin4的信号。反相器的输出连接到DFF3的CK输入。当传感器开始新的运行周期时,此连接使DFF3能够保持位于“D”输入的值。
伺服电机控制设计
在这部分设计中,将生成合适的PWM信号以旋转伺服电机臂,从而根据距离计算打开和关闭垃圾桶盖。
伺服电机的旋转角度由PWM信号决定。在本项目中,我们将使用Tower Pro SG90,它能够旋转到几乎180°(每侧90°)。 旋转角度通过提供给电机控制输入的PWM信号来延展。如果每个PWM脉冲宽度为1.5ms,则电机位于中间(角度0°);如果脉冲宽度等于2ms,则电机位于90°;如果脉冲宽度等于1ms,则电机位于-90°。在这个项目中,当传感器未在指定范围内监测到物体时,电机应定位在0°;当物体接近垃圾桶时,电机将旋转至约90°角。
当系统检测到垃圾桶附近有物体时,DFF3输出从低切换到高;命名为“检测到物体”的信号传递至CNT1的“DLY IN”输入。CNT1配置为双边延迟,用于防止噪音或传感器前方任何快速移动导致打开垃圾桶。 这样的话,除非物体在垃圾桶前停留半秒以上,否则垃圾桶盖不会打开。
CNT1的计数器数据为193,等于500ms。CNT1的输出连接到PWM0的“MTRX sel#1”和“MTRX sel#0”输入。PWM0负责生成伺服电机的最终PWM信号;由于我们从“IN +”列表中选择了“通过矩阵选择的寄存器”,因此生成的脉冲的宽度将对应于先前存储在该块的内部寄存器中的值。我们在寄存器1中存储了值24,在寄存器2中存储了值52。
图2: GreenPAK设计
图3: 顶层电路图
图4: 自动垃圾桶原型
总结
在本项目中我们创建了一个智能垃圾桶,当有人靠近它时自动打开,并在人离开时自动关闭。
系统的所有控制功能,包括从超声波传感器接收信号,和为伺服电机生成合适的信号,都是通过单个小型Dialog GreenPAK CMIC实现,它能有效地执行各项功能。