第一周任务

3.21更新,改为串口控制采集
具体代码详见github

简介

本周要求完成MCU功能验收,需要通过微控制器板读取传感器数据,提供的开发板为NUCLEO-F411RE,颜色传感器为TCS34725,使用I2C通信,提供红色,绿色,蓝色(RGB)和清晰光感应值的数字输出;距离传感器为VL6180

TCS34725数据处理与算法选择

在获取传感器底层数据后,系统引入了 RGB 到 HSV 色彩空间的转换算法。其主要原因如下:

消除光照干扰: 传感器原始的 RGB 输出对光照变化极其敏感,亮度的微小改变会导致 R、G、B 三个维度的数值同时发生剧烈变化,难以设定固定的判定阈值。

特征解耦: HSV 色彩空间将“颜色分类(色相 H)”与“光照强度(明度 V)”在数学上进行了分离。

提升识别鲁棒性: 通过转换,判定逻辑可主要依赖于受光照影响极小的色相(H)参数。这大幅降低了复杂光照环境对验收测试的干扰,确保了微控制器能够稳定、准确地识别目标物体的真实颜色。

为什么不采用简单的 RGB 归一化算法?

虽然对原始 RGB 数据进行归一化(如求取 R/(R+G+B) 比例)也能在一定程度上抵消光照强度的变化,但在实际 MCU 编程与验收测试中存在局限性:

  1. 阈值设定复杂: 归一化 RGB 仍需同时依赖三个通道的比例区间来圈定某种颜色,缺乏直观性,调试难度大。

  2. 消色差物体(黑白灰)识别困难: 在低照度或面对黑、白、灰等无色相物体时,归一化会放大传感器噪声,且无法有效区分这三种状态。

  3. HSV 的降维优势: HSV 模型不仅将光照(V)解耦,还引入了饱和度(S)特征。系统可通过设置 S 的阈值轻松过滤掉黑白灰与环境噪声,随后仅通过一维的色相(H)角度即可完成颜色的精准分类,大幅简化了判定逻辑并提高了系统的鲁棒性。

使用说明

I2C 配置

  • 颜色传感器 TCS34725 使用 I2C1 接口
  • 接线:D15 (SCL)、D14 (SDA)
  • 距离传感器 VL6180 使用 I2C3 接口
  • 接线:D7(SCL)、D5(SDA)、D6(GPIO中断)

校准步骤

  1. 烧录固件后,观察板载 LED 快速闪烁(校准模式)
  2. 将传感器对准白色物块,按下蓝色按钮
  3. LED 变为缓慢闪烁
  4. 将传感器对准黑色物块,按下蓝色按钮
  5. 校准完成后进入命令等待状态(串口不会自动连续输出)

测量操作步骤(串口命令)

  1. 上位机串口发送 color?,单片机执行一次颜色测量并返回一条颜色结果
  2. 上位机串口发送 distance?,单片机执行一次距离测量并返回一条距离结果
  3. 发送其他命令返回 ERR,BADCMD

输出格式示例

RAW(C=3117,R=1329,G=1325,B=1561),RGBN(0,0,0),HSV(H=0,S=0,V=0),PCT(0,0,0),COLOR=黑色
distance:189

字段说明

字段含义
C总光强(清晰光)
R/G/B红/绿/蓝分光强
RGBN光强归一化后的 RGB 值(0-255)
PCTRGB 百分比(相对光强比例,%)
H色相(0-359°)
S饱和度(0-100%)
V亮度(0-100%)
COLOR识别的颜色名称
distance距离

校准流程

步骤如下:

  1. 发送 ERR,10,LED 快闪提示采集白基准
  2. 按键确认后,采集白基准
  3. 发送 ERR,11,LED 慢闪提示采集黑基准
  4. 按键确认后,采集黑基准
  5. LED 保持 500ms 后熄灭,进入正常运行

串口协议与错误码

正常数据

请求命令:

color?
distance?

颜色行:

RAW(C=...,R=...,G=...,B=...),RGBN(...),HSV(H=...,S=...,V=...),PCT(...),COLOR=...

距离行:

distance:<mm>

distance:NA

未知命令:

ERR,BADCMD

错误码(ERR,<code>

  • 01:TCS34725 初始化失败
  • 02:颜色原始数据读取失败
  • 03:校准失败
  • 04:颜色消息构建失败
  • 20:VL6180 初始化失败
  • 23:VL6180 读取距离失败
  • 24:UART2 中断接收启动失败
  • 10:提示开始白基准采样
  • 11:提示开始黑基准采样

注意事项

  • 为保证测量准确,应当使传感器和物块的距离保持固定
  • 校准是识别精度的前提,建议每次上电后按流程重新完成黑白基准采样
  • 当前参数为固定阈值策略,不同光照环境下可能需要调整颜色区间参数
Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐