在这里插入代码片
最近设计了一个项目智能扫地机器人的设计与实现,与大家分享一下:

一、基本介绍

项目:智能扫地机器人的设计与实现
项目编号:mcuclub-dz-1108
单片机类型:STM32F103C8T6
具体功能:
从机:
1、通过语音识别控制干托、湿托、扫地的清洁模式(干托、湿托用一个电机,扫地用另一个电机);
2、监测到距离障碍物小于最小值自动控制小车停止运行;
3、监测到湿度小于最小值在湿托打开加湿(开启水泵),监测到湿度大于最大值关闭加湿;
4、通过按键切换设置阈值、切换清洁模式、启动车辆运行;
5、通过OLED显示距离、湿度和当前清洁模式;

二、32实物图

单片机型号:STM32F103C8T6

板子为绿色PCB板,两层板,厚度1.2,上下覆铜接地。元器件基本上为插针式,个别降压芯片会使用贴片式。

供电接口:TYPE-C
请添加图片描述

三、原理图

软件版本:AD2013

电路连线方式:网络标号连线方式

注意:原理图只是画出了模块的引脚图,而并不是模块的内部结构原理图
请添加图片描述

四、PCB图

由原理图导出,封装很大一部分都是作者自己绘制,不提供封装库,只提供连接好的源文件。中间有一个项目编号,隐藏在单片机底座下,插入单片机后不会看到。

两层板,上下覆铜接地。
请添加图片描述

五、系统框图

此次设计是基于STM32F103C8T6单片机的基于STM32的智能扫地机器人设计;该设计主要可以分为三部分:输入、输出和中控。中控部分采用STM32F103C8T6单片机作为主控芯片,主要是对输入进行处理然后控制输出;
输入又可以分为五部分:第一部分是语音识别检测模块,通过语音识别模块可以控制干拖,湿拖,扫地和启停;第二部分是超声波监测模块,通过此模块可以监测当前的距离值;第三部分是湿度检测模块,由此模块可以检测当前环境的湿度。第四部分是按键模块,通过按键可以设置阈值以及切换模块和控制启停;第五部分是供电电路,主要是用来对整个系统进行供电;
输出主要可以分为两个部分:第一部分是显示部分,显示当前距离,湿度和不同的模式,以及启停的状态。第二部分是继电器模块:通过继电器模块进行干拖、加湿、扫地以及车辆的运行;
请添加图片描述

六、软件设计流程

请添加图片描述

七、部分程序展示

软件版本:keil5

逻辑程序和驱动程序分开,分布于main.c和其他.c文件

///**********************************
//函数名:处理函数
//传参值:无
//返回值:无
//**********************************/
void Manage_Function(void)
{
	if(display_num == 0)									//测量界面
	{
		if(flag_begin == 1)									//开始驾驶 距离小于最小值关闭电机
		{
			if(dist_value < dist_min)
			{
				RELAY_DJ = 0;
			}
			else															//否则打开电机
			{
				RELAY_DJ = 1;
			}
		}
		else
		{
			RELAY_DJ = 0;
		}
		
		if(flag_mode == 0)										//模式为0关闭继电器
		{
			RELAY_JS = 0;
			RELAY_TD = 0;
			RELAY_SD = 0;
		}
		else if(flag_mode == 1)									//模式为1打开拖地
		{
			RELAY_JS = 0;
			RELAY_TD = 1;
			RELAY_SD = 0;
		}
		else if(flag_mode == 2)									//模式为2打开拖地 并根据湿度打开加湿
		{
			RELAY_TD = 1;
			RELAY_SD = 0;
			
			if(humi_value < humi_min)
			{
				RELAY_JS = 1;
			}
			else if(humi_value > humi_max)
			{
				RELAY_JS = 0;
			}
		}
		else if(flag_mode == 3)									//模式为3打开扫地关闭其他继电器
		{
			RELAY_JS = 0;
			RELAY_TD = 0;
			RELAY_SD = 1;
		}
	}
	else																	//设置界面
	{
		RELAY_DJ = 0;
		RELAY_TD = 0;
		RELAY_SD = 0;
		RELAY_JS = 0;
	}
}

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐