![一模型实体图和工作原理_第1页](http://file3.renrendoc.com/fileroot_temp3/2022-2/5/a4fdc59a-b078-4061-aea9-cdcf27c16c1b/a4fdc59a-b078-4061-aea9-cdcf27c16c1b1.gif)
![一模型实体图和工作原理_第2页](http://file3.renrendoc.com/fileroot_temp3/2022-2/5/a4fdc59a-b078-4061-aea9-cdcf27c16c1b/a4fdc59a-b078-4061-aea9-cdcf27c16c1b2.gif)
![一模型实体图和工作原理_第3页](http://file3.renrendoc.com/fileroot_temp3/2022-2/5/a4fdc59a-b078-4061-aea9-cdcf27c16c1b/a4fdc59a-b078-4061-aea9-cdcf27c16c1b3.gif)
![一模型实体图和工作原理_第4页](http://file3.renrendoc.com/fileroot_temp3/2022-2/5/a4fdc59a-b078-4061-aea9-cdcf27c16c1b/a4fdc59a-b078-4061-aea9-cdcf27c16c1b4.gif)
![一模型实体图和工作原理_第5页](http://file3.renrendoc.com/fileroot_temp3/2022-2/5/a4fdc59a-b078-4061-aea9-cdcf27c16c1b/a4fdc59a-b078-4061-aea9-cdcf27c16c1b5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、一.模型实体图和工作原理1.模型实体图:图(1)图(2)图(3)图(4)图(5)图(6)2.工作原理:1. 开始:图(1)按开始按钮后机器人由电机1转动而向前运动,机器人一直动到行程开关5碰撞到楼梯.2. 机构上升:图(2)当行程开关5碰撞到楼梯后,电机1停止运动;电机2和电机3正转而令机构上升!当机构上升到最顶端时机构碰撞到行程开关1和3令电机2和电机3停止转动,机构上升结束.3. 前进:图(3)机构上升结束后最顶端碰撞到行程开关1和3时指令电机4转动.机器人向前运动.4. 机构下降: 图(4)机器人向前运动到一定距离后程开关6碰撞到楼梯后指令电机4停止转动.并开启电机2和3反转从而机构下降
2、,下降到最底时碰撞到行程开关2和4令电机2和电机3停止转动,回复到爬梯前状态,准备下一次爬梯动作.5. 前进: 图(5)这步和开始的一样功能.6. 停止: 当完成爬梯梯任务后机器人继续向前运动直到行程开关7碰撞到终点挡板,机器人停止工作.二.远程控制系统工作原理1.系统组成:1. 服务器端:直接控制模型运动的控制中心,这里指直接控制模型的计算机,通过串口(COM)与接口板进行信息交流,以及在计算机内部进行算法运算,以此来控制模型运动2.
3、160; 客户端:间接控制模型运动的控制平台,这里指间接控制模型的计算机,通过TCP协议与服务器端进行信息交流,以及通过服务器对模型运动进行控制 这里的信息交流是指最低层的二进制数据(byte)传输(模拟量和数字量之间的转换),具体通过程序来控制,因为主要的原理是通过类似于单片机的控制,所以对模型的控制不一定只使用串口(COM),可采用其他连接手段,只要最后合乎慧鱼公司的控制要求就行了 通过TCP协议来做远程控制,是采用类似于互联网的信息交流,通过客户端和服务器端的bytes 传输和服务器端的算法运算就可以实现基本的模型控制功能了 在不同的
4、信息传输之间,存在缓冲区,缓冲区的作用是将输入输出的数据暂时储存,等待传输,因为例如在进行COM 口两端的信息交流时,数据流的转换和计算机本身传输不同步,如果没有缓冲区就出现数据传输的丢失和覆盖,所以开发程序和通过接口板控制模型的时候要注意数据流的传输3. 模型运动:可以通过远程控制实现当机器人撞到楼梯后能自动进行爬楼梯,达到目的之后能自动停止工作.2.远程控制系统图:三.计算机与接口板的通讯1.接口板处理器操作模式:接口板的微处理器有两种操作模式:1. 被动模式:程序的处理由计算机完成,
5、接口与计算机的连接电缆不能断开,在每个程序周期中,接口采集来自数字量和模拟量输入端的数值然后送给计算机,计算机再把数字量的输出值传送给接口板,接口板上的微处理器按要求操作相连的电机、灯和电磁铁2. 主动模式:程序由接口板的微处理器进行处理,而接口板与计算机的连线要断开。接口板的微处理器的计算能力远小于计算机的计算能力,对于旨在捕获快速计算脉冲的大程序,微处理器便无法累计全部脉冲,这样的程序只能在被动模式下进行处理 本设计是实现爬楼梯机器人的自动和手动控制,所以有较大的程序处理,接口板处理器操作模式应采用被动模式,并且不设定程序掉电保护功能 2.计算机与接口板的通讯
6、:1. 计算机通过COM 口与 接口板进行信息交流,慧鱼公司规定控制端口的参数为波特率为9600,位数为8位,效验为无,停止位为1,参数的设定在程序开发的时候会编写确定2. 慧鱼公司规定COM 口与接口板的通信格式为两个字节,第一字节是接口命令,控制接口发送内容作为应答,第二个字节规定哪个电机以什么方向转动,简单的说就是第一个字节是当行程开关、感应器等有反应而发出信号给接口板,接口板接收并且记录,等待计算机的查询;而第二个字节是计算机发送命令到接口板,接口板微处理器分析并且向电机、灯等发送信息,控制它们工作3. 接口板有接收第一字节命令的E1-E8 ,模拟量E
7、X和EY的接口,选择E1-E8时,应答为一字节,而选择E1-E8 ,和模拟量EX或EY时,应答为三字节,其中1字节为E1-E8输入,2,3字节为EX或EY,在本设计中只需选择E1-E8,应答为一字节4. 在程序开发中,主要是使用byte 数组来实现2中的两个字节控制和3中的接收应答,简言之: 定义一个一维二项数组 ACT(2),其中ACT(0)来告诉接口板使用E1-E8接口,ACT(1)来告诉接口板控制什么电机,怎样控制 定义一个一维不定数组 RTC(),其中从E1-E8接收到的命令储存在RTC()中具体数据定义见下表:十六进制规定(回送内容)ACT()C1E1
8、-E8&HC1 位(n)规定ACT()1开始(M1)24机构上升(M2)162机构上升(M3)47上升后前进(M4)1285机构上升(M2)163机构上升(M3)8如果同时控制多个电机,可将ACT()相应值相加,或者制造多个数组分别发送 位(n)RTC()11223448516632764 注:行程开关的具体控制功能请看下面程序说明同理如果多个接口同时回送内容,则RTC()的值为相应值相加 接口板每300 ms需要一次命令的刷新,否则电机会停止,所以要不断地向接口板发信号四.服务器端程序开发1.程序开发软件:Visual Basic 6.0 ,V
9、B是一种面向过程的解释性编程语言,是较高级的编程语言,在进行程序开发时,对模型控制使用了MSCOMM 控件,对远程控制使用了WINSOCK 控件,下面会有详细介绍.2.程序由三个主要普通窗体组成1 迎窗体,主要用来介绍软件的制作成员和模型名称。2模型操作面板(主窗体)和设置面板,主要用来控制模型运动和信息反馈。3.关闭系统时的感谢面板3.服务端程序设计和注释1.为了提高程序的开发和维护效率,所以创建了两个模块:运算模块Module1和函数模块Module2a. 运算模块Module1Global COMP As IntegerGlobal Rtr() As Byte是接收应答的函数数组Glob
10、al Act1(2) As Byte控制电机1运动Global Act2(2) As Byte控制电机2正转Global Act3(2) As Byte控制电机3正转Global Act20(2) As Byte控制电机2反转Global Act30(2) As Byte控制电机3反转Global Act4(2) As Byte控制电机4运动Global Const Controltime = 20时钟控件值Global strData As Stringb. 运算模块Module1Public Declare Function GetTickCount Lib "kernel32&
11、quot; () As Long用于延时Sub timedelay(DT As Long)Dim TT As LongTT = GetTickCount()Do DoEvents If GetTickCount - TT < 0 Then TT = GetTickCount Loop Until GetTickCount - TT >= DTEnd Sub2. 控制系统一共有三个窗体: 欢迎窗体.控制窗体.感谢窗体a. 欢迎窗体程序设计Private Sub Form_Click()Unload Meserver.ShowEnd SubPrivate Sub Form_Unload
12、(Cancel As Integer)server.ShowEnd SubPrivate Sub Timer1_Timer()Unload MeEnd Subb. 感谢窗体程序设计Private Sub Form_Click()Unload MeEnd SubPrivate Sub Timer1_Timer()Unload MeEnd Subc. 控制窗体程序设计Private Sub Command1_Click()用于清除接受命令的内容txtReceive.Text = ""End SubPrivate Sub Form_Unload(Cancel As Integer
13、)关闭远程控制并打开感谢窗Winsock2.Closethank.ShowEndEnd SubPrivate Sub listen_Click()远程控制的联接If Winsock2.State <> sckClosed Then Winsock2.CloseWinsock2.LocalPort = Val(txtport.Text) '设置通讯端口号码Winsock2.listen '开始聆听ControlComm.Settings = "9600,n,8,1"ControlComm.CommPort = Val(txtcom.Text)Con
14、trolComm.PortOpen = Truetimedelay 100Me.Caption = oldCaption & "聆听中。"listen.Enabled = FalseIf txtport.Text = "" ThenMsgBox "请输入端口号!", vbOKOnly, "提示"listen.Enabled = TrueEnd IfEnd SubPrivate Sub stop_Click()Winsock2.Close '关闭连接End '结束系统End SubPrivat
15、e Sub Winsock2_Close()当客户端中断时txtReceive.Text = txtReceive.Text & "对方执行中断!" & vbCrLftxtReceive.SelLength = Len(txtReceive.Text)Winsock2.CloseWinsock2.listenMe.Caption = oldCaption & "->聆听中。"passion.Enabled = FalseEnd SubPrivate Sub Winsock2_ConnectionRequest(ByVal r
16、equestID As Long)If Winsock2.State <> sckClosed Then Winsock2.CloseWinsock2.Accept requestIDMe.Caption = oldCaption & "连接中。"passion.Enabled = TrueEnd SubPrivate Sub Form_Load()passion.AddItem "开始"passion.AddItem "机构上升"passion.AddItem "一次前进"passion.Ad
17、dItem "机构下降"passion.AddItem "二次前进"passion.AddItem "停止"passion.Enabled = FalsetxtReceive.Enabled = TrueEnd SubPrivate Sub Winsock2_DataArrival(ByVal bytesTotal As Long)Winsock2.GetData strDataSelect Case strDataCase Is = "自动控制选择"AutotxtReceive.Text = txtReceive
18、.Text & "自动控制选择" & vbCrLfCase Is = "手动控制选择"txtReceive.Text = txtReceive.Text & "手动控制选择" & vbCrLfManupassion.Enabled = TrueCase Is = "开始" '电机1工作,车向前走passion.Selected(0) = TrueAct1(0) = &HC1Act1(1) = 2Timer1.Interval = ControltimeTimer1.E
19、nabled = TrueCase "机构上升" '设电机2和3正转,机构上升,实现爬梯Timer01.Interval = Controltimepassion.Selected(1) = TrueAct2(0) = &HC1Act3(0) = &HC1Act2(1) = 16Act3(1) = 4Timer2.Interval = ControltimeTimer3.Interval = ControltimeTimer1.Enabled = FalseTimer2.Enabled = TrueTimer3.Enabled = TrueCase
20、"一次前进" '电机4工作,车向前走passion.Selected(2) = TrueAct4(0) = &HC1Act4(1) = 128Timer4.Interval = ControltimeTimer4.Enabled = TrueTimer2.Enabled = FalseTimer3.Enabled = FalseCase "机构下降" '电机2和3反转,机构下降,回复到爬梯前状态passion.Selected(3) = TrueAct20(0) = &HC1Act30(0) = &HC1Act20
21、(1) = 32Act30(1) = 8Timer20.Interval = ControltimeTimer30.Interval = ControltimeTimer20.Enabled = TrueTimer30.Enabled = TrueTimer4.Enabled = FalseCase "二次前进" '电机1工作,车向继续向前走,准备下一次爬梯passion.Selected(4) = TrueAct1(0) = &HC1Act1(1) = 2Timer1.Interval = ControltimeTimer1.Enabled = TrueT
22、imer20.Enabled = FalseTimer30.Enabled = FalseCase "停止"passion.Selected(5) = TrueTimer1.Enabled = FalseTimer2.Enabled = FalseTimer3.Enabled = FalseTimer4.Enabled = FalseTimer20.Enabled = FalseTimer30.Enabled = FalseCase "急停"Timer1.Enabled = FalseTimer2.Enabled = FalseTimer3.Enable
23、d = FalseTimer4.Enabled = FalseTimer20.Enabled = FalseTimer30.Enabled = FalseIf Rtr(0) <> 10 Then Winsock2.SendData "att"Case "重置"Timer5.Enabled = FalseTimer6.Enabled = TrueAct20(0) = &HC1Act30(0) = &HC1Act20(1) = 32Act30(1) = 8Timer20.Interval = ControltimeTimer30.
24、Interval = ControltimeTimer20.Enabled = TrueTimer30.Enabled = TrueEnd SelectEnd SubPrivate Sub Timer1_Timer()控制电机1运动With ControlComm.Output = Act1Do While .InBufferCount < 1 DoEventsLoopEnd WithEnd SubPrivate Sub Timer2_Timer()控制电机2正转With ControlComm.Output = Act2Do While .InBufferCount < 1 Do
25、EventsLoopEnd WithEnd SubPrivate Sub Timer20_Timer()控制电机2反转With ControlComm.Output = Act20Do While .InBufferCount < 1 DoEventsLoopEnd WithEnd SubPrivate Sub Timer30_Timer()控制电机3反转With ControlComm.Output = Act30Do While .InBufferCount < 1 DoEventsLoopEnd WithEnd SubPrivate Sub Timer3_Timer()控制电
26、机3正转With ControlComm.Output = Act3Do While .InBufferCount < 1 DoEventsLoopEnd WithEnd SubPrivate Sub Timer4_Timer()控制电机4运动With ControlComm.Output = Act4Do While .InBufferCount < 1 DoEventsLoopEnd WithEnd SubPrivate Sub Timer6_Timer() '手动控制时行程开关的控制Do While ControlComm.InBufferCount < 1Do
27、EventsLoopRtr() = ControlComm.InputIf Rtr(0) = 1 Then Timer3.Enabled = False第1个行程开关的值, 上升结束后机构接触的行程开关If Rtr(0) = 2 Then Timer30.Enabled = False第2个行程开关的值If Rtr(0) = 4 Then Timer2.Enabled = False第3个行程开关的值, 上升结束后机构接触的行程开关If Rtr(0) = 8 Then Timer20.Enabled = False第4个行程开关的值If Rtr(0) = 26 Then第2.4.5个行程开关的
28、值和Timer1.Enabled = FalseWinsock2.SendData "前进结束。"End IfIf Rtr(0) = 37 Then 第1.3.6个行程开关的值和Timer4.Enabled = FalseWinsock2.SendData "二次前进结束。"End IfIf Rtr(0) = 5 Then 上升结束后机构接触的行程开关1和3值和Timer2.Enabled = FalseTimer3.Enabled = FalseWinsock2.SendData "上升结束."End IfIf Rtr(0) = 1
29、0 Then 下降结束后机构接触的行程开关2和4值和Timer30.Enabled = FalseTimer20.Enabled = FalseWinsock2.SendData "下降结束。"End IfIf Rtr(0) = 74 Then 行程开关2.4.7的值和Timer1.Enabled = FalseTimer2.Enabled = FalseTimer4.Enabled = FalseTimer3.Enabled = FalseTimer20.Enabled = FalseTimer30.Enabled = FalsesenData1 = "manu
30、stop"Winsock2.SendData senData1End Ifa.Caption = Rtr(0)End SubPrivate Sub Timer5_Timer() '自动控制时行程开关的控制Do While ControlComm.InBufferCount < 1DoEventsLoopRtr() = ControlComm.InputIf Rtr(0) = 26 Then Timer1.Enabled = FalseAct2(0) = &HC1Act3(0) = &HC1Act2(1) = 16Act3(1) = 4Timer2.Int
31、erval = ControltimeTimer3.Interval = ControltimeTimer2.Enabled = TrueTimer3.Enabled = TrueTimer4.Enabled = FalseEnd IfIf Rtr(0) = 5 ThenAct4(0) = &HC1Act4(1) = 128Timer4.Interval = ControltimeTimer4.Enabled = TrueTimer2.Enabled = FalseTimer3.Enabled = FalseEnd IfIf Rtr(0) = 37 ThenTimer4.Enabled
32、 = FalseAct20(0) = &HC1Act30(0) = &HC1Act20(1) = 32Act30(1) = 8Timer20.Interval = ControltimeTimer30.Interval = ControltimeTimer20.Enabled = TrueTimer30.Enabled = TrueTimer4.Enabled = FalseEnd IfIf Rtr(0) = 10 ThenAct1(0) = &HC1Act1(1) = 2Timer1.Interval = ControltimeTimer1.Enabled = TrueTimer4.Enabled = FalseTimer20.Enabled = FalseTimer30.Enabled = FalseEnd IfIf Rtr(0) = 74 ThenTimer1.Enabled =
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- (高清版)DB37∕T 3048-2017 自主可控软件测试与认证规范
- 《避雷器测试》课件
- 【语文】学习活动三 辨识媒介信息课件 2024-2025学年统编版高一语文必修下册
- 《财务预算》课件2
- 语言和感知课件
- 秘书公共卷复习测试题
- 环境监测站-水分析练习卷含答案
- 汽车底盘电控系统检修-练习测试题附答案
- 二零二五年度文化传播公司艺人经纪合同
- 临床化疗药物外渗预防处理
- 2024-2025年第二学期团委工作计划(二)
- 骆驼养殖开发项目可行性报告设计方案
- 物理-河南省郑州市2024-2025学年高二上学期期末考试试题和答案
- 2025年南京信息职业技术学院高职单招语文2018-2024历年参考题库频考点含答案解析
- 二零二五年知识产权共享及收益分成合作协议3篇
- 北师大版二年级数学上册计算题专项复习大全272
- 屋顶分布式光伏电站设计及施工方案
- 《幼儿教育政策与法规》教案-单元3 幼儿园的开办与管理
- 2024年09月2024渤海银行天津滨海新区分行校园招聘笔试历年参考题库附带答案详解
- 2024低血糖的急救诊断和治疗
- 期末考试成绩分析报告课件
评论
0/150
提交评论