基于STM32的智能垃圾分类识别系统设计(论文)_kaic

2024-04-17 19:52

本文主要是介绍基于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的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/912690

相关文章

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

基于人工智能的图像分类系统

目录 引言项目背景环境准备 硬件要求软件安装与配置系统设计 系统架构关键技术代码示例 数据预处理模型训练模型预测应用场景结论 1. 引言 图像分类是计算机视觉中的一个重要任务,目标是自动识别图像中的对象类别。通过卷积神经网络(CNN)等深度学习技术,我们可以构建高效的图像分类系统,广泛应用于自动驾驶、医疗影像诊断、监控分析等领域。本文将介绍如何构建一个基于人工智能的图像分类系统,包括环境

认识、理解、分类——acm之搜索

普通搜索方法有两种:1、广度优先搜索;2、深度优先搜索; 更多搜索方法: 3、双向广度优先搜索; 4、启发式搜索(包括A*算法等); 搜索通常会用到的知识点:状态压缩(位压缩,利用hash思想压缩)。

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

让树莓派智能语音助手实现定时提醒功能

最初的时候是想直接在rasa 的chatbot上实现,因为rasa本身是带有remindschedule模块的。不过经过一番折腾后,忽然发现,chatbot上实现的定时,语音助手不一定会有响应。因为,我目前语音助手的代码设置了长时间无应答会结束对话,这样一来,chatbot定时提醒的触发就不会被语音助手获悉。那怎么让语音助手也具有定时提醒功能呢? 我最后选择的方法是用threading.Time

AI hospital 论文Idea

一、Benchmarking Large Language Models on Communicative Medical Coaching: A Dataset and a Novel System论文地址含代码 大多数现有模型和工具主要迎合以患者为中心的服务。这项工作深入探讨了LLMs在提高医疗专业人员的沟通能力。目标是构建一个模拟实践环境,人类医生(即医学学习者)可以在其中与患者代理进行医学

怎么让1台电脑共享给7人同时流畅设计

在当今的创意设计与数字内容生产领域,图形工作站以其强大的计算能力、专业的图形处理能力和稳定的系统性能,成为了众多设计师、动画师、视频编辑师等创意工作者的必备工具。 设计团队面临资源有限,比如只有一台高性能电脑时,如何高效地让七人同时流畅地进行设计工作,便成为了一个亟待解决的问题。 一、硬件升级与配置 1.高性能处理器(CPU):选择多核、高线程的处理器,例如Intel的至强系列或AMD的Ry

智能交通(二)——Spinger特刊推荐

特刊征稿 01  期刊名称: Autonomous Intelligent Systems  特刊名称: Understanding the Policy Shift  with the Digital Twins in Smart  Transportation and Mobility 截止时间: 开放提交:2024年1月20日 提交截止日

【STM32】SPI通信-软件与硬件读写SPI

SPI通信-软件与硬件读写SPI 软件SPI一、SPI通信协议1、SPI通信2、硬件电路3、移位示意图4、SPI时序基本单元(1)开始通信和结束通信(2)模式0---用的最多(3)模式1(4)模式2(5)模式3 5、SPI时序(1)写使能(2)指定地址写(3)指定地址读 二、W25Q64模块介绍1、W25Q64简介2、硬件电路3、W25Q64框图4、Flash操作注意事项软件SPI读写W2

基于 YOLOv5 的积水检测系统:打造高效智能的智慧城市应用

在城市发展中,积水问题日益严重,特别是在大雨过后,积水往往会影响交通甚至威胁人们的安全。通过现代计算机视觉技术,我们能够智能化地检测和识别积水区域,减少潜在危险。本文将介绍如何使用 YOLOv5 和 PyQt5 搭建一个积水检测系统,结合深度学习和直观的图形界面,为用户提供高效的解决方案。 源码地址: PyQt5+YoloV5 实现积水检测系统 预览: 项目背景