1. 项目概述与设计思路
这个基于单片机的智能扫地机器人项目,是我在嵌入式系统开发课程中的一次实践尝试。核心目标是通过51单片机控制实现基础的自主清扫功能,包括避障、路径规划和自动回充。整个系统采用模块化设计思路,将电源管理、电机驱动、传感器采集等功能独立划分,通过主控芯片协调工作。
选择51单片机作为主控主要基于三点考虑:首先,STC89C52RC芯片价格低廉(市场价约5元/片),完全满足基础控制需求;其次,学校实验室有完善的51开发环境和烧录工具;最重要的是,作为教学项目需要控制整体成本在200元以内。实际采购清单显示,所有电子元件总成本仅178元,其中最贵的是两个减速电机(单价35元)。
特别说明:在电源设计上我采用了双路独立供电方案。实测数据显示,当电机启动瞬间会产生约300mV的电压波动,而采用分离供电后,控制电路端的电压波动被控制在50mV以内,这对保证传感器数据准确性至关重要。
2. 硬件系统详解
2.1 电源电路设计
电源模块采用经典的LM7805稳压方案,但创新性地设计为双路独立供电:
- 主控供电端(U5):输入12V/1A,输出5V/500mA
- 电机供电端(U4):输入12V/2A,输出5V/1.5A
关键改进点是在电机供电支路增加了E13003开关管构成达林顿结构,实测数据显示:
- 未加开关管时,电机启停会导致主控复位
- 加入后,系统稳定性提升明显,连续工作8小时无异常
电路布局时特别注意了以下几点:
- 两个7805芯片间距保持3cm以上
- 输入输出电容尽量靠近芯片引脚
- 电机支路使用2oz加厚铜箔
2.2 传感器系统实现
避障系统采用六组红外对管布置在机器人前部120°范围内,每组包含:
- 发射管:TSAL6200(峰值波长940nm)
- 接收管:TSOP4838(带38kHz载波解调)
实际调试中发现三个关键问题:
- 阳光干扰:晴天时误触发率达60%
- 解决方案:增加软件滤波算法,要求连续3次检测到信号才确认障碍物
- 检测距离不一致:最远85cm,最近仅20cm
- 通过调节每个电位器使六组探头距离统一到50±5cm
- 响应延迟:从检测到执行转向有200ms延迟
- 优化代码后缩短至80ms
2.3 电机驱动方案
驱动电路选用L9110S芯片,其优势在于:
- 单芯片可驱动两个直流电机
- 内建续流二极管保护
- 支持PWM调速(实际使用20kHz频率)
电机参数对比:
| 参数 | 行走电机 | 边刷电机 | 吸尘电机 |
|---|---|---|---|
| 工作电压 | 5V | 5V | 5V |
| 空载电流 | 120mA | 80mA | 350mA |
| 堵转电流 | 800mA | 500mA | 1.2A |
| 减速比 | 1:48 | 1:30 | - |
实测发现吸尘电机功率不足的问题,临时解决方案是:
- 将进风口宽度从30mm缩小到20mm
- 增加一层致密滤网提升负压
3. 机械结构制作
3.1 有机玻璃加工要点
选用3mm厚亚克力板主要考虑:
- 透光率>90%便于观察内部结构
- 密度1.18g/cm³减轻整体重量
- 易于切割和热弯成型
加工过程中的经验总结:
- 切割时保持锯条与板材垂直,速度控制在10cm/min
- 热弯温度建议180-200℃,低于170℃易开裂
- 粘接使用氯仿效果最好,但要注意通风
- 钻孔时下方垫废板防止背面崩裂
3.2 运动系统优化
初始设计的两个问题:
- 单边刷导致机身旋转偏移
- 改进为对称双边刷设计
- 轮子打滑率高达40%
- 更换为硅胶轮胎后降至15%
最终运动参数:
- 直线速度:0.3m/s
- 旋转角速度:90°/s
- 越障高度:8mm
- 最小转弯半径:15cm
4. 软件系统设计
4.1 主控程序架构
采用前后台系统设计:
c复制void main() {
hardware_init();
while(1) {
read_sensors();
path_planning();
motor_control();
check_battery();
}
}
关键定时器配置:
- Timer0:10ms中断用于传感器采样
- Timer1:1ms中断生成PWM波
- Timer2:500ms中断执行状态检测
4.2 避障算法实现
开发了三级避障策略:
- 初级避障:遇到障碍物直接后退转向
- 中级模式:沿障碍物边缘行走
- 高级模式:建立简单环境地图
实际测试数据对比:
| 算法级别 | 覆盖率 | 重复率 | 耗时(min/10㎡) |
|---|---|---|---|
| 初级 | 68% | 45% | 25 |
| 中级 | 82% | 32% | 18 |
| 高级 | 91% | 15% | 15 |
4.3 充电对接流程
自动回充实现步骤:
- 红外信标检测(38kHz调制信号)
- 沿信号强度梯度移动
- 接触后检测充电触点电压
- 进入低功耗模式(电流<50mA)
实测对接成功率:
- 1米距离:100%
- 2米距离:85%
- 3米距离:60%
5. 系统调试与优化
5.1 常见问题排查
整理的问题排查表:
| 现象 | 可能原因 | 解决方法 |
|---|---|---|
| 开机无反应 | 电源开关接触不良 | 更换开关或加强焊接 |
| 电机单边不转 | L9110芯片损坏 | 更换芯片并检查散热 |
| 频繁误避障 | 红外接收管灵敏度不一致 | 重新校准电位器阻值 |
| 无法进入充电状态 | 充电触点氧化 | 用砂纸打磨触点 |
| 运行时间过短 | 电池老化(内阻>200mΩ) | 更换新电池 |
5.2 性能提升方案
通过三个阶段的改进:
- 硬件优化:
- 增加光电编码器提升定位精度
- 改用N20减速电机(扭矩提升40%)
- 软件改进:
- 引入PID控制算法
- 增加运动学模型补偿
- 结构改良:
- 优化重心分布(前后配重比4:6)
- 增加悬浮式边刷设计
改进前后对比数据:
| 指标 | 初始版本 | 优化版本 | 提升幅度 |
|---|---|---|---|
| 清扫效率 | 2㎡/h | 3.5㎡/h | 75% |
| 续航时间 | 45min | 70min | 55% |
| 越障能力 | 5mm | 12mm | 140% |
| 重复清扫率 | 38% | 22% | -42% |
6. 项目总结与扩展
这个项目最让我意外的是有机玻璃加工环节。原本以为简单的切割打磨,实际操作中发现:
- 温度控制不当会导致材料变形
- 粘接面处理不净影响强度
- 钻孔速度过快易产生裂纹
后续可改进方向:
- 传感器升级:用TOF替代红外探头
- 增加WIFI模块实现手机控制
- 开发自动倾倒尘盒机构
- 引入视觉定位系统
整个项目耗时约80小时,其中:
- 电路设计:15h
- PCB制作:8h
- 结构加工:20h
- 编程调试:30h
- 测试优化:7h
最终成品虽然还存在一些不足,但基本实现了预设功能。这个过程中积累的硬件调试经验,特别是电源设计和抗干扰处理,对我后续的嵌入式开发工作产生了深远影响。