基于stm32的人机交互智能扫地机器人的设计

(整期优先)网络出版时间:2024-03-12
/ 2

基于stm32的人机交互智能扫地机器人的设计

姜佳 李新君 罗涨伟

(湖南人文科技学院 能源与机电工程学院,湖南 娄底,417000)

摘要:随着社会的发展,智能扫地机器人在家庭中的使用日趋广泛,深受人们喜爱。通过对当前扫地机器人功能的对比,确定了总体实现方案和软硬件电路,设计了一种可以进行人机交互功能的智能扫地机器人。该扫地机器人利用蓝牙和WiFi无线网络与用户的手机进行连接通信,并能传播实时的视频图像给用户,达到人机交互的效果,同时还具备智能避障功能。

关键词:扫地机器人;STM32F103RCT6;智能避障,无线通信,人机交互


0、引言

随着经济社会的快速发展,操作简单、使用方便的高科技智能家用电器逐渐进入了人们的日常生活,扫地机器人也日益受到广泛的欢迎。智能扫地机器人是将移动机器人与吸尘器技术结合在一起,实现半自动化或自动化清扫室内环境,从而取代传统的手工清扫工作。这类产品能有效地减少人们的劳动强度,提高工作效率,适用于家庭和公共场所的室内清洁[1,2]。本文将现代传感技术与机器人技术相结合,设计出了一款既能满足家庭需要且使用方便、成本低廉、覆盖范围广、具有无线遥控功能的家庭扫地机器人。

1、系统总体框架

本文设计的基于STM32的智能扫地机器人主要分为主控系统模块、输入系统模块和输出系统模块[3,4]。系统框图如图1所示。

主控系统模块:采用 ST公司生产的STM32F103RCT6单片机作为主控制器,再加上复位电路、时钟电路等辅助电路,将各功能模块与硬件的逻辑控制、软件设计相结合;

输入系统模块:输入系统模块是信息输入于主控板的各个模块所组成的系统,包括红外模块、WiFi模块、超声波模块、蓝牙模块。红外模块和超声波模块用于测距信息的输入,WiFi模块和蓝牙模块用于进行人机交互信息输入,其中WiFi模块还带有一个摄像头模块,用于传送视频信息。

输出系统模块:输出系统模块是表示用于接收主控板输出的信息的模块所组成的系统,包括舵机和电机驱动模块。其中舵机模块是用于接收单片机所产生的PWM信号来控制自身旋转的角度,电机驱动模块是用于接收单片机所产生的PWM信号和高低电平来控制电机旋转的方向和速度。


 

图 1  人机交互智能扫地机器人系统框图


2、系统硬件电路设计

人机交互智能扫地机器人以STM32F103RCT6单片机作为主控制器,外部接L298N驱动来进行电机的驱动控制,HC-SR04超声波模块与舵机相连来进行测距,HC-05蓝牙模块可通过手机与机器人通信,JS9331 WiFi模块也可与手机进行通信并且能将摄像头的实时视频信息传输与手机,同时还搭载了多个红外模块来进行辅助测距。

2.1 单片机主控电路

单片机主控电路主要包括复位电路、电源模块、晶振电路、使能电路、ST-Link下载电路、滤波电容、USB下载电路。具体电路如图2所示。

图2 单片机主控电路

2.2 距离检测电路

本设计采用HC-SR04超声波传感器,超声波测距的基本原理是利用超声波在空气中的传播速度,然后根据发射和接收的时间差来确定其与障碍物的实际距离。具体电路如图3所示。

图3  距离检测电路

2.3 无线通信电路

2.3.1 蓝牙通信电路

本系统采用英国公司CSR设计的HC-05蓝牙模块,用于智能无线数据的传输。在单片机中通过软件编程实现串口中断,当UART串口接收到数据时,进入串口中断,在串口中断中将数据保存到数组中,然后退出中断后通过取出数组数据的不同,可以使扫地机器人进行不同的控制。由于HC-05蓝牙模块遵循V2.0+EDR蓝牙规范,因此本系统可实现手机与单片机的通信。在手机端中下载SPP软件,打开软件即可通过手机端通过蓝牙发送指定的字符串于单片机,达到手机控制的效果。具体电路如图4所示。

图4  单片机与蓝牙模块接线图

2.3.2 WiFi通信电路

本系统采用JS9331WiFi模块,WIFI模块与单片机的通信也是同蓝牙模块与单片机通信类似,通过UART串口进行通信。该设计的WIFI模块搭载了WIFI模块拓展板,该拓展板可以提高WIFI模块信号的发送效率,使得WIFI模块的信号范围更广,也能提供USB接口供摄像头模块连接,从而可以将摄像头模块的视频信息通过WIFI实时发送到手机端。具体电路如图5所示。


图5  JS9331 WiFi 通信电路


2.4 舵机控制电路

舵机的转向机构是一种用于需要连续改变角度和能够维持的控制系统的位置(角度)伺服驱动器。该控制系统由直流电机、减速齿轮、传感器、控制回路等构成。输出轴的转动角是由发射信号来决定的。舵机的角度控制是通过控制PWM信号的不同占空比来实现的,STM32F103RCT6可以通过软件编程使GPIO口输出不同占空比的PWM信号,该舵机的角度可达185度。具体电路如图6所示。

图6 舵机控制电路

3、系统软件设计

3.1主程序设计

当设备开机开始运行时,首先初始化延时函数,PWM输出信号,UART串口,然后初始化红外模块和超声波模块,最后初始化舵机,使其位于特定的位置,随后进入程序的主循环。在主循环中,不断地检测UART串口是否接收到了数据,接收到数据后开始解析数据,通过strcmp()函数来对比接收到的数据字符串与设定的字符串是否一致,对不同的字符串执行不同的操作。当解析到为手动模式的字符串时,机器人停止运动,将扫地机器人的运动权交给用户,继续不停接收手机端通过无线模块发送的数据,解析不同的字符串来控制机器人的前进,后退,左转,右转还有摄像头舵机的方向,达到人机交互的效果。当解析到为自动模式的字符串时,机器人开始进入自动模式,默认向前走,并且一直通过超声波模块和红外模块进行测距,当检测到有障碍物是会调整机器人的运动方向,达到自动避障的功能,在自动模式期间,当用户在手机端点击了手动模式按键时,会跳出自动模式进入手动模式,达到模式任意切换的效果。具体流程图如图7所示。

图7 主程序流程图

3.2 UART串口通信程序设计

UART串口通信首先需要配置单片机的GPIO口,将TX引脚配置成复用推挽输出模式,RX配置成浮空输入模式,然后配置UART串口,随后打开串口中断。当RX接收数据时,进入串口中断函数,然后每次接收数据都要检测数据是否接收超时,因此还需要打开TIM2定时器中断,当数据接收超时的时候,进入TIM2定时器中断强制将接收标记为接收完成,防止程序跑飞。当数据未接收超时的时候,当数据还未达到一组数据所设定的最大值,则将数据存入串口的缓冲区,若达到了一组数据中所设定的最大值了,则说明这一组数据已经接收完成了,则将接收标记为接收完成,整个UART串口通信的程序结束,该程序是用于无线通信模块与单片机通信的。具体流程图如图8所示。


图8 UART串口通信程序流程图


3.3超声波测距系统程序设计

超声波测距首先需要配置GPIO口,然后对此GPIO口配置外部中断,之后打开中断,单片机先会对超声波模块进行驱动,使其能发出一个大于10us的超声波用于检测距离。若所配置的GPIO口检测到上升沿时,进入外部中断函数,进入后首先打开TIM6定时器,然后一直计时知道GPIO口接收到下降沿,说明该反射回来的超声波以及接收完毕,随后关闭定时器,取出所计算的时间再通过超声波距离测量的公式,可以算出距离障碍物的距离,随后关闭中断标志位,超声波测距的中断程序结束,超声波测距的主程序从中断程序中取出所计算出的距离值,然后返回给其它函数使用,该程序可以通过超声波来实现测量距离的功能。具体流程图如图9所示。

图9 超声波测距系统软件流程图

4、总结

本设计以STM32F103RCT6芯片为核心,通过硬件和软件的设计调试,能够实现清扫地面、智能测距避障、可连接蓝牙与WiFi通信,还具有传播实时视频信息到用户手机端的功能。此外,用户还可以灵活选择机器人的运行模式:当为自动模式时,机器人自动前进并且开启自动避障功能进行避障;当为手动模式时,用户可以很灵活方便的与机器人进行人机交互,控制机器人的运动并获取机器人所传播的视频信息。

参考文献

[1] 李曾婷.站在清洁电器的风口,扫地机器人该如何破局?[J]. 电器,2023,04:22-24.

[2] 陆小慧,刘勇. 一种基于人工智能的智能机器人控制系统[J]. 广东通信技术,2023,09:28-30+67.

[3] 叶鲁斌,刘皓月,张纪元,李云飞,于明杨,王港,陈震. 家居环境中的智能扫地机器人设计[J]. 计算机辅助设计与图形学学报,2023,35(2):262-272.

[4] 梁诚,梁长成,蓝国财,黄苏军,吴树添,黄爱玉,李嘉静,马永霞.基于STC52 单片机的智能扫地机器人的设计[J].电子制作,2023,4:43-35+60.

基金项目:

2023年湖南省大学生创新创业训练计划项目“智能扫地机器人”项目(项目序号: 3822)。

作者简介:

姜 佳(2002-),女,本科,自动化;

罗涨伟(2002—),女,本科,自动化;

通讯作者:

李新君(1980—),男,讲师,博士研究生,研究方向为自动控制、智能控制.