资讯动态

STM32黑板粉尘清除装置:从传感器检测到负压集尘的闭环设计详解

发布时间:2026/10/21 17:54:32 来源:尧图企业网站定制
教室里的粉尘问题很多人觉得只是“有点脏”但真正站在黑板前连续擦几分钟鼻子和喉咙的不适感是骗不了人的。我最初想做基于STM32单片机的黑板粉尘清除装置就是因为看到值日生擦黑板时整个人被粉笔灰包围前排同学下意识屏住呼吸而传统黑板擦既擦不干净又让粉尘二次扩散。这个毕业设计题目的核心不是做一个“会动的黑板擦”而是搭一套从检测、清扫到收集的闭环系统粉尘浓度超标时自动启动清洁刷沿黑板导轨往返运动同时负压风机把刷头掀起的粉尘吸进集尘盒真正实现“擦除”和“收尘”同步完成。本文把这套装置的方案选型、硬件电路、软件状态机、机械装配和联调排坑全过程拆开讲适合正在做嵌入式、自动化方向毕业设计或者想给教室场景做一个低成本除尘设备的同学参考。1. 从粉笔灰到方案动机这个装置到底在解决什么1.1 粉尘场景的真实痛点传统黑板擦的工作原理本质上是把粉笔灰从板面“蹭下来”然后任其飘散在空气中。一节45分钟的课老师通常要擦4到6次黑板每次擦拭产生的粉尘颗粒会在教室前半区长时间悬浮。很多教室还靠着走廊一侧开窗通风粉尘颗粒就顺着气流被带到走廊和隔壁教室影响范围比想象中大得多。我在调研阶段做过一个简单测试用普通黑板擦擦拭一块1.2米宽的板书区域连续擦3次用便携式颗粒物检测仪放在距黑板40厘米的位置读数从背景值35微克每立方米直接跳到400多持续十几秒才慢慢回落。这说明粉尘高峰浓度是非常可观的。长期在这样的环境里老师和第一排学生的呼吸道负担都很大这不是“忍一忍就过去”的小事。1.2 现有方案的短板市面上已经有一些应对思路但落地时都有明显问题无尘粉笔和液体粉笔减少粉尘产生但需要更换全部耗材很多学校预算不支持长期更换。静电吸附黑板确实能吸附粉笔灰但价格高而且板面吸附层用久了需要专业维护。大型中央吸尘系统多用于高校阶梯教室安装时要单独布线布管普通教室根本放不下。电动擦板机市面上一些产品只做“擦”不做“收”刷头把粉笔灰扫下来后粉尘还是从板面边缘掉落到粉笔槽和地面上没有根本改善扬尘。所以这个项目的定位很清晰做一台小体积、低成本、能架在普通黑板下方的自动除尘装置结构上“边擦边吸”把粉尘从产生源头直接收进集尘盒而不是让它飘到空气里。1.3 需求收敛毕业设计该怎么切范围做毕业设计最容易犯的错是贪多。一开始我也想过加摄像头识别板书区域、用机械臂模仿人擦黑板但评估下来单自由度直线运动加负压集尘已经能完整覆盖“检测—决策—执行—反馈”这条主线而且每个环节都有可展示的细节。最终把需求收敛成五条支持自动往返清扫清扫宽度可覆盖常规黑板的下半部分。支持粉尘浓度检测浓度超过阈值时自动触发清扫浓度回落后停止。支持手动遥控和按键控制方便老师按需使用。具备限位保护、堵转保护和提示音防止夹手和损坏设备。整体成本控制在300元以内尽量使用通用模块方便复现。这五条需求直接决定了后面的硬件选型和软件架构后面每一章的取舍都是围绕它们展开的。2. 方案路线对比与整体架构为什么选“单轴导轨毛刷负压”2.1 三条技术路线的可行性分析围绕“自动清除黑板粉尘”这个目标我在方案阶段认真对比过三条路线这里把分析和最终结论都列出来方便后来人少走弯路。路线A电动滑轨加旋转毛刷配合外接大功率吸尘器。清扫效率高旋转毛刷能把板面擦得很干净外接吸尘器吸力也够大。但问题是旋转毛刷组件的长度至少要做1米电机功率和结构强度都要跟着上去外接吸尘器体积大、噪音大还得单独拖一根软管到黑板旁边实在不适合教室场景。这条路线更适合工业除尘设备不适合做桌面级的毕业设计演示。路线B双臂机器人结构用机械臂夹着黑板擦做轨迹规划。听起来很酷展示效果也好但实现难度集中在自由度控制和末端执行器的力控制上光是一个两关节机械臂的逆运动学解算就足够占掉整个设计周期。而且机器人擦黑板的效率并不高擦完一整面黑板需要规划多条路径时间和机械损耗都不可控。对毕设来说风险偏高。路线C单轴直线模组带动清扫头移动清扫头集成刷毛和负压吸尘口。清扫头沿黑板下缘的水平导轨运动刷毛负责把粉笔灰从板面刷下来紧贴在刷毛后方的吸尘口立即把粉尘抽进集尘盒。整个结构只有一个运动自由度控制逻辑简单调试周期短又保留了“自动往返”“粉尘检测联动”这些核心亮点。最后我选的就是这条路线。2.2 系统总体架构与信息流整套系统由四层组成感知层粉尘传感器检测环境浓度限位开关检测清扫头位置按键接收人工指令。决策层STM32主控负责模式判断、PWM输出、ADC采样和逻辑保护。执行层直流减速电机驱动同步带带动清扫头左右移动负压风机持续抽风。交互层LCD显示当前模式与粉尘浓度蜂鸣器播报状态和倒计时。工作流程是系统上电初始化进入待机状态传感器每隔一段时间上报一次浓度浓度连续多次超过阈值时主控发启动信号蜂鸣器鸣叫3秒提示周围人避让然后清扫头从一端出发到达另一端限位后自动反转往返设定的次数后回到起始位置过程中风机会一直工作把刷头扫起的粉尘吸进集尘盒。整条链路是典型的“感知—决策—执行”闭环无论是中期检查还是答辩都能讲清楚。2.3 成本预算与模块选型清单我实际采购的模块和预算如下表总价不到300元还留了备用的机械件余量。模块选型数量参考单价作用主控STM32F103C8T6核心板125元系统控制与逻辑处理粉尘传感器GP2Y1010AU光学灰尘传感器118元检测环境粉尘浓度电机驱动L298N双路电机驱动模块112元驱动行进电机与风机行进电机12V直流减速电机带编码器可选135元带动同步带传动负压风机12V涡轮风机出风口25mm120元吸尘集尘导轨8mm光轴加直线轴承2套30元支撑清扫头滑动传动件同步带加同步轮1套45元由电机带动清扫头移动限位开关微动开关22元检测行程两端供电12V3A适配器加DC-DC降压模块130元分别给电机和主控供电为什么坚持用STM32F103C8T6而不是更便宜的51单片机因为整个系统需要同时处理PWM输出、ADC采样、外部中断和LCD显示51的资源和例程都不够顺STM32虽然上手复杂一点但外设丰富资料多出问题时排查路径也清晰。对于想学嵌入式的人来说这个项目本身就是一套很好的STM32入门实战。3. 硬件搭建与关键电路解读从最小系统到电机抗干扰3.1 STM32最小系统与调试接口主控板我直接用了市面上的STM32F103C8T6最小系统板板载8MHz晶振、BOOT选择跳线和AMS1117稳压电路。需要注意的是给单片机供电的3.3V纹波一定要干净我见过有人直接把降压模块输出接到板子3.3V引脚上结果电机一转单片机就复位。正确做法是DC-DC降压到5V后再经过板载LDO稳压成3.3V同时在不远处并联一个100uF电解电容和一个104陶瓷电容基本能压住瞬态跌落。调试接口用SWD两线方式只占用SWDIO和SWCLK两个引脚比JTAG省线下载速度快调试起来也方便。预留一个串口引脚做日志输出这很重要——后面调试粉尘阈值看曲线的时候串口打印比LCD显示直观太多。3.2 电机驱动模块的接法与PWM控制驱动模块用的L298N供电12V逻辑电源5V板载使能端ENA和ENB分别接收STM32的PWM信号。行进电机接OUT1和OUT2负压风机接OUT3和OUT4。接线时特别留意L298N的稳压二极管和续流二极管电机属于感性负载断电瞬间会产生反电动势如果不做续流保护轻则干扰单片机重则烧掉驱动管。L298N模块自带续流二极管不用额外加但如果是自己搭H桥电路一定要加。PWM频率我选在1kHz左右。频率太低电机会发出明显的“嗡嗡”声而且转速不稳频率太高L298N的开关损耗变大驱动管发热严重。实测1kHz到2kHz之间比较合适我用的是1kHz。占空比在30%以下时电机基本不动因为要克服静摩擦所以软件里做了一个软启动斜坡从0逐步加到目标占空比避免启动瞬间电流冲击。3.3 粉尘传感器的模拟量采样粉尘检测用的GP2Y1010AU模块带一个红外发光管和一个光电接收管通过检测空气中颗粒物对红外光的散射强度来判断浓度。模块输出的是模拟电压需要接到STM32的ADC引脚。这个模块有一个坑直接用3.3V供电时输出信号幅度很小环境粉尘浓度变化在ADC上的变化经常不到20个LSB很容易被噪声淹没。解决方法是加一级运放放大。我用LM358搭了一个同相放大器增益调到10倍左右输出接到STM32的PA1引脚。放大后ADC值的变化范围明显拉开阈值判断就可靠多了。加了放大电路之后需要在软件里做多次采样求平均再配合阈值滞回逻辑后面软件章节会详细讲。3.4 电源分配与接地布局电源是整个系统最容易出问题的地方我吃过的亏基本都集中在这。整机采用12V3A适配器供电一路直接给L298N驱动电机和风机另一路经过MP1584降压模块降到5V再由主控板自带的LDO稳压成3.3V给单片机。这相当于把大电流通道和小信号通道完全隔开实验证明非常有效。还有一点不得不提接地点要采用单点接地。我在调试初期把降压模块的GND和电机驱动的GND在板子上到处乱接结果粉尘传感器输出信号里混入了明显的电机噪声波形完全没法看。后来把传感器和单片机的地单独汇集到电源入口处再和驱动地单点相连噪声问题立刻缓解。供电链路电压负载注意事项适配器直连12V电机驱动模块电流余量留50%以上MP1584降压5V主控板、传感器输出端加33uF电解电容板载LDO3.3VSTM32、LCD远离电机走线4. 软件控制核心状态机、PWM软启动与粉尘联动4.1 状态机设计四种状态管住整个流程软件部分我没有用裸奔式的主循环加延时轮询而是搭了一个简单的状态机。四个状态分别是STANDBY待机系统初始化完成等待按键或粉尘触发信号风机不转电机不动作。WORKING清扫风机启动清扫头按设定方向移动触碰限位后自动换向往返次数达到设定值后进入返回状态。RETURN回位清扫完成后回到起始端碰限位后停止风机延时3秒继续抽走残留粉尘然后回到待机。PROTECT保护检测到电机堵转、限位同时触发或者异常立即停止全部执行部件蜂鸣器长鸣清除故障后才能恢复。用状态机的好处是逻辑清晰所有状态迁移都由明确的事件驱动不存在“主循环里一堆if嵌套把自己绕晕”的情况。后续加蓝牙遥控、加定时任务都是在事件分发里加分支不会动主结构。4.2 行进电机的PWM软启动与限位处理行进电机驱动采用PWM加方向控制。前进和后退用IN1、IN2电平组合控制速度用ENA端PWM占空比控制。为了避免启动瞬间电流过大我写了软启动函数每次改变目标速度时占空比按每10ms增加2%的斜率逐步爬升到目标值后保持。实测软启动之后电源电压跌落从原来的1.2V降到了0.3V以内单片机复位的现象彻底消失。限位处理是另一个关键点。清扫头运动到黑板两端的微动开关处时开关触发外部中断。中断回调里先停止电机输出再反转方向延时200ms后恢复运行保证清除限位死区不然限位开关一直被压着系统会误判为故障。这里不推荐在主循环里轮询限位引脚因为一旦某次循环被LCD刷新之类拖住几毫秒清扫头就可能撞到机械端头。4.3 粉尘浓度采样与阈值滞回算法粉尘传感器连续采样的数据波动比较大直接用单次值判断会导致刷头频繁启停。我的做法是每200ms采样一次每15个采样点做一次滑动平均得到浓度均值。再设两个阈值——触发阈值和释放阈值触发阈值高于释放阈值形成滞回区间。比如触发阈值设为AD值800释放阈值设为600那么浓度升到800以上时启动清扫扫到浓度掉回600以下才停止。这样避免浓度在临界点附近波动时扫地机反复开关机体验好了很多。为什么不用一个固定阈值因为粉尘飞扬是一瞬间的事擦黑板时浓度冲到1000以上残留空气慢慢散去浓度曲线是快速上升、缓慢下降的形状。如果只有一个阈值那么浓度降到阈值以下马上停机刷头可能还停在黑板中间残留粉笔灰还没吸完。用滞回区间清扫头会有充足的收尾时间。4.4 安全保护逻辑与核心代码骨架安全保护包括三块限位保护、堵转保护、启动提示。堵转保护通过检测电机电流实现——L298N的采样电阻输出电压与电流成正比接到ADC采样当电流超过设定值持续500ms判定堵转进入保护状态。启动提示则是在每次自动启动前蜂鸣器以1Hz频率响3下提示附近的人避让这是教室场景非常必要的人性化设计。核心逻辑的伪代码大致如下void state_machine_run(void) { switch(current_state) { case STANDBY: if (dust_avg TRIGGER_HIGH) { beep_prompt(3); current_state WORKING; motor_set_speed(TARGET_DUTY); fan_start(); round_count 0; } break; case WORKING: if (limit_left_triggered) { motor_reverse(); } else if (limit_right_triggered) { round_count; if (round_count MAX_ROUNDS) { current_state RETURN; } else { motor_reverse(); } } if (motor_current CURRENT_LIMIT) { current_state PROTECT; } break; case RETURN: if (limit_left_triggered) { motor_stop(); fan_stop_with_delay(3000); current_state STANDBY; } break; case PROTECT: motor_stop(); fan_stop(); beep_long(); if (reset_btn_pressed) current_state STANDBY; break; } }这套逻辑在STM32上实现起来非常顺手定时器中断里做PWM输出和ADC采样主循环只跑状态机分工明确不会互相抢占。我实际调试时还发现一个细节LCD刷新和串口打印不要放在同一个周期里否则LCD的写时序会把串口打断数据偶尔丢帧。后来把LCD刷新频率降到2Hz问题就解决了。5. 机械结构装配同步带滑台、刷头倾角和集尘密封5.1 直线运动机构冲低成本又把精度保住清扫头要沿黑板水平移动最稳定的方案是上银导轨加丝杆但成本直接飙到几百块对毕业设计预算不友好。我用的方案是8mm光轴加直线轴承做支撑同步带做传动两个同步轮分别固定在行程两端同步带绕在轮子上电机通过联轴器带动主动轮清扫头固定在皮带夹块上。这样做的好处是结构简单、轻巧、噪音小同步带还有一定的弹性缓冲比刚性丝杆更不容易卡死。行程长度我设计为1米对应常规教室黑板的可用长度。光轴两端用铝型材支架固定支架底部直接卡在黑板下缘的粉笔槽里不用打孔安装不破坏教室设施。这一点在答辩时很加分因为很多设计作品只考虑功能没有考虑实际部署条件。5.2 清扫头与集尘结构吸尘口要贴着刷毛走清扫头是整个装置的“执行终端”我做了三版才定型。第一版用普通海绵黑板擦直接绑在滑块上粉尘被推向一侧没有收尘效果第二版加了一个小风机但吸尘口离刷毛太远粉尘还没被吸走就飘了第三版才想明白一个关键原则吸尘口必须紧贴在刷毛后方间距控制在5mm以内而且吸尘口的开口宽度要和刷毛扫过的宽度一致这样粉尘刚被刷毛从板面剥离马上就被吸进风口里。刷毛部分我选用了长约200mm的条刷刷毛比黑板擦更硬能把附着在板面的粉笔字痕迹刷干净。刷毛与板面的夹角很讲究太垂直会把粉尘“拍”起来太倾斜又扫不干净。实测下来刷毛与板面约50度夹角比较合适配合刷毛自身的弹性能贴合普通平面黑板这种微曲率表面。5.3 集尘盒设计与密封检查集尘盒是决定“有没有二次扬尘”的核心部件。我用了透明亚克力盒入口接风机出风口内部放了一层HEPA滤棉风机抽进来的含尘气流撞在滤棉上粉尘被拦截空气从后部排风口排出。集尘盒不要求有多高的过滤效率但要保证密封所有接缝处都贴了海绵密封条不然漏风会导致吸力大幅下降粉尘顺着缝隙往外钻等于白做。判断密封是否合格有一个简单的实测方法把集尘盒入风口用手堵住风机运行时若能明显感觉到吸力被“吸死”而且电机声音明显变闷说明密封良好如果堵住后吸力变化不明显说明漏气严重需要逐段排查。这个方法不需要任何仪器用一只手就能定位漏气部位调试效率非常高。装配完成后我还做了两项验证一是连续运行20个往返检查同步带是否跑偏、松紧是否变化二是用粉尘检测仪放在装置旁边测试开启清扫时检测仪读数比不开启时低约60%说明收尘效果确实有效而不是“擦干净了但粉尘全飘到空中”。6. 联调阶段的真实故障与排查链路6.1 故障一粉尘传感器频繁误触发问题现象装置放在教室窗边中午阳光直射时粉尘浓度读数莫名飙升到触发阈值清扫头自己动起来循环往复。最开始我以为传感器坏了换了一个新模块问题依旧。排查过程先看ADC原始值发现误触发时段数值波动很大但室内明明没有明显灰尘源。后来又用手机对着传感器录像才发现是阳光里的红外线直接照进了传感器腔体导致光电接收管响应异常。确认根因后我给传感器加了一个遮光罩用黑色热缩管套住光学腔体外侧同时软件里把连续采样窗口从3次增加到5次并加入方向修正判断只有粉尘浓度持续上升并维持1秒以上才允许触发。结论光学类粉尘传感器本质上是“怕直射光”的器件任何强红外光源都有可能干扰它。遇到误报问题优先排查光学环境而不是急着换传感器。6.2 故障二清扫头走到行程中段后皮带打滑问题现象清扫头在前半段运行正常快到中间位置时传出“咔哒”声行进速度明显变慢最终卡死。限位保护没有触发但电机电流已经接近堵转阈值。排查过程断电后手动推动清扫头发现皮带在主动轮处有轻微跳齿现象。检查同步带张紧程度发现安装时预留的调节余量不足皮带在长时间运行后逐渐松弛张力不足以维持同步轮的啮合。同步带的传动和链条一样一旦张紧力不够负载稍微变化就会跳齿跳齿之后啮合相位错乱电机再使劲也传不动了。解决办法把同步带张紧轮的安装孔位改成腰型槽方便微调重新张紧到皮带中部按压有约8mm弹性形变的程度然后锁紧。之后连续测试一个小时没有再出现跳齿。这条经验告诉我们带传动的设备安装时要预留张紧调节结构不要指望装完就不管了。6.3 故障三单片机在电机启停瞬间频繁复位问题现象初期测试时只要电机一启动LCD屏幕就闪一下偶尔直接白屏有时连SWD调试都断开。用万用表量12V电源轨发现电机启动瞬间电压从12V跌到9V左右。排查过程电机堵转或启动瞬间电流很大12V3A适配器虽然标称3A但瞬态响应能力有限再加上L298N模块里的两个电机同时启动瞬时电流超过适配器输出能力电压就被拉垮了。5V经过LDO稳压后在高电压跌落时虽不会立即失效但MCU的内核供电一旦低于阈值就会复位。解决办法从三个方向同时下手一是软件上加入前面提过的PWM软启动斜坡把电机启动电流从瞬时冲击变成渐近上升二是在12V侧并联一个470uF电解电容作为储能缓冲三是在进入清扫状态时先启动风机再启动行进电机避免两个电机同时启动造成电流叠加。三管齐下后实测启动瞬间电压跌落从1.2V降到0.3V以内复位问题完全消失。故障现象排查步骤根因最终解决传感器误触发检查ADC原始值、观察光照环境阳光红外线干扰加遮光罩、延长采样确认时间皮带跳齿卡死手动推滑台、检查皮带张紧同步带张力不足增加腰型槽张紧调节、预张紧MCU频繁复位电压监测、逐段断开负载电机启动电流拉低电源软启动储能电容错峰上电6.4 从这些故障里总结出的调试验证顺序排故障不是靠运气而是靠不断缩小怀疑范围。我的调试验证顺序是先电源、再信号、后机械。拿到一块整套装置第一步永远是用万用表确认各级电压正常比如12V是否到驱动、5V是否到传感器、3.3V是否到MCU第二步看信号用示波器或串口日志观察ADC值和PWM波形是否正常最后才去排查机械卡滞和装配尺寸问题。很多同学一上来就怀疑程序逻辑结果查了半天发现是供电不足或机械干涉白白浪费时间。7. 答辩演示设计、进阶扩展与个人经验7.1 让答辩效果翻倍的演示脚本毕业设计答辩现场的演示时间通常只有3到5分钟必须提前设计一套“看得见、记得住”的演示流程。我的推荐顺序是这样的先用粉尘检测仪对着装置周围实测展示当前PM2.5数值作为环境背景值。在黑板指定区域用粉笔写满数字说明板书密度。按下自动清扫键让蜂鸣器播报启动提示清扫头带着风机往返两次。清扫结束后再次用检测仪展示颗粒物浓度变化对比清扫前后的数值。最后演示一次安全保护用手挡在清扫头前进路径上电机堵转后系统自动停止并鸣笛。第4步的数值对比是整个演示的高光时刻最好提前录一次完整的空白对照组防止现场环境条件波动导致数值不明显。评委老师最看重的是系统的闭环能力和安全性把这两点演到位比罗列功能菜单更有说服力。7.2 顺着这个项目继续挖的扩展方向如果时间充裕或者想冲击优秀毕业设计在这个装置的基础上还有几条很自然的扩展路线加入WiFi模块把粉尘浓度和装置状态连上网在后台查看历史数据和清扫日志。加入蓝牙遥控实现手机App手动控制核心是在指令解析模块里增加一个无线通道。加入课程表联动每天固定时段自动启动一次清扫让装置“无人值守”。把直线导轨升级为两根光轴加丝杆结构承载能力更强清扫头可以加长到整个黑板宽度。我也见过有人把视觉识别加进来让摄像头识别黑板上的板书密度来决定要不要清扫这属于高级课题了建议先把基础功能做扎实再考虑。7.3 我做完这个项目的真实体会整个项目从方案定型到联调完成前后用了两个月左右主要时间都花在了机械装配和故障排查上软件部分反而是最顺利的。做完之后我最深的感触是这类装置能不能起效关键不在“擦”而在“收”——如果吸尘结构密封不好动作再漂亮的清扫头也只是把粉尘从黑板搬到空气里。所以做实物项目时机械结构的细节和密封性检查一定要放在和代码同样重要的位置。如果说要给后面做同类题目的同学一句建议那就是先花一个星期把机械结构装稳、装顺再开始写控制程序。很多人在结构还没定型时就急着调软件结果每改一次结构之前的代码参数就要推翻重来。反过来结构稳定之后软件调试的变量就只剩逻辑本身整个开发过程会顺畅很多。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑