1. 项目概述:当机械臂遇上智能灯效
去年在深圳Maker Faire上看到一组机械臂配合LED灯带的艺术装置后,我就一直想做个类似的项目。这次终于有机会用ESP32-S3开发板和MimiClaw框架实现这个想法——让机械爪的每个动作都能触发动态灯光效果。这个项目最吸引我的地方在于,它完美结合了物理运动控制(舵机)和视觉反馈(WS2812灯带),通过AI指令实现双向交互。
核心硬件选用SG90舵机作为机械爪驱动,搭配60颗WS2812B全彩LED组成的灯带。软件层面基于MimiClaw框架进行二次开发,这个轻量级嵌入式AI框架最大的优势是天然支持自然语言指令解析。实测下来,从发送"爪子张开+彩虹灯效"指令到完整执行,延迟可以控制在800ms以内。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 硬件架构设计解析
2.1 关键器件选型对比
在机械爪驱动方案上,我对比了三种常见舵机:
| 型号 | 扭矩 | 工作电压 | 价格 | 适用场景 |
|---|---|---|---|---|
| SG90 | 1.6kg·cm | 4.8-6V | ¥12 | 轻负载、间歇工作 |
| MG996R | 13kg·cm | 4.8-7.4V | ¥35 | 中负载、持续工作 |
| DS3218 | 20kg·cm | 6-8.4V | ¥85 | 重负载、工业场景 |
最终选择SG90的原因有三点:首先是MimiClaw机械爪的塑料结构不需要大扭矩;其次是ESP32-S3的3.3V GPIO可以直接驱动其信号线(虽然供电仍需5V);最重要的是它的PWM控制协议与LEDC模块完全兼容。
灯带部分选用WS2812B而非SK6812,主要考虑:
- 驱动芯片内置,单线控制简化布线
- 每颗LED可独立寻址
- 5V供电与舵机电源兼容
- 60颗/m的密度适合缠绕机械臂
2.2 供电系统设计
整个系统的供电方案经过多次迭代。最初尝试用USB 5V/2A电源同时给开发板和外围设备供电,结果发现:
- 舵机启动瞬间电流可达1.2A
- 60颗WS2812全亮白色时电流约3.6A
- 同时工作时电压会被拉低到4.3V
改进后的供电方案:
mermaid复制graph TD
A[12V/5A电源] --> B[DC-DC降压模块]
B -->|5V/3A| C[舵机阵列]
B -->|5V/3A| D[WS2812灯带]
E[USB供电] --> F[ESP32-S3]
关键改进点:
- 使用独立12V电源经降压模块转换
- 舵机与灯带电源分离
- 开发板保持USB供电
- 所有GND共地
实测中特别要注意:WS2812的DI信号线必须加470Ω电阻,否则高速切换时会产生振铃现象导致控制异常。
3. 软件框架深度适配
3.1 MimiClaw框架改造
原版MimiClaw的tool_servo.c只能控制单个舵机,我们需要扩展为多舵机控制。主要修改点:
- 在tool_servo.h中增加结
