TFS20-L

简介

TFS20-L是一款全集成单通道dToF测距小型模组,集成高灵敏红外增强SPAD传感器,量程可达20m。采用SPAD芯片全集成方案、直方图统计算法以及快速TDC架构等,实现高精度测距的同时,具备15m@100 Klux的抗阳光能力,并具有反射率校正功能。

小体积,高性能
尺寸小、重量轻、测得准而远,强环境光下测距能力依旧优异,是微小型dToF应用的绝佳选择。

功能丰富,应用场景广
TFS20-L集成电源模块,采用3.3 V单电源供电,内置温度补偿功能。支持I2C、UART接口,易于集成和使用,并采用紧凑可靠的光学封装,适用于无人机定高、无人机辅助降落、机器人防跌落,智能设备触发。

特性

  • 体积小、重量轻,易集成
  • 抗环境光强,室内外皆可稳定测量
  • UART、I2C、两种种输出方式

应用场景

  • 无人机定高
  • 无人机辅助降落
  • 机器人防跌落
  • 智能设备触发

技术规格

  • 性能参数
    • 测量范围:0.2-20m@90%反射率0Klux,0.2-12m@10%反射率0Klux,0.2-15m@90%反射率100Klux,0.2-9m@10%反射率100Klux
    • 准确度:±6cm@0.2-6m,1%@≥6m
    • 精度:2cm(0.2-6m)
    • 距离分辨率:1cm
    • 帧率:0/20/50/100(默认)/250Hz
    • 抗环境光能力:100Klux
  • 光学性能
    • 光源:VCSEL
    • 中心波长:905nm
    • 视场角:<2°
    • 激光安全等级:Class 1 Eye-safe [EN60825]
  • 机械电气参数
    • 平均功耗:≤0.43W
    • 峰值电流:< 130mA@3.3V
    • 供电电压:DC 3.3±9%V
    • 通信电平:LVTTL(3.3V)
    • 工作温度:-20℃ ~ +60℃
    • 存储温度:-40℃ ~ +85℃
    • 尺寸:21x15x7.87mm
    • 重量:1.35g
    • 硬件接口:0.8mm-6Pin(型号WF08006-01207)

引脚示意图

线序 颜色 功能描述
PIN1 红线 3.3V激光器供电
PIN2 黑线 3.3V电源正极
PIN3 黄线 TXD(3.3V)/SDA
PIN4 绿线 RXD(3.3V)/SCL
PIN5 蓝线 GPIO 通信片选
PIN6 白线 GND

TFS20-L通过硬件切换输出模式,PIN5接地为UART模式,PIN5悬空为I2C模式。

尺寸图

接入Arduino使用教程

硬件准备

软件准备

UART模式硬件连接

TFS20-L 5脚接GND为UART模式,将Arduino UNO R3开发板的VCC电压调至3.3V,TFS20-L 切勿5V供电,长时间5V供电发烫。

演示代码

#include <DFRobot_TFmini.h>
SoftwareSerial mySerial(8, 9); // RX, TX
DFRobot_TFmini  TFmini;
uint16_t distance, strength;

void setup() {
  Serial.begin(9600);
  TFmini.begin(mySerial);
}

void loop() {
  if (TFmini.measure()) {                    
    distance = TFmini.getDistance();       
    strength = TFmini.getStrength();       
    Serial.print("Distance = ");
    Serial.print(distance);
    Serial.println("cm");
    Serial.print("Strength = ");
    Serial.println(strength);
    delay(100);
  }
  delay(100);
}

结果

打印采集到的距离值、信号强度值。

I2C模式硬件连接

TFS20-L 5脚悬空为I2C模式,将Arduino UNO R3开发板的VCC电压调至3.3V,TFS20-L 切勿5V供电,长时间5V供电发烫。

演示代码

#include <Wire.h>
#define deviceaddress 0x10
uint16_t data;
uint8_t COM[4] = { 0 };
uint8_t COM1[1] = { 0 };       
uint8_t COM2[1] = { 0x64 };   //帧率值,默认100hz
uint8_t COM3[1] = { 0x01};    //保存寄存器
uint8_t COM4[1] = { 0x02};    //重启寄存器
void i2c_writeN(uint8_t registerAddress, uint8_t *buf, size_t len) {
  Wire.beginTransmission(deviceaddress);
  Wire.write(registerAddress);
  Wire.write(buf, len);
  Wire.endTransmission();
}

int16_t i2c_readN(uint8_t registerAddress, uint8_t *buf, size_t len) {
  uint8_t i = 0;
  Wire.beginTransmission(deviceaddress);
  Wire.write(registerAddress);
  if (Wire.endTransmission(false) != 0) {
    return -1;
  }
  Wire.requestFrom(deviceaddress, len);
  delay(100);
  while (Wire.available()) {
    buf[i++] = Wire.read();
  }
  return i;
}

void setup() {
  Wire.begin();
  Serial.begin(9600);
  /*
   * 修改并保存寄存器,需要修改帧率时打开
   */
  // i2c_writeN(0x26, COM2, 1);
  // delay(200);
  // i2c_writeN(0x20, COM3, 1);
  // delay(200);
  // i2c_writeN(0x21, COM4, 1);
}

void loop() {
  i2c_readN(0x00, COM, 2);
  data = COM[1] << 8 | COM[0];
  delay(200);
  i2c_readN(0x26, COM1, 1);
  Serial.print("Distance =");
  Serial.print(data);
  Serial.print(" cm");
  Serial.print("  FPS =");
  Serial.print(COM1[0]);
  Serial.println(" hz");
  delay(100);
}

结果

打印采集到的距离值、帧率值。

常见问题

  • UART、I2C输出模式通过5脚GPIO进行切换
  • TFS20-L工作电压3.3V,切勿5V供电,容易发烫

更多资料下载

TFS20-L 用户手册.pdf
TFS20-L 尺寸图.pdf
上位机

DFshopping_car1.png DFRobot商城购买链接