
1. 项目概述与核心思路夏天一到手里没个能吹风的东西总觉得少了点什么。市面上的手持风扇要么功能单一要么价格不菲作为一个喜欢动手折腾的人我总觉得缺了点“智能”和“定制”的乐趣。这次我决定用一块MicroBit微控制器结合手头常见的材料自己做一个能感知温度、自动启停的智能手持风扇。这不仅仅是一个小制作更是一个理解微控制器如何作为“大脑”通过编程来感知环境温度并控制物理设备电机的绝佳实践。这个项目的核心目标很明确制作一个便携式风扇它不仅能手动开关还能自动工作。当环境温度上升到你觉得燥热时比如28°C风扇自动转起来为你降温当温度回落到舒适区间比如26°C时它又能自动停止省电又贴心。整个项目涵盖了从结构设计、外壳制作、电路连接到图形化编程的全流程非常适合对硬件编程、物联网入门感兴趣的创客、教育工作者或DIY爱好者。你不需要深厚的电子或编程背景跟着步骤走就能收获一个独一无二的智能小工具。2. 材料与工具清单详解动手之前清点并理解每一件物料的作用至关重要这能帮助你在制作过程中胸有成竹甚至在将来举一反三。2.1 核心电子部件MicroBit V2 开发板1块这是整个项目的“大脑”。我选择V2版本是因为它内置了温度传感器和触摸感应按键我们无需额外购买传感器就能检测温度其上的A、B按键也为我们提供了完美的人机交互接口。它通过图形化编程MakeCode控制对新手极其友好。5V直流电机1个这是风扇的“心脏”负责驱动扇叶旋转。选择5V电压是为了与MicroBit的IO口驱动能力及常见的电池盒电压匹配。注意电机的轴径需要与你准备的扇叶内孔匹配。风扇扇叶1个建议选择直径在4-7厘米之间的塑料扇叶尺寸过大会导致电机带不动过小则风量不足。确保扇叶中心孔与电机轴紧密配合必要时可使用一小段热缩管或胶水加固。3节AA电池盒带开关1个为整个系统供电。3节AA电池提供约4.5V电压足以驱动MicroBit和5V电机电机在略低于额定电压下仍可工作。带开关的电池盒方便彻底断电安全又省电。鳄鱼夹连接线若干用于快速、免焊接地连接电路。建议准备鳄鱼夹转鳄鱼夹线2根用于电源正负极的延长。鳄鱼夹转公头杜邦线2根用于连接MicroBit的IO引脚。这是关键因为MicroBit的引脚是插孔需要用公头针插入。2.2 结构制作材料与工具椴木板或亚克力板1块用于激光切割外壳。尺寸至少需要34cm x 29cm厚度建议3mm。椴木易于切割、打磨和粘合且质感温润亚克力则更显现代和透明但切割时气味较大。这是你发挥设计创意的基础。激光切割机用于精确切割设计好的外壳零件。如果你没有个人设备可以寻找本地的创客空间、高校实验室或在线激光切割服务。这是将数字设计转化为实体零件的关键一步。木工胶或亚克力胶1瓶根据你选择的板材类型使用对应的胶水。木工胶如白乳胶适合木材需要夹持固定等待干燥亚克力专用胶如氯仿能溶解亚克力表面使其融合粘接强度高但需在通风良好处操作。设计软件Tinkercad/Fusion 360等用于设计外壳的矢量图纸。Tinkercad是在线免费工具界面简单非常适合初学者进行基础的2D设计并导出SVG文件。如果你想设计更复杂的3D结构可以学习Fusion 360。注意在选择电机时务必确认其工作电压。MicroBit的IO引脚最大输出电流有限约5mA无法直接驱动电机。本项目巧妙地利用了MicroBit引脚输出信号0或1通过导线直接连接电池正极和电机让MicroBit的引脚充当一个“电子开关”而非动力源。电机实际的电力来自电池盒。这是理解微控制器驱动大电流设备的一个经典思路。3. 外壳设计与激光切割实操一个稳固、美观的外壳不仅能保护内部电路更是提升作品完成度的关键。我选择用激光切割木板的方式来制作因为它精度高、可重复性好。3.1 在Tinkercad中设计结构首先我们需要设计一个由多个平板拼插而成的箱体结构来容纳MicroBit、电池盒和电机。规划结构我的设计分为上下两个主要部分。上部是一个扁平的盒子用于放置MicroBit和电机下部是一个手柄内部用于放置电池盒。两部分通过胶水粘合。绘制零件在Tinkercad中使用“基本形状”里的“盒子”和“圆柱体”工具通过调整尺寸和布尔运算打孔来绘制每一个木板零件。核心零件包括上盖板带孔1块。中心有一个圆形孔用于穿过电机轴并固定电机本体侧面有方形或圆形开口用于露出MicroBit的LED点阵和按键。上壳体侧板4块。围成上部盒子的四个侧面其中至少一块需要设计卡槽或开口用于走线。手柄侧板4块。围成手柄的四个侧面尺寸比上部盒子窄内部空间要能宽松放入电池盒。底板1块。封住手柄的底部。后盖板1块。用于封住上部盒子的背面建议设计成可拆卸式如通过卡扣或预留胶带粘贴边方便后期调试和维修。导出SVG文件设计完成后将每个零件的二维轮廓俯视图分别导出为SVG格式文件。这是激光切割机识别的标准矢量格式。确保线条是连续的且尺寸精确到毫米。3.2 激光切割参数与安全操作将设计好的SVG文件导入激光切割机的控制软件如LightBurn、RDWorks准备切割。材料固定将椴木板平整地放入激光切割机工作台用夹具或磁铁轻轻压住边缘确保切割过程中材料不会移动。务必确认板材表面平整无卷曲或突起物否则可能影响焦距甚至引发安全问题。参数设置这是成败的关键。不同功率的激光机、不同材质厚度参数都不同。对于3mm椴木板我使用的参数如下以40W CO2激光管为例切割功率65% - 75%切割速度12mm/s - 15mm/s通过次数1-2次确保切透对于更精细的雕刻线条如定位标记可以设置更低的功率15%-20%和更快的速度100mm/s以上。强烈建议先在一小块废料上进行测试切割找到最佳参数组合后再进行正式作业。执行切割与注意事项开启激光机的抽风系统确保烟雾被有效排出。戴上防护眼镜切勿在机器运行时直视激光头或反射光路。点击“开始”后观察最初几厘米的切割效果确认参数无误。切割完成后等待工作台完全停止并等待片刻让残留烟雾被抽净后再打开机盖。小心取出切割好的零件边缘可能有些许毛刺或焦痕可以用细砂纸轻轻打磨光滑。实操心得激光切割时设计文件中的线条颜色有时对应不同的加工方式如红色线条切割蓝色线条雕刻。在导出和导入时要注意区分。另外在设计拼插结构时要考虑到激光的“切缝宽度”Kerf通常为0.1mm-0.2mm。如果你希望零件拼插紧密可以在设计时故意将卡榫尺寸略微加大如0.15mm这样切割后就能得到完美的紧配合。这是我经过几次失败组装后总结出的宝贵经验。4. 结构组装与机械部分搭建切割好的零件就像乐高积木接下来需要将它们精确地组合成一个坚固的整体。4.1 主体框架粘合组装上部盒子取出4块上壳体侧板在接缝处均匀涂抹木工胶将它们围成一个矩形框。用直角夹或重物辅助确保接合面垂直、角度为90度。静置至少30分钟待其初步固化。粘合上盖板将带有电机孔的上盖板对准盒子上方粘合固定。此时电机孔应位于盒子内部中心位置。同样需要施加压力确保粘合紧密。组装手柄用同样的方法将4块手柄侧板粘合成一个细长的矩形框。这个框的横截面积应能轻松放入电池盒。连接主体与手柄将上部盒子的底部与手柄的顶部对齐用胶水粘合。这是承重和受力的关键连接点务必涂足胶水并可以用胶带临时缠绕固定放置过夜使其完全干透。安装底板将底板粘合到手柄的底部封闭手柄下端。4.2 电机安装与固定测试安装在不涂胶的情况下先将电机从盒子内部穿过上盖板的圆孔。电机的出轴应朝外电机本体卡在孔内或紧贴内壁。观察电机是否稳固有无晃动。最终固定如果孔洞尺寸合适电机能卡紧则无需额外固定。如果较松可以在电机外壳与木板接触的部位点少量热熔胶或强力胶进行加固。注意胶水切勿接触到电机的转轴或内部线圈。安装扇叶将风扇扇叶牢牢按在电机的转轴上。如果配合过松可以在电机轴上缠绕一两层电工胶带增加直径再套入扇叶确保高速旋转时不会脱落。至此一个没有电子部分、纯机械结构的手持风扇外壳就完成了。检查各粘合处是否牢固整体结构是否歪斜。5. MicroBit图形化编程逻辑解析这是项目的“灵魂”所在。我们将使用微软的MakeCode for MicroBit在线编辑器进行编程它采用积木块拖拽的方式直观易懂。5.1 程序整体逻辑框架我们的程序需要实现三个核心功能正好对应MicroBit板载的三个物理按键A、B、AB手动开关模式B键按一下B键风扇开启再按一下风扇关闭。这是一个简单的“翻转开关”。自动温控模式A键启动一个自动监控循环。持续检测温度高于设定上限则开风扇低于设定下限则关风扇。温度显示功能AB键同时按下A和B键在LED点阵上滚动显示当前环境温度值。5.2 详细代码块搭建访问https://makecode.microbit.org/并新建一个项目。初始化与变量创建在“变量”类别中创建一个名为风扇状态的变量用于记录风扇当前是开1还是关0。在“开机时”积木块中将风扇状态设置为0默认关闭。同时可以显示一个图标比如一颗心表示设备启动成功。let 风扇状态 0 basic.showIcon(IconNames.Heart)实现手动开关B键拖入“当按钮B被按下时”积木块。加入“如果...那么...否则”逻辑判断块。条件设置为如果 风扇状态 等于 0。那么说明当前是关闭状态将风扇状态设置为 1。向引脚P0写入数字值1高电平。这个引脚信号将用于后续控制电路导通。可选显示一个对号图标提示用户已开启。否则说明当前是开启状态将风扇状态设置为 0。向引脚P0写入数字值0低电平。可选显示一个叉号图标。input.onButtonPressed(Button.B, function () { if (风扇状态 0) { 风扇状态 1 pins.digitalWritePin(DigitalPin.P0, 1) basic.showIcon(IconNames.Yes) } else { 风扇状态 0 pins.digitalWritePin(DigitalPin.P0, 0) basic.showIcon(IconNames.No) } })实现自动温控模式A键拖入“当按钮A被按下时”积木块。加入一个“无限循环”块。因为我们需要持续监控。在循环内加入“如果...那么”块。条件1如果 温度(℃) 28这个值你可以根据体感调整比如设为30。那么将风扇状态设为1并向引脚P0写入数字值1。在第一个“如果”块下方再并列加入第二个“如果...那么”块。条件2如果 温度(℃) 26设定一个比开启温度略低的回差防止在临界点频繁开关。那么将风扇状态设为0并向引脚P0写入数字值0。在循环末尾加入一个“暂停(ms) 100”块。这意味着每0.1秒检查一次温度既不会过于频繁消耗资源又能保证响应及时。input.onButtonPressed(Button.A, function () { while (true) { if (input.temperature() 28) { 风扇状态 1 pins.digitalWritePin(DigitalPin.P0, 1) } if (input.temperature() 26) { 风扇状态 0 pins.digitalWritePin(DigitalPin.P0, 0) } basic.pause(100) } })实现温度显示AB键拖入“当按钮AB被按下时”积木块。加入“显示数字”积木块并将“温度(℃)”传感器块拖入其中。input.onButtonPressed(Button.AB, function () { basic.showNumber(input.temperature()) })5.3 编程思路深度解析为什么用引脚P0输出信号MicroBit有多个可用的数字IO口如P0, P1, P2等。我们选择其中一个例如P0作为控制信号输出端。程序里向引脚P0写入数字值1就是让这个引脚输出一个高电平约3V写入0就是输出低电平0V。这个电压信号本身功率很小不能驱动电机但它可以用于控制一个“开关电路”。“回差”的重要性在自动温控逻辑中我设置了28℃开启26℃关闭。这2℃的差值就是“回差”或“滞后”。如果没有回差假设设定27℃开关那么温度在27.0℃和26.9℃之间微小波动时风扇就会疯狂地开、关、开、关这对电机和用户体验都是灾难性的。回差确保了系统状态的稳定。状态变量风扇状态的作用它作为一个“记忆单元”让我们知道风扇当前应该处于什么状态。特别是在手动和自动模式可能冲突时虽然本程序简单切换有一个统一的状态记录是良好编程习惯的开端。编写完成后点击编辑器左下角的“下载”按钮将编译好的.hex文件保存到电脑。然后用USB数据线连接MicroBit它会显示为一个名为MICROBIT的U盘把.hex文件拖进去等待指示灯闪烁完毕程序就烧录成功了。6. 电路连接与系统集成现在我们需要用导线将“大脑”MicroBit、“心脏”电机和“能量源”电池盒连接起来让信号能够流动电力能够驱动。6.1 电路原理与连接图核心原理是MicroBit的P0引脚作为一个信号开关控制着从电池正极到电机这条电路的“通”与“断”。具体连接步骤如下准备MicroBit端取出2根“鳄鱼夹转公头杜邦线”。将其中一根的红色鳄鱼夹夹在MicroBit的P0引脚孔上另一根的红色鳄鱼夹夹在GND接地引脚孔上。准备电池盒端电池盒通常有红正极、黑负极两根引线。将电池盒的红色正极线与夹在MicroBitP0引脚上的那根线的另一端自由端的鳄鱼夹夹在一起。连接电机电机也有两根线通常不分正负但转动方向会相反可以后续测试调整。将电机的其中一根线与夹在MicroBitGND引脚上的那根线的另一端自由端的鳄鱼夹夹在一起。完成回路此时电机的另一根线是悬空的。将它直接与电池盒的黑色负极线夹在一起。连接逻辑梳理当程序让P0输出1高电平时P0引脚与MicroBit内部的3.3V电源近似接通。由于电池正极4.5V也接到了这里电势差使得电流可以从电池正极 -P0引脚作为通路 - 电机 - 电池负极形成回路电机转动。当程序让P0输出0低电平时P0引脚在内部连接到GND0V。此时电池正极和负极通过P0和GND在MicroBit内部“短接”了吗并不是因为数字输出引脚在输出0时是低阻抗到地但这里的关键是电池正极和电机一端都接到了P0而P0为0V电机两端电压接近0因此电机停止。更准确的理解是P0的高电平1提供了一个接近电池电压的电位与电池负极形成电压差驱动电机低电平0则将该点电位拉低至接近负极电压差消失。6.2 内部布局与组装放置电池盒将装有电池的电池盒放入手柄内部。确保开关露在外面或易于操作的位置。固定MicroBit将已连接好导线的MicroBit放入上部盒子中使其LED点阵和A、B按键从你预先设计好的开口中露出。整理导线将所有导线 neatly地收纳在盒子内部避免缠绕或挤压。可以用扎带或一点胶布固定线束。封闭外壳最后用胶带将可拆卸的后盖板贴上。切记不要用胶水永久封死以便未来更换电池、维修或调整程序。现在打开电池盒开关。按下MicroBit的B键你应该能听到电机启动的声音扇叶开始旋转按下A键用手握住MicroBit给它加温或对着它吹气观察温度上升后风扇是否自动启动。7. 调试优化与进阶玩法项目基本完成后你可能会遇到一些小问题或者想让它变得更好。这里分享一些调试经验和升级思路。7.1 常见问题排查速查表现象可能原因排查步骤与解决方案按下B键风扇无反应1. 电池没电或开关未开。2. 程序未成功烧录。3. 电路连接错误或松动。4. 电机损坏。1. 检查电池电量确认开关打开。2. 重新插拔USB线再次下载程序观察MicroBit指示灯是否闪烁。3.重点检查用万用表通断档或另接一个LED小灯测试当按下B键时P0和GND之间是否有电压变化开/关。逐段检查鳄鱼夹连接是否牢固。4. 将电机两根线直接接在电池盒正负极上短暂接触看是否转动。自动模式A键不工作1. 温度阈值设置不当。2. 程序逻辑错误如循环被阻塞。3. MicroBit温度传感器读数偏差。1. 按下AB键查看当前温度根据显示值调整程序中的阈值如28和26。2. 检查A键下的代码块确保“无限循环”和“如果”判断正确嵌套。3. MicroBit的温度传感器靠近处理器自身工作会产热。可将阈值调高几度或让MicroBit在壳体内通风更好。风扇转动方向反了电机线极性接反。将连接电机的两根线对调即可。直流电机转向由电流方向决定。风扇转动无力或很快停转1. 电池电量不足。2. 电机负载过大扇叶太重或阻力大。3. 电路接触电阻过大。1. 更换新电池。2. 尝试更小更轻的扇叶或检查电机轴安装是否顺滑。3. 检查所有鳄鱼夹连接点确保金属齿咬合紧密无氧化。可尝试替换为焊接连接。同时按下AB键不显示温度1. 按键操作不准确未同时按下。2. 显示代码块被其他循环阻塞。1. 练习同时按下两个按键。MicroBit对“同时”有一定宽容度。2. 确保AB键的代码是独立事件没有被包含在“无限循环”内。7.2 项目优化与扩展建议这个基础版本已经实现了核心功能但你完全可以把它做得更酷、更实用增加风速调节目前电机只有开/关两种状态。你可以使用MicroBit的PWM脉冲宽度调制功能。在MakeCode中有“模拟写入引脚”积木块可以输出0-1023的值对应不同的平均电压从而控制电机转速。你可以用A键增加速度B键减少速度。使用外置高精度传感器MicroBit内置温度传感器受主板芯片发热影响。你可以连接一个外部的DS18B20数字温度传感器到IO口将其探针伸到风扇外部获得更准确的环境温度。添加状态指示灯利用MicroBit的5x5 LED点阵用不同的图标显示当前模式手动/自动、风速档位或温度范围让交互更直观。设计更优的外壳使用3D建模软件如Fusion 360设计一个流线型、符合人体工学的一体化外壳用3D打印机完成制作提升美观度和握持感。引入物联网功能进阶为MicroBit搭配一个蓝牙或Wi-Fi扩展板如ESP8266将温度数据和风扇状态上传到云端平台如Blynk、ThingsBoard你就可以在手机APP上远程查看温度、控制风扇了真正迈向物联网应用。制作这个自动温控风扇的过程让我再次体会到硬件项目“从想法到实物”的完整闭环带来的满足感。它不像纯软件项目那样看不见摸不着每一次按键、每一次扇叶转动都是代码与物理世界最直接的对话。对于初学者来说最难的可能不是拖拽积木而是理解“信号”如何控制“电流”以及如何通过结构设计把一堆散件变成可靠的产品。我建议你在成功复现这个项目后不要停下试着去修改一个参数增加一个小功能哪怕只是换一个更漂亮的扇叶。这种不断的“小迭代”正是创客精神的核心也是你技能树成长的扎实养分。