摘要:本设计了基于STM32的智能扫地机器人系统,集成超声波测距、红外传感器和PWM电机驱动。采用A*算法实现低电量自动回充路径规划,采用深度优先搜索算法实现区域全覆盖清扫。系统通过超声波实时避障,四路PWM控制多方向运动。实验表明该机器人具有良好的自主清扫能力。
项目简介
本项目是一款基于STM32F10x系列微控制器开发的智能扫地机器人系统,旨在实现家居环境的自主清扫功能。系统硬件采用STM32最小系统板作为核心控制器,配备超声波测距模块用于障碍物检测、红外传感器用于边界识别、PWM电机驱动模块实现精确运动控制。软件方面,系统实现了三大核心算法:A*寻路算法用于规划最优回充路径,深度优先搜索算法确保区域全覆盖清扫,实时避障算法根据障碍物距离动态调整运动策略。机器人支持前进、后退、左右转向等多种运动模式,并具备低电量自动返回充电功能。该项目代码结构清晰,采用模块化设计,适合作为嵌入式系统课程设计、毕业设计或智能机器人开发的学习参考,也可作为智能家居清洁设备的原型开发平台。

图1 STM32扫地机器人自动清扫与避障系统图
核心技术
系统集成超声波实时避障、A*算法路径规划、DFS覆盖算法全区域清扫、ADC电量检测管理、基于运动估算的位置追踪等功能,并可在电量低于20%时自动返回充电器进行充电。
系统包含待机、清扫、回充、充电四种工作模式,可实现从待机启动到智能清扫,低电量时自动返回充电器,充满后继续清扫的智能循环工作流程。
硬件配置
主控芯片
采用STM32F103C8T6微控制器(72MHz主频,64KB Flash,20KB RAM)。
传感器模块
传感器模块包括HC-SR04超声波传感器(PB14/PB15)用于障碍物检测,ADC电池电压检测(PA0)用于电量监测,以及可选的红外避障和红外循迹模块。
执行器模块
执行器模块包括PWM电机驱动(PB6/7/8/9)实现四轮驱动控制,以及蜂鸣器、LED数码管、OLED显示屏等可配置GPIO/I2C接口模块用于状态提示和信息显示。
通信接口
通信接口包括串口(PA9/PA10)用于调试信息输出,以及GPIO按键用于启动控制。
电源系统
电源系统采用2S锂电池(7.4V标称电压,满电8.4V,空电6.0V),通过20kΩ+10kΩ分压电路(分压比3:1)进行电压检测。
软件架构
系统架构图

图2 软件架构图
开发环境
开发环境需要Keil MDK-ARM 5.x及以上版本、ARM Compiler 5/6编译器、ST-Link V2调试器和STM32 ST-LINK Utility下载工具,可选配串口助手/PuTTY进行串口调试,以及VS Code + Keil Assistant进行代码编辑。
编译与烧录
使用Keil MDK打开工程文件stm32_sweep.uvprojx,在Project->Options for Target中配置目标芯片为STM32F103C8(晶振8.0MHz),按F7编译工程后,确保ST-Link正确连接并按F8烧录程序。

图3 编译成功

图4 STM32硬件连接示意图
配套资源
包括完整的项目源代码、演示视频、运行截图,开箱即用。

项目文档
有偿提供开题材料、系统设计说明书和成果汇报PPT,完整呈现项目的研究依据、设计过程与最终成果。

使用授权
本项目采用AGPL-3.0开源协议,允许个人和组织自由使用、修改和分发代码,但基于本项目的衍生作品必须同样开源,且用于提供网络服务时需向用户提供完整源代码。本项目仅供学习研究使用,作者不对使用本项目产生的任何后果承担责任,使用者应遵守当地法律法规,合理合法使用本项目。如本项目对您的研究或工作有所帮助,欢迎引用并注明出处。
作者联系
作者信息
改进作者:Steven(可提供二次开发有偿技术服务)
项目编号:STM32-4
改进声明:本项目为改进作品