1. 项目概述
这个基于STM32F103ZE的扫地机器人项目,是我最近半个月折腾出来的成果。作为一名嵌入式开发老鸟,我一直想亲手打造一个能真正干活的智能清洁设备,而不是那种只会转圈的玩具车。最终实现的这个原型机,已经具备了商用扫地机器人的几个核心功能:弓字形路径规划、超声波避障、WiFi远程控制和自动回充。
硬件上选择了正点原子的精英开发板作为主控,搭配四个28BYJ-48步进电机和ULN2003驱动板。这种组合性价比极高,整套驱动系统成本不到50元,但性能足够满足家用需求。避障系统采用HC-SR04超声波模块配合180度舵机,实现了环境扫描功能。通信方面则使用了常见的ESP8266 WiFi模块,通过串口3与主控通信。
提示:选择STM32F103ZE是因为其丰富的外设资源和适中的价格,特别适合作为机器人开发平台。整点原子的开发板还提供了完善的例程和文档,大大降低了开发门槛。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 硬件系统设计
2.1 主控系统架构
STM32F103ZE作为主控芯片,主要承担以下任务:
- 通过定时器产生PWM信号控制步进电机
- 处理超声波传感器的测距数据
- 解析WiFi模块的AT指令
- 实现路径规划和避障算法
- 管理电源和低功耗模式
芯片的资源分配如下:
- TIM3用于生成步进电机控制信号
- USART3连接ESP8266 WiFi模块
- ADC1用于监测电池电压
- GPIO控制LED状态指示和蜂鸣器报警
2.2 电机驱动方案
步进电机选用28BYJ-48,主要考虑因素包括:
- 价格低廉(单个约10元)
- 驱动简单,只需ULN2003驱动板
- 步距角5.625°,配合减速箱可实现精确控制
- 堵转电流约240mA,适合电池供电
电机驱动电路设计要点:
- 每个电机需要4个GPIO控制相位
- ULN2003的COM端接12V电源
- 在电机电源线上并联大容量电容(实测需要4个4700μF)
- 添加续流二极管防止反电动势损坏电路
c复制// 步进电机相位序
const uint8_t phase_seq[] = {0x09,0x08,0x0C,0x04,0x06,0x02,0x03,0x01};
void STEP_Motor_Run(TIM_HandleTypeDef* htim,
