课程设计说明书设计名称:综合课程设计题目:机械模型的远程控制——四自由度机械手学生:专业:机械设计制造及其自动化班级:学号:指导教师:日期:2013年12月25 日目录一.课程设计的主要容和任务分析 (1)二.机构模型的的原理图及工作原理 (1)2.1 总体工作流程 (2)2.2 前后运动部分 (2)2.3 左右转动部分 (3)2.4 上下运动部分 (5)2.5 机械手转动部分 (5)2.6 机械手开闭合部分 (5)三.远程控制系统的工作原理 (5)四.慧鱼接口板的处理器操作模式的选择以及计算机与接口板的通讯 (6)4.1 慧鱼接口板概述 (6)4.2 微处理器的两种处理模式 (6)4.3 计算机与接口板通讯 (7)五.客户端程序中主要功能模块的设计过程 (8)六.结论及心得体会 (13)七.参考文献 (13)一.主要容和任务分析利用德国慧鱼公司的“智能创意教具”模型设计、装配出较有创意的机构或机械设备模型,模型完成之后应用VB开始编程以及对程序的调试最终能完成对模型的远程控制。
认真复习机械原理、机械设计、自动生产线、VB的基本知识以及学习新的知识(主要为mscomm、winsock、timer三种控件的使用)等。
在实验室熟悉慧鱼模型的元件及其撘建方法,参考现有的模型基础,然后设计出有创意的机械模型。
二、机构模型的的原理图及工作原理2.1 总体工作流程作品拟实现的主要功能有以下五个运动:①前后运动;②左右转动;③上下运动;④手爪顺逆时针转动;⑤手爪的开闭合。
全景图如下:2.2 前后运动部分如图1所示,其工作过程为:向前运动时,电动机1正转,通过减速箱2减速,再通过齿轮链条3的传动将动力传到蜗杆4。
此时限位开关5常开开关打开,蜗杆4旋转将底盘7向前运动,底盘到达最前端,此时,限位开关6常开关开闭合,向前运动完成,电动机1停止。
向后远动时,电动机1反转,回程至限位开关4闭合时,电动机1停止。
图1:前后运动部分侧视图1、电动机;2、减速箱;3、链条;4、蜗杆;5、6、限位开关;7、底盘。
2.3 左右转动部分如图2所示,电动机1的正反转分别对应左右转动。
左右转动时,电动机1转动,通过减速箱2减速,再通过蜗轮3的传动将动力传到齿轮4,通过齿轮带动机械手,可根据不同的角度需要,把机械手转到不同的位置。
图2:左右转动部分1、电动机;2、减速箱;3、蜗轮;4、齿轮图3:上下运动部分正视图1、电动机;2、减速箱;3、蜗杆;4、导杆;5、6、限位开关图4:机械手转动部分正视图1、电动机;2、减速箱;3、蜗轮;4、齿轮2.4 上下运动部分如图3所示,向上运动时,电动机1正转,通过减速箱2减速,把动力传动蜗杆3上,此时限位开关5,常开开关打开,蜗杆3转动使手爪沿着导杆4向上运动,手爪到达最上端,限位开关6闭合,电动机1停止。
向下运动时,电动机1反转,手爪向下运动到最下端,限位开关5闭合,电动机1停止。
2.5 机械手转动部分如图4所示,手爪顺时针转动时,电动机1正转,经过减速箱2减速,通过蜗轮3把动力传到齿轮4上,齿轮带动手爪转动。
手爪逆时针转动时,电动机1反转。
2.6 机械手开闭合部分如图5所示,手爪开时,电动机1正转,经过减速箱2减速,把动力传到连杆3上,连杆带动蜗杆4转动,此时限位开关5常开开关打开,蜗杆转动使手爪打开,手爪打开使触板触碰限位开关5,限位开关闭合,电动机1停止。
手爪闭合时,电动机1反转,手爪抓住工件时,电动机1停止。
图5:机械手闭部分俯视图1、电动机;2、减速箱;3、连杆;4、蜗杆;5、限位开关三.远程控制系统的工作原理远程控制是在网络上由一台电脑(主控端Remote/客户端)远距离去控制另一台电脑(被控端Host/服务器端)的技术。
远程控制必须通过网络才能进行。
位于本地的计算机是操纵指令的发出端,称为主控端或客户端,非本地的被控计算机叫做被控端或服务器端。
“远程”不等同于远距离,主控端和被控端可以是位于同一局域网的同一房间中,也可以是连入Internet的处在任何位置的两台或多台计算机。
远程控制软件一般分两个部分:一部分是客户端程序,另一部分是服务器端程序,在使用前需要将客户端程序安装到主控端电脑上,将服务器端程序安装到被控端电脑上。
它的控制的过程是先在主控端电脑上执行客户端程序,像一个普通的客户一样向被控端电脑中的服务器端程序发出信号,建立一个特殊的远程服务,然后通过这个远程服务,使用远程控制功能发送远程控制命令,控制被控端电脑中的各种应用程序运行。
基于VB的远程控制系统通过VB的winsock控件进行数据交换来实现。
winsock是Mcrosoft windows提供的网络编程接口。
它有两种数据交换协议:TCP协议和UDP协议,本次课程设计运用TCP协议。
四.慧鱼接口板处理器操作模式的选择以及计算机与接口板的通讯4.1 慧鱼接口板概述为了用计算机控制慧鱼教学模型,首先应当有合适的控制软件以及连接计算机与模型的接口。
接口完成软件命令的转换,列入可以启动电机、处理来自传感器的信号等。
接口板上有连向电机、灯、或电磁铁的四个数字量的输入口,还有八个数量和两个模拟量的输入口用来连接开关,光敏、磁敏、热敏电阻等传感器。
慧鱼智能接口板上自带微处理器,通过串行口与计算机相连。
在计算机上编好的程序可以下载到接口板的微处理器上,该微处理器可以独立地执行程序(在所谓主动模式下),这样就不必用电缆连接计算机和行走机器人。
当控制像机械手、绘图机这样的移动设备时,模型与计算机保持连接,计算机即是变量的输入/输出设备,也是它们的显示设备(称为所谓被动模式)。
4.2 微处理器的两种处理模式被动模式(本次课程设计所使用的模式)在被动模式下,程序的处理由计算机完成,因此接口与计算机的连接电缆不能断开。
在每个程序周期中,接口采集来自数字量和模拟输入端的数值然后传送给计算机,计算机再把数字量的输入值传送给接口板,接口板上的微处理器按要求操作相连的电机、灯和电磁铁。
接口板工作于被动模式时,计算机屏幕只能作为输入/输出设备,或程序状态的显示设备。
主动模式在主动模式下,程序由接口板自身的微处理器进行处理,而接口板与计算机的连线要断开。
如果软件支持主动模式(如LLWIN V2.1或以上),程序可以下载到接口板的RAM里。
程序下载后,接口板就终止与计算机的连接,此时可以拔掉接口线。
程序驻留在接口板的RAM历直到电源被切断(在不设定程序掉电保护功能时.)接口板上的微处理器的计算能力远小于计算机的计算能力。
对于旨在捕获快速计数脉冲的大程序,微处理器便无法累计到全部脉冲,这样的程序只能在被动模式下进行处理。
为了从主动模式切换到被动模式,要切断接口板的供电电源。
这就重新启动了安装在接口板EPROM中的操作软件,于是切换成为被动模式。
如果在计算机上修改了主动模式下的处理程序,而且想把它传回给接口板的微处理器,也必须切断电源。
4.3 计算机与接口板通讯串行口接口用厂家提供的9针D型插头经由RS232接口电缆和计算机的串行口(COM1或COM)连接。
控制端口参数波特率9600 位数8 校验无停止位 1 通讯计算机通过串行口与控制接口板通信的格式是两个字节。
第一个字节是接口命令,它告诉接口发送什么作为应答,第二个字节规定哪个电机以什么方向运动。
接口命令字节电机状态字节+6可以同时操作4个电机。
但是如果对一个电机同时设置左转和右转,电机将拒绝运行。
从接口板应答201 3字节1字节见上,2、3字节为模拟量EY 注意:从接口板发出的电机控制数据必须在300ms进行刷新,否则电机将停转。
五.服务端程序中主要功能模块的设计过程图6中上方文本框用于记录手爪闭合时行程开关状态(十进制),Timer主要用于刷新电机数据以及电机的延时。
启动VB并新建一个工程,往窗体(Form)中加入1个Winsock控件、1个通信控件(MSComml)以访问串口;12个定时器控件(Timer)以延时查询串口;8个复选框控件及2个按钮组控制四路电机及其状态。
图6:本地控制界面主要代码以及事件方法介绍如下:Private Sub Form_Load()Timer1.Enabled = FalseTimer2.Enabled = FalseTimer3.Enabled = FalseTimer4.Enabled = False MSComm 控件Timmer 控件Winsock 控件Timer5.Enabled = FalseTimer6.Enabled = FalseTimer7.Enabled = FalseTimer8.Enabled = FalseTimer9.Enabled = FalseTimer10.Enabled = FalseTimer11.Enabled = FalseTimer12.Enabled = FalseWinsock1.Listen ’进入侦听状态,等待客户端的连接请求MSComm1.InBufferCount = 0 ’清除接收缓冲区mPort = 1 ’选择通讯端口1MSComm1.RThreshold = 1 ’接收缓冲区收到每一个字符都会使 MSComm 控件产生 OnComm 事件MSComm1.InputLen = 0 ’MSComm 控件读取接收缓冲区中全部的容MSComm1.Settings = "9600,n,8,1" ’设置通信参数9600,N,8,1MSComm1.PortOpen = True ’打开通讯端口Private Sub MSComm1_OnComm()’ OnComm事件:通过接口板的各个输入控制电机Dim inbyte() As ByteSelect Case mEventCase comEvReceive ’监测通信过程中发生的错误或事件inbyte = MSComm1.InputEnd SelectDim a As IntegerDim b As IntegerDim c As IntegerDim d As IntegerDim e As Integera = inbyte(0) And 1b = inbyte(0) And 2c = inbyte(0) And 8d = inbyte(0) And 16e = inbyte(0) And 4If a = 1 Then Timer1.Enabled = False ’压下限位开关E1,向前运动停止If b = 2 Then Timer2.Enabled = False ’压下限位开关E2,向后运动停止If c = 8 Then Timer5.Enabled = False ’压下限位开关E4,上运动停止If d = 16 Then Timer6.Enabled = False ’压下限位开关E5,向下运动停止If e = 4 Then Timer7.Enabled = False ’压下限位开关E3,机械手开停止End SubPrivate Sub Timer1_Timer()Dim outbyte(1) As Byteoutbyte(0) = &HC1outbyte(1) = &H1 ’电机1正转,向前运动MSComm1.OutBufferCount = 0MSComm1.Output = outbyteEnd SubPrivate Sub Timer2_Timer()Dim outbyte(1) As Byteoutbyte(0) = &HC1outbyte(1) = &H2 ’电机1反转,向后运动MSComm1.OutBufferCount = 0MSComm1.Output = outbyteEnd SubPrivate Sub Timer3_Timer()Dim outbyte(1) As Byteoutbyte(0) = &HC1outbyte(1) = &H4 ’电机2正转,向左转动MSComm1.OutBufferCount = 0MSComm1.Output = outbyteEnd SubPrivate Sub Timer4_Timer()Dim outbyte(1) As Byteoutbyte(0) = &HC1outbyte(1) = &H8 ’电机2反转,向右转动MSComm1.OutBufferCount = 0MSComm1.Output = outbyteEnd SubPrivate Sub Timer5_Timer()Dim outbyte(1) As Byteoutbyte(0) = &HC1outbyte(1) = &H10 ’电机3正转,向上运动MSComm1.OutBufferCount = 0MSComm1.Output = outbyteEnd SubPrivate Sub Timer6_Timer()Dim outbyte(1) As Byteoutbyte(0) = &HC1outbyte(1) = &H20 ’电机3反转,向下运动MSComm1.OutBufferCount = 0MSComm1.Output = outbyteEnd SubPrivate Sub Timer7_Timer()Dim outbyte(1) As Byteoutbyte(0) = &HC1outbyte(1) = &H40 ’电机4正转,机械手开MSComm1.OutBufferCount = 0MSComm1.Output = outbyteEnd SubPrivate Sub Timer8_Timer()Dim outbyte(1) As Byteoutbyte(0) = &HC1outbyte(1) = &H80 ’电机4反转,机械手闭合MSComm1.OutBufferCount = 0MSComm1.Output = outbyteText1.Text = Str(Val(Text1.Text) + 1)If Text1.Text = 45 Then ’当Text1的读数到45时,机械手闭合停止Text1.Text = ""Timer8.Enabled = FalseEnd IfEnd Sub六.结论及心得体会在这次课程设计中,我们先认真复习机械原理、机械设计、VB的基本知识以及学习新的知识(主要为mscomm、winsock、timer三种控件的使用)等,通过慧鱼模型将自己心中所设想的机械搭建成模型,并使用VB通过串口对所搭建而成的机械模型进行控制。