1. 项目背景与灵感来源
凌晨三点半,我盯着屏幕上那个顽固的BUG已经超过四个小时。当第17次尝试修复失败后,我随手将揉成一团的草稿纸投向两米外的垃圾桶——不出意外地,它再次砸在桶边弹到了地上。就在弯腰捡纸的瞬间,一个念头突然闪过:要是垃圾桶能听懂"过来"、"开盖"这种简单指令,程序员深夜改BUG的效率至少能提升30%。
这个看似荒诞的想法,其实源于几个真实痛点:
- 开发过程中频繁产生废纸、零食包装等小型垃圾
- 传统脚踏式垃圾桶在双手码字时操作不便
- 语音交互在智能家居领域已相当成熟,但尚未渗透到办公周边设备
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 硬件选型与核心组件
2.1 主控芯片选择:STM32F103C8T6
选择这款ARM Cortex-M3内核芯片基于三点考量:
- 性价比:某宝核心板仅12元,具备72MHz主频和20KB RAM
- 生态完善:标准库和HAL库资料丰富,便于快速开发
- 外设支持:自带3个USART和2个SPI接口,完美适配语音模块需求
实测发现:当开启硬件浮点运算支持时,语音特征提取速度提升2.3倍
2.2 语音识别模块:LD3320方案
对比市面常见方案后选择LD3320,因其具备:
- 离线识别:不依赖网络,响应时间<200ms
- 非特定人声识别:无需训练即可识别普通话指令
- 内置DSP:减轻主控芯片运算负担
模块接线示意图:
c复制// STM32与LD3320接线配置
#define LD3320_RST_PIN PC13
#define LD3320_CS_PIN PA4
#define LD3320_WR_PIN PA2
#define LD3320_RD_PIN PA1
2.3 执行机构设计
采用MG996R舵机驱动桶盖,关键参数:
- 工作电压:4.8-7.2V
- 堵转扭矩:9.4kg·cm
- 加装3D打印的杠杆机构实现120°开合角度
供电方案:
- 主控部分:AMS1117-3.3稳压
- 动力部分:独立18650电池组
- 加入TVS二极管防止电机干扰
3. 软件架构与关键算法
3.1 系统状态机设计
定义5个核心状态:
mermaid复制stateDiagram
[*] --> IDLE
IDLE -
