
+

充满个性化的商家在硬核之风的场地内,开展潮流与科技的碰撞!
各种造物节限定款商品和体验将在此首发,且会以国风、潮流、设计、科技、美食五大主题进行呈现。

喵家在造物节前不断更新展会信息,敬请关注哦~
前段时间,因为“垃圾分类”小喵在微博算是火了一把!
大V们争相报道。。。
摄影:新浪媒体
热度超过几千万,现在保守估计已经过亿了吧!

为什么“垃圾分类”现在这么火热~
听听下面小朋友的自述吧

其实垃圾分类也很简单!
垃圾分类装置主要分为两部分。
识别部分为摄像头与支架装置,摄像头的数据传到到电脑进行机器学习特征提取分类。执行部分为4个可自动开合的垃圾桶装置与主控板,主控板用当下比较火的Microbit,电脑控制Microbit从而控制舵机的开合。
本项目由于篇幅比较长,分为上下两篇,上篇主要是项目的一些知识性讲解、机械搭建、电子连接。下篇主要是软件的操作,设计机械学习,软件在线控制与整体项目的调试。
如果有关注喵家的友友可以发现,喵家除了硬件产品比较有特色外,图形化编程软件功能也是非常强大,除了涵盖Scratch官方的所有功能意外,人工智能与机器学习的功能尤为突出。喵家Learn上连载了很多关于人工智能和机器学习的教程,很多爱好者和老师也进行了学习,大部分都已经掌握了使用方法,但仍然还不知道如何结合实际做项目。应群众要求,不仅仅讲讲纯软件,要尽量结合硬件,做点贴近生活的项目。
最近网上上海的垃圾分类火了一把,本文利用喵家教授的机器学习相关的知识和技术,做出通过摄像头能自动给垃圾进行分类的装置。
项目适合人群
中小学生及广大爱好者
项目难度
机械搭建:三颗星
电子接线:两颗星
软件编程:五颗星
此项目要求有一定的基础,至少在Kittenblock里面会在线控制Microbit以及掌握了喵家人工智能机器学习的基础。
时间准备
上篇:
机械结构制作与搭建:30mins
电子接线:10mins
下篇:
软件编程:40mins
材料准备
Microbit主控板,USB数据线
能量魔块十合一套装(能量魔块主控盒、电池盒、4xGeekservo灰舵机、乐高结构等等)
垃圾分类垃圾桶+分类卡片。
常见杜邦线4PIN以上(用于拉起垃圾盖)
USB摄像头和摄像头支架(用于识别种类卡片,不推荐用电脑自带摄像头的原因是,分离式的摄像头录入图片数据,调整USB摄像头为俯视状态录入会更方便些)
工具准备
热熔胶枪(无型号要求,能用的就行,我自己用的也就是十来块的热熔胶枪,套件不含)
美工刀或者小电钻(无型号要求,用于给垃圾桶开个小孔,绑杜邦线绳子,套件不含)
使用工具必须小心注意,尤其是美工刀,中小学生必须在家长或者老师的指导下进行使用。


软件准备
Kittenblock图形化编程软件(1.8.4h以上)
Microbit串口驱动安装(Kittenblock软件界面小齿轮上可进行安装)

项目原理
使用Kittenblock的机器识别通过摄像头进行数据录入,训练机器模型。当识别到对应的图片返回图片内容的名字。再通过Scratch的控制进行逻辑判读处理。
Kittenblock可以与Microbit进行在线通讯,控制舵机的运动
简单总结一句:机器学习处理图片数据,进行逻辑判断控制硬件。
学习预备
喵家Learn上有机器学习的入门帖子,可以先自行学习,只需要掌握特征提取器的录入与识别即可。具体帖子请参考:http://learn.kittenbot.cn/zh_CN/latest/machinelearning/09%E7%89%B9%E5%BE%81%E6%8F%90%E5%8F%96%E5%99%A8_%E8%AF%86%E5%88%AB%E7%89%A9%E4%BD%93.html
机器学习仅仅这个项目的软件的其中部分,我们还需要学习Kittenblock如何在线控制Microbit(本项目的主控板为Microbit,所谓的在线控制指通过串口控制Microbit) 具体帖子请参考:
http://learn.kittenbot.cn/zh_CN/latest/microbit/microbit_kittenblock/index.html
Scratch基础是必须的,掌握Scratch的一些基础操作与常用积木块的操作。这部分Scratch基础可以网上自行找资料进行学习。
1
机器学习原理
引入
机器学习原理比较复杂。这里先引入一个例子。
大家都学过二元一次方程,二元一次方程可以在平面坐标系上表示。

我们得知任意的(x,y)都能在坐标上可以找到其对应的点。可以将平面的点归为三大类:
点在直线上
点在直线的上方
点在直线的下方
机器学习中,图像、音频、文字、数字这些本质还是数据,我们可以通过特定的算法和特定的数学方式将他们进行转化成同类型的数据,从而可以对数据集进行分类学习,得到某类数据集的特征。可以简单理解为是“高阶版本的二元一次方程”
特征分类概念
特征提取是计算机视觉和图像处理中的一个概念。
它指的是使用计算机提取图像信息,决定每个图像的点是否属于一个图像特征。特征提取的结果是把图像上的点分为不同的子集,这些子集往往属于孤立的点、连续的曲线或者连续的区域。
因此可以简单理解为,机器学习的特征分类实际高阶的数据分类。
Kittenblock在线控制原理
Microbit在Kittenblock中恢复固件(恢复一个通讯固件),Microbit上自带USB串口芯片,电脑可以通过串口给Microbit下发通讯指令,进而可以控制Microbit的点阵屏、舵机等等各种电子器件。
机械搭建
机械搭建最主要就是将现有的垃圾桶改造成可以用舵机控制的(这也是DIY项目常用的做法,好处省成本,速度快,美观)。思路很简单,用舵机带动一根杜邦线,把垃圾盖拉起。当舵机往反方向转动时,控制垃圾盖关闭。
开孔
首先在垃圾盖钻一个小孔(你可以使用美工刀,我这里使用了小电钻),杜邦线恰好能穿过小孔即可。杜邦线在垃圾盖内侧需要热熔胶。同理另外三个垃圾盖按照相同的方法进行处理。

安装拉线
首先将杜邦线的另外一头剪掉,我们用剩下的那部分从垃圾盖的内部穿出到外表面。垃圾盖内部,用热熔胶把杜邦线和垃圾盖粘在一起。
用杜邦线穿过乐高摇臂零件的孔,不用打结或者打热熔胶,多穿几圈即可。
很有友友这里不明白,为什么一定要使用硬硬的杜邦线,我用普通的绳子不行吗?起到拉起效果的时候,这两种材料是没有什么区别的。但当垃圾盖闭合的时候,因为垃圾盖比较轻,无法依靠自身重力把盖子合上。杜邦线本身材质比较硬。所以在舵机的带动下,杜邦线提供一定的推力,使垃圾盖合上。


硅胶枪粘贴舵机
舵机这里采用是能量魔块套件里的舵机。这个舵机的优势是尺寸方正,可以与乐高结构件结合。可惜是我们的垃圾桶是没有乐高孔,我们也是借助热熔胶枪把舵机粘贴垃圾桶的背后侧壁上。
在舵机的凹陷涂上均匀的一层热熔胶,趁热把舵机粘贴到垃圾桶上。注意舵机的粘贴位置尽量保持一致。这样软件上的控制就可以保持四个都是一致了。


安装舵机摇臂
这个乐高摇臂也是能量魔块套装里面的乐高零件,取4个出来,安装到舵机的输出轴上

手动模拟
我们手动模拟下舵机拉线,直接摆动乐高零件,检查垃圾盖是否能被正常拉起

电子接线

主控盒与电池盒结合
能量魔块的一个优点就是,它们既是电子模块,又是机械机构件,所以拼装的时候会显得十分紧凑而美观。
电池盒的自锁开关记得打开,因为舵机的动力是由电池盒进行提供的。
能量魔块的主控是Microibt,采用主流的主控板可以减少用户的学习成本。

舵机接线
舵机的线序是由黄红黑组成,恰好对应主控盒背后的黄红黑插针。注意不要插错。舵机我们这边是接S1-S4
可回收物—>S1
有害垃圾—>S2
干垃圾 —>S3
湿垃圾 —>S4
尽量按照我的方式进行插接,方便程序的调试。

简单测试
机械和电子都接好了。这时候我们用usb数据线将Microbit和电脑连接。打开Kittenblock软件
恢复固件
恢复固件后,Microbit点阵屏上是显示流动的英文字符串。

连接串口
成功恢复固件后,点击连接,就可以看到Microbit的板子(如果找不到Microbit板子,可能是串口驱动没有安装)


编写简单的测试程序
这里编写控制垃圾桶盖开合的程序。

程序初始化舵机停在50度(为什么是50度,因为我测过这个角度,摇臂安装角度最好看)
首先先将乐高摇臂拆下来,因为需要初始化舵机的输出轴角度。如果不把摇臂给拆下来(4个都拆下来),有可能导致在转动的过程中,摇臂卡住了,导致舵机烧坏。
将舵机控制积木块拖拽出来,更改舵机的角度,并更改舵机的引脚
单击积木块,此积木块的指令就会立马执行。舵机输出轴就会转到50度的角度
另外三个积木块也单击下,初始化舵机的角度。

把乐高摇臂重新装回去,这样做就可以保证每个舵机在50度时,垃圾盖是关上的。这样程序上控制比较简单。
程序控制垃圾桶盖打开,这个过程中需要自己不断的调整角度,测试出最佳数值,我这边根据实际情况测出来90度左右效果最好。如果你的舵机安装方式和杜邦线拉线方式与我一致的,角度应该是差不多的。
设置舵机50度四个积木块,我们分别也点击下,保证指令执行和实物是对应的。

以上操作没有问题后,就把装置留着备用,下篇结合机器学习,就能把智能垃圾桶分类装置做出来。如果以上操作有问题,请再三检查,一般是操作有遗漏的问题。
2
温馨提示
因为本身这四个垃圾桶不是为智能垃圾桶而设计的,所以当盖子盖合时,它边缘是有卡扣的,所以会导致舵机拉动垃圾盖时很难拉动。所以这里我在垃圾桶与盖子配合的地方,粘了一些贴纸(随意),这样做可以阻止盖子与垃圾桶完全贴合,减少舵机开盖的力度。

总结
开展一个项目前,首先要考虑项目的难度对于自己是否合适,大概估算下项目所需的时间,否则项目很容易烂尾。
开展项目前,需要提前做一个初步的实施方案规划,硬件的选型,硬件选型建议从使用的可行性入手。之前遇到很多用户买了一个带摄像头的板子,然后就过来问怎么和我们软件对接上,这个是一个很典型新手硬件选型问题。
购买前首先你要对这个硬件有所了解,这个硬件是针对哪部分人群(如果针对开发者,如果你不是专业的人员,一般不推荐购买,上手难度很高)是用来做什么的,它的编程方式和软件是什么。我们这边必须理清一个概念,一个软件平台绝对不可能支持市面上的所有硬件。如果你选定了一个对于自己难度适中软件平台,这时候应该主动了解它支持的硬件有哪些,你的选型优先从支持的硬件列表选择。
硬件选型简单总结:
从自身的能力,优先选自己能用起来的硬件,其次再考虑硬件的价格
购买硬件前,先查查硬件是否有详细的使用资料是否有技术支持,这个对新手入门尤其重要。
硬件选项优先选择软件所支持的。
届时,小喵会在造物节和大家见面,到时候可要好好的体验下垃圾智能分拣机哦!!!

喵粉的问题奇妙百科时间
A:谷歌用人工智能技术预测病患死亡时间,到底是福是祸?
这种医疗算法应该是根据病患自身的免疫,身体的疾病程度,血液质量,脏器有无病损,来综合预测一个人的死亡时间,且预测评估正确的时间跨度会很大,精准预测病患死亡时间目前还不现实还无法实现“真正的落地”;科技的发展一定会使生活越来越便利!
B:机器学习工程师的面试应该如何准备 ?
一般会有:自身项目和实习,算法模型,结合实习项目聊一些knn,rnn等算法,对自己无监督,半监督和有监督的一些区别和思考。以及机器学习的应用背景以及对整个产业的影响等等
你需要掌握:
计算机科学基础和编程能力
概率论和统计
数据建模和评估
应用机器学习算法和库
软件工程和系统设计
C:机器学习的主要难点是什么?
机器学习是个好东西,但如何将人类的认知能力赋予给机器,是人类一直在努力的方向。当你在路上看到一条狗和一只猫,你能轻易分别出来,但是你应该如何告诉机器,教他们如何区分,这是一条狗,这是一只猫。加入喵家的学习,你会很容易入门,详情了解喵家课程!
D:你认为人工智能会威胁到人类吗?
从历史的发展历程来看,科技的每一次进步都带来了人类文明的提升和经济的增长,AI显然也正在让我们的生活变得更加便捷而美好。AI威胁论只是危言耸听吗?我们在害怕什么?
霍金曾说:“未来,人工智能可以发展出自我意志,一个与我们冲突的意志。”
其实意志并非一定要用生物大脑来作为载体,只要能够制造出巨型的矩阵,我们就能够创造思维,只要科技允许,完全有可能让AI拥有意志。
关于机器的反叛,从现今科技水平推断,还很遥远。目前无论是认为人工智能终将灭绝人类,还是对人工智能的发展过度悲观,其实都是围绕着强人工智能在做文章
E:JAYA的优缺点是什么?
java是一种面向对象的编程语言,优点是可移植性比较高,最初设计时就是本着一次编写到处执行设计的。可以开发各种应用程序和游戏,不过速度没有c++快,一般是不用java来编写应用程序和电脑游戏。
缺点就是开发难度较大了,开发效率不高,这并不影响广大java 爱好者的激情,因为java的跨平台优点和安全性较高,所以很多系统都是采用java编
和小喵一起学习吧!
1.QQ群
444193538
2.喵家论坛
https://bbs.kittenbot.cn/forum.php
3.我们的Kittenblock软件http://learn.kittenbot.cn/zh_CN/latest/kittenblock/index.html
4.小喵科技店铺
https://kittenbot.taobao.com/shop/view_shop.htm?tracelog=twddp&user_number_id=2830157417
5.哔哩哔哩课程系列
https://space.bilibili.com/25299911
人工智能教程系列
机器学习教程系列
机器学习5(轻量TensorFlow)教程系列
物联网教程系列
物联网系列暂时完结
kittenblock软件教程更新
系列一:kittenblock学习指南教程
系列二:下载与安装
分享给更多的人,加入我们吧!




