QQ登录

只需一步,快速开始

查看: 3879|回复: 3

[作品案例] 基于KNN算法的智能分类垃圾桶模型设计与制作

[复制链接]

该用户从未签到

3

主题

17

回帖

222

积分

高级创客

Rank: 3Rank: 3

积分
222
发表于 2020-10-5 07:32:47 | 显示全部楼层 |阅读模式
南京师范大学附属中学树人学校   作者唐羽萱  指导老师 陈杰
【项目背景】
2019年可以说是中国垃圾分类的元年,因为在这一年“上海垃圾分类于71日正式施行”而目前普遍使用的分类垃圾桶只是通过颜色和标签指示分类信息,在上海市垃圾分类试行期间,居委会大妈会站在公共垃圾桶旁边指导,“你是什么垃圾?”成为市民每天不得不经受的拷问。在这样一个大背景下,人们迫切需要一台能够智能分类的垃圾桶。于是我们设计了一款基于KNN算法的智能分类垃圾桶模型。
图1.jpg
file:///C:\Users\51991\AppData\Local\Temp\ksohtml12300\wps1.png

1智能分类垃圾桶
【项目展示】
file:///C:\Users\51991\AppData\Local\Temp\ksohtml12300\wps2.png
图2.jpg

2智能分类垃圾桶。
file:///C:\Users\51991\AppData\Local\Temp\ksohtml12300\wps3.png
图3.jpg

3操作面板
file:///C:\Users\51991\AppData\Local\Temp\ksohtml12300\wps4.png
图4.jpg

4垃圾识别
【功能简介】
(1)基于KNN算法识别,进行垃圾分类。
2)将垃圾放入识别区后,垃圾桶智能识别,分区投放。
3)当出现无法识别的垃圾后,人工强制学习识别。
4)灯光指示、语音播报,让垃圾分类投放更简单。
【硬件材料】
序号
名称
数量
1
Arduino Uno
1
2
IO 传感器扩展板 V7.1
1
3
HuskyLens AI 视觉传感器
1
4
数字大按钮
4
5
LED
1
6
9g金属舵机
2
7
小喇叭
1
8
螺丝
若干
9
铜柱
若干
10
奥松板
若干
11
7.4V锂电池
1
1项目器材清单
【制作过程】
1.KNN算法
KNN(k-nearest neighbors)作为一个入门级模型,既简单又可靠,对非线性问题支持良好,虽然需要保存所有样本,但是仍然活跃在各个领域中,并提供比较稳健的识别结果KNN就是在特征空间中找出最靠近测试样本的k个训练样本,然后判断大多数属于某一个类别,那么将它识别为该类别。
file:///C:\Users\51991\AppData\Local\Temp\ksohtml12300\wps5.jpg
图5.png

5 KNN分类原理示意图
针对测试样本 Wu,想要知道它属于哪个分类,就先for 循环所有训练样本找出离 Wu 最近的 K个邻居(假设k=5),然后判断这 K个邻居中,大多数属于哪个类别,就将该类别作为测试样本的预测结果,如上图有4个邻居是色,1是绿色,那么判断Wu的类别为红色
2.系统设计
我们设计的这款智能分类垃圾桶具备学习能力,可以通过学习记录相关垃圾分类,从而能够做到智能识别分类。并通过相应机械结构,把不同类的垃圾自动投放不同的垃圾桶中。对于垃圾桶不能识别的垃圾,可以通过人工方式强制定义所属类别,然后在进行垃圾分类投放。
file:///C:\Users\51991\AppData\Local\Temp\ksohtml12300\wps6.jpg
图6系统功能.png

6系统设计
使用流程:定义垃圾分类,垃圾学习初始化——垃圾识别(可识别的垃圾)——
2.结构设计
垃圾桶结构设计我将其划分三部分,第一部分是垃圾桶结构,第二部分垃圾分类投放结构,第三部分视觉识别传感器支架结构。本次结构件设计采用lasermaker设计,激光切割出相关结构件。
1)垃圾桶结构设计
垃圾桶整体结构设计上,采用Lasermake中的快速造盒功能,生成一个盒体的快速原型,再对其细节进行修改,具体如下所示:
后背板:在背板位置上增加传感器支架固定孔位(①处),主控安装孔位(②处)和分类投放装置固定件支架孔位(③处)。
file:///C:\Users\51991\AppData\Local\Temp\ksohtml12300\wps7.jpg
图7:后背板.png

7后背板
左右侧板:左右侧板修改如下所示,右侧板留有主控的外置电源接孔和分类投放装置固定件支架孔位(①处),左侧板留有分类投放装置固定件支架孔位(②处)
file:///C:\Users\51991\AppData\Local\Temp\ksohtml12300\wps8.jpg
图8:左右侧板.png

8左右侧板
前面板:前面板修改如下图所示,主题装饰画,由外部导入(①处),垃圾入口处(②处),舵机安装孔(③处),喇叭安装孔(④处)按钮及指示灯安装孔(⑤处)。
file:///C:\Users\51991\AppData\Local\Temp\ksohtml12300\wps9.jpg
图9前面板.png

9前面板
分类投放支架:传感器支架修改如下所示,垃圾推送舵机安装孔位(①处),分类投放装置旋转空间(②处)。
file:///C:\Users\51991\AppData\Local\Temp\ksohtml12300\wps10.jpg
图10:分类投放装置支架.png

10分类投放支架
垃圾桶前挡板:垃圾桶前挡板添加标题“二哈垃圾桶”。
图11:前挡板.png
file:///C:\Users\51991\AppData\Local\Temp\ksohtml12300\wps11.jpg
11垃圾桶前挡板
分类垃圾桶:三个分类垃圾桶设计如下,采用前高后低的设计,确保垃圾可以落入垃圾桶内。前面板分别倒入图片形成雕刻图案(如①⑥),底板(②),后背板(③),左右侧板(④⑤)。
图12:分类垃圾桶.png
file:///C:\Users\51991\AppData\Local\Temp\ksohtml12300\wps12.jpg
12分类垃圾桶结构
垃圾推送结构:垃圾推送结构是使用舵机把识别出的垃圾推送至垃圾口内。推送杆(如①),增厚片(②)
file:///C:\Users\51991\AppData\Local\Temp\ksohtml12300\wps13.jpg
图13:推送.png
13垃圾推送结构
(2)分类投放结构设计:分类投放机械结构由舵机带动导流槽转向不同角度,向不同的垃圾桶倾倒垃圾。由于导流槽与舵机之间通过一个等腰直角的三角形连接件固定(如③)。因此导流槽左右侧导板,接近垃圾倾倒口处设计成切割掉一部分(如①处),导流槽底板设计(如②)。
file:///C:\Users\51991\AppData\Local\Temp\ksohtml12300\wps14.jpg
图14:分类投放装置.png
14导流槽结构
(3)视觉识别传感器支架结构设计:视觉识别传感器支架,可以调整视觉传感器与待识别垃圾之间的距离。固定视觉识别传感器孔位在①处,调整高度孔在②处。
file:///C:\Users\51991\AppData\Local\Temp\ksohtml12300\wps15.jpg

15传感器支架结构
3.电路连线
系统电路连接如图所示,HuskyLens AI视觉识别传感器接I2C口,LED接D10口(识别指示灯),确认倾倒按钮接D9口,定义有害垃圾按钮接D7口,定义厨余垃圾按钮接D6口,定义可回收垃圾接D5口,分类投放舵机接D3口,推送垃圾的舵机接D12口。
图16:垃圾桶电路连线 拷贝.jpg
file:///C:\Users\51991\AppData\Local\Temp\ksohtml12300\wps16.png
16电路连线
5.代码编写
代码编写如下所示分为系统主程序和有害垃圾、厨余垃圾、可回收垃圾、定义处理四段子程序。
file:///C:\Users\51991\AppData\Local\Temp\ksohtml12300\wps17.png
图17主程序 拷贝.jpg
17主程序
有害垃圾的处理过程:垃圾分类投放舵机转向相应的角度,等待1秒后,垃圾推送舵机执行转动,识别指示灯亮起,哈士奇屏幕显示相应垃圾类型,播放语音提示。等待2秒后,指示灯关闭,分类投放机构复位,等待1秒,推送机构复位。可回收垃圾、厨余垃圾处理与之类似。
file:///C:\Users\51991\AppData\Local\Temp\ksohtml12300\wps18.jpg

18有害垃圾处理程序
人工强制学习处理:对于识别过程中识别为ID1的情况以及在不同的ID之前切换的情况,我们将其定义为没有准确识别。这时可通过人工强制学习将其定义为指定的垃圾类型。
file:///C:\Users\51991\AppData\Local\Temp\ksohtml12300\wps19.jpg
19人工强制学习程序

6.设备组装
1步:拿出识别指示LED用螺丝螺母固定如下图所示,将LED模块电路板垫高一断距离,避免电路板上的焊点与垃圾桶体直接接触。
file:///C:\Users\51991\AppData\Local\Temp\ksohtml12300\wps20.png
图20.jpg
20垫高模块电路板
2步:将上步中的LED按垃圾桶前面板对应孔位装入,再拿出2个螺母将其固定。
file:///C:\Users\51991\AppData\Local\Temp\ksohtml12300\wps21.png
图21.jpg
21固定LED模块
3步:依次对几个按钮按上述方法进行安装在前面板上。
file:///C:\Users\51991\AppData\Local\Temp\ksohtml12300\wps22.png
图22.jpg
22安装各按钮
4步:将舵机和音箱安装到前面板上。
file:///C:\Users\51991\AppData\Local\Temp\ksohtml12300\wps23.png
图23.jpg
23安装舵机和音箱
5步:取出舵机舵棒,将其放入垃圾推送结构中,并用胶水粘贴增厚片如下图所示。
file:///C:\Users\51991\AppData\Local\Temp\ksohtml12300\wps24.png
图24.jpg
24安装舵棒
file:///C:\Users\51991\AppData\Local\Temp\ksohtml12300\wps25.png
图25.jpg
25胶水粘贴增厚片
6步:将第5步中安装好的垃圾推送结构,安装到前面板舵机上。
图26.jpg
file:///C:\Users\51991\AppData\Local\Temp\ksohtml12300\wps26.png
26安装推送结构
7步:取出后背板和Arduino Uno主控器,先在背板上对应Uno的孔位,固定铜柱。
file:///C:\Users\51991\AppData\Local\Temp\ksohtml12300\wps27.png
图27.jpg
27固定Uno的铜柱
8步:Uno主控对应卡在铜柱上,用螺丝固定。再拿出拓展板叠加到Arduino主控之上。
file:///C:\Users\51991\AppData\Local\Temp\ksohtml12300\wps28.png
图28.jpg
28固定Arduino主控
file:///C:\Users\51991\AppData\Local\Temp\ksohtml12300\wps29.png

图29.jpg 29叠加拓展板
9步:拿出HuskyLens AI 视觉传感器及支撑架、螺丝及调整支架
file:///C:\Users\51991\AppData\Local\Temp\ksohtml12300\wps30.png

图31.jpg 30固定HuskyLens AI 视觉传感器
file:///C:\Users\51991\AppData\Local\Temp\ksohtml12300\wps31.png
31安装再调整支撑架上
file:///C:\Users\51991\AppData\Local\Temp\ksohtml12300\wps32.png
图32.jpg
32
10步:将第9步中的HuskyLens AI 视觉传感器组合体与后背板选择合适的安装孔位进行安装。
file:///C:\Users\51991\AppData\Local\Temp\ksohtml12300\wps33.png

图33.jpg
33固定HuskyLens AI 视觉传感器
file:///C:\Users\51991\AppData\Local\Temp\ksohtml12300\wps34.png
图34.jpg
34从垃圾桶背板走线孔穿线与传感器连接
11步:拿出分类投放机构固定件安装在后背板上。
file:///C:\Users\51991\AppData\Local\Temp\ksohtml12300\wps35.png
图35.jpg
35安装分类头饭机构固定件
12步:组装垃圾分类投放结构,用热熔胶将垃圾分类投放结构件组合成导流槽。再将连接件与舵机导流槽粘合成一体。
图36.jpg
file:///C:\Users\51991\AppData\Local\Temp\ksohtml12300\wps36.png36热熔胶粘和导流槽
file:///C:\Users\51991\AppData\Local\Temp\ksohtml12300\wps37.png
图37.jpg
37组装垃圾分类结构
file:///C:\Users\51991\AppData\Local\Temp\ksohtml12300\wps38.png
图38.jpg
38安装垃圾分类机构
file:///C:\Users\51991\AppData\Local\Temp\ksohtml12300\wps39.png
图39.jpg
39注意安装时,电路连线整理整齐。
13步:安装垃圾桶前档板
file:///C:\Users\51991\AppData\Local\Temp\ksohtml12300\wps40.png
图40.jpg
40安装垃圾桶前挡板
14步:将切割好的垃圾桶结构件组装成不同的桶。
file:///C:\Users\51991\AppData\Local\Temp\ksohtml12300\wps41.png
图41.jpg
41垃圾桶结构件
file:///C:\Users\51991\AppData\Local\Temp\ksohtml12300\wps42.png
图42.jpg
42组装完成的垃圾桶
15步:垃圾桶整体组装完成。
file:///C:\Users\51991\AppData\Local\Temp\ksohtml12300\wps43.png
图43.jpg
43垃圾桶整体效果

7.测试与运行
我们在系统中默认将ID1定义为空白(垃圾桶前面板);ID2定义为有害垃圾;ID3定义为可回收垃圾;ID4定义为厨余垃圾。在使用前,首先需要让垃圾桶进行垃圾的学习,建立一个最初的基础模型。
1)学习垃圾:按下哈士奇右上角学习按钮,分别学习定义ID1-4(场景、有害垃圾、可回收垃圾、厨余垃圾)
file:///C:\Users\51991\AppData\Local\Temp\ksohtml12300\wps44.png
图44.jpg
44定义空白场景
学习ID1(空白场景)后,松开学习按钮,屏幕提示如需继续学习再按一次,请务必在倒计时结束前按下按钮继续学习。
file:///C:\Users\51991\AppData\Local\Temp\ksohtml12300\wps45.png
图45.jpg
45是否继续学习
同理完成ID2、ID3、ID4的连续学习,即可进入识别模式。file:///C:\Users\51991\AppData\Local\Temp\ksohtml12300\wps46.png
图46.jpg
46定义学习ID2有害垃圾
file:///C:\Users\51991\AppData\Local\Temp\ksohtml12300\wps47.png
图47.jpg
47定义学习ID3可回收垃圾
file:///C:\Users\51991\AppData\Local\Temp\ksohtml12300\wps48.png
图48.jpg
48定义学习ID4厨余垃圾
(2)识别垃圾:学习模式下倒计时结束后,放入相应的垃圾到识别区域后,即可对已学习的及其已学习相识的垃圾进行识别。
file:///C:\Users\51991\AppData\Local\Temp\ksohtml12300\wps49.png
图49.jpg
49识别ID2有害垃圾
file:///C:\Users\51991\AppData\Local\Temp\ksohtml12300\wps50.png
图50.jpg
50识别ID3可回收垃圾
file:///C:\Users\51991\AppData\Local\Temp\ksohtml12300\wps51.png
图51.jpg
51识别ID4厨余垃圾
3)人工学习:KNN算法虽然简单有效,但带来的不利因素就是当学习的样本不够多时候,识别的效率不高。此时可以通过人工学习方式,强制指定垃圾种类。例如下方的轮胎,机器识别为ID2有害垃圾,而我们期望的是识别ID3可回收垃圾。此时可以通过按下可回收垃圾按钮,将该垃圾定义为ID3可回收垃圾。
file:///C:\Users\51991\AppData\Local\Temp\ksohtml12300\wps52.png
图52.jpg
52误识别为有害垃圾
file:///C:\Users\51991\AppData\Local\Temp\ksohtml12300\wps53.png

图53.jpg 53人工定义学习种类
file:///C:\Users\51991\AppData\Local\Temp\ksohtml12300\wps54.png
图54.jpg
54人工强制学习后的识别结果
4)确认倾倒:如果识别的结果正确,按下“确认倾倒”按钮,即可完成垃圾分类投放。
file:///C:\Users\51991\AppData\Local\Temp\ksohtml12300\wps55.png

55确认垃圾倾倒

图30.jpg
图55.jpg
图片18.png
图片19.png
回复

使用道具 举报

该用户从未签到

0

主题

2

回帖

26

积分

创客新人

Rank: 1

积分
26
发表于 2023-5-23 16:27:37 | 显示全部楼层
切割设计图有吗
回复 支持 反对

使用道具 举报

该用户从未签到

0

主题

52

回帖

281

积分

高级创客

Rank: 3Rank: 3

积分
281
发表于 2023-12-1 21:24:00 | 显示全部楼层
谢谢大佬!!!!!!!!!!!!!
回复

使用道具 举报

该用户从未签到

0

主题

46

回帖

100

积分

中级创客

Rank: 2

积分
100
发表于 2024-4-25 19:54:25 | 显示全部楼层
啊啊啊啊啊啊啊啊啊啊啊
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

激光创客社区

Laserblock社区      激光建模     设计图库

赛事专区      开源课程

Laserblock激光论坛是一个开源结构件的学习和分享平台。为创客,学生和老师提供了丰富的激光切割图纸、交流论坛、项目分享及学习教程。我们秉承开源、开放的理念,让分享产生更多价值。

Powered by 激光切割开源论坛 © 2010-2022 Thunder Laser

科创教育|CO2激光切割机|激光建模软件|Laserblock开源激光社区 ( 粤ICP备14004319号 )

GMT+8, 2024-11-22 03:56 , Processed in 0.046482 second(s), 30 queries .

快速回复 返回顶部 返回列表