【《产品封装视觉检测系统架构设计分析案例概述》3900字】_第1页
【《产品封装视觉检测系统架构设计分析案例概述》3900字】_第2页
【《产品封装视觉检测系统架构设计分析案例概述》3900字】_第3页
【《产品封装视觉检测系统架构设计分析案例概述》3900字】_第4页
【《产品封装视觉检测系统架构设计分析案例概述》3900字】_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

产品封装视觉检测系统架构设计分析案例概述目录TOC\o"1-3"\h\u2618产品封装视觉检测系统架构设计分析案例概述 174571.1系统架构 147141.2软件开发环境 1230451.2.1Python开发环境 2144611.2.2Arduino平台 6148861.3硬件系统 151.1系统架构从设计的整体架构角度来看,这次系统构架主要是包含了两个重要的部分:一个是硬件部分,另一个部分是软件部分。硬件部分的组成是由:(1)计算机电脑(2)USB网路摄像头(3)ArduinoUNO单片机(4)电源(5)MeArm。其中电脑为上位端控制计算机,ArduinoUNO是由和上位端计算机通联的单片机。软件部分同样分为上下位端两部分,上位端电脑的软件环境是围绕Windows操作系统的Python程序开发环境。下位端的Arduono单片机的软件编程,则是基于AduinoID开发环境所组成。1.2软件开发环境Python程序通过对ArduinoUNO开发板进行命令行编程并对编程环境进行控制。Python适用于Windows,Mac,Linux操作系统,本文介绍的是运行Python开发环境的Windows操作系统,去编写Python计算程序。Python计算程序使用pySerial序列埠传输模块,通过USB接收信号并通过Arduino接收和序列传送的信号。在PySerial程序存储数据之后,根据计算结果输出决策讯号,再通过pySerial序列埠将模块发送到USB上,控制Arduino上的电机元件。因此,我们将在arduino中安装Python的开发环境。1.2.1Python开发环境安装Python的方法大致可分为两种:一种是直接安装Python软件,另一种是根据Anaconda提供的教程完成安装。Anaconda可以被理解为一个Python的升级优化版本,它的经济成本更低,现在已经被市场广泛使用。除了大量用户和企业使用之外,DataSciencePackages现在有超过1000种可供用户选择,其中包括两百多种流行的packages。在Windows、Linux和MacOS的不同作业系统环境中,可以方便地使用conda软件包,也是适用于虚拟环境管理器,这就使得对于复杂的机器学习环境和数据科学的安装、执行和升级变得容易快捷。因此,本文使用Anaconda作为Python编程代码的开发环境。在图1.1中,下面介绍AnacondaNavigator基于Anaconda生成的图形用户界面(GUI),它可以完成对软件包的管理,直接实现虚拟环境的构建,以及对路径的有效管理。AnacondaNavigator可以与相关数据库结合起来,完成软件包的安装和升级,还可以在图形界面中打开JupyterNotebook、VisualStudioCode代码等等。VisualStudioCode代码编辑器随后会打开AnacondaNavigator图形界面(如图1.2),最后作为本文选择的Python程序码编辑器。图1.1AnacondaNavigator图形界面图1.2visualstudiocode程序编辑器完成Anaconda环境创建之后,点击进入AnacondaPrompt,然后在正确的位置输入"python",显示的代码说明Python的特定版本信息,编辑"exit()"字符自动退出编辑模式,如图1.3所示。图1.3使用AnacondaPrompt打开python解释器Terminal终端也可以在VisualStudioCode中输入'python'进入Python编辑模式(如图1.4)。图1.4VisualStudioCode中Python终端机界面的python解释器模式若完成了Python编程环境设置,那么接下来就是为Python安装能够通过COMport连接Arduino程序的pySerial序列埠通讯模块。当要为Anaconda安装的Python软件包和模块提供帮助时,要先使用Python1.4之后,再使用pip软件包管理器。根据软件包管理程序的应用选择设计适当的安装和卸载方式,可以打开AnacondaPrompt或VisualStudioCode的Terminal终端输入‘pipinstall包/模块名’,安装包/模块名,卸载包/模块名是‘pipUninstall包/模块名’。如若是Conda套件管理器,那么是要打开AnacondaPrompt或VisualStudioCode的Terminal终端输入“condainstall套件/模块名”,完成套件/模块名的安装,最后实现“condauninstall套件/模块名”的快速卸载。pySerial安装AnacondaPrompt(图1.5)图1.5在AnacondaPrompt中使用conda安装pySerial要将opencv-python安装在VisualStudioCode的Terminal终端上(如图1.6)图1.6让opencv-python安装在VisualStudioCode的Terminal终端上安装Python组件/模块之后,接着在AnacondaPrompt或VisualStudioCode的Terminal终端输入指令'condalist',然后会显示出安装的组件和模块(图1.7)图1.7在AnacondaPrompt中使用‘condalist’指令显示出已安装的套件与模组pySerial安装和opencv-python我们可以通过condalist的清单中找到,到这我们安装完成了python的开发环境。1.2.2Arduino平台当完成了Python开发环境后,下面就需要在Windows系统环境中创建ArduinoIDE环境,我们通常会选择从Arduino官方网站上选取可以完成ArduinoIDE相关Windows版本,从而去下载和安装,然后点击运行,ArduinoIDE开发环境如图1.8。图1.8ArduinoIDE开发环境Arduino是一个由硬件和软件组成的开源平台,可用于快速开发交互式电子项目。Arduino的出现引起了许多不同行业的专业人士的关注,为创客运动的开始做出了贡献。随着创客运动和物联网概念的日益普及,Arduino已成为电子原型设计和MVP开发的主要平台之一。Arduino使用的编程语言,类似于C++。但是,可以将Arduino与Python或其他高级编程语言结合使用。实际上,像Arduino这样的平台可以很好地与Python配合使用,特别是对于需要与传感器和其他物理设备集成的应用程序。结合Python的基础知识,就可使用Python控制Arduino,从而开始使用Arduino。Arduino平台包括硬件与软件。Arduino硬件要运行示例,您需要通过连接电子组件来组装电路。通常可以在电子元件商店或Arduino入门套件中找到这些物品。以下为Arduino平台的硬件调试所用的零件:ArduinoUno或兼容板(图1.9)LED灯一个按钮10K欧姆电阻470欧姆电阻面包板多种颜色与尺寸的跳线一组图1.9是ArduinoUno板。Arduino是一个项目,其中包含许多用于不同目的的版本和模块,而ArduinoUno是其中最基本的。它也是整个Arduino系列中使用最频繁,文档最多的主板,因此本文选择ArduinoUno板作为Arduino平台的控制版。图1.9UNO板子组件5与6是电阻器。大多数电阻根据颜色代码由彩色条纹标识。通常,前三种颜色代表电阻的值,而第四种颜色代表其容差。对于470欧姆的电阻,前三种颜色是黄色,紫色和棕色。对于10K欧姆的电阻器,前三种颜色是棕色,黑色和橙色。组件7是面包板,可用于连接所有其他组件并组装电路。如同前述,Arduino平台包含硬件与软件部分,在准备好Arduino调试平台的硬件各部分零件后后,调试平台的另一部分是软件的部分。Arduino软件以ArduinoIDE为主,是一个用于对Arduino设备进行编程的集成开发环境。使用Windows安装程序来确保下载了在Windows上使用Arduino所需的驱动程序。查看Arduino文档以获取更多详细信息。经安装了ArduinoIDE并组装了所有的硬件,就可以开始调试并编程到Arduino平台。首先,使用USB电缆将Arduino开发板连接到您的PC,然后启动ArduinoIDE。要打开Blink示例草图,请访问“文件”菜单并选择“示例”,然后选择“01.Basics”,最后选择“Blink”内建范例代码(如图1.10所示)图1.10ArduinoIDE选择内建范例代码接着在ArduinoIDE上选择端口,端口的名称可能会有所不同,具体取决于您的操作系统。在Windows中,端口将被命名为COM4,COM5或类似名称(如图1.11所示)。图1.11在ArduinoIDE选择端口在Windows控制台/装置里确认USB的端口名称(如图1.12所示)。图1.12Windows装置里的端口当按下Upload时,ArduinoIDE会编译代码并将其上传到Aduino板上。如果要检查错误,则可以按“Verify”,这只会编译代码(如图1.13所示)。图1.13ArduinoIDE的代码编译与上传钮USB电缆提供串行连接,以上传程序并为Arduino板供电。在上传过程中,您会看到板上的LED闪烁。几秒钟后,上传的程序将运行,您将看到LED指示灯每秒闪烁一次。上传完成后,USB电缆将继续为Arduino板供电。该程序存储在Arduino微控制器的闪存中。您也可以使用电池或其他外部电源在没有USB电缆的情况下运行应用程序。Arduino具有几种不同类型的引脚,它们并非完全是物理引脚。而是,这些插针是插座中的孔,可以将跳线连接到这些孔,图1.14标示ArduinoUNO板上的引脚。图1.14ArduinoUNO板上的引脚图在图1.14中的橙色方框中:这13引脚可以用作输入或输出。它们仅适用于具有两种不同电平的数字信号:0为电压0V,1为5V电压。绿色方框中的6个引脚是模拟引脚,可以用作模拟输入,它们可以在0V到5V之间的任意电压下工作。蓝色方框中的5个引脚是电源引脚,它们主要用于为外部组件供电。开始使用外部电路原件调试,先连接一个外部LED来运行内建的闪烁范例示。内置LED连接到数字为13的引脚。因此,我们将一个外部LED连接到该引脚(如图1.15所示),然后检查它是否闪烁。图1.15ArduinoUNO板上的引脚图完成上位端电脑的开发环境,与Arduino平台的调试后,即可藉由Python的串行端口通讯套件pySerial让上位端电脑的Python与Arduino平台透过USB通联。pySerial提供初始化串行端口、传送和接收序列数据的指令,像read(),readline()和write()基本指令名称和语法,跟MicroPython的UART模组一样。先从Arduino传送序列资料给Python接收,让ArduinoUNO每隔一秒传送“hello!”的信息给上位端电脑的Python程序。Arduino端的程序如下:unsignedlongpreviousMillis=0;constlonginterval=1000;//设定间隔时间1000mscharchr;voidsetup(){Serial.begin(9600);}voidloop(){unsignedlongcurrentMillis=millis();if(currentMillis-previousMillis>=interval){previousMillis=currentMillis;Serial.println("hello!");}}pySerial模组接收串口资料的Python程式码如下,它将不停地接收与显示收到的序列资料,直到你按下Ctrl和C键为止(如图1.16所示)。importserial#引用pySerial模组COM_PORT='COM3'#指定通讯串口名称BAUD_RATES=9600#设定传输速率ser=serial.Serial(COM_PORT,BAUD_RATES)#初始化串行端口try:whileTrue:whileser.in_waiting:#若收到串口资料…data_raw=ser.readline()#读取一行data=data_raw.decode()#用预设的UTF-8解码print('接收到的原始资料:',data_raw)print('接收到的资料:',data)exceptKeyboardInterrupt:ser.close()#清除串行接口物件print('再见!')图1.16Python与Arduino建立信息通联

1.3硬件系统硬件设备的核心元件为ArduinoUNO开发板与SG90伺服马达,硬件内容如表1.1。SG90伺服电机连接ArduinoUNO,从而将其接入Python平台,Python程序输出PWM讯号透过USB传输线控制SG90伺服马达,控制关系如下:电脑上位机Python⟷(pySerial)⟷Arduino⟷(PWM讯号)⟷伺服马达表1.1硬件列表元件数量ArduinoUno开发板1块SG90伺服马达2颗16.5*5.5cm包板1块杜邦线1组USB线MeArm组件1条1组1.1.1伺服马达控制Python程序控制ArduinoUNO开发板上的SG90伺服电机的接线和测试,如下所示。将SG90伺服电机安装在ArduinoUNO开发板上调试,然后完成USB传输线和PC之间的连接。SG90伺服电机有三根电线,黑色,红色和黄色。红色线连接到Arduino5V,黑色线连接到ArduinoGND,D黄色线连接到Arduino板上的9号引脚,接线图如图1.17所示。图1.17Aduino板与sg90伺服马达调试电路接线图完成AduinoUNO板与伺服电机调试线路的连接,接着将将伺服电机调试程序上传至Arduino板上,程序代码如下:#include<Servo.h>//伺服库Servosg90;//伺服变量sg90intservo_pin=9;voidsetup(){sg90.attach(servo_pin);//将命令传递给arduino以控制伺服的引脚Serial.begin(9600);//开始串行通讯}voidloop(){if(Serial.available()){//是否有可用数据intinByte=Serial.read();//获取输入数据sg90.write(inByte);}}上位控制电脑中的Python调试代码如下。代码中‘COM3’,为ArduinoUNO透过USB连接至上位控制电脑的串口编号名称。Python调试代码执行后,能透过Python程序的角度输入

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论