大数跨境

【电赛每日一题·第20期】4 个漫反射 + 1 个超声波,让 12V 风扇听你手势指挥

【电赛每日一题·第20期】4 个漫反射 + 1 个超声波,让 12V 风扇听你手势指挥 飞多学堂
2026-08-29
2

电赛每日一题 · 第 20 期

  • 赛题:2025 年全国大学生电子设计竞赛 I 题(高职高专组)· 非接触式控制盘
  • 组合:控制类(人机交互 / 测控模块,交叉:仪器仪表)
  • 难度:★★☆(4 项基本 + 4 项发挥,0 接触手势 + 测距 + 调压 + 组合操作全栈)
  • 本文目标:把"非接触式控制盘"拆成 3 个层次——手势识别层(4 漫反射)、距离感知层(1 超声波)、执行驱动层(电机 H 桥/PWM),帮你在 4 天内把"挥手控风扇"做成可演示作品

📌 一、赛题速览与难点剖析

一、原题再现

任务

设计并制作一个非接触式控制盘,由操作面板、显示器及测控模块组成,负载为直流风扇。操作面板上 S1~S4 为漫反射式光电开关,S5 为自制超声波测距模块,面板尺寸不大于 40 cm × 40 cm,直流风扇最高工作电压 12 V。通过挥手形式完成风扇的启动/停止、正转/反转、工作电压调整、运行时间设定和组合操作功能,显示器显示设定参数、运行状态及手掌与操作面板之间的操作距离 d

官方题图:组成结构

题目图 1:非接触式控制盘的组成结构图(操作面板 S1~S4 漫反射式光电开关 + S5 自制超声波测距模块 + 显示器 + 测控模块 U_M 风扇电压 + 直流风扇负载)

图 1 解读:操作面板上 S1、S2 在顶部左右、S4、S3 在底部左右、S5 在正中央。显示器显示指示灯、运行状态(启动/停止)、风扇转向(正转/反转)、风扇转速(RPM)、设定运行时间 t、倒计时、设定工作电压 U_D、操作距离 d。测控模块输出 U_M 驱动直流风扇负载。

任务

设计并制作一个非接触式控制盘,由操作面板、显示器及测控模块组成,控制盘的负载为直流风扇,组成结构如图 1 所示,其中,操作面板上的 S1、S2、S3、S4 为漫反射式光电开关,S5 为自制超声波测距模块,操作面板尺寸不大于 40 cm×40 cm,直流风扇的最高工作电压为 12 V。

控制盘通过挥手形式完成启动/停止、正转/反转、工作电压调整、运行时间设定和组合操作功能。显示器显示设定参数、运行状态及手掌与操作面板之间的操作距离 d。风扇电压由外接电压表测量。

要求

1. 基本要求

编号
指标
具体要求
(1)
测量操作距离 d
自制超声波测距模块 S5,测量范围 5~30 cm,误差绝对值不大于 1 cm
(2)
风扇正(或反)转操作
由 S1 向 S2(或 S3 向 S4)挥手,风扇启动正(或反)转;由 S2 向 S1(或 S4 向 S3)挥手,风扇停止转动。要求操作过程中显示风扇转向和启停状态
(3)
风扇电压调整
在风扇正(或反)转运行时,由 S4 向 S2(或 S3 向 S1)挥手,风扇工作电压在 3~10 V 范围内上升(或下降),实现风扇调速

2. 发挥部分

编号
指标
具体要求
(1)
设定运行时间 t
d 在 5~20 cm 内由 S3 向 S2 挥手设定 t,范围 15~30 s(d 与 t 关系如图 2),显示 t 与 d。运行开始指示灯亮、倒计时显示、结束熄灭。t 与实际运行时间误差绝对值不大于 1 s
(2)
设定工作电压 U_D
d 在 5~20 cm 内由 S4 向 S1 挥手设定 U_D,范围 3.0~10.5 V(d 与 U_D 关系如图 3),显示 U_D 与 d。U_D 与风扇电压 U_M 误差绝对值不大于 0.1 V
(3)
组合操作模式
以非接触控制形式开始/结束组合操作模式设置并启动运行,编排一组风扇动作并存储,至少存储 8 个动作。t 误差 ≤1 s,U_D 与 U_M 误差 ≤0.1 V
(4)
其他
创新点与附加功能

说明

  1. 显示的风扇转速与风扇电压 U_M 变化对应即可,不要求精确转速值。
  2. 基本要求 (1) 允许超声波收、发探头选择成品,其余电路自制
  3. 基本要求 (2) 只观察 U_M 的变化趋势,不考核变化量值。
  4. 发挥部分 (3) 组合操作模式设置步骤示例参考表 1(详见 PDF p3)。

评分标准(速览表)

部分
项目
主要内容
满分
设计报告
方案论证
总体方案设计
3

理论分析与计算
测量方法的选择与工作原理分析;检测电路的原理分析计算
6

电路与程序设计
总体电路图、程序流程图
6

测试方案与测试结果
调试方法、测试数据完整性、测试结果分析
3

设计报告结构及规范性
摘要、设计报告正文的结构、图表的规范性
2

小计

20
基本要求
完成第 (1) 项

20

完成第 (2) 项

20

完成第 (3) 项

10

小计

50
发挥部分
完成第 (1) 项

14

完成第 (2) 项

12

完成第 (3) 项

20

其他

4

小计

50

总分

120

判分关键解读

  • 设计报告 20 分
    ——方案论证要把"为什么用 4 个漫反射 + 1 个超声波 + DAC/功放驱动"讲清楚;理论分析要把"超声波测距公式、温度补偿、手势方向识别原理、PWM 调压或 DAC 调压原理、d-t/d-U_D 拟合公式"全部覆盖;测试数据要给"5 组测距点 / 5 组调压点 / 3 组时间点"的实测值。
  • 基本要求 50 分
    ——50 分里 40 分在 (1)(2) 两项:测距精度(≤1cm)和手势启停/正反转(识别正确性 + 显示状态)。第 (3) 项调压 10 分相对低,因为"只观察趋势不考核量值"。
  • 发挥部分 50 分
    ——组合操作 (3) 占 20 分,是发挥部分最大单项;这意味着**"如何让 8 个动作可编辑、可存储、可回放"是拉开差距的关键**

①.5 题目工程背景

这道题是非接触式人机交互 + 嵌入式测控的浓缩版——把工业 HMI、医疗无接触控制、消费电子手势识别这三类场景同时压进 40×40cm² 的面板

现实工程对照

现实场景
工业/医疗/消费映射
本题对应模块
手术室无菌操作(医生不能碰触按键)
医疗人机交互
漫反射光电开关 + 挥手手势
加油站 / 化工防爆面板(不能有触点火花)
工业 HMI 防爆
非接触式操作
智能音箱 / 车载手势
消费电子交互
S1~S4 阵列 + 方向编码
工业超声波液位计
工控测距
自制超声波测距模块 S5
风机变频调速
工业调速
DAC/PWM 调压 + H 桥正反转

为什么出这道题?

出题人想考核的不是"做得多炫",而是三类基本功的工程化整合

  1. 传感器 + 信号调理
    (光电开关 + 超声波测距 + 抗干扰)
  2. 执行器 + 闭环控制
    (H 桥正反转 + DAC/PWM 调压 + 调速精度)
  3. 状态机 + 人机界面
    (手势方向识别 + 显示器反馈 + 组合操作 8 动作编辑)

为什么放在高职高专组?

I 题是高职高专组专用——难度比本科组略低,砍掉了通信协议和算法复杂度(没有 FFT、没有锁相环、没有自适应滤波),但保留了完整嵌入式系统架构。这是高职组"上手快、做出东西"和本科组"算法深、理论强"的天然分工。

延伸认知

  • 手势识别 ≠ 摄像头 + AI
    ——这道题刻意排除了视觉方案,要求纯硬件级"光电 + 超声波",考察的是对传感器物理原理的深度理解(漫反射式光电开关的红外调制解调、超声波飞行时间测距)
  • 0.1V 调压精度 ≠ 高精度 DAC
    ——可以用 PWM + LC 滤波(成本低),也可以用 DAC + 功放(精度高),不同方案反映不同的工程哲学
  • 8 动作组合操作 ≠ 多任务调度
    ——本质是带状态的指令序列,在裸机上用一个结构体数组 + 状态机就能搞定

二、大白话版解读

想象一个"幽灵触控板":你面前有一个 40×40cm² 的方板,上面没有任何按键,只有 4 个小灯(漫反射光电开关 S1~S4 在四角) + 1 个圆形探头(超声波 S5 在中央)+ 一块 LCD 屏 + 一个 12V 小风扇。

你的动作
系统响应
物理原理
手从左挥到右
风扇正转启动
红外光电开关被手遮挡顺序:S1 → S2
手从右挥到左
风扇停止
遮挡顺序:S2 → S1
手从下挥到上(4→2)
风扇电压上升
遮挡顺序:S4 → S2
手从上挥到下(2→4)
风扇电压下降
遮挡顺序:S2 → S4
手悬停 5~20cm + S3→S2
设定运行时间
超声波测距 + 遮挡方向编码
手悬停 5~20cm + S4→S1
设定工作电压
同上

硬件三件套拆解

大白话总结:本题是"手势方向编码 + 距离值查表 + 双极性电压驱动"三件事的工程化整合,难度不在算法,在系统可靠性和工程细节——光电开关的抗环境光、超声波的温漂补偿、520 电机空载防乱转、串口屏与 MCU 的时序配合。

三、核心指标速查表

层次
指标项
范围
精度
分值
基本 (1)
测距 d
5~30 cm
≤1 cm
20
基本 (2)
手势启停 + 正反转
S1↔S2 启停正转 / S3↔S4 启停反转
趋势正确
20
基本 (3)
调压范围
3~10 V
趋势正确(不考核量值)
10
发挥 (1)
时间设定 t
d 5~20cm → t 15~30s
t 误差 ≤1s
14
发挥 (2)
电压设定 U_D
d 5~20cm → U_D 3.0~10.5V
U_D-U_M 误差 ≤0.1V
12
发挥 (3)
组合操作
≥8 个动作
t 误差 ≤1s, U_D-U_M 误差 ≤0.1V
20
发挥 (4)
创新 / 附加
4
合计



120

d-t 关系(图 2,等差数列)

t (s)
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
15
d (cm)
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

拟合公式t = 35 - d(d 单位 cm,t 单位 s,d ∈ [5, 20])

d-U_D 关系(图 3,等差数列)

U_D (V)
10.5
10.0
9.5
9.0
8.5
8.0
7.5
7.0
6.5
6.0
5.5
5.0
4.5
4.0
3.5
3.0
d (cm)
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

拟合公式U_D = 12 - 0.5d(d ∈ [5, 20])

四、最大卡脖子难点

按"工程坑大、扣分重、难发现"排序:

难点 1:手势方向识别的可靠性(4 光电阵列 + 去抖 + 抗环境光)

为什么难:4 个漫反射光电开关理论上能识别 8 个方向(S1↔S2、S3↔S4、S1↔S4、S2↔S3,及反向),但实际挥手的轨迹是任意曲线,光斑可能同时触发 2~3 个开关。

怎么破

  • 窗口检测
    ——设定"触发窗口"(如 200ms),只有首个 Sx 触发后 200ms 内出现 Sy 触发才认作"有效方向";超时则清空
  • 优先级排序
    ——多个开关同时触发时,按"先触发者"为起点,例如 S1 和 S2 同时被遮挡时,看哪个先撤遮挡(撤遮挡 = 起点)
  • 环境光滤波
    ——选带红外调制的漫反射光电开关(E18-D80NK),抗可见光干扰
  • 物理布局
    ——S1~S4 间距 ≥5cm(避免一个手势同时遮挡 2 个)

难点 2:自制超声波 5~30cm 测距误差 ≤1cm(温度补偿 + 滤波)

为什么难:声速 v = 331.5 + 0.6T,温度每变化 10℃,声速变化 6m/s,对 30cm 距离误差 0.3cm;定时器 1μs 分辨率 → 时间误差 50μs → 距离误差 0.85cm,几乎是临界

怎么破

  • 多阶滤波
    ——限幅滤波剔除突变(剔除飞鸟/气流干扰) + 滑动均值(5~10 个点平均) + 中位值滤波(防脉冲)
  • 温度补偿
    ——加 DS18B20 测环境温度,按 v = 331.5 + 0.6T 实时修正(精度 0.5℃ 即可)
  • 多次测量取平均
    ——5 次测量求均值(参考国二 bysjqu 方案)
  • 发射波形优化
    ——发射 8 个 40kHz 脉冲方波(而不是 1 个),增加回波能量,提高信噪比

难点 3:0.1V 调压精度(U_D-U_M 误差 ≤0.1V)

为什么难:12V 直流风扇的电压-转速曲线是非线性的(电枢反电动势随转速变化),开环 PWM 控制误差可能 0.3~0.5V。

怎么破

  • 方案 A(国一 liandaye)
    :DAC8830 + OPA541 双极性输出,直接给 ±10V 模拟电压,0.1V 精度由 DAC 的 16 位分辨率保证(LSB = 0.0003V),精度冗余超大
  • 方案 B(国二 bysjqu)
    :TB6612 PWM 输出 + PID 闭环,实测 U_M 跟踪 U_D,误差 ≤0.1V
  • 方案选择
    :A 简单稳定但成本高(DAC 芯片 + 功放 ~50 元);B 便宜(TB6612 模块 5 元)但要调 PID 参数

难点 4:组合操作 8 动作的存储与回放

为什么难:发挥 (3) 占 20 分(最大单项),是拉开差距的关键。需要:

  • 8 个动作的"动作结构体"(包含时间 t、电压 U_D、转向)
  • 状态机:设置态 → 录入态 → 存储态 → 回放态
  • UI:动作编辑界面(哪几个动作、参数显示)

怎么破

  • 动作结构体
    typedef struct {
        uint8_t action_id;     // 动作序号 1~8
        uint8_t direction;     // 转向:0=正转 1=反转
        float voltage_ud;      // 设定电压 V
        uint16_t time_t;       // 运行时间 s
    } Action_t;
    Action_t actions[8];
  • 状态机
    ——常规态 → 进入设置 → 录入动作 i → 录入动作 i+1 → ... → 结束设置 → 回放所有
  • 手势编码进入
    ——参考国一方案的手势全集(详见五、参考设计方案):

难点 5:系统可靠性(4 天连轴转,炸板一次扣 10 分)

为什么难:现场测评时间紧,板子要稳定工作 4 小时以上,中间不能重启。

怎么破

  • 电源隔离
    ——主控 3.3V 与电机 12V 必须分开供电(否则电机堵转时电流反灌烧 MCU)
  • 看门狗
    ——STM32 内置 IWDG,超时复位
  • SPI 上拉
    ——DAC8830 的 SPI 线必须加 10kΩ 上拉(否则 16 位数据易出错)
  • 光电开关的 NPN 上拉
    ——参考国一方案注意事项第 5 条:漫反射光电开关内部是 NPN 输出,必须外接 3.3V 上拉电阻

🛠️ 二、硬件方案

2.1 系统架构

按"感知层 / 控制层 / 执行层 / 交互层"四层架构:

2.2 主电路拓扑

A 方案(国一 liandaye · 高精度)

B 方案(国二 bysjqu · 低成本)

mermaid

2.3 元器件选型(按模块)

模块
推荐型号
数量
关键参数
替代方案
主控 MCU
STM32H750XBH6
1
Cortex-M7, 480MHz, 1MB Flash
STM32F407 (国二), MSPM0G3507
DAC 芯片
DAC8830
1
16位, 50M, ±10V
DAC8552 (12位), AD5424
功率放大
OPA541
1
60V/5A 功率运放
L272 (双运放), LM675
电机负载
520 直流电机 + 3D 打印扇叶
1
DC 6~12V, 编码器可选
12V 直流风扇(无反转则需 DAC 方案)
超声波探头
TCT40-16T/R (1 对)
2
40kHz, 收发分体
HC-SR04 成品(但需拆开证明自制)
光电开关
E18-D80NK 漫反射
4
3~80cm, NPN 输出
TCRT5000 (近距), RPR220
串口屏
大彩 DC系列
1
触摸+图形, UART
淘晶驰 TJC, 2.8寸 TFT
语音模块
天问语音
1
UART 触发播报
科大讯飞 XFS5152
DC-DC 隔离
VRA2405LD-20WR3 (24V→5V)
1
金升阳, 20W
URA2412YMD-10WR3 (24V→±12V)
电机驱动 (B 方案)
TB6612
1
1.2A 持续, PWM
L298N (电流小), DRV8871

2.4 电源设计

电压域
用途
来源
24V
外部输入
开关电源(24V/3A)
+12V
DAC8830 / OPA541 / 电机
URA2412YMD-10WR3(金升阳 DC-DC)
-12V
OPA541(双极性输出所需)
同上
+5V
串口屏 / 语音模块 / DAC
VRA2405LD-20WR3(金升阳 DC-DC)
+3.3V
STM32H750 / 光电开关
AMS1117-3.3 LDO

为什么用 DC-DC 隔离模块?——金升阳 VRA / URA 系列是隔离型 DC-DC(输入输出耐压 1500VDC),把电机噪声(堵转瞬间电压毛刺)挡在电机侧,不会窜到 MCU 侧烧芯片。别用非隔离的 LM2596(共地会让电机噪声直接灌到 MCU)。


💻 三、软件算法

3.1 整体闭环逻辑

【声明】内容源于网络
0
0
飞多学堂
1234
内容 0
粉丝 0
飞多学堂 1234
总阅读0
粉丝0
内容0