
这期 DF创客周刊有三个看点一个是用声音把微型机器人“吹”到空中一个是把闪电探测器做到半张银行卡大小一个是把机器人关节的扭矩做到 20 N·m。三个项目类型都不一样技术密度也都不低但动手难度差异很大。如果时间有限优先看闪电探测器它是三件里最容易复刻成实物的如果做机器人电控20 N·m 关节模组值得反复拆解如果只是想知道“声音怎么能当动力”开头这个研究方向最开眼界。这篇文章不打算只做新闻汇总。我会把每个项目的原理、硬件结构、复刻路径和验证方法拆开讲尽量让读者看完后能判断自己要不要做、该从哪一步切入、碰到问题往哪个方向排查。1. 核心能力速览先把三个项目的本质差异列出来方便按自己的情况定位。项目技术类型核心原理复刻难度适合的人群靠声音飞的微型机器人声学驱动 / 声悬浮声辐射力作用于微小结构产生推力或悬浮力高偏研究验证传感器、物理实验、嵌入式爱好者半张银行卡大的闪电探测器雷电传感 / 嵌入式仪表基于 AS3935 雷电传感器芯片检测 40km 内闪电事件中低Arduino/ESP32 玩家、气象观测爱好者20 N·m 机器人关节模组机器人执行器 / 关节电机无框电机 谐波减速器 编码器 驱动器组合中高四足机器人、机械臂 DIY 玩家从动手顺序看闪电探测器适合作为第一个完成度高的实物项目声音飞行器适合先做声悬浮小实验理解物理20 N·m 关节则适合有一定电机控制基础后再挑战。需要说明的是这里不提供确切的“出厂价格”和“官方购买链接”因为周刊内容可能只展示了概念和过程。复刻时所有物料可以按自己手头已有的开发板灵活替换。2. 靠声音飞的微型机器人声辐射力是怎么变成动力的“靠声音飞”看起来违反直觉其实原理不复杂。声音在介质中传播时携带能量和动量当声波遇到微小物体时会产生声辐射力。如果声场是驻波物体还会被推往声压节点或波腹位置这就是声悬浮和声学操控的基础。微型飞行器之所以考虑用声音驱动是因为尺寸缩小后传统螺旋桨的效率很低扇叶太小、推力不够加工也困难。压电驱动又需要高频高压驱动电路。声驱动的思路是把动力源放在“地面”用一排超声波换能器发射强声场让飞行器上极轻的结构直接受力。这样飞行器本身可以做得非常轻不需要携带电池和电机结构简单很多。2.1 典型实现路径最常见的地面声场结构是超声波换能器阵列。可以用 40kHz 超声换能器组成一维或二维阵列通过调整每个换能器的相位在目标区域构造驻波或聚焦声束。微型机器人本体可以是泡沫小球、薄膜结构或带声学反射腔的轻质薄片只要质量足够小声辐射力就能把它悬浮或者推动。常见的创客实验路径是先复现声悬浮不做自由飞行准备一对 40kHz 超声波换能器间距约 3-5cm面对面对射。用单片机输出两路反相方波驱动换能器形成驻波场。用镊子放入小块聚苯乙烯泡沫约 1-3mm。微调换能器间距和相位观察泡沫被束缚在波节位置。这个实验能直观验证“声音推东西”的物理过程也是理解靠声音飞行机器人的前置实验。2.2 难点与边界目前这类项目离实用还有距离。载荷极小通常只能带动毫克级结构飞行姿态难以控制声场稍有扰动就会掉落工作空间被换能器阵列限制不可能自由飞远。更稳妥的判断是这个方向目前适合做原理验证和物理演示不适合追求“实用飞行器”。真正要做成微型声学飞行器还需要解决相位阵列的实时控制、多路高功率驱动、闭环姿态反馈等问题工程量远超普通创客单项目。第一次接触的玩家建议先做声悬浮实验把驻波场调明白再讨论飞行控制。3. 半张银行卡大的闪电探测器AS3935 方案拆解闪电探测器能做成银行卡一半大小关键在芯片。现在主流的开源方案几乎都围绕 AS3935 雷雨传感器芯片展开它内部集成了雷电信号检测、数字信号处理和距离估计外部只需要一个天线、少量电阻电容和一个 MCU就能检测大约 40km 范围内的雷电活动。3.1 硬件结构按常见模块化设计整套设备由这些部分组成主控Arduino Nano 或 ESP32负责读取数据和显示。雷电检测AS3935 模块通过 I2C 或 SPI 与主控通信。天线芯片外部连接 PCB 天线或绕线天线用于接收 LF 频段的雷电电磁脉冲。显示小尺寸 OLED 屏显示闪电事件计数和距离估计。电源锂电池或 USB 供电整体体积可以控制在 4cm × 3cm 左右相当于半张银行卡。使用 ESP32 版本还能直接连 Wi-Fi把数据上报到气象站或者 Home Assistant后续扩展性更强。3.2 接线方式按 I2C 模式连接接线非常简单AS3935 模块引脚主控引脚VCC3.3V 或 5V按模块规格GNDGNDSDAA4 / GPIO21SCLA5 / GPIO22IRQ数字引脚如 D2IRQ 引脚很关键。闪电事件或干扰信号到来时芯片会拉高 IRQ主控据此判断何时读寄存器而不是轮询浪费 CPU。3.3 Arduino 读取示例以下代码是通用流程寄存器操作需要按实际驱动库调整// AS3935 闪电传感器读取示意 // 实际使用时请替换为对应驱动库和寄存器定义 #include Wire.h const int IRQ_PIN 2; void setup() { Serial.begin(115200); pinMode(IRQ_PIN, INPUT); Wire.begin(); // 初始化库并设置天线调谐、噪声门限 delay(100); } void loop() { if (digitalRead(IRQ_PIN) HIGH) { // 读取中断寄存器判断事件类型干扰、闪电或有意义信号 // 若是闪电再读取距离估计和能量值 Serial.println(lightning event detected); // 例如printDistance(); delay(1000); } }正式使用时注意先做天线调谐校准否则芯片对信号的灵敏度可能偏差很大。3.4 数据导出与可视化模块用串口输出 JSON 格式数据会更方便后期处理import serial import json ser serial.Serial(COM10, 115200, timeout1) while True: line ser.readline().decode(utf-8, errorsignore).strip() if line.startswith({): try: data json.loads(line) # 字段示例{event:lightning,distance_km:12,energy:1000} print(data) except json.JSONDecodeError: continue串口数据可以转成 MQTT 上报接到 Node-RED、Home Assistant 或者自己的 Web 仪表盘。如果只是简单验证OLED 显示事件次数和最近距离就够。4. 20 N·m 机器人关节做到这个扭矩需要哪些部件机器人关节要达到 20 N·m前提是机械结构和电气系统同时达标。20 N·m 不是一个很大的数值但放在一个紧凑的关节模组里对电机、减速器、编码器、驱动器和结构强度的要求就不一样了。4.1 关节模组的结构拆解一个典型的高扭矩关节模组由这几层组成无框电机通常是无刷直流电机定子集成在外壳或转子封装在关节壳体内电机本身不产生巨大扭矩但拥有很高的转速和响应速度。谐波减速器把电机的高转速降低扭矩放大。20 N·m 的关节减速比一般在 50:1 到 160:1 之间视电机额定扭矩而定。双编码器输入侧一个高分辨率编码器测量电机转子角度输出侧一个编码器测量关节实际输出角度用来做力矩闭环和刚度控制。驱动器一般采用 FOC 电流环控制把电流指令转换成三相电压并根据编码器角度做换相。外壳金属材质为主3D 打印塑料件在高扭矩下容易出现间隙和疲劳不适合作为长期承载结构。4.2 从电机扭矩到关节扭矩如果采用 50:1 的谐波减速器关节输出 20 N·m 时电机侧只需要输出约 0.4 N·m 的持续扭矩再加上谐波减速器的传动损耗电机峰值扭矩最好到 0.5 N·m 以上。这个参数组合在四足机器人、小型机械臂里很常见。要注意的是20 N·m 可能是峰值扭矩也可能是持续扭矩。峰值扭矩决定了爆发力持续扭矩决定了长时间工作是否过热。拿到项目资料时先分清这两个定义再决定散热方案。4.3 FOC 控制流程控制端第一步是让电机转起来。用 SimpleFOC 这类库做原型验证比较快// SimpleFOC 风格示例具体参数按电机实际规格调整 #include SimpleFOC.h BLDCMotor motor BLDCMotor(7); // 极对数需要按电机写 BLDCDriver3PWM driver BLDCDriver3PWM(9, 10, 11); Encoder encoder Encoder(2, 3); // 磁编码器 AB 相 void setup() { driver.voltage_power_supply 24; // 母线电压 motor.linkDriver(driver); motor.linkSensor(encoder); encoder.init(); encoder.enableInterrupts(); motor.init(); motor.initFOC(); } void loop() { motor.loopFOC(); motor.move(0.5); // 力矩或速度指令按模式而定 }初调时必须先确认编码器零位和电机电角度对齐否则电机会抖动或者反向堵转。编码器零位没对齐就通电是关节模组调试最常见的烧驱动原因。4.4 总线与上位机实际机器人系统一般不用逐根 PWM 线控制每个关节而是用 CAN 总线或 EtherCAT。上位机下发目标位置或力矩关节驱动器做底层闭环这样整机线束少、可靠性高。模块化关节产品通常提供 CAN 报文协议比如用 0x601 之类 ID 做控制字用 0x581 做状态返回。如果自己搭关节建议直接预留 CAN 接口方便后续扩展到四足或机械臂。5. 环境准备与工具链三个项目需要的环境和工具不完全一样但核心工具是通用的。按模块化准备一套“创客工作台”基本可以覆盖多数场景。5.1 硬件工具清单工具用途三个项目的相关性恒温电烙铁模块焊接、飞线闪电探测器必需其他项目调试备用数字万用表供电电压检查、短路排查通用示波器或逻辑分析仪看 I2C 波形、PWM 信号闪电探测器和关节调试很重要直流电源给关节电机或换能器供电声音飞行器和关节必需3D 打印机或 CNC制作外壳、结构件闪电探测器外壳和关节结构件可选热成像仪或温度探头检查关节长时间运行发热关节模组推荐5.2 软件环境闪电探测器建议用 Arduino IDE 或 PlatformIO安装 AS3935 对应驱动库。ESP32 版本额外需要 WiFi 和 MQTT 库。关节调试可以用 SimpleFOC 库但它在高级力矩控制和故障保护上偏弱正式项目还是建议用厂商驱动或 STM32 裸写 FOC。声音飞行器实验用普通 Arduino 生成 40kHz PWM 即可做阵列相位控制时再引入 Python 或 MATLAB 做波束成形算法。6. 功能测试清单与效果验证每个项目都要有明确的验收标准。下面按项目列出测试步骤和判断方法。6.1 声音悬浮实验测试目的是确认声场真的能把物体托住。先把一对换能器安装到支架上调整间距到 10mm 到 40mm 范围通电后用镊子放入 2mm 左右的泡沫球。如果泡沫球稳定停在空中某个平面并且跟随换能器位置轻微移动实验就算成功。如果完全吸不到球优先检查换能器是否工作在 40kHz 附近、驱动电压是否足够、两个换能器是否严格对射。若球被弹开可能是相位反了把其中一路反相即可。6.2 闪电探测器拿到模块后先做室内干扰测试。用打火机的压电点火器在距离天线 1-2 米处打火AS3935 应该能收到明显的干扰事件串口打印出对应日志。真正打雷时模块会报“闪电”事件并且给出距离估计。判断成功标准有两个一是能持续收到闪电事件二是距离估计数值在雷雨时与实际雷声到达时间大致对应。失败时先看 IRQ 是否频繁触发如果不断报干扰说明噪声门限设得不够高如果完全不响应检查天线调谐寄存器和 I2C 地址。6.3 关节模组测试从开环转到闭环。先不装减速器只驱动电机空转确认三相接线没有问题然后做编码器角度对齐再使能 FOC 电流环最后装减速器用手堵转输出轴看电流是否限制在设定值。关节模组最容易失败的点是编码器在高速转动时丢步。可以在 PC 端定时读取编码器角度手动缓慢转一圈检查是否出现角度跳变。如果跳变频繁检查编码器安装间隙和磁铁是否居中。7. 数据接口与后续扩展三个项目都有数据接口或控制接口区别在于复杂度。闪电探测器的接口最友好。串口 JSON 输出后可以用 Python 脚本推送到 MQTT broker再接入 Home Assistant做雷暴历史记录和实时告警。ESP32 版本甚至可以省掉串口线直接 WiFi 上报。20 N·m 关节模组的接口要谨慎处理。CAN 帧协议里通常包含模式字、目标值、使能字和状态字。调试时先用厂商上位机或简单 CAN 工具逐个发帧确认每个字段含义后再写控制程序不要凭猜测拼报文。电压、电流、温度、位置这些参数应放在状态帧里持续回传方便上位机做保护。声音飞行器目前的接口需求主要是声阵列相位控制。多路 PWM 相位差可以用 FPGA 或 DSP 实现但普通单片机只能做简单驻波。更合理的方案是把阵列驱动做成独立模块用串口或 USB 接收目标位置坐标内部计算相位表再输送给各路驱动。不过这已经是研究级工作量了适合熟悉信号处理和嵌入式开发的玩家继续深入。8. 常见问题与排查方法问题现象可能原因排查方式解决方案换能器不发声驱动频率偏了或供电不足用示波器看 PWM 波形和电压重新校准频率提高到额定驱动电压泡沫球吸不住换能器不对射或间距超出范围检查两换能器轴线和间距调整安装支架按驻波条件重新计算间距闪电探测器频繁误报噪声门限过低或周围电磁干扰强查看事件类型是干扰还是闪电提高噪声门限移动天线远离开关电源闪电探测器无任何事件I2C 地址错误或天线未调谐扫描 I2C 地址检查 IRQ 波形按模块规格设置地址重新做天线调谐关节电机会抖编码器电角度未对齐运行电角度校准函数重设编码器零位或交换两相线再试关节输出扭矩不足减速比小或电流限制太低查看电机电流和驱动器报错提高电流限制或更换更大减速比减速器关节发热严重持续扭矩超过电机额定值用温度探头测外壳温度查看电流降低连续负载增加散热片或风扇串口数据乱码波特率不匹配或接线干扰检查串口配置和地线统一波特率缩短杜邦线长度9. 最佳实践与使用建议第一先做小参数验证不要一上来就追求完整系统。闪电探测器先用 Arduino不要先写 ESP32 上报平台关节模组先把单关节 FOC 调通再谈四足整机。第二所有项目都要保留模块化测试点。例如 AS3935 模块的 IRQ 脚引出排针方便示波器观察关节驱动板预留串口调试接口方便打印状态。第三机械结构要区分原型和正式版。关节外壳和连接件前期可以用 3D 打印快速验证但负载反复冲击后塑料件容易疲劳正式使用应换成铝合金件或 CNC 加工件。材料和管理方面建议把固件、电路图、3D 模型文件按项目分目录存储Git 管理版本。三个项目的固件最终都会改很多次不记录版本很容易在调试时搞混。批量制作或者后续扩展时目录结构清晰可以省很多时间。安全和合规方面也要多说两句。40kHz 超声波虽然人耳直接听不到但长时间高功率近距离暴露仍可能引起不适实验时尽量控制声场功率和暴露时间。锂电池供电的闪电探测器不要边充电边放在金属外壳里会影响天线接收。关节模组接线时先确认母线极性伟哥和地接反会导致驱动器损坏。涉及他人开源硬件、固件或外观设计时注意遵守对应的开源协议特别是商用前要确认许可证允许范围。10. 总结与下一步这期三个项目的性价比很清晰。闪电探测器投入最低一两天能做出可用实物适合作为第一个完整嵌入式作品也能直接连到家里气象系统里用。20 N·m 机器人关节是一条更长的技术路线价值在于帮助你理解电机控制、减速器选型、总线和伺服驱动不急着一次做成但很值得长期投入。靠声音飞的微型机器人当前更偏向实验和研究不过它打开的思路很值得关注先用声悬浮小实验感受一下声辐射力比直接看论文更能建立直觉。建议先把闪电探测器做出来串口数据跑通后再根据兴趣决定是否深入关节控制。后面动起来之后你的收获会比单纯的“三个项目介绍”多得多。