APP下载

一种新型人手接近感应装置设计*

2022-10-31任志敏

山西电子技术 2022年5期
关键词:环境光高电平寄存器

任志敏

(常州纺织服装职业技术学院机电学院,江苏 常州 213164)

0 引言

随着新冠疫情的爆发,各种洗手液、消毒液成为了日常生活的必备物资。传统的洗手液等装置一般由瓶体和泵头组成,通过用力按压泵头达到出液的效果[1]。由于新冠病毒传播的属性,各类人员频繁按压泵头有可能增加病毒传播的机会。所以设计一款可以自动出液的洗手液对于阻绝新冠病毒的传播具有积极意义。本文结合传统人体感应技术,通过两种监测方式,使得人体感应装置更加精准化,智能化。

1 方案分析与设计

如何感应人手的靠近,是实现无接触喷液的关键一步。目前主流的感应技术是红外感应。红外感应主要是利用人体或动物发出的红外线热释电效应检测人体的靠近;主要应用于日常生活中楼道感应灯等领域,一旦人体靠近,通过红外感应传感器触发相应操作。该方案优点是简单,成熟,缺点是鲁棒性不强,精准度不够[2]。

为了保证精确感应,避免出现误判,本文设计了两套感应装置,一是超声波测距模块感知双手逐渐靠近;二是接近监测传感器感知双手在10 cm以内的距离。在以上两种感知器件的精确感应下,保证精准感知。

1.1 超声波

超声波模块是由超声波发射器、超声波接收器与控制电路组成的传感器模块,其主要工作原理是通过收发高频超声波实现测距。传感器通过测量超声波脉冲发送和接收之间的时间间隔来确定到目标的距离。

由于声波在空气中传播的速度是已知的340 m/s,因此只要采集从超声波发射到接收的时间,即可算出超声波模块到障碍物的距离。

1.2 接近监测传感器

接近监测传感器的工作过程主要由三个步骤完成:

1) 电流驱动内部的红外LED发射。

2) 碰到障碍物反射。

3) 二极管通道CH1吸收发射的红外LED的能量,据此测量出到障碍物的距离。

除了接近监测以外,通常该类传感器还兼具环境光检测的功能,其原理如图1所示。

图1 接近监测原理说明图

微控制采用STM32F407ZET6(以下简称STM32),输入捕获通道连接超声波测距模块,I2C接口连接接近监测传感器模块。

2 硬件设计

2.1 超声波测距模块硬件设计

新型人体感应装置采用超声波测距自动感应人手的靠近。超声波模块是由超声波发射器、超声波接收器与控制电路组成的传感器模块,其主要工作原理是通过收发高频超声波实现测距。传感器通过测量超声波脉冲发送和接收之间的时间间隔来确定到目标的距离[3]。其原理图如图2所示。

图2 超声波测距模块原理图

从图2中可以看出,超声波模块从硬件上看由控制单元、超声波发射单元和接收单元三个部分组成。图2中控制单元的微控制器采用意法半导体公司的STM8L051为主控芯片,提供了两种接口实现测距,一种接口是通用输入输出口,另一种是I2C两线接口。通用输入输出口TRIG作为输入端接收开启测距信号,ECHO引脚作为输出端返回测距高电平信号。I2C接口通过外接主机发送测距命令启动测距,外接主机接收测距数据。

2.2 接近监测传感器模块硬件设计

APDS-9930是一款提供了数字环境光感测(digital ambient light sensing ALS)、红外LED和接近监测功能的传感器。一方面能感测周围环境的亮度,另一方面能基于红外测距原理感知物体的靠近。无论是在明亮的阳光照射下,还是到黑暗的房间,APDS-9930都能进行100 mm距离物体的接近监测,表现出运行良好的即插即用监测功能,很好地满足了次组件和终端设备厂商的业务需求。APDS-9930的光学透镜提供红外能量的高效率传送和接收,降低了器件工作的功耗。APDS-9930的主要特点包括环境光感测高达16位的分辨率;近似人眼的视觉反应;0.01 lux的低流明性能;高达400 kHz的I2C兼容接口;带有上限和下限阈值的可编程中断功能;专用中断引脚等[4]。APDS-9930广泛应用于手机、平板电脑等领域,旨在解决根据环境光照射强度自动调节屏幕背光以及接听电话自动锁屏等功能。本文主要使用APDS-9930的短距离接近检测功能。

APDS-9930一共8个引脚,I2C数据引脚和时钟引脚用于配置和读取其内部寄存器,R2,R3两个10 k电阻作为上拉电阻;一个中断引脚INT根据用户设置的环境光强度和接近距离阈值触发中断,中断引脚同样通过10 k电阻上拉,下降沿标志中断产生;LEDA和LEDK分别是其内部红外发光二极管的正极和负极,LDR作为驱动用于接近发送的二极管,通常直接连接LEDK脚。APDS-9930的典型供电电压是3.0 V,模块原理图设计了一个稳压芯片PAM3101,模块原理图如图3所示。

图3 APDS-9930接近监测传感器模块原理图

3 软件设计

3.1 STM32输入捕获测距程序设计

由于声波在空气中传播的速度是已知的340 m/s,因此只要采集从超声波发射到接收的时间,即可算出超声波模块到障碍物的距离[5]。

超声波模块的Trigger引脚上给至少10 μs的高电平信号触发测距,接着模块在超声波发射管发射8个40 kHz的方波脉冲,这种8脉冲的模式是独一无二的,以区别周围的噪声。Echo引脚拉高,作为返回波信号的起始点,如果这些脉冲没有被反射回来,那么Echo引脚将在44 ms之后超时并返回低电平,表示在44 ms时间内超声波没有碰到障碍物。如果这些脉冲被反射回来,那么信号一被接收,Echo引脚就会由高电平变低电平。这将产生一个宽度在150 μs~25 ms之间的脉冲,取决于接收信号所花的时间。接收脉冲的宽度可被用来计算超声波模块到障碍物的距离,如图4所示。距离Distance=(高电平的时间×声速)/2。

图4 超声波测距时序图

使用STM32的定时器5的输入捕获功能获取Echo引脚高电平的时间[6],高电平输入获取的过程如图5所示。

图5 输入捕获测量高电平脉冲原理

图5中定时器溢出值为自动装载值AutoReloadPreload(ARR),CCRx为比较值,CNT为定时器计数值。根据Echo引脚的时序图,t1~t2为需要测量的高电平时间,首先设置定时器为上升沿捕获,在t1时刻,即捕获到定时器当时的计数值CNT,并立即清零CNT值同时设置定时器为下降沿捕获,在t2时刻,又会发生捕获事件,再次得到当前的计数值CNT,记为CCRx2,根据定时器的计数频率和周期,就可以计算t1~t2的时间,从而得到高电平脉冲的时间。在t1~t2时间内,捕获高电平的时间可能是图5(a)的情况,也可能是图5(b)的情况。

图5(a)中定时器在一次计数没有溢出,即t1~t2的高电平时间小于一次定时器溢出,所以定时计数CNT=CCRx2-0。图5(b)中定时器2次溢出,因此t1~t2高电平时间的计数值为2×ARR+CCRx2。有了CNT计数,再乘以定时器的计数周期,即可得到t2-t1的高电平时间长度。

3.2 APDS-9930接近监测传感器程序设计

STM32和APDS-9930采用两线I2C接口进行寄存器配置,数据读写等操作。一旦超过设定的距离阈值,APDS9930通过及时产生中断告知STM32距离接近。为了保证APDS-9930可靠工作,首先需要配置其相关寄存器[7],配置APDS-9930步骤如下:

Step1:读取0x12号寄存器是否为0x39,若是表示APDS-9930挂在总线上,否则提示未找到APDS-9930。

Step2:先配置0x00号寄存器的第0~6位,暂时禁用所有的功能和中断,包括禁用环境光感测、接近检测,禁用接近中断等。

Step3:配置14个环境光感测和接近监测寄存器。

1) 0x01环境光感测寄存器。该寄存器控制通道Ch0和Ch1在ADC时的积分时间,以2.72 ms为单位增量。配置为0xff即为最小积分时间2.72 ms,配置为0xf6时的积分时间为27.2 ms,配置为0x00时的积分时间为696.32 ms。本文配置为0xED,积分时间为35.36 ms。

2) 0x02接近时间控制寄存器。该寄存器控制接近检测ADC的积分转化时间,以2.72 ms为一个增量单位,决定了ADC输出的最大Count值。如果增加ADC积分转化时间,在有效量程的基础上分辨率会有所提高,但是会牺牲测量距离的精度。该寄存器设置值为0xff,表示接近检测ADC积分时间为2.72 ms,对应的ADC输出的Max Count为1023。

3) 0x03为等待时间寄存器。本文设置为0xff,等待时间为2.73 ms。

4) 0x0E为接近监测脉冲计数寄存器。该寄存器设置将被传输的接近脉冲的数目。当接近检测启用后,每个ALS周期后都有一个接近检测周期。寄存器值定义了传输以62.5 kHz为频率的脉冲个数。本文设置为8。

5) 0x1E为接近检测偏移寄存器。该寄存器主要用于补偿因器件变化、光学干扰、以及其他环境因素等原因造成的偏差值,其最高位第7位为0表示负补偿,最高位为1表示正补偿。本文设置为0。

6) 0x0D为配置寄存器。该寄存器用于设置接近检测LED的驱动水平、长等待时间和光环境感测增益。本文设置为0。

7) 0x0F为控制寄存器。该寄存器用于设置LED驱动强度,接近检测二极管选择,接近检测增益控制和环境光感测增益控制。设置值为0x2C,LED驱动电流为最大100 mA,此参数一共四挡,最小为12.5 mA,驱动电流设置越小,有效量程的起点和终点都会明显缩短,量程也会降低。接近检测增益控制为8x,选择通道1二极管,环境光感测增益为1x。

8) 0x08~0x0B为接近监测触发中断阈值寄存器。设置下限阈值为0,上限阈值为50。

9) 0x04~0x07为环境光感测触发中断阈值寄存器。设置下限阈值为0,上限阈值为0xFFFF。

10) 0x0C为控制中断频次寄存器。第7~4位设置连续多少次接近检测超过阈值才产生中断。第3~0位设置连续多少次环境光感测超过阈值才产生中断。

STM32的PE2连接APDS-9930的中断输出引脚,设置为下降沿触发外部中断,人手接近APDS-9930,超过设定阈值,即产生中断,通过设定的接近标识位proxflag置位操作通知主流程循环触发伺服电机转动。中断发生时,通过串口监控工具获取的接近数值如图6所示。

4 结束语

本文针对实际应用需求,研究并设计了用于感应人手靠近的超声波测距模块和接近监测模块APDS9930,通过程序验证,利用超声波模块实现远端测距,采用接近监测模块实现近端测距,比起传统的红外感应更可靠,更精准。

图6 接近监测传感器测试数值图

猜你喜欢

环境光高电平寄存器
一种基于FPGA的PWM防错输出控制电路
STM32和51单片机寄存器映射原理异同分析
Lite寄存器模型的设计与实现
Vishay新型高灵敏度环境光传感器用于可穿戴设备
TS-03C全固态PDM中波发射机开关机控制电路原理及故障分析
单帧图像下的环境光遮蔽估计
浅谈物理电路与数字电路
超赞柔性屏幕
PDM 1kW中波广播发射机保护电路分析
高速数模转换器AD9779/AD9788的应用