本文主要是介绍基于STM32的智能垃圾分类识别系统设计(论文)_kaic,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
摘 要
智能垃圾分类技术逐渐受到了政府的重视和支持,越来越多的城市开始推行垃圾分类政策。因此设计一款能够对垃圾进行识别并分类的控制系统具有一定的现实意义。本设计采用STM32单片机作为整个系统的控制核心,利用K210开发板作为图像识别控制系统,两个核心采用UART串行通信方式连接。对于垃圾训练集采用K最近邻分类法对MAIX BIT官网提供的训练集进行训练,得到的样本作为库导入SD卡中。本设计具有人体检测模块、容量检测模块、垃圾仓/门控制模块以及语音播报模块,分别采用HC-SR501人体红外传感器、对射式红外传感器、SG90舵机以及WT588D作为各模块的主要工作元件。通过采用python语言在Maixpy IDE中对图像识别分类控制系统进行编译,并采用C语言对整个控制系统进行程序编译,实现了能够在有人时打开垃圾总门,并对放置的垃圾进行类型识别,若对应垃圾仓未满时,根据识别结果开启所对应的垃圾仓门。实现了对垃圾分类识别和控制的智能化、便捷化。
关键词:垃圾分类;单片机;K210开发板;图像识别;语音播报
Abstract
Intelligent garbage classification technology has gradually received the attention and support of the government, and more and more cities began to carry out the garbage classification policy. Therefore, it is of certain practical significance to design a control system that can identify and classify the garbage. This design adopts STM 32 SU as the control core of the whole system, uses K210 development board as the image recognition control system, and the two cores are connected by UART serial communication. For the garbage training set, the K-nearest neighbor classification method is used to train the training set provided by the MAIX BIT official website, and the obtained samples are imported into the SD card as libraries. This design has human body detection module, capacity detection module, garbage bin / door control module and voice broadcast module, using HC-SR 501 human infrared sensor, radiation infrared sensor, SG 90 steering machine and WT588D as the main working components of each module. By using python language in Maixpy IDE to compile the image recognition classification control system, and use C language for the whole control system, can open the garbage door when someone, and put the garbage type identification, if the corresponding trash is not full, according to the corresponding trash door identification results. The identification and control of garbage classification are intelligent and convenient.
Key words: garbage classification; SCM; K210 development board; image recognition; voice broadcast
目 录
摘 要
Abstract
1 绪论
1.1 研究背景
1.2 研究目的及意义
1.2.1 研究目的
1.2.2 研究意义
1.3 国内外研究现状
1.3.1 国外研究现状
1.3.2 国内研究现状
1.4研究内容及方法
1.4.1研究内容
1.4.2 研究方法
1.5 拟解决问题
2 系统构成及方案设计
2.2 硬件系统整体结构设计
2.3 主控模块选择
2.3.1 采用Arduino
2.3.2 采用单片机
2.4 识别模块选择
2.4.1 采用Open MV模块
2.4.2 采用K210模块
2.5 人体检测模块选择
2.6 容量检测模块选择
2.7 驱动模块选择
3 智能垃圾分类识别系统硬件电路设计
3.1 STM32F103C8T6简介
3.2 识别模块通讯方式选择
3.2.1 三种通信方式
3.2.2 UART串行通信
3.2.3 串行通信的实现
3.2.4 串行通信的仿真
3.3 人体检测模块
3.3.1 HC-SR501工作原理
3.3.2 人体检测模块电路设计
3.4 容量检测模块
3.4.1 红外对管工作原理
3.4.2 容量检测模块电路设计
3.5 垃圾仓/门驱动模块
3.5.1 SG90舵机工作原理
3.5.2 垃圾仓/门驱动电路设计
3.6 语音播报模块电路设计
3.6.1 WT588D工作原理
3.6.2 语音播报模块电路设计
4 智能垃圾分类识别设计
4.1 开发板简介
4.2 训练集简介
4.3 K最近邻分类法简介
4.4 训练流程设计
5 智能垃圾分类识别系统软件部分设计
5.1 控制系统主程序
5.2 识别控制系统主程序
5.3 人体检测子程序
5.4 仓门控制子程序
6 系统调试
6.1 软件调试
6.2 仿真调试
结论
参考文献
致谢
附录
1 绪论
1.1 研究背景
垃圾分类装置的设计源于对环境保护和可持续发展的迫切需求。随着城市化和人口增长,垃圾产生量不断增加,垃圾的处理和回收成为一项重要任务。传统的垃圾处理方法效率低下、资源浪费且对环境造成了严重的污染。为了解决这一问题,垃圾分类装置被设计出来,旨在通过自动化和智能化技术,将垃圾分为可回收物、有害垃圾、湿垃圾等不同类别,从而提高回收率、减少污染、节约资源,并促进环境可持续发展。这样的设计背景以人们对环境保护和资源利用的关注为基础,力图实现更加高效、便捷和可持续的垃圾管理体系。
1.2 研究目的及意义
1.2.1 研究目的
对智能垃圾分类装置的硬件和软件设计,智能垃圾分类在社会、经济和政策方面也得到了进一步的推广和应用。在社会方面,越来越多的人开始关注垃圾分类和环保问题,有更多的人开始采取主动措施,如分类投放垃圾、回收利用、减少浪费等,同时也有越来越多的社会组织和志愿者参与到城市垃圾分类和环保活动中。在经济方面,智能垃圾分类技术不仅可以降低城市垃圾处理的成本,同时也可以促进垃圾回收和资源再利用,增加相关产业的发展和就业机会。
1.2.2 研究意义
智能垃圾分类装置的意义在于帮助解决城市垃圾分类和处理问题。随着城市化的进程加速,城市垃圾量也日益增加,如何高效地分类和处理垃圾成为了一个迫切的问题。智能垃圾分类装置通过运用物联网、传感器、人工智能等技术手段,能够对垃圾进行智能化分类、回收、处理,具有以下几个意义:
1.提高垃圾分类的准确性和效率。传统的垃圾分类需要人工干预,因此分类效率较低,而且分类标准存在一定的主观性,智能垃圾分类装置可以根据物体的形状、颜色、材料等特征自动进行分类,可以避免人为干扰导致的分类错误。
2.实现垃圾资源化利用。智能垃圾分类装置可以将可回收垃圾、有害垃圾、湿垃圾等不同类型的垃圾分别回收处理,可以有效地促进资源的循环利用,降低环境污染。
3.减轻城市垃圾处理压力。智能垃圾分类装置可以将垃圾分类处理得更细致,有助于降低垃圾处理的成本,缓解城市垃圾处理压力,同时也可以提高城市居民的环境意识和垃圾分类意识。
4.促进城市可持续发展。智能垃圾分类装置的应用可以帮助城市实现可持续发展,减少环境污染、提高资源利用率,有助于推进绿色发展和循环经济,为城市的长期发展奠定基础。
1.3 国内外研究现状
1.3.1 国外研究现状
智能垃圾分类技术主要需要用到机器学习、深度学习等技术。目前已经有很多研究机构和企业在这个领域进行了深入研究,提出了很多创新性的解决方案。例如,麻省理工大学相关学者利用卷积神经网络(CNN)来进行垃圾图像分类,利用循环神经网络(RNN)来对垃圾进行文本描述分类等等。
1.3.2 国内研究现状
智能垃圾分类装置的传感器、机器视觉、人工智能等方面的技术已经非常成熟,目前已经有多家国内外企业推出了自己的智能垃圾分类产品,如小米、华为、腾讯、京东等。这些产品主要采用的是多传感器融合、图像处理、机器学习等技术,能够自动识别并分类垃圾。
一些研究机构还在探索如何将智能垃圾分类技术与智慧城市建设、环境监测等技术结合起来,从而更好地应对城市垃圾处理和环境保护等方面的问题。总体来说,智能垃圾分类技术已经取得了一定的进展,但是仍然存在着一些挑战,如垃圾分类数据不够全面、质量不够高、分类准确率不够高等问题。未来随着技术的不断进步和应用的不断扩大,智能垃圾分类技术有望在城市垃圾处理和环保方面发挥越来越大的作用。
1.4 研究内容及方法
1.4.1 研究内容
本文针对智能垃圾分类识别控制系统进行设计,主要利用单片机和K210设备作为整个控制系统的硬件设备。
首先对智能垃圾分类系统的构成以及整体方案进行设计及选择,主要包括主控模块、识别模块、人体检测模块、容量检测模块、舱门驱动模块等。其次对整个系统的硬件电路部分进行设计,由于本设计采用的是两块MCU,一块为图像识别MCU,另一块为控制系统部分的STM32 MCU,另外对于人体检测模块、容量检测模块、舱门驱动模块以及语音播报模块进行电路设计;另外对于智能垃圾分类识别,即图像识别模块如何实现的进行阐述。主要采用的是K210视觉开发板(maixpy bit)的识别过程以及所采用到的算法进行介绍,本设计主要采用K最邻近分类算法作为垃圾训练算法,采用maix hub模型训练平台找到了平台提供的“Self_Learning_Classifier”自学习分类器;接下来对于智能垃圾分类识别系统的软件实现部分进行设计,包括系统主程序以及各部分子程序,对于垃圾识别部分采用的是Python语言进行设计,利用Maixpy IDE脚本编辑器对程序进行编译;垃圾控制部分采用的是C语言进行设计,利用Keil UDK软件;最终通过Proteus 8.9软件建立智能垃圾分类识别系统的仿真设计,由于仿真无法对识别模块进行模拟,因此该部分通过按键代替,其余功能能够按照预期设计实现。
1.4.2 研究方法
本设计采用以下研究方法:
1.文献综述法:通过查阅国内外相关学者对于垃圾分类、垃圾分类处理算法、硬件设计以及软件设计等相关内容,构建智能垃圾分类识别系统的整体框架。
2.硬件调试法:在设计完整体硬件电路之后,通过AD15软件自带的调试方法查找硬件电路引脚名称、电源极性等是否出现问题;
3.仿真调试法:通过proteus 8.9软件建立垃圾分类识别系统,对仿真进行描述以及分析,确定本设计的可行性。
1.5 拟解决问题
1.利用红外传感器检测人体,以利用红外反射原理进行垃圾桶顶部桶盖的自动合闭工作;
2.具有图像识别分类功能,对可回收垃圾、有害垃圾、厨余垃圾、其他垃圾进行分类;
3.对每次投放垃圾进行容量检测;
4.具有语音播报功能,对每次投放的垃圾进行识别后,能够播报其垃圾种类。
5.对整体电路、程序进行设计;
6.了解垃圾分类算法的基本原理,完成系统调试。
2 系统构成及方案设计
2.2 硬件系统整体结构设计
依据上述功能,本设计考虑采用两块MCU作为整个控制系统的开发板,分别为控制图像分类识别和控制垃圾箱检测和驱动的两部分。两块MCU采用串口通讯的方式进行连接,图像分类识别的MCU将识别结果传输控制系统,由控制系统根据此结果执行相对应的功能,即人体检测、容量检测、舱门控制、语音播报等。整体设计框图如图2-1所示:
图2-1 系统整体设计框图
2.3 主控模块选择
2.3.1 采用Arduino
树莓派是一款功能非常强大的控制模块,可以当作一种小型主机使用,其在处理速度、性能与其它控制板具有非常大的优势,因此其主要适用于可靠性较高、处理速度快的场景中,另外该控制板的价格非常昂贵。
2.3.2 采用单片机
单片机是一种高性能芯片,其强大的集成、运算、扩展等优良性能是其它单片机所不能比拟的。该芯片工作时频能够达到72MHz,而随着工作时频的提升,所带来的问题必将是高功耗。
单片机与Arduino控制模块、树莓派相比,在硬件设计、软件设计都具有一定的优势,该控制模块接口种类丰富,开源文件较多,在利用arduino进行软件设计时,只需要在库文件中找到Arduino即可。可是对于本设计的智能垃圾分类识别分类系统来说,采用Arduino价格比较昂贵,性价比较低;而采用STM32单片机,既能够实现整个控制系统的功能,价格低廉且开源程序较多。因此本设计选择STM32系列单片机作为控制模块。
2.4 识别模块选择
2.4.1 采用Open MV模块
采用Open MV模块对垃圾进行识别,Open MV官方为数字识别提供了一个教程,在该教程的基础上进行一定程度上的改进就能够实现本设计的垃圾识别。但是通过实际发现,而由于垃圾种类众多,采用Open MV模块对其进行识别,其处理速度相对较慢,因此对于垃圾进行识别最好采用卷积神经网络算法对此进行改进,这样能够进一步提升数字识别的正确率以及速度。
2.4.2 采用K210模块
采用K210对垃圾进行类型识别,这个方案需要在Maixpy IDE软件上进行模型训练,首先通过在anoconad使用conda create命令创建虚拟环境,其次对模型进行建立和训练,在这一环节通常采用KNN算法对模型继续搭建,以此提高识别精度。
考虑自身使用情况,KNN算法较容易掌握,卷积神经网络算法虽然识别精度稿,但是其过程较为复杂,不易实现。因此本设计采用K210视觉开发板(maixpy bit)作为识别模块。
2.5 人体检测模块选择
为了实现当有人体靠近时,打开垃圾桶门这个功能,必须要采用一款传感器用于检测人体。通常情况下,在我们生活的环境中,任何物体都会相环境释放一定数量的红外光谱信号,不同物体所能产生信号的峰值是不同的,红外光谱的峰值是由物体的性质以及物体的温度所决定的,同时不同物体释放的红外信号的能量是不一样的,这也就导致了波长会不一样。可以采用热释红外传感器。
通过调节热释红外传感器的阀值,能够改变传感器的灵敏度,也就是所能接收到信号的范围。将其调整至一个较为合适的阀值时,当人体经过红外传感器时,由于人体表面的温度是37℃,与周围环境之间存在一定的差值,这就使得红外传感器能够检测出这个差值,并判断是有人通过,通过内部电路设计,对外输出高电平及实现传感器的控制过程。
2.6 容量检测模块选择
红外对管在对物体检测以及障碍物检测中得应用较为广泛。红外对管主要包括两部分,一部分是发射端、另一部分是接收端,其工作特性是不断向外发射红外射线,其红外射线是不能够被肉眼看见;红外对管主要分为两种,其中一种是直射,另一种是反射,反射式红外对管是计算发射红外与接受红外信号的时间,来判断是否有物体。根据本设计中的容量检测这个功能,采用反射式红外对管较为合适;同时红外对管是根据工作电流得调制信号进行工作的,对于外界环境所产生得扰动是比较小的;并且在本设计中,对物体进行检测的距离大致为1-2cm,红外对管对小距离的物体检测较为合适。
2.7 驱动模块选择
根据本设计的垃圾分类功能,本设计考虑采用舵机来控制垃圾仓门的开启。其主要包括垃圾门和垃圾仓门两部分,本设计均采用舵机来实现。舵机本身就是一种伺服电机,其工作方式主要是通过PWM信号来控制舵机工作,同时舵机能够实现0°-180°范围内旋转功能,而本设计功能,可以通过编写程序,控制舵机的PWM调制信号使舵机的旋转角度在0°-90°范围内,当无垃圾时,舵机在0°,有垃圾时,对应舱门的舵机在90°。
这篇关于基于STM32的智能垃圾分类识别系统设计(论文)_kaic的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!