慧鱼机器人控制程序_第1页
慧鱼机器人控制程序_第2页
慧鱼机器人控制程序_第3页
慧鱼机器人控制程序_第4页
慧鱼机器人控制程序_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

一、 实验目的1. 熟悉具体的 fischertechnik 模型机器人的机械结构及其工作原理。2. 了解慧鱼模型智能接口板的硬件电路及其主要功能。3. 学习慧鱼模型的编程软件 LLWin3.0 或 Visual Basic 编程语言。4. 掌握计算机与智能接口板之间的通讯协议。5. 采用高级编程语言(Visual Basic、labwindows/CVI 等)实现具体模型机器人的动作控制。二、 实验设备1、装有 LLWin3.0 软件或 Visual Basic 编程语言的 PC 机一台。2、具体的 fischertechnik 机器人模型数个。3、慧鱼机器人智能接口板(控制电路板)一块、RS232 通讯电缆一条及9v 稳压电源一个。图一 慧鱼机器人三、 实验原理1、系统组成:1.1 控制端:直接控制模型运动的控制中心,这里指直接控制模型的计算机,通过串口(COM)与接口板进行信息交流,以及在计算机内部进行算法运算,以此来控制模型运动。1.2 模型运动:可以通过 PC 机编制程序控制机器人电机转动,达到控制机器人按照指令运动的目的。2、接口板处理器操作模式:被动模式:程序的处理由计算机完成,接口与计算机的连接电缆不能断开,在每个程序周期中,接口采集来自数字量和模拟量输入端的数值然后送给计算机,计算机再把数字量的输出值传送给接口板,接口板上微处理器按要求操作相连的电机。3、计算机与接口板的通讯:3.1 计算机通过 COM 口与接口板进行信息交流,慧鱼公司规定控制端口的参数为波特率为 9600,位数为 8 位,效验为无,停止位为 1,参数的设定在程序开发的时候会编写确定。3.2 慧鱼公司规定 COM 口与接口板的通信格式为两个字节,第一字节是接口命令,控制接口发送内容作为应答,第二个字节规定哪个电机以什么方向转动,简单的说就是第一个字节是当行程开关、感应器等有反应而发出信号给接口板,接口板接收并且记录,等待计算机的查询;而第二个字节是计算机发送命令到接口板,接口板微处理器分析并且向电机、灯等发送信息,控制它们工作。3.3 接口板有接收第一字节命令的 E1-E8 ,模拟量 EX 和 EY 的接口,选择E1-E8 时,应答为一字节,而选择 E1-E8 ,和模拟量 EX 或 EY 时,应答为三字节,其中 1 字节为 E1-E8 输入,2,3 字节为 EX 或 EY,在本设计中只需选择 E1-E8,应答为一字节。3.4 在程序开发中,主要是使用 byte 数组来实现 2 中的两个字节控制和 3 中的接收应答,简言之:定义一个一维二项数组 ACT(2) ,其中 ACT(0)来告诉接口板使用 E1-E8 接口, ACT(1)来告诉接口板控制什么电机,怎样控制。定义一个一维不定数组 RTC() ,其中从 E1-E8 接收到的命令储存在RTC()中。具体数据定义见下表:十六进制 规定(回送内容) ACT()C1 E1-E8 &HC11 电机 1 正转 12 电机 1 反转 23 电机 2 正转 34 电机 2 反转 85 电机 3 正转 166 电机 3 反转 327 电机 4 正转 648 电机 4 反转 128四、实验过程和步骤本次实验为此计算机设计了两套运行程序,一套为串行程序,此程序一次只能控制一个电机的转动,不能多个电机同时运动。另一套为并行程序,此程序可以同时控制四部电机转动,但由于慧鱼公司初始的设置只能让一部电机转动,故并行程序导致电机转动缓慢。1、窗体面板:1.1 欢迎窗体1.2 模型操作界面1.3 结束 感谢面板2、程序设计首先是并行控制的程序:Private Sub Cmd5_Click()Cmd7.Enabled = TrueMSComm1.InBufferSize = 1024MSComm1.OutBufferSize = 512MSComm1.CommPort = Text2.TextMSComm1.Settings = “9600,n,8,1“ 设置通信参数 9600,N,8,1Text1.Text = “9600,n,8,1“ 显示通信参数Text2.Text = “1“ 显示端口MSComm1.InputMode = comInputModeBinary 设置接收数据模式为二进制形式MSComm1.RThreshold = 3 设置接收 3 个字节产生 OnComm 事件MSComm1.InputLen = 3 设置 Input 一次从接收缓冲读取为 3 字节If Not MSComm1.PortOpen ThenMSComm1.PortOpen = TrueEnd IfTimer1.Interval = controltimeTimer2.Interval = controltimeTimer3.Interval = controltimeTimer4.Interval = controltimeLbl5.Caption = “已连接“End SubPrivate Sub Cmd8_Click()Timer1.Enabled = FalseTimer2.Enabled = FalseTimer3.Enabled = FalseTimer4.Enabled = FalseEnd SubPrivate Sub Command1_Click()Timer1.Interval = controltimeTimer1.Enabled = TrueTimer2.Interval = controltimeTimer2.Enabled = TrueTimer3.Interval = controltimeTimer3.Enabled = TrueTimer4.Interval = controltimeTimer4.Enabled = TrueEnd SubPrivate Sub Timer1_timer() 电机控制Mot(0) = &HC9If MR(1).Value = True ThenMot(1) = 2ElseIf ML(1).Value = True ThenMot(1) = 1ElseMot(1) = 0End IfMSComm1.OutBufferCount = 0MSComm1.Output = MotEnd SubPrivate Sub Cmd7_Click()Timer1.Enabled = TrueTimer2.Enabled = TrueTimer3.Enabled = TrueTimer4.Enabled = TrueEnd SubPrivate Sub Form_Load()Lbl5.Caption = “未连接“End SubPrivate Sub Timer2_timer() 电机控制Mot(0) = &HC9If MR(2).Value = True ThenMot(1) = 8ElseIf ML(2).Value = True ThenMot(1) = 4ElseMot(1) = 0End IfMSComm1.OutBufferCount = 0MSComm1.Output = MotEnd SubPrivate Sub Timer3_Timer()Mot(0) = &HC9If MR(3).Value = True ThenMot(1) = 32ElseIf ML(3).Value = True ThenMot(1) = 16ElseMot(1) = 0End IfMSComm1.OutBufferCount = 0MSComm1.Output = MotEnd SubPrivate Sub Timer4_Timer()Mot(0) = &HC9If MR(4).Value = True ThenMot(1) = 128ElseIf ML(4).Value = True ThenMot(1) = 64ElseMot(1) = 0End IfMSComm1.OutBufferCount = 0MSComm1.Output = MotEnd Sub以下是串行控制的程序:Private Sub Cmd8_Click()Timer1.Enabled = FalseEnd SubPrivate Sub Timer1_timer() 电机控制Mot(0) = &HC9If MR(1).Value = True ThenMot(1) = 2ElseIf ML(1).Value = True ThenMot(1) = 1ElseIf MR(2) = True ThenMot(1) = 8ElseIf ML(2) = True ThenMot(1) = 4ElseIf MR(3) = True ThenMot(1) = 32ElseIf ML(3) = True ThenMot(1) = 16ElseIf MR(4) = True ThenMot(1) = 128ElseIf ML(4) = True ThenMot(1) = 64ElseMot(1) = 0End IfMSComm1.OutBufferCount = 0MSComm1.Output = MotEnd SubPrivate Sub Cmd5_Click()Cmd7.Enabled = TrueMSComm1.InBufferSize = 1024MSComm1.OutBufferSize = 512MSComm1.CommPort = Text2.TextMSComm1.Settings = “9600,n,8,1“ 设置通信参数 9600,N,8,1Text1.Text = “9600,n,8,1“ 显示通信参数MSComm1.InputMode = comInputModeBinary 设置接收数据模式为二进制形式MSComm1.RThreshold = 3 设置接收 3 个字节产生 OnComm 事件MSComm1.InputLen = 3 设置 Input 一次从接收缓冲读取为 3 字节If Not MSComm1.PortOpen ThenMSComm1.PortOpen = TrueEnd IfTimer1.Interval

温馨提示

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

评论

0/150

提交评论