本文主要介紹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微控制器參考設計