(江西師范大學 江西 南昌 330022)
由于在自動引導運輸車(AGV)、生產(chǎn)線等自動化設備時刻運動的領域,需要一種可以自動感應障礙物并做出報警的傳感器,這種傳感器需要有一定的避障角度,并且可以由用戶任意設置避障距離,同時受外界的干擾,特別是紅外線干擾要低。當前方障礙物的距離小于設定值時,傳感器要做出及時的報警。
意法半導體公司推出了一種世界上最小的飛行時間(TOF)測距傳感器-VL53L0X。內(nèi)部集成了940nm激光發(fā)射器和 SPAD 紅外接收器,采用了第二代FightSenseTM技術,通過接收器所接收到的光子時間來計算距離,最遠測量距離可達兩米,非常適合中短距離測量的應用。同時,傳感器通信方式采用IIC方式,支持設置默認、高精度、長距離、高速三種測量模式。并提供了校準的功能。滿足不同的工作需求。配合上紅外物理濾光片,可以實現(xiàn)更長的距離,更高的免疫性和更好的魯棒性。
本文提出了一種基于VL53L0X測距來實現(xiàn)避障的多功能傳感器。內(nèi)部采用的是單片機和VL53L0X通信,并配合外圍電路來實現(xiàn)避障和報警。主要功能是:用戶可以調(diào)節(jié)傳感器避障角度和避障距離。當傳感器報警時,可以通過指示燈提示,同時內(nèi)部電路的光耦繼電器由常開變成閉合狀態(tài),外界電路通過這種狀態(tài)改變可以獲得電平輸出的報警方式。主要特性是:(1)可以在高紅外線光的環(huán)境下工作。(2)測量范圍與目標物體的反射率無關。(3)室內(nèi)1.8米范圍內(nèi)的精度可以達到5%。主要優(yōu)勢是:(1)尺寸較小,利于安裝。(2)功能豐富,滿足多種使用要求。(3)和相同功能的產(chǎn)品相比更具有價格優(yōu)勢。
方案采用ST公司的STM32F103C8T6單片機來作為核心的MCU,單片機的串口作為用戶設置傳感器避障距離的輸入口。單片機和VL53L0X之間通過IIC總線連接從而獲取到實時的數(shù)據(jù)。當單片機獲得的數(shù)據(jù)小于用戶設定的避障距離時,單片機一方面通過IO口驅(qū)動發(fā)光二極管發(fā)光,另一方面IO口和光耦相連,將光耦的常開狀態(tài)轉(zhuǎn)換成閉合狀態(tài),這是一種常見的NPN型光耦繼電器輸出。具體的方案流程圖如下:

圖1 設計框圖
(1)由于工業(yè)上大多數(shù)采用24V的電源。所以本方案采用的電源也是24V輸入電源。單片機供電電壓為3.3V,所以還需要將24V轉(zhuǎn)化為3.3V,本方案采用的是TPS5430降壓芯片,將24V轉(zhuǎn)化為5V,然后用AMS1117-3.3將5V轉(zhuǎn)化3.3V。3.3V作為單片機和VL53L0X的供電電源。
(2)單片機采用的是一款基于ARM Cortex-M 內(nèi)核STM32系列的32位的微控制器STM32F103C8T6。程序存儲器容量是64KB。供電電壓2V~3.6V,48引腳。這種單片機采用LQFP48封裝,尺寸較小,性能穩(wěn)定且價格便宜。
(3)VL53L0X作為ST公司推出的一種測距模塊,在和單片機IIC通信過程中需要加上拉電阻4.7K,電源采用的也是3.3V供電。為了方便電路的設計,可以將VL53L0X單獨設計成一個電路。電路如下:

圖2 VL53L0X電路
(4)輸出采用的光耦是東芝產(chǎn)的TLP280-4四通道的光耦。當有輸出的時候,單片機引腳置0,光耦一路導通,則光耦輸出對地導通,外界可以接上拉電阻,通過查詢上拉電阻阻值的變化獲得是否報警。為了得到多個不同狀態(tài)的輸出,本設計用單片機的兩個IO口PB10和PB11來共同表示當前的輸出。由于光耦內(nèi)部需要限流,所以光耦的輸入輸出兩端都外接了2K阻值的電阻。輸出電路如下:

圖3 光耦輸出
軟件設計主要是:單片機將測量距離進行數(shù)據(jù)處理,以及整個運行邏輯。
單片機通過IIC總線控制VL53L0X,并獲取到當前的測量距離。根據(jù)ST提供的數(shù)據(jù)手冊,并由官方提供的API函數(shù)庫可以實現(xiàn)對測量數(shù)據(jù)的讀取。但是,由于環(huán)境的不確定性,在實際測量中,數(shù)據(jù)發(fā)生錯誤主要是傳感器前方2米范圍內(nèi)沒有任何障礙物的時候,VL53L0X測量得到的數(shù)據(jù)也會出現(xiàn)小于2米的值。多次測量中,一串數(shù)據(jù)會出現(xiàn)1次或者兩次錯誤的數(shù)據(jù),如果這些錯誤數(shù)據(jù)小于報警閾值,那么傳感器就會發(fā)生報警。這就產(chǎn)生了前方明顯沒有障礙物而發(fā)生的誤報警。單片機內(nèi)部需要有一種算法來防止這種誤報警。
本方案采用的算法是累加算法。先設定一個變量為錯誤次數(shù)。如果測量值小于或者等于報警閾值,則變量加1,如果測量值大于報警閾值,則立即將錯誤次數(shù)清零。在多次測量過程中,如果錯誤次數(shù)累加到了3,說明連續(xù)三次都是小于報警閾值,則立即報警。這種累加算法可以有效濾掉一串數(shù)據(jù)中的某幾個連續(xù)錯誤數(shù)據(jù)。算法流程圖如下:

圖4 算法流程圖
傳感器的整個運行邏輯為:根據(jù)IIC總線地址的不同,循環(huán)查詢不同的總線地址上的VL53L0X,在和不同的VL53L0X進行通信的時候,數(shù)據(jù)處理之后需要報警,則單片機引腳置0,使光耦導通。光耦導通外接電路就對地導通,從而產(chǎn)生報警信號。流程圖如下:

圖5 運行邏輯
本設計實現(xiàn)了一種基于VL53L0X的激光避障傳感器設計,作為當前比較新穎的激光測距技術,VL53L0X的推出大大推進了距離測量的應用發(fā)展。本設計結(jié)合STM32F103C8T6單片機,實現(xiàn)了一種可以供AGV、自動化設備運行中避障功能的方案。硬件上完整提出了設計,軟件上通過累加算法有效消除了不同環(huán)境對傳感器造成的數(shù)據(jù)干擾。是一種比較可行的方案。由于VL53L0X單價成本才十幾元,可以將多個VL53L0X組合成不同角度的避障方案,安裝角度的不同來實現(xiàn)角度的擴展。由于整個設計高效且運用的都是常見的物料,有效控制了成本。