?

一種新型人手接近感應裝置設計*

2022-10-31 07:54任志敏
山西電子技術 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的應用
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合