二维点样平台设计设计大学学位论文.docx
- 文档编号:6630295
- 上传时间:2023-01-08
- 格式:DOCX
- 页数:34
- 大小:578.48KB
二维点样平台设计设计大学学位论文.docx
《二维点样平台设计设计大学学位论文.docx》由会员分享,可在线阅读,更多相关《二维点样平台设计设计大学学位论文.docx(34页珍藏版)》请在冰豆网上搜索。
二维点样平台设计设计大学学位论文
毕业论文(设计)
论文题目:
二维点样平台设计
学生姓名:
胡大千
学号:
1008020210
所在院系:
电气信息工程学院
专业名称:
自动化
届次:
2014届
指导教师:
苗磊
二维点样平台设计
学生:
胡大千(指导老师:
苗磊)
(淮南师范学院电气信息工程学院)
摘要:
二维点样在各行各业中都得到重要的运用,其工作原理是上位机通过控制步进电机在X、Y方向的拍数比实现对二维空间的精确定位并进行点样。
本课题以VB6.0为平台并通过与上位机的通讯实现点样定位控制和对点样进程进行模拟实现。
关键字:
点样;步进电机;上位机;VB;通讯
Two-dimensionalPointSamplePlatform
Students:
HuDaqian(GuidanceTeacher:
MiaoLei)
(CollegeofElectricalandInformationEngineering,HuainanNormalUniversity)
Abstract:
Two-dimensionalpointsampleisimportantinallwalksoflife,itsworkingprincipleistheuppermachinebycontrollingstepmotorthanthenumberofbeatsintheX,Ydirectionimplementationsareprecisepositioningandoftwo-dimensionalspace.ThistopicinVB6.0byuseoftheplatformandthroughcommunicationwithPCtorealizethecontrolandthepositioningofthesamplepointssimulatedimplementationsampleprocess.
Keywords:
Samplepoints;Steppingmotor;PC;VB;communication
前言
随着科学技术的不断进步,机械产业朝着微型化,精密化发展,零件的微小化与运动位移的高速化、衡量化是未来的主要研究方向之一,其精准的位置控制即准确无误的定位技术显得日益重要。
因此,开发功能实用,定位精确度高的定位平台运动系统具有广阔的应用前景。
二维点样平台作为空间三维定位的重要组成部分,也可以说是二维定位平台在国内外取得了较快的发展。
二维定位平台是完成X、Y维精确定位的工作平台。
它在微机电系统、微电子、纳米制造、纳米电子及航空航天等众多高科技领域都发挥着重要作用,随着科技的进步,这种重要性日益增强。
生活中常见的一些机器如电子厂车间的高速机、点胶机等。
在日常生活中我们能过接触最多最常见的二维点样平台也就是车间的点胶机了,点胶机是一种对流体进行控制并将流体进行点滴、涂覆于产品表面或产品内部的自动化机器。
可实现二维、三维的路径点胶,能够高效精准的进行点胶。
其应用的行业也非常的宽广,可以在电子行业中进行手机按键点胶,手机电池封装,光学器件加工等;在工业电气方面可以对电容,变压器,继电器,按钮等进行粘接灌封,对电机线圈进行涂胶,对电器柜门进行封边涂胶。
本设计就是以我在联宝实习期间对点胶机的操作进行实际的理论验证而设计一个基于VB平台的二维点样平台。
用VB设计上位机软件控制界面,能够设置待点样行数、列数及行列间距,并对点样进程进行模拟。
设计相应插补算法。
单片机通过串口通信接收上位机所给的坐标控制X、Y步进电机,实现点样定位控制。
1总体方案设计
1.1总体方案实现框图
本设计分两部分设计,一部分是基于VisualBasic的二维点样平台的设计,另一部分是基于51单片机的下位机设计,两者之间通过串口通信。
系统框图如图1所示。
图1系统框图
上位机设计部分主要是设置相应的控制界面(打开串口、手动点样、自动点样)和实现串口通信,当手动点样、自动点样或回原点操作时,会通过串口将相应的X轴和Y轴的坐标值传给下位机。
为了直观看到坐标位置和移动轨迹,在上位机上设计了二维坐标显示区。
下位机是由51单片机控制一个系统,当接收到串口数据时,对数据进行分析,提取出上位机发送的坐标值,驱动X轴和Y轴步进电机,实现二维点样。
51单片机的串口通信部分利用51单片机内部的串口资源与外部串行端口电平转换电路(即RS232)来实现。
1.2软硬件开发环境和工具
软件开发环境包括MicrosoftVisualBasic6.0[1][15][21]和KeiluVisionC51V4.1[2]。
硬件开发环境是Proteus7.8SP2[4]。
调试工具包括VirtualSerialPortDriver6.9和串口调试助手V1.0。
VisualBasic是Microsoft公司开发的一种“可视化”的Windows应用程序开发工具。
MicrosoftVisualBasic6.0是用来开发上位机的平台。
KeiluVisionC51是一种兼容单片机C语言软件开发的系统,是由德国KeilSoftware公司(ARM公司之一)出品。
包含标准的KeilC编译器、宏汇编器、调试器、实时内核、单板计算机和仿真器,支持所有的251系列微控制器。
在本设计中使用KeilC51是对51单片机程序进行编译、调试和下载[2][5][7[9]。
Proteus软件是英国LabCenterElectronics公司出版的EDA工具软件。
它既具有其它EDA工具软件的仿真功能,又能仿真单片机及外围器件。
可以说是目前最好的单片机仿真软件。
本设计中利用Proteus在单片机中加载Keil生成的HEX文件对步进电机的运动进行模拟。
为了让上位机发送的数据能够传送给Proteus仿真的单片机,这里选用VirtualSerialPortDriver6.9软件,它可以模拟串口通信,虚拟出一对串口,这样两者之间就无需物理连接,即可以串口的形式进行通信[4][12]。
串口调试工具很多,本系统采用常用的串口调试助手V2.1,其功能简单,在本系统设计中主要用来调试上位机程序和测试下位机的串口通信功能。
2二维点样平台上位机设计
2.1VisualBasic语言概述
VisualBasic是一种语言简单、易学、易用的软件,适用于开发Windows环境下的
各类应用程序,并增加了结构化、可视化程序设计语言的功能,引入了“面向对象”和“事件驱动”等先进思想,支持ActiveX控件(用于Web或其它支持这一技术的程序中)、VBS(VBScript,VB的脚本语言,用于Web开发)和VBA(VBForApplication,嵌入式VB语言,用于对一些流行软件进行二次开发),对网络、多媒体和数据库的编程有良好的支持,拥有完全的中文界面和帮助系统[1][15][21]。
VisualBasic6.0主要有以下几个特点:
编程可视化、面向对象的程序设计、事件驱动的编程机制,以及结构化的程序设计。
VisualBasic的可视化设计工具可以把Windows界面设计的复杂性“封装”起来,利用VisualBasic提供的各种设计工具,程序开发人员只需按照程序界面的设计要求,在窗体中画出各种“控件”,并设置这些对象的属性,这样程序设计人员就不需要为界面设计编写代码而浪费时间,只需要编写实现程序功能代码。
因此,程序设计的效率会大大提高。
面向对象的程序设计语言将整个现实世界或者其中的一部分看作是由不同种类的对象构成的。
各种类型的对象之间通过发送消息进行联系,消息能够激发对象作出相应的反应,从而构成一个运动的整体。
VisualBasic属于事件驱动的编程机制,由事件控制着程序运行的流向。
事件是可以由窗体或控件识别的操作。
在响应事件时,事件驱动应用程序执行指定的代码。
VisualBasic是一种接近自然语言和人类的逻辑思维方式并具有结构化程序设计的控制结构。
1966年,Bohra和Jacopini提出了结构化程序设计的三种基本结构,即顺序结构、选择结构和循环结构。
这三种基本结构是VisualBasic程序设计的核心。
2.2程序编写
该部分利用VB设计上位机控制平台,实现手动和自动设置待点样行列数;实现回原点操作,模拟显示点样当前位置和运动轨迹,设置的坐标值能通过串口通信发送到下位机,下位机在对步进电机进行驱动运行后能将相应的坐标返回给上位机实现点样定位控制并将相应的坐标在二维坐标显示区显示出来。
2.2.1创建标准项目文件
本设计需要创建一个基于Standard.EXE的项目。
先打开VisualBasic6.0,然后打开“文件”中的“新建工程”,然后选择新建“标准EXE”即可,如图2所示。
这样就
创建了一个标准EXE的项目文件[1]。
图2创建标准EXE项目文件
2.2.2加入串口通信控件
MSComm控件是Microsoft公司为了简化Windows下串行通信编程而提供的一种ActiveX控件,它为应用程序提供了通过串行接口收发数据的简便方法。
MSComm控件给出事件驱动和查询两种方式。
事件驱动有程序响应及时的优点,开发者只需在每个事件中添加自己的程序。
查询方式在某些情况下更便捷,但其实质也是事件驱动。
程序的每个关键功能之后,可以通过查询CommEvent属性值来查询事件和错误。
默认的控件工具栏没有MSComm控件,因此需要打开菜单栏“工程”下面的“部件”(跳出如图3所示的对话框,找到“MicrosoftCommControl6.0”,点击确定完成添加)将MSComm控件加到工具栏中。
图3添加MSComm控件
MSComm控件的许多属性都是需要开发者根据自己的需要进行设置。
将MSComm控件添加到工程的Form框中,点击MSComm控件即可在右边的属性栏对其进行设置。
MSComm控件有许多重要的属性,如CommPort设置端口号;Settings设置波特率、奇偶检验、数据位和停止位;PortOpen设置并返回通信端口的状态,也可以打开或关闭端口;Input从接收缓冲区返回或删除字符;Output向传输缓冲区写一个字符串。
根据本设计需要,设置端口号CommPort固定为4,Settings设置为“9600,n,8,1”[12]。
2.2.3设计程序主界面
VisualBasic最大的好处就是他的可视化。
对于主界面的设计,只需要选择需要的工具在Fram上添加、移动,操作简单方便。
选择Frame在窗体上分出四个部分,分别是串口通信、手动点样、自动点样和点样坐标显示。
“打开端口”、“回原点”以及上下左右移动坐标等按钮采用CommandButton工具。
坐标输入和坐标显示采用TextBox工具。
为了直观显示端口连接状态,本设计使用Shape工具画了一个圆点,当未连接的时候显示黑色,处于连接状态的时候显示绿色。
为了实时且直观展示坐标所在位置,本设计用PictureBox工具,在其上面画出坐标和显示当前坐标的圆点。
主界面设计如图4所示。
图4主界面设计
坐标的实现是使用VisualBasic的画线功能。
Scale用来定义刻度,例如Picture1.Scale(-10,,110)-(110,-10),定义左上角座标为(-20,120),右下角座标为(110,-20)。
Line用来画线,例如Picture1.Line(0,0)-(110,0),vbBlack,这句话是在(0,0)坐标和(110,0)坐标之间画一条白色的线。
DrawWidth用来定义线宽。
Picture1的坐标程序如下所示:
Picture1.Cls
Picture1.ScaleMode=5
Picture1.Scale(-10,110)-(110,-10)
‘绘横坐标
Picture1.DrawWidth=2
Picture1.Line(0,0)-(110,0),vbBlack
Picture1.DrawWidth=1
Picture1.Line(0,10)-(100,10),vbWhite
Picture1.Line(0,20)-(100,20),vbWhite
‘绘坐标纵线
Picture1.DrawWidth=2
Picture1.Line(0,0)-(0,110),vbBlack
Picture1.DrawWidth=1
Picture1.Line(10,0)-(10,100),vbWhite
Picture1.Line(20,0)-(20,100),vbWhite
'指定位置显示原点O
Picture1.CurrentX=-5
Picture1.CurrentY=0
Picture1.Print"O"
…
2.2.4参数输入和控制实现
本点样控制平台的使用必须先打开端口,只有串口设备号和本平台的设备号一致时才能进行通信。
当用户点击“打开端口”时,先检查端口号是否存在或者已经被打开。
当端口号正确之后将端口打开,即MSComm1.PortOpen=Ture,改变圆点的颜色为绿色,指示端口已经被打开,并且按键名称更改为“关闭端口”。
如果端口不正确,那么根据错误代码,跳出消息框提示用户错误原因。
端口控制的代码如下所示:
PrivateSubCommand5_Click()
IfCommand5.Caption="关闭端口"Then
MSComm1.PortOpen=False
Command5.Caption="打开端口"
Shape1.FillColor=RGB(0,0,0)
Else
IfTest_COM(4)=TrueThen
MSComm1.PortOpen=True
Command5.Caption="关闭端口"
Shape1.FillColor=RGB(0,255,0)
EndIf
EndIf
EndSub
'检测端口号函数
PrivateFunctionTest_COM(com_numAsInteger)AsBoolean
IfCommand5.Caption="打开端口"Then
OnErrorGoToComm_Error
MSComm1.CommPort=com_num'这里接收传入的串口号
MSComm1.PortOpen=True
MSComm1.PortOpen=False
Test_COM=True'如果返回1,表示串口可用
ExitFunction
Comm_Error:
IfErr.Number=8002Then
MsgBox"串口不存在,请配置串口号为COM4!
"
ElseIfErr.Number=8005Then
MsgBox"串口已打开!
"
Else
MsgBox"其它错误"
EndIf
Test_COM=False'如果出错,则返回0
ExitFunction
ResumeNext
EndIf
EndFunction
上下左右移动按钮和回原点按钮控制原理一样,即当有Click点击事件时,改变坐
标的值,如“Y+”按钮被按下时,那么将当前坐标的Y轴坐标加一,然后将改变后的坐标值发送出去。
为了在上位机上直观看到坐标的移动轨迹,那么需同时移动坐标圆点的位置以及更改TextBox中的坐标值。
圆点的移动用Move函数,如Point1.Move20,30是将Point1点的Left移动到20刻度处,Top移动到30刻度处。
数据的发送使用MSComm控件Output属性。
每次点击操作需要发送XY两个数值,所以首先定义两个字节:
Dimsendbyte
(1)AsByte。
本系统设计X轴和Y轴坐标都在0-100以内,为了方便下位机区分接收到的数据,发送之前将X轴坐标值和十六进制H80相“与”,这样X轴数据最高位为1,Y轴数据最高位为0,下位机就可以通过数据的最高位来判断收到的数据是X轴坐标还是Y轴坐标。
这种做法对下位机来说省去了繁琐的数据解析工作,简单方便。
具体的代码如下所示:
PrivateFunctionSendXY(xvAsInteger,yvAsInteger)AsBoolean'发送xy坐标
SendXY=False
IfMSComm1.PortOpenThen
sendbyte(0)=xvOr&H80
sendbyte
(1)=yv
MSComm1.Output=sendbyte
SendXY=True
EndIf
EndFunction
自动采样需要用户输入三组坐标值,然后点击开始,数据每隔一秒发送一组,同时移动二维坐标显示区的圆点,并显示坐标移动轨迹。
因为需要定时每秒发送一次,所以这里用了一个定时工具Timer。
Timer的Interval用来设置定时时间,单位为毫秒,本设计设置为1000,也就是一秒中断一次。
当用户输入三组数据并点击“开始”按钮之后,会打开定时器,延时时间到的时候进入Timer函数,在该函数中每秒发送
一组坐标,三组发送完成之后关闭定时器。
此外,对三组数据的输入进行限制,当输
入为空或者大于100则跳出消息框提示用户输入正确的数值,错误提示如图5所示。
图5输入超出范围报错
2.3错误处理和调试
界面和代码编写完成并不代表工作的结束,最艰苦的就是对完成的程序的处理和调试。
错误通常有语法错误、运行错误和逻辑错误。
语法错误很容易修改,对于运行错误和逻辑错误,可以根据VisualBasic的错误提示进行修改。
举个例子来说,如果MSComm控件的Settings设置为“9600,n,9,1”,运行时会报错,跳出对话框“Invalidpropertyvalue”。
有时候捕获了错误代码,但是不应该只向用户显示错误信息代码,而且大多数额用户是不知道这些错误代码的含义。
为了将错误代码翻译成对改错误的描述,可以将捕获的错误代码传给VisualBasic提供的Error函数,在给函数完成对错误代码的解释。
在本设计中,当打开不存在的端口时会捕获到错误代码8002,这个错误号的含义是无效的端口号(comPortInvalid)。
在本程序中是这么处理的:
OnErrorGoToComm_Error
…
Comm_Error:
IfErr.Number=8002Then
MsgBox"串口不存在,请配置串口号为COM4!
"
…
2.4程序发布
调试好程序之后,虽然没有错误出现,但该应用程序还只是源文件,只能在VisualBasic的编译环境中运行,因此需要制作成可执行文件。
VisualBasic很容易生成“.exe”文件。
方法是选择“文件”菜单下的“生成Makeproject1.exe”选项,在跳出来的对话框中修改文件名,然后确认即可,这样就完成了二维点样平台上位机的开发工作了[1]。
3二维点样平台下位机设计
3.1单片机硬件电路设计
点样平台下位机以AT89C51单片机为控制核心,串口通信模块用来接收上位机发送的坐标数据,外加两个步进电机用来模拟点样平台的二维电机控制。
下位机驱动步进电机运动流程图如图6所示
图6下位机控制步进电机流程图
3.1.151单片机最小系统
AT89C51是应用广泛的8位单片机,它拥有4K的FLASH,128字节的RAM,两个16位的定时器,可编程串行中断,以及低功耗闲置和掉电模式。
AT89C51单片机最小系统包括单片机主控、时钟电路和复位电路。
如图7所示。
时钟电路选用外部12M晶振,并联两个30pf的电容帮助起振。
复位电路是由电阻、电容和按键组成的上电复位和按键复位。
图7单片机最小系统
为了直观显示系统运行状态和步进电机运行状态,本设计中添加了三个LED指示灯,用来指示运行状态,如图8所示。
图8LED状态指示灯
3.1.2串口通信电路
RS232接口上通信时要12V的电压才能识别,也就是高低电平为12V和0V,但是51单片机的高低电平为5V和0V,所以单片机和电脑的串口通信需要高平转换。
实际的电路中需要加入电平转换芯片,如MAX232或PL2303。
本设计使用Proteus仿真,Protues带有串口仿真元件COMPIM,它集成了TTL-RS232电路的。
设好波特率即可实现串口通信。
为了查看单片机串口通信数据,仿真中加入VirtualTerminal虚拟终端。
该部分电路如图9所示。
图9串口通信电路
3.1.3二维步进电机电路
为了模拟二维坐标电机的转动,本系统设计了两组步进电机,X轴步进电机和Y轴步进电机。
由于单片机驱动能力有限,最大只有25mA,需要外加驱动电路。
ULN2003是高耐压、大电流复合晶体管阵列,由七个硅NPN复合晶体管组成。
当输入5V电压时,输出电流高达500mA。
所以本设计选ULN2003
驱动四线制步进电机。
设计电路如图10所示。
图10步进电机驱动电路
3.2单片机软件程序设计
单片机软件部分主要是串口通信程序、步进电机控制程序和接收到数据后的逻辑处理和控制程序。
3.2.151单片机串口程序
51单片机内部有一个可编程的双向全双工串行通信接口。
该接口有4种工作方
式,以适用于不同场合。
波特率由单片机内部的定时器/计数器产生,可以用软件进行设置。
51单片机内部的串口拥有两个物理上相互独立的接收、发送缓冲器SBUF,可以同时接收和发送数据,两个缓冲器占用同一个地址(99H)。
本设计选用波特率9600bit/s,根据12M时钟晶振算出装载值,并且开启接收中断。
接受到数据时进去进去中断函数进行相应的处理。
串口初始化代码如下收中断。
当接收到数据时进去中断函数进行相应的处理。
串口初始化代码如下:
voidinit()
{
TMOD=0x20;//定时器1工作方式2
TH1=0xfd;//装载初值,波特率设置为9600
TL1=0xfd;
TR1=1;//启动定时器1
SM0=0;//设置串口工作方式1
SM1=1;
REN=1;//允许串口接收
EA=1;//开总中断
ES=1;//开串口中断
}
串口产生接收中断,RI硬件置位,在串口接收中断函数里必须软件清除接收中断标志。
接收中断入口函数如下所示:
voidser()interrupt4
{
RI=0;//接受中断标志位
…
}
3.2.2步进电机程序
步进电机工作原理简单,本设计中选用四线制步进电机,每一条线导通,步进电机会旋转一个角度,如果顺序导通,那么电机就会正转。
如果逆序导通,那么电机反转,通过改变线线之间导通时间可以改变转速。
本设计的步进电机可以通过坐标判断而相应的正转或翻转。
电机驱动函数如下:
voidStepX(charxy,charm,charn);
该函数有三个参数,第一个参数xy用来选择电机,xy为1的时候控制X轴电机,xy为2的时候控制Y轴电机;第二个参数m是调整的角度;第三个参数n是选择正转反转
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 二维 平台 设计 大学 学位 论文
![提示](https://static.bdocx.com/images/bang_tan.gif)