南昌航空大学学士学位论文
调制)相当于调制度为100%的调幅。
图2.19 PT2262示意图
表2.1 PT2262引脚功能
名称 管脚 说 明 A0-A 1-8 10-13 、 地 址 管 脚 , 用 于 进 行 地 址 编 码 , 可 置 为 “0”,“1”,“f”(悬空), 11 D0-D 7-8 10-13 、 数据输入端,有一个为“1”即有编码发出,内部下 5 拉 Vcc
18
电源正端(+)
Vss 9 电源负端(-) 编码启动端,用于多数据的编码发射,低电平有 TE 14 效; 振荡电阻输入端,与 OSC2所接电阻决定振荡频 OSC1 16 率; OSC2 15 振荡电阻振荡器输出端; Dout 17 编码输出端(正常时为低电平)
在具体的应用中,外接振荡电阻可根据需要进行适当的调节,阻值越大振荡频率
越慢,编码的宽度越大,发码一帧的时间越长。
第 14页共 32页
南昌航空大学学士学位论文
图2.20 PT2272示意图
表2.2 PT2272引脚功能
名称 管脚 说 明 A0- 1-8 地址管脚 , 用于进行地址编码 , 可置为 “0”,“1”,“f”( 悬 、 10-13 A11 空),必须与2262一致,否则不解码 D0- 7-8 、 D5 10-13 地址或数据管脚,当做为数据管脚时 电源正端(+) Vcc 18 Vss 9 电源负端(-) DIN 14 数据信号输入端,来自接收模块输出端 OSC 1 16 振荡电阻输入端,与 OSC2所接电阻决定振荡频率; OSC 2 15 17 振荡电阻振荡器输出端; VT 解码有效确认 输出端(常低)解码有效变成高电平
第 15页共 32页
南昌航空大学学士学位论文
3 控制系统结构设计
3.1 上位机控制
3.1.1 程序语言及串口通讯
本文在上位机(即计算机)上使用 VB 语言编写控制程序与人际交互界面,该语
言是由美国微软公司于 1991 年开发的一种可视化的、面向对象和采用事件驱动方式
的结构化高级程序设计语言,可用于开发 Windows 环境下的各类应用程序。它简单
易学、效率高,且功能强大可以与 Windows 专业开发工具 SDK 相媲美[9]。在 Visual
Basic 环境下,利用事件驱动的编程机制、新颖易用的可视化设计工具,使用 Windows
内部的广泛应用程序接口(API)函数,动态链接库(DLL)、对象的链接与嵌入(OLE) 、
开放式数据连接(ODBC)等技术,可以高效、快速地开发 Windows 环境下功能强大、
图形界面丰富的应用软件系统。
本文通过串口实现上位机与控制器的信号传递,串口即\串行通信\是指外设和计
算机间使用一根数据信号线,数据在一根数据信号线上按位进行传输,每一位数据都
占据一个固定的时间长度。这种通信方式使用的数据线少,在远距离通信中可以节约
通信成本,当然,其传输速度比并行传输慢。相比之下,由于高速率的要求,处于计
算机内部的 CPU 与串口之间的通讯仍然采用并行的通讯方式,所以串行口的本质就是
实现 CPU 与外围数据设备的数据格式转换(或者称为串并转换器),即当数据从外围
设备输入计算机时,数据格式由位(bit)转化为字节数据;反之,当计算机发送下行
数据到外围设备时,串口又将字节数据转化为位数据。
VB 语言中为设计者封装了一种控件以方便用户进行串口操作,该控件
即为 mscomm.vbx。mscomm.vbx 通信控件可直接从 vb 的 toolbox 中加入窗
体 form,即可用其进行通信[10]。
使用 MSCOMM 控件主要是通过事件来处理串行口的交互,即当
数据到达时,控件的 OnComm 的事件就会来捕获或处理这些通讯事
件。而 OnComm 事件也可以用来捕获和处理通讯错误。在实际应用
中,一个 MSCOMM 控件就对应一个串行口,所以如果要处理多个串
行口的话,必须有相应数量的控件与之对应。此控件的主要属性:
? CommPort:设置或者返回串行端口号
? Settings:用来设置和返回波特率,奇偶校验,数据位和
结束位
第 16页共 32页
南昌航空大学学士学位论文
? PortOpen:设置或者返回通讯端口的状态,也可以打开和关闭一个端口
? Input:从接受缓冲区里获取或删除数据
? Output:给发送缓冲区里写数据
3.1.2 人机交互界面
上位机在整个系统中起着统筹发号施令的作用,它实现的功能为:根据操作员发
出的直接命令或间接命令计算编译出传送给机器人运动的控制信号。图3.1是本设计
的控制软件界面:
图3.1 控制界面
对窗体各控件进行初始化:
sub form-load ()
mscomm1.commport=1 '选用com1串行口
mscomm1.settings=\,n8,1\ '波特率2400, 8位数据位1位停止位
第 17页共 32页
南昌航空大学学士学位论文
mscomm1.inputlen=0 'input
mscomm1.inbuffersize=1024 '设置接收缓冲区的字节长度
mscomm1.portopen=true '打开通信口
mscomm1.inbuffercount=0 '清除发送缓冲区数据
mscomm1.outbuffercount=0 '清除接收缓冲区数据
periodic.inteval=100 '设置ls定时间隔,使遥测命令每隔ls发送1次
command-pressed=false '命令按钮为未激活状态
during- periodic=false '周期性命令数据传输尚未开始
during- nonperiodic=false '非周期性命令数据传输尚未开始
end sub
通过点击每个按钮实现对机器人的不同控制只需编写触发命令按钮的单击事件
将读取接收缓冲区的全部内容
即可,下面以自动演示控制为例:
Private Sub 自动演示_Click()
MSComm1.Output = \ '串口输出\的 ASCⅡ编码
state = \机器人自动动作!\ '赋值机器人当前状态变量 state
Timer2.Enabled = True '激活定时器 2
Text1.Text = \传送指令中……\更新最新发送指令指示
Form1.Enabled = False '窗体无效,防止指令过于密集
End Sub
定时器控件计时到点事件:
Private Sub Timer1_Timer()
Text1.Text = state '更新最新发送指令指示
Form1.Enabled = True '激活窗体有效
Timer1.Enabled = False '关闭计时器
End Sub
第 18页共 32页
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库六足爬行机器人设计(5)在线全文阅读。
相关推荐: