VL6180X距離 光線感測器上手體驗

2021-10-11 09:19:16 字數 4006 閱讀 2143

本文主要介紹vl6180x距離、光線感測器模組的一些基本特點、引數及簡單的上手demo,新手上路,老司 機謹防追尾。

vl6180x開箱體驗

基本功能概述

功能簡介及說明

demo上手測試 結語

參考資料

vl6180x開箱體驗

vl6180x是一款比較迷你的感測器模組,拿到手後就是這樣的,如圖1所示:

圖1. 開箱圖

包裝中一共兩個,其中乙個已經被我強拆了,外包裝採用了st評估板的慣用包裝設計,因此還是備有 親切感的。取出模組後跟一角硬幣對比了一下,還是非常短小的,如圖2所示:

圖2. 模組尺寸對比圖

即使如此,該模組還是可以進一步變小,翻看其背面可以看到,vl6180x晶元的供電要求是2.8v,因 此上半身是3.3v->2.8v降壓電路,如果不需要電壓轉換的話,可以從中間一排小孔處將其掰歪,不對,是掰 斷。。。 基本功能概述

講了這麼多廢話,讀者可能還是一臉蒙b:這tm什麼玩意?借用st官方的話說:the vl6180x is a proximity, gesture and ambient light sensor based on st』s patented flightsense™ technology. 簡單的 說就是:這是一款感測器,它能檢測距離及光強度,甚至還有姿態。

因此它的基本特性如下:

1. 距離測量,提供三種量程選擇:

a. 量程:20cm,精度:1mm ;

b. 量程:40cm,精度:2mm;

c. 量程:60cm,精度:3mm;

2. 環境光測量,多種取樣增益及測量範圍調節;

3. 環繞濾波器,濾除強反射物體所帶來的測量錯誤;

4. 偏移校準,保證裝置在不同的環境下的準確度。

5. 串擾補償,使用蓋玻片進一步提高距離檢測的精確度;

6. 三種取樣方式:

a. 輪詢下的單次距離測量

b. 非輪詢下的單次距離測量

c. 硬體中斷下的持續距離測量

功能簡介及說明

典型的距離輸出特性

理論上來講,vl6180x的輸出值應該與目標物體之間的距離呈線性關係,但實際上並不是醬紫。在黑 暗環境中,測試vl6180x與不同反射率的物體之間的距離,真實距離與實際測量距離的輸出對比關係如圖3

所示:

圖3. 原始測量值與實際值對比

從圖3中可知,測量資料的實際輸出存在偏移錯誤,且資料抖動劇烈,其中偏移錯誤可通過偏移校準 來修正。而為了進一步提高vl6180x的輸出精度及穩定性,官方推薦使用蓋玻片來增加串擾訊號,並在之 後進行串擾補償來修正蓋玻片帶來的距離錯誤。如圖4所示:在使用了蓋玻片並做了串擾補償修正後,真實 距離與實際測量距離的誤差減少穩定性也進一步增強。

圖4. 串擾補償後的測量值與實際距離對比

捕獲收斂時間

需要注意的是,vl6180x計算與物體之間的距離所需要的時間花費並不是固定的,它與測量距離及目 標物體的光反射率有關。如圖5所示:在10mm內,模組測量的距離值是無意義的,所花費的轉換時間也較 長;而當測量距離逐漸增大後,所花費的時間也逐漸增大,反射率越低,消耗的時間越長。

圖5. 收斂時間與測量距離及物體反射率之間的關係

由於收斂時間與物體反射率及無標物體的實際距離有關,因此可以使用簡單的收斂估計(early convergence estimate, ece)來降低模組的功耗。例如,判斷0.5ms內vl6180x模組所接收到的反饋訊號 數,當其低於某個理想中的閾值時,可認定在設定的量程內,周圍沒有檢測到有效物體,因此可中止接下 來的測量以節省功耗,如圖6所示。反之,當接收到的反饋訊號數高於設定的理想閾值時,系統才啟動測 量,在這種情況下,只有高反射率的金屬物體靠近vl6180x模組時,系統才會開始工作,達到了降低功耗 的效果,如圖7所示。

圖6. 量程範圍內無目標時的閾值設定

圖7. 檢測金屬物體時的閾值設定

環境光感測器模式

vl6180x模組可以在乙個相當寬泛的範圍內測量所接收到的環境光,其測量的原理為計算單位時間 (100ms)內光孔所接收到的光量,至於為啥是100ms,因為大多數應用都是這麼設定的(嗯,手冊上說 的)。因此,若要測量不同的光強度,推薦設定模組的測量量程,而不是修改取樣時間。

此外模組接收到的實際光量值會受模組光孔的角度影響,如圖8所示:模組接收光量的最佳範圍在乙個 圓錐體內,超過該圓錐體,測量的實際值也會受到較大的影響,整體的值也呈現乙個正態分佈的效果。

圖8. 光孔位置及接收角度示意圖

對於偏移校準及串擾補償方法,此處不再過多詳述,始終銘記這是評測,這是評測,不是教程,打住。

demo上手測試

為試驗vl6180x的實際測量效果,此處使用stm32f0308-discovery開發板驅動該模組,如圖9所示:

圖9. 評估板測試準備

完成第一步之後將vl6180x軟體支援包中的相關檔案匯入進工程,這裡我們需要新增的檔案如圖10所示:

圖10. 工程檔案結構

完成上述工作後,編譯-燒寫-除錯-列印,距離測試的列印結果如下:

圖11. 距離測試列印

在圖11測試過程中,系統上電時用手遮住了感測器,返回錯誤6,表示沒有檢測到有效物體(太 近);之後慢慢將手拿開,返回有錯誤11、13、16,表示模組在量程內未識別有效物體或者目標過多(太 遠)。更多的錯誤詳情可查閱模組使用者手冊。

圖12. 光照強度測試列印

在圖12的測試中可知,系統上電後檢測到了周圍的環境光強度,用手遮住後檢測值立馬下降,模組的 光照強度減弱。

結語

vl6180x是一款專業、精準的感測器模組,不論是距離檢測還是環境光檢測,其穩定、可靠性要遠遠 高於普通的超聲波模組及光感測器)。因此,其上手難度也高於一般的感測器模組。感興趣的話,讀者不 妨購買回來研究一下,用在自己的玩具小車、飛行器等智慧型硬體領域也是極好的。

參考資料

1. 《vl6180x-satel》:產品描述

2. 《um1983 user manual》:使用者手冊

3. 《vl6180x》:資料手冊

4. 《vl6180x api integration guide》:api程式設計手冊

1. ja.stsw-img003 : vl6180x軟體支援包

2. en.stm32cubef0.zip:stm32f0308-discovery軟體支援包

-stm32微控制器中文官網

-stm32微控制器官方開發工具

-stm32微控制器參考設計