电赛每日一题 · 第 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. 基本要求
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
2. 发挥部分
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
说明
-
显示的风扇转速与风扇电压 U_M 变化对应即可,不要求精确转速值。 -
基本要求 (1) 允许超声波收、发探头选择成品,其余电路自制。 -
基本要求 (2) 只观察 U_M 的变化趋势,不考核变化量值。 -
发挥部分 (3) 组合操作模式设置步骤示例参考表 1(详见 PDF p3)。
评分标准(速览表)
|
|
|
|
|
|---|---|---|---|
| 设计报告 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
小计 |
|
20 |
| 基本要求 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
小计 |
|
50 |
| 发挥部分 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
小计 |
|
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² 的面板。
现实工程对照:
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
为什么出这道题?
出题人想考核的不是"做得多炫",而是三类基本功的工程化整合:
- 传感器 + 信号调理
(光电开关 + 超声波测距 + 抗干扰) - 执行器 + 闭环控制
(H 桥正反转 + DAC/PWM 调压 + 调速精度) - 状态机 + 人机界面
(手势方向识别 + 显示器反馈 + 组合操作 8 动作编辑)
为什么放在高职高专组?
I 题是高职高专组专用——难度比本科组略低,砍掉了通信协议和算法复杂度(没有 FFT、没有锁相环、没有自适应滤波),但保留了完整嵌入式系统架构。这是高职组"上手快、做出东西"和本科组"算法深、理论强"的天然分工。
延伸认知:
- 手势识别 ≠ 摄像头 + AI
——这道题刻意排除了视觉方案,要求纯硬件级"光电 + 超声波",考察的是对传感器物理原理的深度理解(漫反射式光电开关的红外调制解调、超声波飞行时间测距) - 0.1V 调压精度 ≠ 高精度 DAC
——可以用 PWM + LC 滤波(成本低),也可以用 DAC + 功放(精度高),不同方案反映不同的工程哲学 - 8 动作组合操作 ≠ 多任务调度
——本质是带状态的指令序列,在裸机上用一个结构体数组 + 状态机就能搞定
二、大白话版解读
想象一个"幽灵触控板":你面前有一个 40×40cm² 的方板,上面没有任何按键,只有 4 个小灯(漫反射光电开关 S1~S4 在四角) + 1 个圆形探头(超声波 S5 在中央)+ 一块 LCD 屏 + 一个 12V 小风扇。
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
硬件三件套拆解:
大白话总结:本题是"手势方向编码 + 距离值查表 + 双极性电压驱动"三件事的工程化整合,难度不在算法,在系统可靠性和工程细节——光电开关的抗环境光、超声波的温漂补偿、520 电机空载防乱转、串口屏与 MCU 的时序配合。
三、核心指标速查表
|
|
|
|
|
|
|---|---|---|---|---|
|
|
|
|
≤1 cm |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
t 误差 ≤1s |
|
|
|
|
|
U_D-U_M 误差 ≤0.1V |
|
|
|
|
≥8 个动作 |
|
|
|
|
|
|
|
|
| 合计 |
|
|
|
120 |
d-t 关系(图 2,等差数列):
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
拟合公式:t = 35 - d(d 单位 cm,t 单位 s,d ∈ [5, 20])
d-U_D 关系(图 3,等差数列):
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
拟合公式: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 · 低成本):
2.3 元器件选型(按模块)
|
|
|
|
|
|
|---|---|---|---|---|
| 主控 MCU |
|
|
|
|
| DAC 芯片 |
|
|
|
|
| 功率放大 |
|
|
|
|
| 电机负载 |
|
|
|
|
| 超声波探头 |
|
|
|
|
| 光电开关 |
|
|
|
|
| 串口屏 |
|
|
|
|
| 语音模块 |
|
|
|
|
| DC-DC 隔离 |
|
|
|
|
| 电机驱动 (B 方案) |
|
|
|
|
2.4 电源设计
|
|
|
|
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
为什么用 DC-DC 隔离模块?——金升阳 VRA / URA 系列是隔离型 DC-DC(输入输出耐压 1500VDC),把电机噪声(堵转瞬间电压毛刺)挡在电机侧,不会窜到 MCU 侧烧芯片。别用非隔离的 LM2596(共地会让电机噪声直接灌到 MCU)。
💻 三、软件算法
3.1 整体闭环逻辑

