1618|0

193

帖子

4

TA的资源

纯净的硅(初级)

楼主
 

X-NUCLEO-53L4A3 飞行时间 (ToF) 传感器 [距离精度测试-不同传感器对比] [复制链接]

本帖最后由 御坂10032号 于 2024-11-18 19:59 编辑

简介

 

在本章节中我们将使用Tof传感器和常见的支持测距的传感器进行测距精度的对比。由于并非是完全精密的环境下,实验的结果仅供参考(但是也是可以通过测试来大概的评测出不同种类传感器的精度等)。

 

 

正文

 

本次设计的传感器一共有三个

 

1- 超声波测距模块

 

2- 安信可RD-03E雷达模块(精准测距固件)

 

3-Tof传感器53L4A3 

 

 

上图中, 安信可的RD-03E使用的串口连接到串口工具。接线方式如下图所示

 

 

 

ESP32-C6的Oled屏幕和超声波测距代码如下所示

 

/**********************************************************************
  程序名称/Program name     : words_display_with_ultrasonic
  团队/Team                 : 太极创客团队 / Taichi-Maker (www.taichi-maker.com)
  作者/Author               : Dapenson
  日期/Date(YYYYMMDD)     : 2020/07/01
  程序目的/Purpose          :
  使用OLED0.96 IIC 12864显示文字,并实时显示超声波传感器测量的距离
  -----------------------------------------------------------------------
  修订历史/Revision History
  日期/Date    作者/Author      参考号/Ref    修订说明/Revision Description
  -----------------------------------------------------------------------
  其它说明:
***********************************************************************/

// 引入IIC通讯所需的Wire库文件
#include <Wire.h>

// 引入驱动OLED0.96所需的库
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define SCREEN_WIDTH 128 // 设置OLED宽度,单位:像素
#define SCREEN_HEIGHT 64 // 设置OLED高度,单位:像素

// 自定义重置引脚,虽然教程未使用,但却是Adafruit_SSD1306库文件所必需的
#define OLED_RESET 4
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

// 定义 I2C 引脚
#define OLED_SDA 7
#define OLED_SCL 6

// 定义超声波传感器的引脚
#define TRIGGER_PIN 5
#define ECHO_PIN 4

void setup()
{
  // 初始化串口,用于调试
  Serial.begin(115200);
  Serial.println("Starting OLED Test");

  // 使用 GPIO 6 和 GPIO 7 初始化 I2C
  Wire.begin(OLED_SDA, OLED_SCL);

  // 初始化OLED并设置其IIC地址为 0x3C
  if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C))
  {
    Serial.println("SSD1306 allocation failed");
    for (;;)
      ; // 停止程序
  }

  // 清屏并设置默认显示内容
  display.clearDisplay();
  display.display();

  // 设置超声波传感器的引脚模式
  pinMode(TRIGGER_PIN, OUTPUT);
  pinMode(ECHO_PIN, INPUT);

  // 确保触发引脚初始为低
  digitalWrite(TRIGGER_PIN, LOW);
}

void loop()
{
  float distance = readUltrasonicDistance();
  words_display(distance);
  display.display();
}

void words_display(float distance)
{
  // 清除屏幕
  display.clearDisplay();

  // 设置字体颜色,白色可见
  display.setTextColor(WHITE);

  // 设置字体大小
  display.setTextSize(1);

  // 设置光标位置
  display.setCursor(0, 0);
  display.print("TaichiMaker");

  display.setCursor(0, 20);
  display.print("time: ");
  // 打印自开发板重置以来的秒数:
  display.print(millis() / 1000);
  display.print(" s");

  display.setCursor(0, 40);
  display.print("Distance: ");
  display.print(distance);
  display.print(" cm");
}

// 读取超声波传感器的距离
float readUltrasonicDistance()
{
  // 发送超声波信号
  digitalWrite(TRIGGER_PIN, LOW);
  delayMicroseconds(2);
  digitalWrite(TRIGGER_PIN, HIGH);
  delayMicroseconds(10);
  digitalWrite(TRIGGER_PIN, LOW);

  // 读取回波时间
  long duration = pulseIn(ECHO_PIN, HIGH);

  // 将时间转换为距离(单位:厘米)
  // 声速 343 m/s => 0.0343 cm/μs
  // 距离 = (时间 * 声速) / 2
  float distance = (duration * 0.0343) / 2;

  return distance;
}

 

 

测试步骤

 

准备:

 

使用直尺在桌面上量出一个标准45CM的长度,然后使用刀片在桌子上刻上刻度。 

 

测试:

分别使用 TOF传感器, 超声波传感器和雷达在刻度处对45CM处的挡板(纸片进行测距)并且得到数据

 

 

1- 使用超声波传感器

 

  结果 44.54

 

 

 

2 - 使用TOF传感器

 

 

这里分为两种情况, 1 - 物体的表面不是黑色(即不吸光)  2- 物体的表面为黑色 (吸光)

 

反射物体表面不为黑色的测试结果(非常准确)

 

 

 

反射物体表面为黑色的测试结果(42.1 cm)

 

 

 

雷达的测试结果(我觉得专业的事情还是要让专业的传感器干,雷达也是重在参与。 36CM上下偏移) 

 

 

 

 

 

总结

 

从这次测试结果上来看, TOF传感器的精度非常高, 在45CM的情况下,误差基本上可以忽略不记(测试中非常准确45CM)但是TOF传感器在反射物体为黑色的情况下,精度偏差的比较厉害。(421mm 对比 450MM)。 在实际的应用中,应该考虑到这种可能出现的误差情况。 比如说使用多个传感器来进行比对, 如果被测物体为黑色,则不使用TOF传感器。或者使用上图中的信号强度进行判断。 可以看到如果被测物体(发生光反射的物体)为非黑色的话,信号强度S 达到了32,但是如果为黑色的话,信号强度仅仅有8.48

 

此帖出自传感器论坛
点赞(1) 关注
 
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表