概要

TFmini-S LiDAR Sensor是基于 TFmini 的升級項目,它是一款小型化,單點測距的產品,基于 ToF(飛行時間)原理,配合獨特的光學、電學、算法設計,主要實現穩定、精準、高靈敏度和高速的距離測量的功能。產品本身除了具有 TFmini 的低成本、小體積、測距遠等特點外,測距精度更高,對于室外強光、不同溫度、不同反射率等不同環境下適應性更強,更低功耗,探測頻率也更加靈活。產品同時兼容 UART 和 I2C 通信接口,可通過指令進行切換。
TFmini-S 基于 ToF(Time of Flight)即飛行時間原理。具體為產品周期性的向外發出近紅外光調制波,調制波遇物體后反射。產品通過測量調制波往返相位差,得到飛行時間,再計算出產品與被測目標之間的相對距離。
TFmini-S模塊基本參數

TFmini-S模塊引腳

TFmini-S通信接口
UART數據通信協議
IIC數據通信協議
I/O工作模式
I/O 輸出模式下,不能輸出測距值,只是在距離從小變大超過高閾值的時候或者從大到小低 于低閾值的時候讓 I/O 口電平反轉。當輸出為近區電平時,測量值大于滯回區間的遠端點后,輸出切換為遠區電平;當輸出為遠區電平時,測量值小于滯回區間的近端點時,輸出切換為近區電平。(高電平:3.3V,低電平:0V)
串口數據通信
TFmini-S 有兩種數據輸出格式,標準數據輸出格式和字符串數據格式,兩種格式可通過指令代碼相互切換。
? 標準數據輸出格式(默認):
數據結構:數據幀長度為9字節。包含距離信息(Distance)、信號強度信息(Strength)、 溫度(Temp)、數據校驗字節(Checksum)等。數據格式為 16 進制(HEX)
Dist(Distance):代表 TFmini-S 測量輸出的距離值,默認單位為cm,解析為十進制的值范圍為0-2000。實際使用過程中,當信號強度值Strength<100時,Dist的測量值被認為不可信,默認輸出-1。
Strength:指信號強度,默認輸出值會在0-65535之間。當測距檔位一定時,測距越遠,信號強度越低;目標物反射率越低,信號強度越低。
Temp(Temperature):表征芯片內部溫度值。攝氏度 = Temp / 8 – 256。
? 字符串數據格式
以字符串形式輸出,單位為m,比如測距為1.21m,則輸出字符串1.21,后跟轉義字符rn。
ESP32與TFmini-S接線

TFmini-S模塊接到了ESP32的串口2引腳上
| ESP32 | TFmini-S |
|---|---|
| 5V | 5V |
| GND | GND |
| 16 | TXD |
| 17 | RXD |
Arduino串口驅動代碼
#include < HardwareSerial.h > // Reference the ESP32 built-in serial port library
HardwareSerial lidarSerial(2); // Using serial port 2
#define RXD2 16
#define TXD2 17
void setup() {
Serial.begin(115200); // Initializing serial port
lidarSerial.begin(115200, SERIAL_8N1, RXD2, TXD2); // Initializing serial port
}
void loop() {
uint8_t buf[9] = {0}; // An array that holds data
if (lidarSerial.available() > 0) {
lidarSerial.readBytes(buf, 9); // Read 9 bytes of data
if( buf[0] == 0x59 && buf[1] == 0x59)
{
uint16_t distance = buf[2] + buf[3] * 256;
uint16_t strength = buf[4] + buf[5] * 256;
int16_t temperature = buf[6] + buf[7] * 256;
Serial.print("Distance: ");
Serial.print(distance);
Serial.print(" cm, strength: ");
Serial.print(strength);
Serial.print(", temperature: ");
Serial.println(temperature / 8.0 - 256.0);
}
}
delay(10);
}
ESP32的串口1作為測量數據顯示到串口助手上,ESP32的串口2與TFmini-S模塊的串口通信。將以上代碼上傳到ESP32中,將TFmini-S模塊與測量目標離開一定距離,打開串口監視器可得到測量距離結果如下:
總結
以上實驗使用的TFmini-S模塊默認的串口通信協議,沒做任何內部參數的修改,ESP32作為主控讀取并轉換出TFmini-S模塊的測量數據。其他的通信協議的使用和參數的修改,可詳細參考TFmini-S模塊的說明書。
審核編輯 黃宇
-
驅動
+關注
關注
12文章
1956瀏覽量
88529 -
紅外激光
+關注
關注
0文章
36瀏覽量
8176 -
TOF
+關注
關注
9文章
545瀏覽量
38473 -
ESP32
+關注
關注
26文章
1195瀏覽量
21690
發布評論請先 登錄
西曼傳感SDM02,1.8米D-TOF激光測距模塊。
tof測距傳感器的主要應用場景
新品 | Chain ToF Unit ChainBus,激光測距節點 Chain系列通信協議轉換單元
低成本開源!用樂鑫科技ESP32-S3開發板輕松驅動無刷電機,保姆級教程來了!
小型激光測距模塊2000米精度1米無人機光電吊艙專用
撥動激光測距傳感器:以毫厘之準,開啟精準測量新紀元
小安派BW21-CBV-Kit入門教程之讀取VL53L0X紅外測距傳感器數據
ESP32驅動TFmini-S紅外激光測距ToF模塊進行測距
評論