版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第1章绪论1.1研究目的及意义机器视觉是研究怎样使计算机对图像数据产生智能化感知的一门科学。物体识别在机器视觉领域属于一项基础研究,对图像理解目标的实现起着十分重要的作用。在机器视觉的基础研究中,物体识别一个主要的研究目标,同时也是一个至关重要的核心问题,因为计算机理解图像的基础就是辨认出图像中的物体,所以说它是一个主要的研究目标。如果能够识别出图像中的物体,那么就可以部分还原2D图像的3D信息。与此同时,图像处理、图像分割等基础研究的目标之一也是为了正确辨析出图像中有意义的物体。因为它是图像解析、物体跟踪的基础,也是众多实际应用的基础,没有稳定的良好的识别算法,就不可能产生大规模的应用,所以说它是一个至关重要的核心问题。研究正常的物体识别,不仅对于理论还是时间都有极其重大的意义。计算机视觉的核心在于识别,而一般物体识别又是识别中最为复杂核心的问题。在实践中,一般物体识别的研究则能给人类生活的方方面面,尤其是交通、国防、教育带来极为重大的影响,甚至改变人们生活的模式,对整个社会有着深远的意义。常规的无损检测大概分为三类,其总体分别为超声波检测(UT),磁粉检测(MT)以及渗透检测(PT)。其中超声波检测的优点在于使用于金属或者非金属以及符合材料等多种制件的的无损检测,并且穿透能力较强,其缺点是其对试件的精确定性等问题结果不是很理想,并且对于复杂形状或者不规则形状的试件检测效果不理想。磁粉检测的优点在于精度相对较高(可检测0.1m级别),并且可以发现发纹、白点、冷隔等方面的缺陷,其缺点是其对于奥氏体不锈钢材料以及相关焊接缝无法检测,并且对于镁铝铜等金属材料也无法检测。渗透检测的优点在于检测灵敏度较高,与此同时可以检测材料更为广泛,并且检测费用较低。其缺点是是其只能检测表面开口的缺陷,不适用于表面粗糙的工件。因此,在实际应用中选择合适的无损检测方法是十分重要的。总而言之,物体识别和无损检测在各自领域内都具有十分重要的作用。通过研究和发展这些技术,我们可以进一步提高计算机视觉系统的准确性和智能化程度,并且在工程领域中提高生产效率和质量控制水平。1.2国内外研究现状2017年作家赵鹏在《机器视觉理论及应用》中提出在计算机视觉(ComputerVision)领域,在电脑视觉艺术(ComputerVision)应用领域,"图象细分(Segmentation)"曾被看作是机器视觉的第一个阶段。一般有根据图象灰度分配的阈值方式"、根据图象灰度空间分布的阈值方式、边缘检测法、区域提取法。而关于"选择哪些特性"这些难题,回答则要充分一些。关于部分特性,已发展的操作系统中已出现一些有用的,如Gabor,最大熵.,图形小块,(曲)线段等。其中的部分特性又可分成底层级中层二类。在第三阶段,是根据前面二个阶段的研究结果建立环境地图以完成障碍辨识。但在物件辨识阶段,目前一般科学研究的重点内容仍是开展物件匹配研究。此科学研究方式也可作为参考在本课题中,其科学研究方式有假设验证法、解释树法、基于图的识别技术、姿态系统聚类法、几何哈希表法等。2018年余文勇,石绘两位学者在《机器视觉自动检测技术》一文中写到物体识别的第一阶段步骤首先是获取原始图像然后是对图像进行预处理。对于图像预处理也称图像增强,主要有直方图修正、图像线性运算、噪声抑制。其中噪声抑制又包括了均值滤波、中值滤波和边界保持类平滑滤波。第二阶段是对处理后的图像进行图像分割再进行图像特征提取。2018年孙晓云在《接口与通信技术原理与应用》一书中详细阐述了计算机在数据通信领域中的应用情况,并系统地介绍了在机器人与机器人相互之间、机器人与PC相互之间、PC与PC相互之间和单片机多机通讯中的各类常见通信接口方法,尤其是包括USB端口无线数字通讯口、激光红外线端口、IC总线、SPI总线、CAN总线、LonWorks等现场总线设备、嵌入式以太网络端口等的常见器件进行了较为详尽的阐述,并提供了实际的案例。2019年李全利,迟荣强编写修订的《80c51系列单片机》是一本全面而深入地探讨80C51系列单片机原理和接口技术的著作,其内容详尽、实践性十足,能够很好地满足当今社会对于高级单片机设备的需求。该书从应用角度出发系统地介绍了单片机的硬件体系结构、80C51的指令系统与汇编语言程序设计、C51语言程序设计、片内资源的应用、接口与扩展技术以及单片机应用系统设计。考虑目前单片机应用开发趋势,该书在适当介绍汇编语言后,主要采用C51语言编程,以KEIL5Vision为软件开发平台。该书本着宜教易学的原则,合理编排内容,将系统性、典型性、实用性和新技术应用相结合,讲解详尽,重点突出。为了突出单片机的应用性和便于开展案例教学,书中精选了较多的应用案例,内容丰富,软硬件完整可用。2018年KewangZhang,QizhaoWu,XinLi三位外国作家在《Relayparticipated-new-typebuildingcncrgymanagcmentsystcm:Ancncrgy-efficientroutingschemeforwirelesssensornetwork-basedbuildingenergymanagementsystems》文章中提到随着科学技术的发展,传统的无损检测精度逐渐不能满足当代工业发展的需求。另一方面,计算机技术的崛起,大数据技术在图像识别领域的应用越来越成熟,再结合智能算法,因此AI视觉技术应用而生。相比于传统的检测技术,AI视觉技术除了可以做到无损加测外,由于采用光学技术,相较于传统的检测技术精度更高,应用范围也更加广泛。2019年KORTUMK,MOLLERM,HIRNEIBC学者在《Smarteyedata:devdtopahealtO0ofoundationformedicalrescarchusingSmartDataapplications》期刊中写到由于采用光学技术,因此机器视觉技术相较于传统的无损检测方式,其检测精度通常较高,同时也可以做到无损检测。最后对比于传统的检测方式来说,机器视觉技术可以进行实时检测,对于高速运动下的物体也可以进行无损检测。当然,另一方面,由于机器视觉技术刚刚处于初级阶段,对比于传统的无损检测技术来说,费用较贵。1.3章节安排及内容第1章绪论,主要讲解研究目的、研究意义,国内外研究现状以及章节安排。第2章系统总体设计,讲解了设计方案、功能需求以及单片机型号的选择。第3章系统硬件设计,介绍了系统的各个部分的硬件设计以及原理图。第4章系统软件设计,介绍了系统的总体流程和各模块的软件设计及流程。第5章系统测试,讲解了系统完后的实物功能演示以及测试;第2章系统总体结构2.1设计方案本设计是一种基于AI视觉技术的杯具出场检测系统设计,硬件部分需采用单片机模块、传感器模块、液晶显示模块、蜂鸣器模块、AI模块、驱动模块,目的是为了能够监测纸杯的外观以及重量情况,及时地进行数据上传,如果符合出厂标准,传送带正常化运转,如果不符合标准,会发生报警。该装置设计合理,动作准确,技术上可行、可靠,具有应用推广价值。2.1.1预期结果能够监测纸杯的外观以及重量情况,及时地进行数据上传,如果符合出厂标准,传送带正常化运转,如果不符合标准,会发生报警。设计AI视觉的杯具检测系统所实现的功能如下:1.系统实时显示监测到的画面;2.系统学习完美产品纸杯外观;3.系统通过相似度判断生产出的杯具外观状况;4.系统可监测生产出的杯具的重量状况;5.若生产的杯具外观与重量均符合出厂标准,传送带正常运转;6.若不符合出厂标准,传送带停止工作,蜂鸣器响,提示工作人员将次品拿走,次品拿走后,传送带继续运转。图2-1系统结构图2.2单片机型号选择方案一:AT89C51单片机从内部的硬件到软件有一套完整的按位操作系统,称作位处理器,处理对象不是字或字节而是位。不但能对片内某些特殊功能寄存器的某位进行处理,如传送、置位、清零、测试等,还能进行位的逻辑运算,其功能十分完备,使用起来得心应手。但是AD、EEPROM等功能需要靠扩展,增加了硬件和软件负担,并且51单片机保护能力很差,很容易烧坏芯片。方案二:STM32单片机是一款性价比超高、功能强大的系列单片机。它基于专为须要高性能、低成本和低功耗的嵌入式应用而设计的armCortex-M内核,拥有最好的外设:1μS双12位ADC、4Mbit/sUART、18Mbit/sSPI等在功耗和集成度上也有不错的表现。但是STM32是运行指令的,合适运行算法,但对于多路信号处理,须要很多DSP进行并行处理。方案三:勘智K210具有双核64位处理器,并自带独立FPU;有一块KPU用于神经网络加速单元;还有一块APU用于语音数据处理。所以这块芯片具有视觉和听觉处理能力,功耗低,性能高的特点,并且采用TSMC28纳米制程,稳定性和可靠性具有一定保证。内置8MByte的高速SRAM,减小了系统复杂度的同时,给软件带来了优化难度。在PC上训练的上百兆模型,如何在移动端压缩到几十兆,将模型降低一个数量级塞进8MSRAM,是个难点。底板上除了一块K210芯片,一颗OV2640摄像头,一个LCD屏外,还包含很多外设接口,TypeC用于串口调试,TF卡槽用于外插存储,Wifi接口,32MBFlash等。通过对比,结合AI模块的需求,本系统选择K210作为控制器芯片。K210芯片是一款国产的单片机,由于芯片的封装采用的是BGA144封装,焊接比较复杂。KendryteK210是集成机器视觉与机器听觉能力的系统级芯片。使用台积电(TSMC)超低功耗的28纳米,具有双核64位处理器,拥有较好的功耗性能,稳定性与可靠性。KendryteK210定位于AI与IoT市场的SoC,同时是使用非常方便的MCU。K210包含RISC-V64位双核CPU,主频为400M(超频可达600M),每个核心内置独立FPU.K210的核心功能是机器视觉与听觉,其包含用于计算卷积人工神经网络的KPU与用于处理麦克风阵列输入的APU.同时K210具备快速傅里叶变换加速器,可以进行高性能复数FFT计算。因此对于大多数机器学习算法,K210具备高性能处理能力。下图是K210的系统架构:图2-2KendryteK210系统架构原理图第3章系统的硬件部分设计3.1系统总体设计本设计是一种基于AI视觉技术的杯具出场检测系统设计,系统由电脑端下位机信号接受和反馈上位机的指令,硬件部分需要单片机模块、传感器模块、液晶显示模块、蜂鸣器模块、AI模块、驱动模块,软件部分采用KEIL5件平台和c编程语言完成。目的是为了能够监测纸杯的外观以及重量情况,及时地进行数据上传,如果符合出厂标准,传送带正常化运转,如果不符合标准,会发生报警。3.2系统的主要功能模块设计3.2.1HX711重量测量模块设计HX711是一种专门针对高精密电子磅所研制的4比特A/D转换器芯片。与同种类的其它器件比较,该器件整合了如稳压电源、片内的振荡器等集成电路,和其它各种类器件所必须的外围集成电路,具备了系统整合好、速度快、抗干扰能力好的特性。从而大大降低了电子磅的整机生产成本,也大大提高了整机的功能和可靠性水平。该器件与后端MCU器件间的连接与编程方式非常简单,各种控制信息均由引脚驱动,无须通过对单片机内的暂存器程序。输入输出选择开关可任意地选择通道A或通道B,并与其内置的低噪音可编程放大器连接。通道A的可程序化增益设定为十八或六十四,与相应的满额度差分信号的矩形波分别为±或±将通道B调节至三倍的增益,可大大提高系统的性能。此外,由晶片供给的稳压电源能够实现对外界的信号和A/D转换器的连续输出,从而节省了大量的模拟输入。由于这个原理,我们能够在存储器中使用独立的时钟振荡器。上电自动恢复系统也减少了重新开机的初始化流程。二路可选的低噪声可编程放大器,具有六十四倍的增益效果,并且可以通过A/D交换器和晶片内的稳定时间系统来提供电力,而且不需要任何外部设备,即使在必要时也可以通过外部晶振或时钟来实现,上电自动复位系统采用单一的数位管理和串行接口,所有信号都可以通过管脚进入或出口,而且晶片内的辅助寄存器也不需要任何程序,从而使得整个系统更加高效、可靠。可以根据需要调整输出信号的频率,从十Hz到八十Hz,同时还能抵抗五十Hz和六十Hz的电源干扰,设计的功耗(包括稳定电源功率):常见的HX711是串行数据总线的A/D转换器。如果作为串行通信技术,那么了解其时序图将对整个设备的应用与运行发挥着举足轻重的意义。串口通讯线由管脚PD-SCK和DOUT组成,通过输入与输出的信号,确定了输入输出通道和信息。如果DOUT的电平较高,这表明A/D转换器无法提供良好的输入和输出信息,因此,在这种情况下,PD-SCK的电平应该较低,以便获得更多的时钟信号。当DOUT从高电平转换到低电平时,PD-SCK会产生五到七种不同的时钟波形。一个时钟脉冲可以用来读取或输出四个数字中的最大值(MSB),而第四个时钟脉冲则可以用来确定下一个A/D切换的起止时间以及相应的增益。总之,HX711重量测量模块设计简单方便,能够实现高精度电秤的测量,并且具有高集成度、响应速度快、抗干扰性强等优点,是电子称重领域的一款优秀芯片。图3-1HX711重量传感器原理图3.2.2蜂鸣器模块设计蜂鸣器是一种将电信号转换为声音信号的器件,常用来产生设备的按键音、报警音等提示信号蜂鸣器按驱动方式可分为有源蜂鸣器和无源蜂鸣器有源蜂鸣器:内部自带振荡源,将正负极接上直流电压即可持续发声,频率固定无源蜂鸣器:内部不带振荡源,需要控制器提供振荡脉冲才可发声,调整提供振荡脉冲的频率,可发出不同频率的声音蜂鸣器有正负极,顶部印有+号的为正极,若蜂鸣器引脚没剪,则长的为正极,单片机引脚不能直接蜂鸣器,加NPN型三极管进行驱动,因为单片机的引脚驱动能力有限,蜂鸣器的功率比较大,所以需要通过三极管来驱动,R1为限流电阻,单片机引脚如果给高电平,则三极管导通,VCC便给蜂鸣器供电,如果给低电平,则三极管断开,PNP型三极管同理,只不过是单片机引脚输出低电平导通,输出高电平断开。蜂鸣器模组原理图如下图。图3-2蜂鸣器模组原理图3.2.3舵机模块设计PWM,英文名PulseWidthModulation,是脉冲宽度调制简称,就是利用对一个波形的长度加以调节,等效出所需的波浪状(包含形状以及幅值),然后对输出信号的输入输出电平加以数字编码,也就是说我们能够利用调节占空比系数的变化,来调整信息、能量等的变换,占空比系数变化就是说在一个周期里,信息在高电平的时候占整个信息周期的比率,如方波的时候占空比是百分之五十.人们常说的操舵装置,它的学名也叫做伺服电机,就是一个具有输入输出轴的小设备。当我们向伺服器传输一种控制信息时,输入输出轴就能够旋转到一定的地方。一旦操控信息维持恒定,伺服机关就会维持轴的角度位移不改变。而一旦操控信号改变,输出轴的位移也就会随之改变。在生活中,操舵设备经常被用作遥控飞行器、遥控车辆、机器人等领域。操舵系统在工业机器人方面也十分实用。因为舵机控制有内置的监测集成电路,它的尺寸虽然小,但是输出力矩却足够大了。像FutabaS-148这样的标准操舵系统就可以输出约零点三牛/秒的力矩,而相对于它的外形尺寸来说这就已经足够巨大了。另外,操舵装置消耗的功率和设备重量成正比。所以,一个低重量的操舵器系统没有耗费太多的功率。操舵装置内的控制电路,电位计(可变电阻器)和电源都被连在内部控制电路板上,如室内架构图的右侧组成部分。控制电路和电位计可调节操舵设备的当前高度。只要转轴的位移方向和控制器信号一致,那么马达就会关闭。而一旦控制电路认为这个位置不准确,它就可以限制发电机转动,直至它达到规定的高度。舵机位置随着制造厂的差异而变化。例如,一个180度的操舵机构,就能够从零度至一百八十度之间自由移动。因为限位装置通常都装设在主输出设备上,如果超出了这种范围机械结构就无法再继续转动了。舵机的输出功率和它所需回转的长度成正比。假如输出轴需回转很长的一段距离,计算机将会以全速运行,而假如它只需很短时间回转,计算机就会以相对比较慢的速率运转,这就叫作转速比例控制。控制线常常用来传送高度的控制信息。而这种高度往往是根据控制信息波形的持续时间规定的,这就叫作脉冲编码调制(PCM)。舵机的调节往往要求一个20ms以下的时基波形,该波形的高电平区域大致为0.5ms-2.5ms之间,总间距为2ms。波形的长度将取决于马达运转的长度。举例:1.5毫秒的脉动,发动机将朝向九十度的方位(也常称之为中立方位,相对180°舵机而言,便是90°方位)。假设脉冲长度等于一点五毫秒,则发电机轴流式就朝着零度方向。而假设脉冲长度超过了一点五毫秒,则轴向式就朝着一百八十度方向。图3-3舵机原理图3.2.4Al模块设计硬件部分采用AI视觉模块,用于对杯具外观进行检测。该模块通过摄像头获取杯具图像,并利用AI算法进行图像处理和分析,以判断杯具的外观是否符合出厂标准。该模块具有以下特点:高精度检测:AI视觉模块采用先进的图像处理算法,能够精确地识别杯具的外观特征,如形状、颜色、缺陷等。这种高精度的检测能够确保产品质量的一致性。实时监测:AI视觉模块具备实时性,能够在高速传送带上对杯具进行快速检测。它能够快速捕捉图像并进行分析,实时地提供检测结果。可靠性和稳定性:AI视觉模块经过精心设计和测试,具有较高的可靠性和稳定性。它能够在不同环境条件下正常工作,并且对光线、颜色等变化具有一定的适应能力。数据上传和报警功能:AI视觉模块可以将检测到的数据通过通信模块上传到上位机系统进行分析和记录。同时,当检测到杯具不符合标准时,模块可以触发报警装置,提醒工作人员进行处理。综上所述,该设计中的AI视觉模块是一项关键的硬件设备,它通过先进的图像处理算法和实时监测能力,实现对杯具外观的准确检测。它的可靠性、稳定性和数据上传功能使其在杯具出场检测系统中具有重要的应用价值。图3-4AI模块原理图3.2.52.4寸LCD显示屏模块设计该设计中的2.4寸LCD显示屏模块是用于在系统中实时显示相关信息和交互操作的重要硬件设备。它具有以下特点:显示效果:2.4寸LCD显示屏模块采用高分辨率的液晶显示技术,能够呈现清晰、细腻的图像和文字。它具有良好的色彩表现力和对比度,使得显示内容更加鲜明、易于阅读。尺寸适中:2.4寸LCD显示屏模块的尺寸适中,既能够显示足够的信息内容,又不会占据过多的系统空间。这使得它在设计中的安装和布局更加灵活便捷。可视角度广:LCD显示屏模块具有广视角特性,即使在不同角度观察时,显示内容的清晰度和色彩表现力仍能保持较好的一致性。这使得用户无论从哪个角度观察,都能够获得良好的视觉体验。显示控制:2.4寸LCD显示屏模块配备了相应的控制电路,可以通过与系统的主控单元进行通信来实现显示内容的控制和更新。这使得系统可以根据实际需要动态地显示不同的信息,提高用户的交互体验。显示内容多样性:LCD显示屏模块可以显示各种类型的信息,包括文字、数字、图标、图像等。它能够根据系统的设计需求,以清晰、直观的方式展示系统状态、操作指导、数据结果等信息。综上所述,2.4寸LCD显示屏模块在该设计中扮演着重要的角色,它通过高分辨率、适中尺寸和广视角等特点,为系统提供了清晰、直观的信息展示和用户交互方式。其灵活性和多样性使得系统设计更加丰富和可靠。图3-52.4寸LCD显示屏原理图3.2.6GC0328摄像头模块设计在该设计中,GC0328摄像头模块是一个关键的硬件设备,用于实现对杯具外观的监测和检测。以下是对该摄像头模块设计的描述:摄像性能:GC0328摄像头模块采用高性能的图像传感器,具有较高的分辨率和灵敏度。它能够捕捉清晰、细腻的图像,为后续的图像处理和分析提供高质量的数据基础。视角和焦距:摄像头模块的视角和焦距经过合理设计,能够在较短的距离内获取较大的视野范围,使得杯具的外观能够完整地被捕捉到。数据传输:GC0328摄像头模块支持数据传输接口,可以通过与主控单元的通信实现图像数据的传输和处理。这为后续的图像识别和分析提供了必要的数据支持。光线适应性:摄像头模块具备良好的光线适应性,可以在不同的光照条件下获取清晰的图像。这使得系统在不同环境下都能够进行准确的外观监测和检测。实时性:GC0328摄像头模块的数据传输速度较快,能够实现实时的图像捕捉和传输,为系统提供实时监测和反馈能力。综上所述,GC0328摄像头模块在该设计中发挥着重要作用。通过其高性能的图像传感器、适应不同光照条件的能力以及与主控单元的数据传输接口,实现了对杯具外观的监测和检测功能。该设计的合理性、准确性和可靠性为实现杯具出场检测系统提供了坚实的技术基础,具有广泛的应用推广价值。图3-6GC03228摄像头原理图3.2.7TF内存卡模块设计在该设计中,TF内存卡模块是一个重要的硬件设备,用于实现数据存储和传输功能。以下是对该TF内存卡模块设计的描述:存储容量:TF内存卡模块具有一定的存储容量,可以存储大量的数据,例如图像、视频和其他相关信息。它提供了一个可靠的存储介质,确保数据的安全性和持久性。数据传输接口:TF内存卡模块通过特定的数据传输接口与主控单元进行连接,例如SPI或SDIO接口。这些接口可以实现高速的数据传输和读写操作,确保数据的快速和稳定传输。兼容性:TF内存卡模块采用标准的TF卡尺寸和接口定义,与其他设备具有良好的兼容性。它可以与不同的设备和系统进行连接和交互,实现数据的共享和传输。可擦写性:TF内存卡模块具有可擦写的特性,可以多次写入和擦除数据,方便进行数据的更新和管理。它可以支持系统的灵活性和可扩展性。可靠性和稳定性:TF内存卡模块具备较高的可靠性和稳定性,能够在各种工作条件下正常运行。它采用优质的存储芯片和稳定的电路设计,确保数据的完整性和可靠性。综上所述,TF内存卡模块在该设计中扮演着重要的角色。通过其存储容量、数据传输接口、兼容性、可擦写性以及可靠性和稳定性,实现了对数据的存储和传输功能。该设计的TF内存卡模块为系统提供了可靠的数据存储和管理手段,为实现设计目标和功能需求提供了坚实的技术支持。图3-7TF内存卡模块设计3.2.7按键模块设计在该设计中,按键模块是用于用户与系统进行交互的重要硬件设备。以下是对该按键模块的描述:按键类型:按键模块通常包括多个按键,每个按键都有自己的功能和作用。按键可以分为触摸式按键和物理按键两种类型。触摸式按键通常采用电容或电阻技术,用户只需轻触按键表面即可触发操作;物理按键则需要用户通过物理按下按键的方式进行操作。按键布局:按键模块的按键布局根据设计需求和用户操作习惯而定。常见的布局方式包括矩阵式布局和线性布局。矩阵式布局将多个按键排列成行列矩阵,通过编码器或多路复用器进行按键状态的读取;线性布局则将按键依次排列在一条线上,每个按键都有独立的引脚与系统连接。按键功能:按键模块的每个按键可以设置不同的功能。例如,某个按键可以用于系统的启动或停止,另一个按键可以用于模式切换或菜单导航。通过按键模块,用户可以通过按下相应的按键来执行系统所定义的操作。反馈机制:为了提供用户操作的反馈,按键模块通常包括按键触感和指示灯等反馈机制。按键触感可以根据设计需求选择软触感或硬触感,使用户在按下按键时感受到相应的力度和反馈;指示灯则可以在按键被触发时亮起,以提示用户操作已被接收。连接方式:按键模块通常通过引脚或接口与主控单元或其他设备连接。连接方式可以是直接连接,也可以通过编码器、电路扩展器或其他接口芯片进行连接,以满足系统对按键数量和灵活性的需求。综上所述,按键模块在该设计中扮演着用户与系统交互的重要角色。通过不同类型的按键、按键布局、按键功能、反馈机制和连接方式,该设计实现了用户对系统的操作和控制。按键模块使用户能够方便地进行各种操作,提升了系统的易用性和用户体验。图3-8按键模块设计第4章系统的软件设计4.1软件主流程图系统由电脑端下位机信号进行运接收处理,目的是为了能够监测纸杯的外观颜色形状以及重量情况,及时地进行数据上传,如果符合出厂标准,传送带正常化运转,如果不符合标准,会发生报警。系统实时显示监测到的画面;系统学习完美产品纸杯外观;系统通过相似度判断生产出的杯具外观状况;系统可监测生产出的杯具的重量状况;若生产的杯具外观与重量均符合出厂标准,传送带正常运转;若不符合出厂标准,传送带停止工作,蜂鸣器响,提示工作人员将次品拿走,次品拿走后,传送带继续运转。图4-1整体流程图4.2重量模块的软件设计HX711为串行数据总线型A/D转化器。作为串行通讯方式,那么掌握其时序图对于该器件的使用和操作起到了至关重要的作用。串口通讯线由管脚PD-SCK和DOUT组成,用来输出数据,选择输入通道和增益。当数据输出管脚DOUT为高电平,表明A/D转换器还未准备好输出数据,此时串口时钟输入信号PD-SCK应为低电平。当DOUT从高电平变低电平后,PD-SCK应输入25至27个不等的时钟脉冲。其中第一个时钟脉冲的上升沿将读出输出24位数据的最高位(MSB),直至第24个时钟脉冲用来选择下一个A/D转换的输入通道和增益。其时序如图4-2所示:图4-2HX711时序图4.3外观检测模块软件的设计在设计中对产品外观进行监测,首先进行系统初始化,然后开始监测,当监测到外观损坏的产品时,会进行蜂鸣器报警通知,工作人员收走残次品,然后再次进行传送带的启动,继续进行外观检测。图4-3外观检测模块程序流程图4.4舵机模块的设计在流程图中,舵机模块负责接收系统判断结果并控制传送带的运转。如果杯具符合出厂标准,舵机模块会发送信号给传送带的驱动模块,使其正常化运转,并将数据上传至上位机系统。如果杯具不符合标准,舵机模块会发出报警信号,同时停止传送带的运转。这个流程会不断循环执行,以实现对杯具出场检测的持续监测和处理。图4-4舵机流程图4.52.4寸LCD显示屏模块在流程图中,显示屏模块负责接收并显示当前的检测状态和数据。它会获取杯具的外观和重量数据,并在显示屏上实时显示这些数据以及当前的检测状态。同时,它也会根据AI视觉算法对图像进行分析,提取特征,并判断杯具是否符合出厂标准。根据判断结果,显示屏模块会发送相应的信号给驱动模块,控制传送带的运转状态,并将数据上传至上位机系统。如果杯具不符合标准,显示屏模块会发出报警信号,并停止传送带的运转。图4-52.4寸LCD显示屏流程图第5章系统测试5.1系统实物图图5-1系统完整实物图上图共有六个按键,上面一排分别是复位按键,学习按键和系统按键,系统按键是用来控制机器的暂停和开始,下面一排分别是设置重量的按键,增加和减少。5.2各项测试系统实时显示监测到的画面;首先分别学习三个环境,完美产品环境,周边环境,次品环境,再依次拍五张照片,取样成功后,调试重量范围,在此期间重量传感器模块不要放置任何东西,全部调试完成后;系统通过相似度判断生产出的杯具外观状况;系统可监测生产出的杯具的重量状况;若生产的杯具外观与重量均符合出厂标准,传送带正常运转;若不符合出厂标准,传送带停止工作,蜂鸣器响,提示工作人员将次品拿走,次品拿走后,传送带继续运转。(1)首先接通电源,分别在不同环境拍摄杯子的外观,调整重量检测范围,进行5次学习外观。图5-2次品显示(2)之后进行正品杯具外观检测学习,同样学习5次。图5-3正品显示(3)最后进行5次周围环境的学习,学习完毕。图5-4环境显示(4)当放上杯子进行检测时,摄像头对准正品,舵机正常运转,当摄像头对准次品或环境时,舵机不旋转,蜂鸣器发生报警。图5-5舵机工作第6章总结与展望总结:基于AI视觉的杯具出场检测系统目前国内尚不成熟,主要存在于使用机器进行智能化检测纸杯合格与不合格等,本文首先系统的提出了设计方案,阐述了软件的组成,详细的介绍了系统的硬件设计,其中包括单片机模块、传感器模块、液晶显示模块、蜂鸣器模块、AI模块、驱动模块,由于自身所学的不是特别精通,软硬件的结合运用的不是很熟练,在进行实际工作时会出现一些小的问题,比如程序运行结果不完善,电路焊接过程中出现短路使电路无法导通。但是最后经过指导老师的辅导下,我终于克服了这些困难,并纠正和完善了这些问题,使设计能够正常的且成熟的运行下去。设计方案时遇到的一些问题主要包括下面几个方面:在运行程序过程中,部分程序缺失,所以我们需要提前检查好问题,一次一次的反复尝试,不然会浪费精力。电路焊接的时候,要充分的细心,不能马虎,只有这样才能够使设计正常的运行。展望:目前我国对于杯具出场检测领域还处于发展中阶段,无法满足大量的需求,所以需要进一步的在此领域进行创新创造,不断的发掘新事物,我相信在未来的一天,我们一定能实现技术性的突破,使人们的生活过的更美好。
参考文献[1]余文勇,石绘.机器视觉自动检测技术[M].北京:化学工业出版社,2018.[2]张广军.机器视觉[M].北京:科学出版社,2018.[3]高燕梅.数字电子技术基础[M].电子工业出版社,2018.120-73.[4]赵鹏.机器视觉理论及应用[M]北京:电子工业出版社,2017.[5]牛广文.基于GPRS通信的远程土壤墒情自动监测系统设计[J].2019.79-85.[6]孙晓云.接口与通信技术原理与应用[J].中国电力出版社,2018.[7]刘允浩.机器视觉在智能制造中的应用[J].电子技术与软件工程,2022.[8]孙晓云.接口与通信技术原理与应用[J].中国电力出版社,2018.[9]黄照翠,张荃,陈晖,等.智慧校园视频服务体系应用研究[J].中国教育信息化,2020.[10]陈钰.基于机器视觉的产品外形缺陷识别方法研究[J].自动化应用.2022.[11]李全利,迟荣强.单片机原理及接口技术.高等教育出版社,2019.[12]张毅刚,MCS-51单片机应用设计,哈工大出版社,2018.[13]霍孟友,单片机原理与应用[J].机械工业出版社,2020.[14]隋胄君,肖靖毅,AI视觉自动检测纸张表面缺陷质量分析研究[J].造纸科学与技术,2022.[15]许泳龙,单片机原理及应用[J].机械工业出版社,2018.[16]KewangZhang,QizhaoWu,XinLi.Relayparticipated-new-typebuildingcncrgymanagcmentsystcm:Ancncrgy-efficientroutingschemeforwirelesssensornetwork-basedbuildingenergymanagementsystems.2018,13(1):169-185.[17]PengweiHua,XiaowuLiu,JiguoYu,NaDang,XiaoweiZhang.Energy-efficientadaptiveslice-basedsecuredataaggregationschemeinWSN[J].ProcediaComputerScience,2018,129.[18]KORTUMK,MOLLERM,HIRNEIBC,etal.Smarteyedata:devdtopahealtO0%ofoundationformedicalrescarchusingSmartDataapplications[J].DerOphthalmologeZeitschriftDerDeutschenOphthalmologischenGescllschaft,2019.[19]RaafiB.DesignandDevelopmentofFuzzy-PIDControllerforFour-wheeledMobileRoboticStability:AC'aseStudyontheUphillRoad[J].PTEKJournalofEngineering,2020,6(2):6.[20]ZhouY,DongW,FYuan,etal.ResearchofOnlineWaterQualityMonitoringSystemBasedonZigbeeNetwork[J].AdvancesinInformatioSciences&ServiceSciences,2019,4(5):255-261.
附录电路图源代码importKPUaskpuimportsensorimportlcdfromMaiximportGPIOfromfpioa_managerimportfmimporttimeimportgcfrommicropythonimportconst#导入constfromboardimportboard_infofrommachineimportTimer,PWM#ServoimportSG90_360_DriveimportBEEP_3V3_DriveimportWeight_HX711_Driveclass_num=3#类数量sample_num=15#样本数量THRESHOLD=11#阈值class_names=['Surroundings','Qualifiedgoods','Unqualifiedgoods']#类名称:环境、合格品、不合格品board_cube=0Identify_Results={'Identify_Situation':"",'Identify_Index':''}#识别结果SYS_Status='END'#系统状态:状态cap_num=0#抓取训练数量train_status=0#训练状态last_cap_time=0#上次训练抓取时间last_btn_status=1#上次按键状态tim1=Timer(Timer.TIMER2,Timer.CHANNEL0,mode=Timer.MODE_PWM)Ctr_Sg90_360_1=PWM(tim1,freq=50,duty=0,pin=board_info.PIN_Ctr_SG90_360)Sg90_360_1=SG90_360_Drive.SG90_360(Ctr_Sg90_360_1)Sg90_360_1.Init()#initSG-90360fm.register(board_info.PIN_Ctr_BEEP,fm.fpioa.GPIO0)#注册IO-Ctr_BEEPCtr_BEEP=GPIO(GPIO.GPIO0,GPIO.OUT)BEEP=BEEP_3V3_Drive.BEEP_3V3(Ctr_BEEP,0)#构建对象:BEEPBEEP.Init()#初始化:BEEPfm.register(board_info.PIN_W_SCK,fm.fpioa.GPIO1)#注册IO-W_SCKW_SCK=GPIO(GPIO.GPIO1,GPIO.OUT)fm.register(board_info.PIN_W_DAT,fm.fpioa.GPIO2)#注册IO-W_DATW_DAT=GPIO(GPIO.GPIO2,GPIO.IN)Weight=Weight_HX711_Drive.Weight_HX711(W_SCK,W_DAT)#构建对象Weight.Init()#初始化Set_THR_Choose=0;#阈值设置:选择THRL_WEIGHT=5#重量阈值下限THRH_WEIGHT=10#重量阈值上限Weight_Value=0Weight_State=""#KEY_BOOTfm.register(board_info.PIN_KEY_BOOT,fm.fpioa.GPIOHS0)KEY_BOOT=GPIO(GPIO.GPIOHS0,GPIO.PULL_UP)#KEY_SYSfm.register(board_info.PIN_KEY_SYS,fm.fpioa.GPIOHS1)#注册IO-KEY_SYSKEY_SYS=GPIO(GPIO.GPIOHS1,GPIO.IN,GPIO.PULL_UP)#构建KEY_SYS对象defexit_KEY_SYS_fun(KEY_SYS):#KEY_SYS中断回调函数globalSYS_Status,train_statusiftrain_status!=0:#若:训练完成time.sleep_ms(10)#消除抖动ifKEY_SYS.value()==0:#确认按键被按下ifSYS_Status=='END':SYS_Status='RUN'else:SYS_Status='END'KEY_SYS.irq(exit_KEY_SYS_fun,GPIO.IRQ_FALLING)#开启中断,下降沿触发#KEY1fm.register(board_info.PIN_KEY1_IN,fm.fpioa.GPIOHS2)#注册IO-KEY1KEY1=GPIO(GPIO.GPIOHS2,GPIO.IN,GPIO.PULL_UP)#构建KEY1对象defexit_KEY1_fun(KEY1):#KEY1中断回调函数globalSYS_Status,train_status,Set_THR_Chooseiftrain_status!=0:#若:训练完成time.sleep_ms(10)#消除抖动ifKEY1.value()==0:#确认按键被按下ifSYS_Status=='END':#若:系统状态ENDSet_THR_Choose=1-Set_THR_ChooseKEY1.irq(exit_KEY1_fun,GPIO.IRQ_FALLING)#开启中断,下降沿触发#KEY2fm.register(board_info.PIN_KEY2_IN,fm.fpioa.GPIOHS3)#注册IO-KEY2KEY2=GPIO(GPIO.GPIOHS3,GPIO.IN,GPIO.PULL_UP)#构建KEY2对象defexit_KEY2_fun(KEY2):#KEY2中断回调函数globalSYS_Status,train_status,THRH_WEIGHT,THRL_WEIGHTiftrain_status!=0:#若:训练完成time.sleep_ms(10)#消除抖动ifKEY2.value()==0:#确认按键被按下ifSYS_Status=='END':#若:系统状态ENDifSet_THR_Choose==0:THRL_WEIGHT=THRL_WEIGHT+1if(THRH_WEIGHT>(THRL_WEIGHT+1)>1):passelse:THRL_WEIGHT=THRL_WEIGHT-1else:THRH_WEIGHT=THRH_WEIGHT+1if(THRH_WEIGHT>(THRL_WEIGHT+1)>1):passelse:THRH_WEIGHT=THRH_WEIGHT-1KEY2.irq(exit_KEY2_fun,GPIO.IRQ_FALLING)#开启中断,下降沿触发#KEY3fm.register(board_info.PIN_KEY3_IN,fm.fpioa.GPIOHS6)#注册IO-KEY3KEY3=GPIO(GPIO.GPIOHS6,GPIO.IN,GPIO.PULL_UP)#构建KEY3对象defexit_KEY3_fun(KEY3):#KEY3中断回调函数globalSYS_Status,train_status,THRH_WEIGHT,THRL_WEIGHTiftrain_status!=0:#若:训练完成time.sleep_ms(10)#消除抖动ifKEY3.value()==0:#确认按键被按下ifSYS_Status=='END':#若:系统状态ENDifSet_THR_Choose==0:THRL_WEIGHT=THRL_WEIGHT-1if(THRH_WEIGHT>(THRL_WEIGHT+1)>1):passelse:THRL_WEIGHT=THRL_WEIGHT+1else:THRH_WEIGHT=THRH_WEIGHT-1if(THRH_WEIGHT>(THRL_WEIGHT+1)>1):passelse:THRH_WEIGHT=THRH_WEIGHT+1KEY3.irq(exit_KEY3_fun,GPIO.IRQ_FALLING)#开启中断,下降沿触发defdraw_string(img,x,y,text,color,scale,bg=None):ifbg:img.draw_rectangle(x-2,y-2,len(text)*8*scale+4,16*scale,fill=True,color=bg)img=img.draw_string(x,y,text,color=color,scale=scale)returnimgOperation_State=''defOperation(operation_state):globalWeight_StateifOperation_State!='':ifOperation_State=='SYN':#System--ENDSg90_360_1.Stop()#舵机关闭BEEP.OFF()#蜂鸣器关闭elifOperation_State=='operation_goods_1':#类1(合格品外观)--正转ifTHRL_WEIGHT<Weight_Value<THRH_WEIGHT:Weight_State="OK"Sg90_360_1.Clockwise()#舵机正转BEEP.OFF()#蜂鸣器关闭else:Weight_State="NO"Sg90_360_1.Stop()#舵机停止BEEP.ON()#蜂鸣器开启elifOperation_State=='operation_goods_2':#类2(不合格外观)--停转ifTHRL_WEIGHT<Weight_Value<THRH_WEIGHT:Weight_State="OK"else:Weight_State="NO"Sg90_360_1.Stop()#舵机停止BEEP.ON()#蜂鸣器开启elifOperation_State=='surroundings':#环境--surroundingsWeight_State="--"Sg90_360_1.Clockwise()#舵机正转BEEP.OFF()#蜂鸣器关闭else:passelse:pass#设置摄像头sensor.reset()sensor.set_pixformat(sensor.RGB565)sensor.set_framesize(sensor.QVGA)sensor.set_windowing((224,224))#ifboard_cube==1:#sensor.set_vflip(True)#sensor.set_hmirror(True)#lcd.init(type=2)#lcd.rotation(2)#else:#lcd.init()#初始化LCDlcd.init()#设置摄像头水平与垂直镜像sensor.set_vflip(True)sensor.set_hmirror(True)#再次运行删除模型try:delmodelexceptException:passtry:delclassifierexceptException:passgc.collect()model=kpu.load("/sd/sipeed_learn_model.smodel")#加载模型#model=kpu.load(0x300000)classifier=kpu.classifier(model,class_num,sample_num)#模型初始化while1:Weight_Value=Weight.Read_Weight_g()Identify_Results['Identify_Situation']=''Identify_Results['Identify_Index']=''img=sensor.snapshot()#采集图片ifboard_cube:img=img.rotation_corr(z_rotation=90)img.pix_to_ai()#captureimgiftrain_status==0:#如果训练状态:0(未训练)ifKEY_BOOT.value()==0:#如果按键值为:0(按下)time.sleep_ms(30)#延时30msifKEY_BOOT.value()==0and(last_btn_status==1)and(time.ticks_ms()-last_cap_time>500):#如果按键按下&&上次按键状态==1&&时差大于500last_btn_status=0#上次按键状态=1last_cap_time=time.ticks_ms()#更新上次抓取时间ifcap_num<class_num:#如果抓取数量<类数量index=classifier.add_class_img(img)#添加类图片,并获取当前添加图片的indexcap_num+=1#cap_num自增1print("addclassimg:",index)#打印当前添加的类elifcap_num<class_num+sample_num:#如果:类数量<抓取数量<类数量+样例数量index=classifier.add_sample_img(img)#添加样例并获取当前添加样例的indexcap_num+=1#cap_num自增1print("addsampleimg:",index)#打印当前添加的样例else:#如果:按键弹起img=draw_string(img,2,200,"releasebootkeyplease",color=lcd.WHITE,scale=1,bg=lcd.RED)#请松开按键else:#如果未按下按键time.sleep_ms(30)#延时30msifKEY_BOOT.value()==1and(last_btn_status==0):#如果按键按下&&上次按键状态==0last_btn_status=1#上次按键状态=1ifcap_num<class_num:#如果抓取数量<类数量img=draw_string(img,0,200,"pressbootkeytocap"+class_names[cap_num],color=lcd.WHITE,scale=1,bg=lcd.RED)#显示请按键抓取类xelifcap_num<class_num+sample_num:#如果类数量<抓取数量<类数量+样例数量img=draw_string(img,0,200,"bootkeytocapsample{}".format(cap_num-class_num),color=lcd.WHITE,scale=1,bg=lcd.RED)#显示请按键抓取样例x#trainandpredictiftrain_st
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年前台岗位综合测试卷
- 河南水利与环境职业学院2026年单独招生《职业适应性测试》模拟试题及答案解析
- 2026年限账期合同(1篇)
- 邀请活动的邀请函合集15篇
- (二诊)毕节市2026届高三年级高考第二次适应性考试生物试卷(含答案)
- 业务营销奖励方案(3篇)
- 企划活动策划方案模板(3篇)
- 储罐堵漏施工方案(3篇)
- 关于桥下施工方案(3篇)
- 出口喷涂施工方案(3篇)
- 2024司法考试试题及答案
- 2025年山西省中考英语试卷真题(含答案详解)
- 《肾功能及尿液检查》课件
- 中国石油企业文化课件
- 电力工程建设资源投入计划
- 生物批签发管理办法
- 《酒店法律与法规实务》全套教学课件
- 高分子化学教材第七章逐步聚合反应
- 项目经理负责制与项目管理实施办法
- 2025年陕西省西安市碑林区西北工大附中中考数学三模试卷
- T-CASMES 428-2024 商业卫星太阳电池阵通.用规范
评论
0/150
提交评论