塔城地区网站建设_网站建设公司_一站式建站_seo优化
2025/12/20 15:13:26 网站建设 项目流程

2 MATLAB与CNN的特点和应用

2.1 MATLAB软件
2.1.1MATLAB的简介
MATLAB全称是matrix laboratory,意思是矩阵实验室,它是美国MathWorks公司出品的商业数学软件,主要用于开发算法、数据的可视化、做数据的分析以及用作数值计算的高科技计算环境。它可以进行矩阵运算、对数据和函数进行绘制、算法的设计、对图像的处理、用户界面的guide设计、与其他编程语言的程序连接等等,也支持与Arduino的交互连接,基本满足本设计的需求。
本设计主要使用的是MATLAB R2019a版本,相比于旧版本,某些函数的使用会有所不同,即旧版的函数需要两行代码实现,而新版本的便只需一行,在这里要值得注意。
2.1.2MATLAB的特点与应用
在MATLAB里面可以利用它自身的编辑器进行程序的编写并进行实验仿真,其编程的高效率且简单,能够及时发现问题错误,并不需要利用其它编程语言编写程序再导入进去,可以对复杂的数学函数进行调用。
甚至还可以利用guide函数设计一个用户操作界面,让用户方便操作,软件的界面看起来比较舒服,这类的设计实例就有一个是做计算机的,可以设置17个按钮和一个显示屏的简单版计算机,而每一个按钮都可以设置回调函数,使得每个按钮能够有所反应。如果有不懂的话,可以在命令窗口输入help指令,如图2.1所示,可以查阅各类函数的使用方法和例子,这对初学者来说还是容易上手的。
MATLAB里的图像工具箱还是挺丰富的,本设计主要涉及了MATLAB里的几个功能:
(1)图像处理功能。在这个功能里,我们用的工业摄像头拍的照基本都是彩色图,在图像识别之前仍需要对图片进行灰度化的处理,再者进行图像的分割,把多余的部分进行裁剪,识别的图片里尽量只剩下所识别物体的大小。MATLAB在这方面提供了相对应的函数和检测算子,我们可以随便使用。
(2)图像特征提取与识别功能。Matlab里自带的神经网络工具箱可以使我们在构建网络时更方面,我们的物料有着不同特征,分别有矩形、圆形和三角形,采用卷积神经网络CNN的模型进行训练物料图片,提取其相关特征并进行分类。

图2.1 MATLAB软件的帮助
2.2 CNN神经网络
2.2.1 CNN的简介
CNN,全称是Convolutional Neural Networks,意为卷积神经网络,它是深度学习其中的一种算法,是一种带有卷积结构的前馈神经网络,而深度学习又是机器学习的子方向,而这些都是与人工智能AI有着莫大的关系。卷积神经网络会对每层结构输入信息并且做出数据的分类,而且它拥有表征学习的能力,能够自动提取数据的特征,免去了人们手动提取的不必要操作。
神经网络在近几年来发展得比较快,Alex Krizhevsky在2012年的ImageNet挑战赛中就是运用了CNN神经网络,设计出了AlexNet网络模型,把分类的误差大大减少到15%左右,当时可谓是让人惊叹的呢,也是从那起神经网络才开始被重视,而CNN卷积神经网络被广泛应用在图像识别和自然语言处理等方面,可以说目前是在图像分类这一块领域里众所周知。

3图像识别与处理系统的设计

3.1 图像识别的流程
对于物料的图像识别,与人脸识别相比来说是简单一点,毕竟不用对其进行旋转图像这种操作,本设计的图像识别主要是基于CNN卷积神经网络来对物料进行识别分类,当识别完之后就会将结果输出给Arduino进行机械臂分拣动作的操作。如图3.1是本设计的物料图像识别的流程与步骤。

图3.1 物料图像识别的流程与步骤
3.2 物料图像的采集
在采集图像这一部分,我们选用了一款USB接口工业摄像头进行拍摄,图像识别的结果与图片的质量有一定的关系,因此可以利用这款USB高清工业摄像头的设置对图片进行一系列改善,并且拍下物料在有光与无光时的状态下的照片作为训练图库。而对USB高清工业摄像头的调试方面则由我的组员负责。
在一开始考虑要分拣什么物料我们组每个人还是有不同的见解,又想与本专业有相关联系的零部件,比如齿轮、弹簧以及六角螺母等等,可是反思了之后发现这类型的东西与我们的机械结构上的设计融合不到一起,因为考虑到这类型的物料结构中间会空心,机械臂上的吸盘便有可能吸不起来,因此我们最终有了同一个想法,要分拣的物料有三种,分别是瓶盖、充电器和三角板,这些东西都是日常生活常见的。本次图库素材如图3.2,图3.3和图3.4所示。

图3.2 瓶盖图库

4 物料分拣系统的电路设计

4.1 物料分拣系统的流程图
本设计主要以Arduino uno r3为控制核心,再与上位机PC和各个模块组合而成的控制电路,各硬件的结构流程如图4.1所示。

图4.1 物料分拣系统硬件结构框图

该系统是主要利用的是意大利进口的Arduino uno r3开发板作为处理核心,处理气泵、电磁阀和舵机的运转,分别输入一个PWM的信号,从而驱动机械臂的旋转角度对物料进行分拣,而板子内拥有两个芯片,都有着自己各自的功能。
摄像头是采集图像的主要工具,将拍下的图像输入到PC机电脑中去,由电脑的MATLAB软件来处理图像,并通过已设计好的图像识别与处理系统进行分类识别。
而电脑PC机分别与摄像头和Arduino uno r3用USB进行连接,使用MATLAB软件专门处理图像,并把分类后的数据利用USB串口通讯发送给Arduino uno r3控制板中去,让其开发板进行下一步的操作。
气泵主要是吸取物料时的器件之一,我们的机械臂是利用吸盘来吸取物料的,这就要有一个气泵来压缩空气,从而产生一定的压力来使物料能够被吸附,它受Arduino驱动控制,让其数字I/O引脚输出一个PWM信号来控制它的状态。
电磁阀则与气泵相反,它是一个将气泵产生的气压气体进行释放的执行机构,也是受Arduino驱动控制,也是输出一个PWM信号来控制它的运转。
舵机是受Arduino的驱动控制,利用PWM信号来进行工作,控制它的旋转角度,使它能够驱动机械臂。
而5V的外接电源时怕Arduino开发板中的电源电压带不动四个气泵,影响了舵机工作效果,使之不能正常运转,因此额外添加了5V的外接电源。
4.2.4 气泵模块电路
为了配合已选用好的吸盘,气泵选用的是无刷微型气泵,型号为VBY2106,需要接入24V的直流电源,原理图如图4.8所示。它也是需要PWM信号接入,因此分配板上的D3引脚,与UNO r3开发板共地。实物图如图4.9所示,其真空度拥有20Kpa,足够可以吸取充电器,瓶盖和三角板这类物料。

图4.8 气泵模块电路

图4.9 VBY2106气泵实物图
4.2.5 电磁阀模块电路
电磁阀的驱动电路如图4.10所示,跟气泵一样的外接24V电源,与Arduino共地,分配D11的PWM信号数字引脚。当D11输入一个PWM信号时,光耦的发光二极管和光电晶体管会导通,电源通过电阻R4和光电晶体管,电阻R6进行分压让MOS管导通,使得电磁阀有电流通过,开启电磁阀,将气泵形成的气压释放,图中的二极管是为了防止让高压电源损坏NMOS管。一般地,MOS管分成N型和P型,NMOS的导通电阻比PMOS的小,且价格便宜,所以常常使用的是NMOS,在这里相当于是一个控制电磁阀的开关。值得注意的是,电磁阀和气泵不能同时工作,气泵打开之后,空气是往外排放的,如果你此时将电磁阀和气泵一起启动,吸盘会吸不起来物料,长时间地不关电磁阀会造成发热。

图4.10 电磁阀模块电路

5 总结与展望

5.1 总结
5.1.1 设计总结
本次设计论文首先是介绍了课题的研究背景与意义,并且对其程序设计的软件和运用到的神经网络结构进行了介绍,例如有MATLAB软件和CNN卷积神经网络,然后是对图像识别与处理系统进行一次流程的介绍和设计,并对图像处理与识别的每一步过程的实现进行细说,还有附上了每一道程序的用途。最后是对电路进行设计,简单介绍了相关的硬件以及其引脚的分配。做出来的东西基本是满足预期的要求。

文章底部可以获取博主的联系方式,获取源码、查看详细的视频演示,或者了解其他版本的信息。
所有项目都经过了严格的测试和完善。对于本系统,我们提供全方位的支持,包括修改时间和标题,以及完整的安装、部署、运行和调试服务,确保系统能在你的电脑上顺利运行。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询