十年专注单片机方案开发的方案公司英锐恩,分享基于运动控制单片机芯片的机械手控制系统设计。英锐恩现提供服务产品涉及主控芯片:8位单片机、16位单片机、32位单片机及各类运算放大器等。
基于运动控制芯片的机械手控制系统设计
作者: 北方工业大学 刘仕良 方建军
摘要:针对平面关节型机械手各关节联动的特点,研制和开发了基于PIC16F877单片机和运动芯片LM629的底层控制系统。采用LM629这样的集成运动芯片,简化整个控制系统的硬件电路结构,提高系统的可靠性和控制精度。
关键词:机械手 PIC单片机 LM629 L298N 控制器
引 言
平面关节型机械手是应用最广泛的机械手类型之一,既可以用于实际生产,又可以用于教学实验和科学研究。用于实际生产,它能够满足装配作业内容改变频繁的要求;用于教学实验,它能够使人直观地了解机器人结构组成、动作原理等[1],所以开发设计和研究平面关节型机械手具有最广泛的实际意义和应用前景。
LM629是美国国家半导体公司生产的可编程全数字运动控制芯片[2],它具有32位的位置、速度和加速度寄存器,内置PID算法,其参数可以修改;支持实时读取和设定速度、加速度以及位置等运动参数,内置的梯形图发生器能够自动生成速度曲线,平稳地加速、减速;支持增量式光电码盘的4倍频输入;芯片的主频为6MHz和8MHz。因此,本文采用LM629和PIC16F877构成机械手的伺服控制系统。
1 机械手结构
本文设计的平面关节型机械手的实物照片如图1所示,其主要包括三个旋转关节(分别控制机械大臂和小臂旋转以及手抓张合)和一个移动关节(控制手腕伸缩),图2为机械手简化模型。各关节均采用直流电机作为驱动装置,在机械大臂和小臂的旋转关节上还装配有增量式光电编码器,提供半闭环控制所需的反馈信号。直流电机的运动控制采用自行开发的基于LM629和PIC16F877构成的多关节控制卡,并编制了能满足运动控制要求的软件,实现对机械手的速度、位置以及4关节联动控制。由于机械手4个关节电机的控制系统基本类似,因此在下文中,笔者将以单个关节电机为例向读者介绍平面关节型机械手的控制系统设计过程。
注:1—机身;2—大臂电机;3—光电编码器;4—大臂;5—小臂电机
6—同步带;7—光电编码器;8—小臂;9—手腕升降电机;
10—手抓电机;11—手抓。
图2机械手简化模型
2 控制系统设计
2.1控制系统的工作原理
基于LM629芯片和PIC16F877单片机构成的单个关节直流电机伺服驱动系统如图3所示。
运动芯片LM629通过8位数据线和6根控制线与单片机PIC16F877的I/O口相连。单片机通过数据线向LM629发送位置或速度命令、设定PID调节参数,并从LM629中读取速度、加速度等数值。LM629输出的脉宽调制幅度信号和方向信号直接驱动L298N,经过功率放大后驱动直流电机。增量式光电编码器提供半闭环控制所需的反馈信号(A、B、IN),梯形图发生器计算出位置或速度模式下所需控制的运动轨迹。PIC16F877为LM629提供加速度、速度和目标位置量,在每个采样周期用这些值来计算出新的命令和位置给定值,将其作为指令值。由增量式光电编码器检测电机的实际位置,其输出信号经过LM629四倍频后进行解码,形成位置反馈值。指令值与反馈值的差值作为数字PID校正环节的输入。通过数字调节器PID计算,LM629输出脉宽调制信号PWMM和方向信号PWMS用于控制功率芯片L298N,进而驱动电机运动到指定的位置。LM629在进行位置控制的同时,还对速度进行控制。LM629在接受到主机送来的位置信号后,按梯形图生成加速、匀速、减速的速度曲线,曲线与坐标横轴所包围的面积就是指定的位置。PID算法中的比例、积分和微分系数有时需要进行修改,因此将它们存储在单片机的E2PROM中。单片机和PC机通过无线发射和接收模块进行串行通信。
2.2控制系统的硬件设计
本文所研究的平面关节型机械手的控制系统硬件结构主要包括运动模块、功率放大模块、位置检测模块和通信模块。
(1) 运动与功率放大模块
运动与功率放大模块如图4所示。运动模块的核心芯片是LM629。LM629的8位数据口D0~D7与PIC单片机的RD0~RD7口相连,RC0~RC3分别和LM629的CS、RD、WR、PS相连,用于控制片选、数据的流向等。LM629接收来自单片机的位置、速度或加速度数据,经过内部梯形图发生器和PID调节器的运算,输出脉宽调制信号和方向信号,由引脚PWMM和PWMS输出。功率放大模块主要由L298N芯片和电流泄放回路组成。L298N是双极性H桥功率放大电路,与LM629输出信号PWMM和PWMS通过一个逻辑门电路相连,控制直流电机的正、反转和停止。在芯片LM629和L298N之间增加光电耦合器4N25,进行电气隔离,保护单片机和运动芯片并减少强电干扰。由于直流电机是感性负载,因此选用功率二极管DIN5391组成电流泄放回路,以保护功率芯片L298N。
位置检测模块主要通过检测与电机轴相连的增量式光电编码器,从而实现检测并获取各关节电机轴位置的目的。图5所示的电路将增量式光电编码器输出的差动信号(A+、A-、B+、B-、IN+、IN-)经过75175合成单端信号A、B、IN(图5中只画出一路信号的合成)。合成后的单端信号A、B、IN分别与LM629的引脚A、B、IN相连。利用差动信号传输,可以有效地解决干扰和远距离传输问题。为了进一步消除干扰,在输入端每根线上都加上了一个滤波电容,在两根差动的信号线之间接了一个用于线路阻抗匹配的电阻。增量式码盘反馈的脉冲信号经过4倍频后,提高了分辨率。A和B的逻辑状态每改变一次,LM629的位置寄存器就加(减)1。当码盘的A、B、IN都为低电平时,产生一个Index信号送入寄存器,记录电机的绝对位置。
(2) 通信模块
通信模块主要解决人机接口问题[4]。在本文设计的控制系统中,没有设计显示模块和键盘输入模块。但在实际应用中,常常需要输入一些参数,如PID参数等。利用PC机丰富的资源和良好的用户界面,通过串行口通信来解决控制系统的参数输入和显示。
2.3控制系统的软件设计
控制系统的软件部分主要包括初始化模块、运动控制模块、位置检测模块和通信模块。单片机根据位置检测模块获取的信息,确定机械手各关节的速度、加速度和位置,将这些信息传入LM629,由速度梯形图生成速度曲线,进行位置控制。PID调节器根据输入指令和反馈信息来补偿闭环系统。式(1)表示LM629输出的控制信号。
在程序编制过程中,通常采用增量式PID算法。
通信模块建立单片机和PC机之间的通信。在PC机端,利用Visual C++编写串行通信程序和参数输入界面。在PIC16F877端,用汇编语言编写通信程序,实现PC机和单片机之间的双向通信。图6表示主程序和中断子程序的流程。
结语
本文介绍了平面关节型机械手的位置伺服控制板的设计方法,采用LM629和PIC16F877构成机械手各关节的伺服系统,同单纯用单片机来实现机械手控制系统相比,具有硬件电路结构简单、可靠性高、成本低廉以及单片机CPU负担小,控制的实时性好等优点。这种自行开发制作的控制电路板应用面较广,在移动机器人中也能取得很好的应用效果。