在某些項目中,您將需要測量距離。 好吧,你應該知道 VL53L0X是可以高精度測量的設備。 此外,它的小尺寸和低價格使其非常適合您的DIY項目,尤其是與Arduino集成時。
有很多可以測量距離的設備,其中一些是基於超聲波的測距儀,可以發出聲音,當與物體一起彈跳時,可以以足夠的精度知道存在的距離。 但是,如果要獲得最高的精度,則需要 光學測距儀。 這種類型的測量設備 基於激光,與VL53L0X一樣。
什麼是ToF?
飛行時間或ToF(飛行時間)相機 它是一種用於測量距離的技術。 它基於光學器件,測量光束髮射與接收之間的時間間隔。 它們可以是CCD,CMOS傳感器,脈衝可以是紅外,激光等。 當脈衝被觸發時,系統將同步以開始時間測量,並在接收到來自傳感器的跳動時停止計數器。
以這種方式 距離可以很準確地計算出來。 從發射光束到接收到光束,僅需集成到芯片中的附加邏輯電路即可執行計算,從而確定距離是多少。 原理很簡單。
這種類型的設備用於 機器人 允許機器人或無人駕駛飛機避開障礙物,知道它們距目標有多遠,以檢測移動或接近,用於不同應用的汽車傳感器,實現電子儀表,例如執行器,以便Arduino在它檢測到物體的某些接近程度,等等。
什麼是VL53L0X和數據表
El VL53L0X使用此原理通過激光紅外測量距離。 上一代。 與像Arduino這樣的處理器一起使用,它可以成為強大的測量工具。 具體而言,芯片可以捕獲50mm至2000mm之間的距離,即5厘米至2米之間的距離。
要測量更近的距離,您可能需要該芯片的變體VL6180X,該變體允許您測量5到200毫米之間的範圍,即在半厘米到20厘米之間。 如果您出於任何技術原因想要找到類似的設備但基於超聲波的設備,則應查看HC-SR04,這是另一款在製造商中頗為便宜的模塊。
El VL53L0X芯片 旨在 即使周圍光線很高也可以工作。 請記住,以光學方式工作時,環境的光“污染”越大,充分捕獲信號反彈的難度就越大。 但是在這種情況下,它不會帶來太多問題。 此外,它集成的補償系統即使在保護玻璃後面使用它也可以進行測量。
那使它成為一個 最佳距離傳感器 您會在市場上找到的。 與基於超聲波或紅外(IR)的傳感器相比,其精度要高得多。 如此精確的原因是,激光不會像其他情況一樣受到物體迴聲或反射率的影響。
目前,您可以將其集成到integrated子中,並附有一些額外的配件,價格約為16歐元,或者在其他情況下,也可以將其集成在價格略高於1歐元或3歐元的較簡單盤子中。 您已經知道可以在eBay,AliExpress,Amazon等商店中找到它。 這些設備的製造商各不相同,因此,如果您需要了解所購買型號的詳細信息,最好檢查一下 製造商的數據表 您選擇的。 例如:
El VL53L0X 它在芯片內部具有激光脈衝的發射器和用於捕獲返迴光束的傳感器。 在這種情況下,發射器是VCSEL類型的940nm波長激光器(垂直腔表面發射激光器)。 至於捕獲傳感器,它是SPAD(單光子雪崩二極管)。 它還集成了稱為FlightSenseTM的內部電子設備,可以計算距離。
El 測量角度或FOV(視場) 在這種情況下為25º。 這意味著在0,44m的距離處直徑為1m的測量區域。 儘管測量範圍將取決於周圍條件。 如果在室內完成,則比在室外完成的要高一些。 它還將取決於您所指向的對象的反射率:
目標反射率 | 條款 | 室內 | 外觀 |
---|---|---|---|
白靶 | 典型 | 200cm | 80cm |
模仿 | 120cm | 60cm | |
灰色目標 | 典型 | 80cm | 50cm |
最低限度 | 70cm | 40cm |
此外,VL53L0X還具有多個 操作模式 這可能會改變結果。 下表總結了這些模式:
摩多 | 定時 | 範圍 | 精確 |
---|---|---|---|
默認值 | 30ms | 1.2m | 見下表 |
精度高 | 200ms | 1.2m | + / - 3% |
長距離 | 33ms | 2m | 見下表 |
高速 | 20ms | 1.2m | + / - 5% |
根據這些模式,我們有幾種 標準和遠程精度 您在此表中擁有的:
室內 | 外觀 | |||||
---|---|---|---|---|---|---|
目標反射率 | 距離 | 33ms | 66ms | 距離 | 33ms | 66ms |
白靶 | 120厘米 | 4% | 3% | 60厘米 | 7% | 6% |
灰色目標 | 70厘米 | 7% | 6% | 40厘米 | 企業排放佔全球 12% | 9% |
引腳排列和連接
為了使所有這些正常工作,您需要 與外界的接口。 這是通過一些引腳或連接來實現的。 VL53L0X的引腳排列非常簡單,只有6個引腳。 為了與Arduino集成,可以通過I2C進行通信。
要餵牠,你可以 連接引腳 所以:
- Arduino的VCC至5v
- Arduino的GND至GND
- SCL到Arduino模擬引腳。 例如A5
- SDA連接到另一個模擬引腳。 例如A4
- 目前無需使用GPI01和XSHUT引腳。
與Arduino集成
至於其他許多模塊,對於VL53L0X,您還具有庫(例如,用於 Adafruit的)可用於編寫某些功能的可用代碼 在Arduino IDE中處理項目的源代碼。 如果這是您第一次使用Arduino,我建議 我們的編程手冊.
一個例子 簡單的代碼,您可以通過串行端口進行測量並顯示測量值 因此,當您連接Arduino板時,可以從PC屏幕上看到它:
#include "Adafruit_VL53L0X.h" Adafruit_VL53L0X lox = Adafruit_VL53L0X(); void setup() { Serial.begin(9600); // Iniciar sensor Serial.println("VL53L0X test"); if (!lox.begin()) { Serial.println(F("Error al iniciar VL53L0X")); while(1); } } void loop() { VL53L0X_RangingMeasurementData_t measure; Serial.print("Leyendo sensor... "); lox.rangingTest(&measure, false); // si se pasa true como parametro, muestra por puerto serie datos de debug if (measure.RangeStatus != 4) { Serial.print("Distancia (mm): "); Serial.println(measure.RangeMilliMeter); } else { Serial.println(" Fuera de rango "); } delay(100); }
在Adafruit自己的庫中,如果需要,您可以使用更多示例...