一、硬件总体设计
六自由度机械臂控制系统的硬件结构主要有核心控制器、红外遥控、光耦隔离保护电路、人机交换界面和 5V 开关电源等,结构框图如图 4-1 所示。
给这个系统的核心板与机械臂分别接上电源,核心控制器能够输出 6 路 PWM 信号,这6 路不同的控制信号被分别输入给光耦隔离保护板的输入端,然后通过光耦隔离保护板的另一端输送给舵机,驱动 6 个舵机回到初始位置,这样就完成了上电初始化。然后,FPGA 核心控制器接收到双目摄像头发来的目标物体相对于舵机基座的空间坐标,控制器通过对运动学进行分析,求解出每个舵机应该转动的度数,同时操控舵机旋转相对度数去抓取物体。若当末端操作器所到达的位置和目标物有微小的偏差时,使用者还可以通过红外遥控器对机械臂的位姿进行细微的调整,使其运动到能够抓取到目标物的位置。在这个控制系统当中,液晶显示器用于显示每个关节(即舵机)当前所旋转的角度和系统已经工作的时间。这套装置最终的目标是使该机械臂能够广泛的应用于现代工业自动化生产线当中,可以帮助人们去做一些重复、繁重、劳累、环境恶劣的事情,如果真的被应用在生产线上,将大大加快我们国家迈入机械自动化的脚步。
我们所说的工业机器人操控系统其核心就是一种非线性、时变系统。同时对六自由度机械臂的每个关节而言,我们不去理会它们之间的相对耦合作用,把它们每个都当做独立的来看待。机器人的核心系统就是其核心控制器,它的控制方式多种多样,根据不一样的控制原理,能够有不同的分类。人们通常是按坐标方式来进行区分,主要有关节运动控制与笛卡尔坐标控制两类。在本实验设计当中,机械臂控制系统方式就选择了关节空间运动控制。下面我们来进行详细的介绍。
二、核心控制器
现如今,人们常用的处理器有多种多样的类型,同时其更新换代的速度也是越来越迅速。在实际应用设计当中怎样去挑选一款合适的控制器,这个问题已经成为一个大家共同关注的主题,这里面需要考虑的影响因素有很多。如今,广泛被人们使用的嵌入式处理器有 ARM、FPGA、DSP 和 MCU 等。这些处理器都有着它们独特的优点和缺点,并都在特定的领域大放异彩。FPGA 是一种新兴的处理器,它的发展时间相对来说比较短,但是它的作用却非常多,是目前使用者们开发利用最多的一类控制器,它几乎可以做到其它任何控制器可以实现的工作。
FPGA(Field Programmable Gate Array),就是现场可编程门阵列,它是在 PAL、GAL、CPLD等其它一些器件基础上面经过更加进深入研究之后所产生的。它以专业集成电路(ASIC)中一种半定制电路形式出现在大家眼前,能够有效改善定制电路的不足,同时还能大大增加门电路数量,所以倍受人们的推崇。表 4-1 介绍了 FPGA 与 ASIC 的比较。
一个典型的 FPGA 基本就是由如图 4-2 所示的每个不同的模块所组成的。主要有由逻辑模块 LB(Logic Block)、输出输入模块 IOB(I/O Block)和内部连线(Interconnect)三个主要部分组成。此外,FPGA 内部通常还会增加例如 RAM 块、乘法器等模块。FPGA 的开发与应用同我们所熟知的单片机等控制器是不一样的,FPGA 通常采用的是并行运算,以硬件描述语言为基础,这与单片机的操作顺序有很大的不同。FPGA 做为可编程元器件,与以前的逻辑电路和门阵列结构也有着非常多不同之处。使用者通过 FPGA 来进行硬件电路的设计时,不用单独制作也可以获得理想组合芯片了。同时,FPGA 当中含有非常丰富的 I/O 端口,能够帮助完成海量的扩展任务。它的设计周期短、经济效益高和风险小也是被人们所热衷的原因之一。
FPGA 的电源必须在 1.2V 到 5V 之间,输出电流在数十毫安到数安之间。现在人们常用的电源有低压差稳压器、开关式稳压器与开关电源模块三种。本系统直接采用电脑的 USB 来为 FPGA 供电。
六自由度机械臂的核心控制器选用的是 Altera 公司 Cyclone IV 系列 EP4CE6F17C8N 型FPGA,这是一款成本较低的 FPGA(如图 4-3 所示),具有非常多的硬件逻辑资源,主要硬件资源如下:
1. 265 脚 BGA 封装,包括 6272 个 LE、105 个 M4K RAM、2 个 PLL、15 个乘法器模
块和最多 179 个用户 I/O 口等,如图 3-4 所示;
2. 使用大容量配置芯片 EPCS16,可以为系统提供非常大的空间;
3. 系统的时钟为 50M,同时还有一个 SMA 外部时钟接口;
4. 使用了非常多的去耦电容。
此外,可利用丰富的硬件资源来构建软核 NiosⅡ处理器的 SOPC 片上系统,并在其上运行μC/OS 或 Linux 操作系统,还可以利用 FPGA 的硬件并行结构特点来提高处理速度。
三、红外遥控器
为了能够更加准确的控制机械臂实现对目标物的抓取,本设计又增加了一个手动遥控器控制装置。这个遥控器内部的核心芯片是 HS6221,广泛使用于控制数字机顶盒当中。遥控器发出的信号发送到接收头,由于接收头是接收、放大一体化,所以接收性能比较理想的。实物如图 4-5 所示。
这个遥控器所发出的指令是一连串的由 0 和 1 所组成的。不一样的芯片对于 0 和 1 的翻译结果也不一样。人们常用的编码方式有曼彻斯特与脉冲宽度这两种。这款芯片 0 和 1 使用脉冲信号来进行常用编码,就是脉冲宽度调制,这里面的每个代码都是由高低两个电平组合在一起的。当写解码的时候,确定信号的脉冲宽度,就能得到 0 或 1。
HS6221 这样的芯片当中主要的格式可以分为引导码(起始码),用户码(地址码),用户反码,数据码,数据反码等一共有 32 位,其中数据反码与数据码起着相反作用,用户反码具有相同的道理,通常被用于改正某些错误数据。具体格式如图 4-6 所示:
当用户每次按下遥控器发出指令时,遥控器会传递出如图 4-6 这样的一组二进制代码,这就是我们通常所说的一帧数据。因为每个部分的作用不同,所以能够把一帧数据分成 5 个部分,这 5 个部分依次是引导码、用户码、用户反码、数据码、数据反码。每次遥控器发出指令,都是低位在前,高位在后。在这些指令当中,引导码的高电平是 9ms,低电平是 4.5ms,当系统收到这个信号的时候,代表一帧数据正在工作。FPGA 就可以准备接收下面的数据了。相同的编码控制器当给他们配备不一样的地址码,他们之间就不会产生影响了。在相同的工作状态下,按键所传输出的地址码是完全一样的。每当我们对遥控器进行操作的时候,都能发出一组数据,这里面的数据有正有反。反码的意思就是对数据码的每一位进行求反,我们确定收到的数据是否符合要求的方法就是对数据码和数据反码进行对照。当它俩相反的时候,数据正确,可以采用;当它俩不相反的时候,数据错误,应该舍弃。在同一个遥控器上。
全部按键的数据码都不一样,就是每次按不同一样按键发射的数据码都不一样,当 FPGA 接收数据码之后就会采取相应操作。
四、光耦隔离 TLP521
1 光耦的定义
光耦合器(optical coupler,英文缩写是 OC)通常叫做光电隔离器或者光电耦合器,现在都称之为光耦。光耦就是通过光来传到电信号的一种元器件,就是把发光器(红外线发光二极管 LED)与受光器(光敏半导体管)封装在一个封箱当中。每当给光耦的输入端加上一个电信号时,其内部发光器就会发出光线,受光器收到这束光后能够产生电流,通过输出端传输给下面的电路,进而完成“电—光—电”之间的转换。光耦的能量传递方式很实用,它有不占空间、实用时间长、抗干扰,能够单向传递信号等一系列的特点,因此被大量的使用在了数字电路里面。
2 光耦的优点
光耦就是把光作为媒介来进行电信号的传递,能够做到输入端和输出端之间完全绝缘,因此,非常适合用在很多保护电路上面。现如今光耦的种类繁多、用处极为的广泛。它通常可以分为三大部分:发出光、接收光和信号放大。通过这三部分就可以实现电—光—电之间的相互转化,可以更加有效地对电路进行隔离和保护。因为光耦合器的输入端与输出端两者之间完全隔离、能够单项传递信号等一系列优点,所以它拥有非常良好的绝缘、保护与抗干扰能力。基于这些优点,光耦被普遍的使用在了长线传输信息中作为终端隔离元件。因为控制系统硬件设计光耦的输入端是电流型工作低电阻元件,所以具有非常强大的共模抑制能力。本实验采用光耦的作用主要是为了保护 FPGA 控制器,防止舵机的工作电流过大,而烧毁了控制器。
3 TLP521 的使用方法
本设计使用 TLP521 型光电耦合器,它的正常工作条件如表 4-1 所示:
表 4-1 TLP521 的典型工作条件
Tab.4-1 the typical working conditions of TLP521
如图 4-7 所示,本设计光耦的输入端 IN1~IN6 连接的是 FPGA 的 I/O 口,其高电平为 3.3V,低电平为 0V,如果光耦的输入端为高电平,则 VIN=3.3V,VON 是光耦隔离中发光二级管的正向导通电压,则限流电阻 RF的计算公式为:
取 R=180Ω。输出端不需要计算,采用 4.7K 的上拉电阻就可以。
本系统当中光耦隔离保护电路的功能如下:
(1)隔离保护作用:输出端与输入端是隔离的。输出端与舵机驱动板相连接,舵机的工作电流较大,光耦的使用有效地杜绝了舵机运行冲击电流对控制器的影响,在发生故障的时候也可以有保护功能。
(2)电平转换作用:系统的输入端高电平为 3.3V,输出端高电平为 5V,由 5V 直流电源提供动能。因为舵机的正常工作电压范围在 4.8~7.2V 之间,FPGA 的 I/O 只能提供最高 3.3V的电压,不能够直接用于控制舵机。本设计完成了电平间的转换,非常效地解决了这个问题。
(3)反相作用:当光耦输入端是高电平(3.3V)时,输入端发出光线开始工作,使得输出端光电三极管导通,发射极此时接地,输出端是低电平(0V)舵机停止工作;当输入端是低电平(0V)时,输入端不发出光线,停止工作,此时输出端光电三极管停止,输出端是高电平(5V),舵机开始工作。因此该电路具有非门的性质,属于附加作用,在软件设计时需要注意。
五、液晶显示器
本液晶显示模块采用的是 JM12864M 带中文字库的 LCD12864,其拥有占用空间少、耗能少、显示东西非常多、超薄轻便等特点,有 4 位/8 位并行、2 线或 3 线串行多种接口方式,可以使用于很多的控制器上面,其分辨率为 128×64,利用该模块可构成人机交互界面,实现可视化操作。
JM12864M 模块的应用参数与工作性能:
电源:3.3V~5V(内置升压电路,无需负压),
显示的内容:128 列×64 行
显示的颜色:黄绿
显示的角度:6:00 钟直视
LCD 的类型:STN
和控制器相连接的接口:8 位或 4 位并行/3 位串行
配置 LED 背光
多种多样的软件功能:光标显示、画面移位、睡眠模式等。
六、总结
本章重点介绍了机械臂操控系统的硬件电路组成部分。首先阐述了整个操控系统的总体硬件设计方案,然后分别对操控系统当中的控制器 FPGA、红外遥控器、光耦隔离保护电路、液晶显示器等的工作原理以及接线方式进行了详细的介绍与说明。