多自由度串联机械臂的控制系统设计与实现_第1页
多自由度串联机械臂的控制系统设计与实现_第2页
多自由度串联机械臂的控制系统设计与实现_第3页
多自由度串联机械臂的控制系统设计与实现_第4页
多自由度串联机械臂的控制系统设计与实现_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

南 阳 理 工 学 院本科生毕业设计(论文) 学 院: 电子与电气工程学院 专 业: 自动化 学 生: 周 虎 指导教师: 徐 源 完成日期 2014 年 5 月南阳理工学院本科生毕业设计(论文) 多自由度串联机械臂的控制系统设计与实现 Design of Multivariant Cascade Dof Manipulator Control System 总 计: 30 页 表 格: 2 个 插 图: 19 幅南 阳 理 工 学 院 本 科 毕 业 设 计(论文)多自由度串联机械臂的控制系统设计与实现Design of Multivariant Cascade Dof Manipulator Control System学 院: 电子与电气工程学院 专 业: 自动化 学 生 姓 名: 周 虎 学 号: 105090640031 指 导 教 师(职称): 徐源(讲师) 评 阅 教 师: 完 成 日 期: 南阳理工学院 Nanyang Institute of Technology 多自由度串联机械臂的控制系统设计与实现多自由度串联机械臂的控制系统设计与实现自动化专业 周虎摘 要 本设计基于STM32F系列的STM32F103RBT6核心控制芯片,以Keil-MDK uVision4软件为开发平台,将嵌入式控制技术有机地融入工业设备中,设计出一款可编程动作的机械臂装置。该系统主要由电源系统、主控制电路板、驱动电路板、旋钮及按键控制、液晶显示等硬件电路组成。并且实现了用单片机控制机械臂姿态调整,用按键实现角度微调,实现液晶显示和限位保护的功能。本设计实现的机械臂有操作简洁、稳定性好、姿态调节精确、运动轨迹精度高等特点。经过实验测试和仿真演示,该系统空间定位误差5mm,最大定位时间1s,其各项性能参数已经达到预计要求。关键词 多自由度串联机械臂;STM32F103RBT6单片机;伺服驱动电路;路径规划Design of Multivariant Cascade Dof Manipulator Control Systemautomation specialty automation specialtyAutomation Specialty ZHOU HuAbstract: This article is based on The STM32F103RBT6 in the series of STM32F as the control core chip and the software of Keil-MDK uVision4 as the development platform. makes Embedded control technology organically integrated into the industrial equipment and design a programmable action of mechanical arm device. This system is mainly consists of hardware circuit of the power system, the main control circuit board, thedriven circuit board, knob and button controller, and liquid crystal display. This system has also realized using MCU to control the attitude control of robot arm ,using the Buttons to implementting fine-tuning and has the function of liquid crystal display and limit protection . The robot arm which realizes in this design , with the characteristic of simple operation, good stability, attitude adjustment, accurate trajectory precision higher. Through the test and simulation, the system of space positioning error is less than 5mm, the largest positioning time is less than 1s and its performance parameters have reached the expected.Key words: Multivariant cascade dof manipulator; STM32F103RBT6 microcontroller; servo drive circuit; path planning目 录1 引言11.1选题背景与意义11.2国内外研究现状11.3主要研究工作与论文内容安排22 系统整体方案设计与关键技术分析22.1 系统主要工作原理32.2 系统整体设计方案32.3 关键技术分析42.3.1 CCD图像传感器分析42.3.2 机械臂姿态解算要点43 系统硬件电路的选型及设计63.1 核心处理器选型63.2 伺服驱动模块及电源系统设计73.3 主控制电路板设计83.4 操作手柄设计93.4.1 传感器选择93.4.2 滤波电路分析104 系统的软件设计124.1 主程序设计124.2 AD采样滤波程序设计134.2.1 滤波原理及工作方式选择134.2.2 位姿信号标度变换154.2.3 AD数据采集的软件设计154.3 TFT液晶屏驱动程序设计174.4 上位机通讯部分软件设计185 系统调试与结果分析195.1 系统调试195.1.1 响应速度调试205.1.2 定位精度调试215.2 测试结果分析22结束语24参考文献25附录26致谢30III1 引言1.1 选题背景与意义很久以来人们就幻想有一种类似人的机械,能实现如人的四肢一样灵活自由的运动,可以替人们从事一些复杂的劳动。随着人类认识的不断深入,和科学技术的不断进步,这种梦想正逐渐成为现实。目前机器人已广泛应用到工业生产中,从事电焊、弧焊、喷漆、装配、搬运等工作。在汽车行业,电子行业,核工业和其他工业部门,服务,娱乐,医疗器械制造等行业,应用在深海里以外,外太空等人类能力极限领域,机器人扮演一个重要的不可替代的作用1。串联机械臂的设计全面综合的运用了自动化专业学生在大学本科阶段所学的各门专业课知识,理论和实践的相互渗透是毕业设计的重要内容,可以培养学生的自动化设备设计能力,创新能力,提高学生的造型能力及理论和实践相结合的设计思想,提高分析问题和解决问题的能力,还可以增强、深入和拓宽有关控制系统设计方面的知识,为以后从事先进自动化工作打下坚实基础。该毕业设计还充分考查了学生,如Protel、Proteus,CAD,Keil-MDK,Matlab等计算机辅助软件的操作能力,是锻炼学生动手操作能力的一个难得机会。本毕业设计不仅需要书本知识来作为指导,还必须联系实际现场生产,其现实意义有以下两大方面:(1)硬件部分及机械结构设计综合运用了数字电子技术、模拟电子技术、电路理论、电力电子技术、电机拖动和工程制图等学科知识,需要学生对这几门学科的专业知识熟练掌握。把本科毕业设计作为学生各门专业知识的考核是很有实际意义的。作为自动化专业的学生,熟练运用绘图软件进行电路原理图创作和PCB印制电路板的设计是一项基本的要求,在今后的工作中经常会用到Protel和CAD等绘图软件来进行绘图。本次设计就是对大学四年学习成果的一次验收。(2)控制程序设计综合运用了C语言程序设计、检测技术与仪表、单片机原理、自动控制技术、伺服运动控制、复变函数与积分变换、过程控制与工程设计等专业课程,这几门学科的专业知识是今后从事自动化设备设计制造行业的基础。1.2 国内外研究现状美国人在20世纪50年代末,在机械手和操作机的基础上,采用伺服电机和自动控制等技术,研制出有普遍使用性的工业用自主操作装置,并把它叫做工业机器人;60年代初,美国研制成功两种工业机器人,并迅速将其投入工业生产中;1969年,美国通用汽车公司用21台工业机器人构建了焊接轿车车身的自动流水线。从此以后,研发和使用工业机器人开始被各工业发达国家所重视。在高新技术潮流的推动下,随着改革开放的不断加深,我国机器人技术的开发与研究越来越得到了政府的正视与扶持。“七五”期间,国家加大物资投入,对工业机器人及其零部件难于生产等难题进行攻克,完成了从教演示到。工业生产机器人成套技术的开发,研制出了喷漆、焊接、氩弧焊和运输机器人。1986年国家高技术研究发展计划(863计划)逐步落实,智能型机器人主题紧随全球机器人技术的步伐,经过数年的开发,取得了一系列科研成果,一批又一批的特殊用途机器人成功地研制出来。1.3 主要研究工作与论文内容安排本文以ST的STM32F103RBT6单片机为核心,设计一套以单片机为核心的机械臂控制系统,主要由单片机系统、驱动电路、操作手柄及液晶显示、指示灯以及报警电路、检测电路、A/D转换电路、伺服单机及固定装置等组成。采用操作手柄实现对输出姿态以及报警阀值以快慢两种方式进行设置,输出由单片机通过PWM控制驱动模块输出一个固定角度,工作过程中的机械臂各关节的工作状态(输出角度、空间偏移量等各种工作状态)均由单片机输出驱动液晶显示。本文各部分的安排:第一部分介绍了课题的选题背景和意义,分析多自由度机械臂的发展现状,指出了机械臂的发展方向。概述了本设计所研究的成果,并给出了论文的整体内容结构。第二部分介绍了系统的总体方案设计。阐述了本系统的总体方案设计及一般的多自由度机械臂的大致构造与参数要求,对系统中每一个模块所做工作进行了简要的阐述,分析了系统关键性技术问题。第三部分介绍了系统硬件电路设计,阐述了多自由度机械臂的基本理论,详细介绍了主要器件的电路设计及要点,如驱动电路,LCD液晶显示电路以及信号采集与处理电路等。第四部分介绍了系统的软件设计,主要是应用Keil-MDK平台进行的软件设计。详细介绍STM32单片机的编程要点和实现。第五部分介绍了多自由度机械臂的软硬件联合调试,以及综合调试。2 系统整体方案设计与关键技术分析机械臂包括三个部分:供电模块、主控制电路以及伺服驱动电路。其中供电模块是用于将220V的交流电转换为低压直流电,并使低压直流电与220V市电隔离开,分出供整个系统工作的各路输出。主控制电路是将操作手柄传递的数字量及模拟了信号转化为角度及位置信,并通过PWM接口输出到伺服驱动电路。伺服驱动电路接收处理后的角度和位置信号,并通过驱动伺服电机和机械机构将其输出。下面给出基于STM32F103RBT6的多自由度串联机械臂总体方案设计。2.1 系统主要工作原理本系统主要由单片机系统、操作手柄、液晶显示器、驱动电路、伺服电机及其机械支架、等部分组成。其中,操作手柄同时产生数字信号和模拟信号,输出由单片机采集通过PWM控制驱动模块输出一个角度或空间位移。反馈由CCD摄像头,单片机系统,伺服执行机构控制,单片机通过A/D采样CCD输出电压并与初始化设定值对比,如果存在偏差就调整输出量,若越限则发出报警信号并急停。工作中,机械臂的工作状态均由单片机输出驱动LCD实时显示,由操作手柄控制进行动态姿态转换。2.2 系统整体设计方案系统主要包括主控制板(以STM32F103RBT6中央控制器),电源模块,驱动模块,操作手柄,伺服电机(执行机构)等部分组成。电源模块从220V交流市电得电,给整个系统供电,是整个控制系统的心脏,通过每一对正负电源线给相应的模块供电。主控制电路板以STM32F103RBT6为核心元件为芯片搭建外围电路和输入输出接口,是整个控制系统的大脑,通过各种数据线接受传感器模块的模拟量信号,发送控制信号到相关的执行器模块。CCD模块是整个机械臂系统的眼睛,为主控板提供当前机械臂的位姿信息及机械臂所操作对象的状态,整个机械臂系统构成自主闭环控制。操作手柄是系统为用户留的接口,可对机械臂动作简单编程。驱动模块用于驱动所有电机。整体来说,主控通过驱动模块来改变机械臂的状态,然后CCD捕获机械臂状态将信号再次传给主控。信号构成闭环,共同完成某项任务。系统设计总体框图如图1所示。伺服电机(机械臂体)CCD图像采集模块驱动模块控制电源主控制板模块操作手柄驱动电源图1 系统设计总体框图2.3 关键技术分析2.3.1 CCD图像传感器分析CCD是一种半导体类元件,可以把光学影像信息转化为数字信号。 在CCD上嵌入的细微光敏物质称为像素(Pixel)。一块CCD上含有的像素数量越多,其采集到的画面分辨率也就越高。CCD的作用就像相机底片一样,不过它是把光信号转变成电荷信号。CCD上整齐排列许多光电二极管,能感应各种光线强度,并将光信号转变成电信号,经外部采集放大电路及AD转换电路转换成数字图像信号2。CCD以其优异的性能广泛应用于数码摄像、天文学等领域,特别是光学遥测技术、光学与频谱望远镜,和高速摄影技术如Lucky imaging。CCD在录像机、数码照相机和数字扫描仪中应用十分广泛,只不过摄像机中采用的是面阵CCD,即x、y两个方向同时用于摄取平面图像,而扫描仪中使用的是线阵CCD,它只有x一个方向,y方向扫描由扫描仪的机械传动装置来完成。本设计中使用的是面阵CCD。CCD摄像头的主要工作原理是:以一定的分辨率,按固定时间间隔扫描的方式采样图像上的点,当扫描到一个点时,就通过图像采集芯片将该点位置图像的灰度信息转换成与之一一对应的模拟电压值,然后将此电压值通过视频信号口输出。当摄像头扫描完一行时,视频信号口就会输出有一个电压“缺口”,并保持一段时间,此“缺口”就是常说的行同步脉冲信号,它是行扫描完成的标志。然后,跳过一行后,紧接着扫描另一行,以此类推,直到扫描完该场的所有图像信息,接着就会出现一段场消隐区。经过这若干个消隐脉冲后,某个脉冲远宽于其他的消隐脉冲,这个脉冲信号即称为场同步脉冲,它是扫描更新场的标志信号。摄像头每秒共扫描25幅图像,每幅又同时包含奇场和偶场,先扫描奇场在扫描偶场,故每秒采集50场信息。即扫描频率为50Hz。2.3.2 机械臂姿态解算要点在一个空间内,点的位置可以用x,y,z轴上的偏移量组成的矢量 AP来表示3,如式1所示。空间内点的表示如图2所示。 AP=PxPyPz (1)其中:Px, Py, Pz表示点在三个坐标轴上的分量。如果用四个变量(41)阵列来表示三维坐标系中点P的位置 坐标信息,则该阵列称为三维空间点P的齐次坐标表示, 图2 空间内点表示 如公式2所示。 P=PxPyPz1 (2)然后是方位的表示,方位是一个刚体姿态的描述4。设直角坐标系中X,Y,Z坐标轴的单位向量为i,j,k,用齐次坐标来描述X,Y,Z轴的方向,则有:X=1000,Y=0100,Z=0010 (3)规定:阵列a,b,c,0T表示某轴(或某矢量)的方向,其中第四个元素为零,且a2+b2+c2=1;阵列a,b,c,T中第四个元素为非零元素,用来表示给定立体空间中某点的位置5。机械臂的每一个关节均可视为一个独立刚体,如果给出了某刚体上中心点在空间的坐标信息和该刚体相对坐标各个轴的角度,则这个刚体在该空间内是唯一确定的,于是可以用唯一一个确定的位姿矩阵进行描述6。设OXYZ 为刚体Q所在的坐标系,如图3所示,刚体Q在固定坐标系OXYZ中的位置可用齐次坐标表示为P=x0y0z01 (4)令n,o,a分别为XYZ 坐标轴方向的单位矢量,即 图3 空间内刚体表示n=nxnynz0,o=oxoyoz0,a=axayaz0 (5) 刚体的位姿表示为(44)矩阵:T=n,o,a,p=nxnynz0oxoyoz0axayaz0x0y0z01 (6)3 系统硬件电路的选型及设计硬件电路的设计主要包括系统主控制电路板,伺服驱动模块,操作手柄,信号放大跟随模块,上位机通讯模块等。下面将介绍几个主要模块的设计,系统整体电路图鉴于页面限制将在附件1中给出。3.1 核心处理器选型STM32F系列单片机有3个档次:低档Cortex-M0系列STM单片机主要有STM32F030/051/072等;中档Cortex-M3系列STM单片机主要有STM32F103C8T6/RBT6/R8T6/VET6/ZET6等;高档Cortex-M4系列STM单片机主要有STM32F407/429/4397。为抢占8位单片机机市场,以高性价比著称的M0系列新的型号还在不断出现。综合各项指标和本系统的要求,STM32F103RBT6是最适合的一款芯片:l 128K的静态存储(FLASH),能够满足绝大部分的开发项目需要8。l STM32F103是目前的主流32位Cortex-M3构架单片机,使用最多的STM芯片 之一,货源充足。零售价仅为12元,批量购买直接联系代理商可降至10元以下。l 内置丰富、强大的功能。几乎涉及STM芯片的所有功能。l 支持J-LINK仿真,开发调试非常方便,缩短程序开发周期。l 简单易学,官方提供大量的历程和库函数,参照详细的中文说明书就可以使用。l 内部总线频率72M,满足大部分产品开发需要。综合考虑后,由于对处理器的要求不是突出问题,只要有足够的处理速度,内部集成有AD转换器、硬件SPI接口就可以满足系统要求,所以本系统采用的是意法半导体的32位ARM内核CortexM3构架微控制器STM32F103RBT69。STM32F103RBT6可以使用内部晶振也可以使用外部晶振,考虑到伺服电机控制对时间要求的精准度及机械臂定位的精度,本设计采用外接晶振对系统提供工作频率。同时还配有32.768K的外部低频晶振,为系统提供精准的单位时基信号。RBT6与其他更高端芯片相比只是某些外设资源和引出管脚数目的不同,在处理速度和中断响应上没有什么出入。而且128K的flash完全能够满足本系统在程序代码长度上的的要求,一个高级定时器两个普通定时器有PWM引出口,而且每个定时器都引出了4路PWM,即可以产生12路PWM,满足本体同至少6路PWM的要求。引出有9路12位ADC引脚,每位都有DMA自动传送功能。只需设定好DMA的原地址和目标地址,数据便会自动的将ADC转换结果赋值给预先定义的相应变量,无须单片机干预。引出两路串口,USART1作为与上位机通讯的接口,USART2作为后期扩展ZigBee等其他外扩功能的接口。单片机最小系统原理框图如图4所示。图4 STM32F103RBT6单片机最小系统示意图3.2 伺服驱动模块及电源系统设计整个系统工作起来的时候电能消耗较大,单路伺服电机就要有1A2A的驱动电流(不考虑堵转等恶劣情况),考虑到功率元件要考虑一定的余量,所以设计电路的时候每路舵机用一个开关电源芯片LM2596单独为其供电。一般蓄电池续航能力不够,总的电源来自市电。电源系统框图如图5所示。12V开关电源市电舵机驱动模块舵机驱动模块舵机驱动模块舵机驱动模块舵机驱动模块舵机驱动模块图5 电源系统框图LM2596开关电源芯片属于Buck降压型电源管理单片集成电路,带负载能力能达到3A,同时电压调整率和负载调整率等特性也很不错,可以满足大多数对高频噪声要求不高的场合。有3.3V、5V、12V等固定输出电压类别, 也有可调输出型,可以得到37V以内的各种电压,输出电压的误差可以不大于4%。内部自带频率补偿环节及固定的频率电路10。开关管振荡频率固定为150KHz,振荡频率误差一般在15%的范围内,与频率较低的开关电源芯片相比较,对输入电源纹波的要求更小,同时输出电压滤波处理电路也可以大大的简化。LM2596电源驱动电路及电路板如图6所示。自带有保护功能(一个两级降频限流关断和一个在异常情况下掉电的过温完全保护电路)。该器 图6 LM2596电源驱动电路及电路板件最简化时只需4个外部元件,可以使用常用的标准电感,这更方便了LM2596的使用,极大地简化了开关电源的开发周期和电路的设计。3.3 主控制电路板设计主控电路板PWM输出及模拟量采集电路如图7所示。六自由度机械臂有六个伺服图7 主控板PWM及模拟量接口电路电机,各个伺服电机之间相互协调,同时工作。这就要求主控电路板要有至少六路的PWM输出口及输出状态指示。操作手柄能够对机械臂的姿态进行调整,也就是说能够给定六个伺服电机的输出角,所以主控制电路板至少要有六路的模拟量采集接口。考虑到模拟量设备输出的模拟量电压与主控电路板可接受的电源可能会不匹配,故在电压采样接口处加了分压电阻,已达到硬件上对量程变换调整。每个模拟量和数字量接口都留有5V、3.3V和电源负极的接口,以便于给模拟量或数字量设备供电11。接口留有八路模拟量采集,八路数字量控制(或采集),本次设计中使用六路,各预留两路便于扩展其他功能。3.4 操作手柄设计3.4.1 传感器选择操作手柄的功能是产生六路伺服电机的位置信号并将它们标准化,然后传送给主控制板,等待主控板处理。每次传输数据将有六路模拟量信号产生,各代表六个伺服电机的角度或行程。产生的信号是微弱电压信号切在传输的过程中容易造成损坏,要经过处理才能被主控板采集。信号处理电路的要点在与将信号发生模块的信号强度增大,同时提高信号的传输效率,将信号1:1的传输到主控电路板。起到增大输入阻抗、减小信号失真、维持电路结构合理可靠等作用。处理电路如图8所示。图8 模拟量信号处理电路OP07芯片是一款低噪声,非斩波稳零的双极性(也可单电源供电)集成运算放大器电路。由于OP07具有较低的输入失调电压(OP07A最大为25V),所以OP07在很多应用场合不需要额外的辅助调零电路。OP07同时具有输入偏置电流低(OP07A为2nA)和开环增益高(对于OP07A为300V/mV)等特点,这种低失调、高开环增益的特性使得OP07特别适用于增益较高的测量设备信号放大和传感器的微弱信号处理等方面。与机械臂的每个关节相对应的都有一到两个模拟量输出设备,这里选择点位器作为该模拟信号的发生元件。操作手柄设计思路如图9所示。因为电机运动导致的是其位置和角度的改变,表现为臂身姿态的改变,所以再做一个更简化的机械臂机械部分作为控图9 操作手柄设计思路制端(手柄),在伺服电机的位置上装上电位器。当手柄的姿态发生变化时,中间关节的任何一个电位器发生相对滑动,都会将信号送给主控制板,然后藉由控制伺服电机来得到空间相应位置上关节姿态的调整。由于操作者的介入整个系统构成一个闭环。3.4.2 滤波电路分析实际工业生产中机械臂执行错误指令的后果不看设想,为防止操作手柄发出错误指令,导致机械臂误动作,必须要对操作手柄的输出信号进行严格处理。以免造成事故和不必要的损失。因为操作手柄发出的有用信号都是直流信号,所以在设计滤波电路时可以参考直流稳压电源的去纹波电路。脉动系数(S)=输出电压交流部分基波的最大值输出电压的直流部分例如:串二极管半波整流,输出电压的脉动系数为S=1.57,全波整流和桥式整流得到电压的脉动系数SO.67。若对全波和桥式整流电路采用C型滤波电路,其脉动系数S=1(4(RLCT-1)(T为整流输出的半波脉动电压的周期)。常用的滤波电路分为无源滤波和有源滤波两大类。无源滤波的主要方式有电容滤波、电感滤波和复式滤波(包括倒电感型、电感电容滤波、电感电容型滤波和阻容型滤波等)。有源滤波的主要形式是有源阻容滤波,也被叫作电子滤波器。直流电中的交流成分的大小用脉动系数来表示,此值越大,说明滤波器的滤波效果越差。一般常用的是电感电容滤波。本设计中使用的是无源滤波电路。无源滤波器,又称阻容或电感电容滤波器,是利用电感、电容和电阻等无源元件的组合设计构成的滤波电路,可滤除一次或多次谐波,最普通易于采用的无源滤波器结构是将电容与负载串并,可对主要次谐波(3、5、7)构成低阻抗旁路;单调谐滤波器、双调谐滤波器、高通滤波器都属于无源滤波器。位置信号采集电路的输出电压并非平滑的电压信号,用示波器检测信号发生电路的输出,与直流相差较大,波形中含有较多的交流成分,即带有纹波。由电容C和电感L所组成的滤波电路的简单结构如图10所示。为获得比较理想的直流信号,需要利用某些具有储能作用的元件(如电容、电感等)组成的滤波电路来滤除整流电路输出电压中 图10 LC滤波电路的基本形式的纹波以获得稳定的电压信号。根据电感电容元件对交、直流阻抗的不同可设计出不同的滤波电路。因为电容器对直流开路,对交流阻抗小,所以电容应并联在负载两端。电感器对直流阻抗小,对交流阻抗大,因此电感应与负载串联。改进型的有型滤波等,如图11所示。并联的电容器C1在输入电压升高瞬间,给电容器充电,可把部分能量存储在电容器中。而当输入电压降低时,电容C2两端电压以指数规律放电,就可以把存储的能量释放出来。经过该滤波向采样电路提供电压,采样电阻上得到的电压信号就比较平滑,起到了滤波作用12。如果采用电感滤波,当输入电压增高时,与负载串图11 型滤波联的电感L中的电流增加,因此电感L会存储部分磁场能量,当电流减小瞬间,又将能量以电流形式出来,使采样电压变得平滑,因此,电感L也有滤波作用。利用储能元件电感器的电流不会突变的特征,在操作手柄电路的信号输出电路中串联一个电感,使输出电压波形变得平滑。电感具有对直流阻抗小,交流阻抗大的优点,因此合适选择电感量能够得到很好的滤波效果且直流损失小。电感滤波也有不足,如体积大,成本高等。4 系统的软件设计一旦硬件和机械的平台确定之后剩下的就要看程序能将这个平台发挥到什么程度了,就像工具一样,好不好使还要看使用者的能力。一个好的硬件系统必须要一套好的软件来展现它的价值和魅力。对于一款产品也是这样,只有系统软件做的足够好,与硬件配合的好,才能得到市场竞争优势。写控制程序必须要有模块化的意识,如果写软件是没有分清模块,所有软件写到一起,就像做硬件时所有功能模块都做到一大块电路板一样。一旦出了问题,将很难快速定位错误发生在整个系统的哪里,要想找出问题就要将整个系统排查一遍。当系统比较复杂时,这将是一个很大的问题。写一个系统的软件时,也有几种方法的,首先,可以逐个模块分开来写,这样写一来是比较容易检查错误,二来是比较容易系统方案,思路明确。但是,也有它的缺点,就是系统各个模块间的接口不太容易处理,容易出错,而且这样的错误一般也都不会被注意到,所以导致整个系统的开发周期变长。另一种方法就是整个系统都写在一起,这样以来就没有什么接口需要处理,但是这样就出现了另外一个问题,那就是整个程序都在一起,程序比较长,看起来很繁锁,可能想找的东西就找不到,检查错误时也不是很容易。而且由于系统的各个模块都堆在一起,所以思路可能会比较乱。这种方法适合不是太大的系统,而且要求程序员的思路比较明确。本系统采用的是分模块写的方法。本系统中主要有主程序的设计,A/D模块的软件设计,通讯程序的设计,显示部分程序的设计等。部分模块的程序将在附录2中给出。4.1 主程序设计当系统开始运行之后,首先要进行初始化, 主要包括时钟的初始化(为CPU各模块运行提供所需的时钟),ADC初始化,PWM初始化(包括引脚、频率、初始占空比等),串行口初始化等,然后进行机械臂各关节初始姿态的设定,然后就等待系统的中断,当有中断信息时,系统就将设定值输出,然后等待下一次中断来临。全部过程变量都将显示在TFT液晶屏(LCD)或上位机监控软件上13。系统主程序流程图如图12所示。图12 系统主程序流程图4.2 AD采样滤波程序设计4.2.1 滤波原理及工作方式选择模拟信号是大自然中普遍存在的信号,对于电信号,单片机不可以直接对模拟信号进行处理,而是通过AD转换器将其转换成数字量再进行二次处理,直接转换来的数字信号不能保证数据的正确性。因此,通常的做法是先对数字信号进行数字滤波处理,处理结束后再将数字信号恢复成模拟信号对应的工程量。模拟信号往数字信号转化一般需要经过采样、量化、编码等步骤,而要使得采样后的数字信号又能不失真地恢复成模拟信号则要满足一定的条件,既要选择合适的软件滤波算法又要满足采样定理的要求。(1) 程序判断滤波法(又称限幅滤波法)在实际生产中,由于采样现场复杂,大的随机扰动或由传感器、变送器故障所引起的失真,将造成采样信号的大幅度跳变,从而导致整个控制系统的误动作14。对于此类干扰,通常采用限幅滤波的处理方法对其进行处理。根据工程经验判断,确定两次采样不超过的最大偏差值,最大偏差设为A,每当检测到新数据时判断:如果本次数据与上次数据之差A,则本次数据无效,放弃本次数据,用上次数据代替本次数据。优点:能有效克服因现场突发因素引起的脉冲扰动和设备不稳定造成的跳码现象。缺点:无法抑制规律性的干扰、平滑度不佳。(2) 中位值滤波法连续采样数据N次(N取奇数),把N次采样值按大小顺序排列,取排列后数组的中间值为本次采样有效值。优点:能有效克服因突发因素引起的波动干扰,对温度、液位等大惯性控制对象的被测参数有良好的滤波效果。缺点:对流量、速度等小惯性环节的参数不宜。(3) 滑动平均滤波法(又称递推平均滤波法)把连续取N个采样值存入一个数组,数组的长度固定为N,每次采样到一个新数据放入数组最后位,并舍掉原来数组的第一个数据.(先进先出原则),把数据中的N个数据进行算术平均运算,就可获得新的滤波结果,N值的选取:流量,N=12;压力:N=4;液面,N=412;温度,N=14。优点:对频繁有规律干扰有良好的抑制作用,平滑度高,适用于高频振荡的系统。缺点:灵敏度低,对于突然出现的脉冲性干扰的抑制作用不好,存在由于脉冲干扰所引起的采样数据偏差,不适用于脉冲干扰比较严重的场合,比较浪费RAM。(4) 一阶滞后滤波法一阶滞后数字滤波实质上是利用算式来实现模拟电路的RC滤波。RC模拟滤波电路的传递函数为Y(s)X(s)=1Tfs+1 (7)式中,Tf为滤波器时间常数,且Tf=RC。设y(k)和y(k)分别为滤波器的输出和输入,将式(7)离散化,可得yk=Ayk-1+1-Ayk (8)式中,A= TsTf+Ts,且0A1。式(8)表明,测量信号的滤波值为现在的测量值yk和前一次的滤波值yk-1的加权和。因而在计算式只需对前一次的滤波值储存。优点:对规律性干扰具有较好的消除作用,适用于干扰频率较高的场合。缺点:相位存在滞后性,灵敏度不高,滞后多少取决于A值大小,消除不了滤波频率高于采样频率1/2的扰动信号。结合各种滤波算法的优缺点,最终选择了先对采样信号进行限幅滤波进行一次处理,然后再进行滑动平均滤波(N=30),因为该参数实时性较高,且单片机处理速度足够快,故滑动滤波的N值取得较大。4.2.2 位姿信号标度变换单片机作为数字设备,只能运算数字信号,而我们生活中经常遇到的模拟量,像角度,位移等。标度变换用于模拟量处理,先通过传感器,变送器,转换成便于处理的标准模拟量(05V 4-20mA)模拟量进入单片机的AD转换模块后转换成16进制的数字量,比如0xffff 也就是十进制的65535,他们一一对应且成线性关系。可是这些与我们要的角度和位移等工程量在数值上是不相符的。假设用量程是0-100mm,输出信号范围为0-10V的位移传感器测量位移,对单片机的AD转换模块进行设置,配置成12位分辩率。那么单片机采集进去的数字量0与0V对应,数字量2047对应5V输出,数字量4095对应10V输出,标度变换就是要把单片机读取的数字量还原为我们便于的物理量。数字量 0 对应0V对应0mm 数字量2047对应5V 对应50mm 数字量 4095 对应10V对应100mm 单片机读回来的数字量需要进行标度变换后处理起来才形象直观,便于分析处理问题。设某个关节的最大活动较为max,最小活动角为min,对应单片机采样后滤波处理过的的数字量分别为Vmax和Vmin,设当前角度为PV,当前读数为VPV。则有:VPV-VminVmax-Vmin=PV-minmax-min (9)由式可知只要得到精确地VPV就可以推导出关节当前的角度PV,在单片机中相关语句为HR0 = 100*(float)(float)TSum/20-47636-0*80.413)/80.413);4.2.3 AD数据采集的软件设计CPU进入模数转换子程序后,先初始化待转换的AD口,转换完成的数据会通过DMA自动传送到Get_AD数组,然后通过30次滑动滤波并进行标度变换后得到操作手柄各关节位姿信息目标值,将信息传送给PWM输出模块。若标度变换后的数据不再伺服电机运动的范围,则返回继续采样。数模转换中断子程序流程图如图13所示。图13 模数转换中断子程序流程图使用单片机的PA口实现对ADC功能的映射,并且对端口和ADC首先进行初始化,并且发送字符串。头文件如下:#include stm32f10x_adc.h#include stm32f10x_rcc.h#define uint unsigned int #define uchar unsigned char#define uint unsigned int #define uchar unsigned charvoid ADC_DeInit(ADC_TypeDef* ADCx)#define RST_1 PORTD|=BIT(0)void ADC_Init(ADC_TypeDef* ADCx, ADC_InitTypeDef* ADC_InitStruct)void ADC_StructInit(ADC_InitTypeDef* ADC_InitStruct)void ADC_Cmd(ADC_TypeDef* ADCx, FunctionalState NewState)void ADC_DMACmd(ADC_TypeDef* ADCx, FunctionalState NewState)void ADC_ITConfig(ADC_TypeDef* ADCx, uint16_t ADC_IT, FunctionalState NewState)void ADC_ResetCalibration(ADC_TypeDef* ADCx)FlagStatus ADC_GetResetCalibrationStatus(ADC_TypeDef* ADCx)void ADC_StartCalibration(ADC_TypeDef* ADCx)FlagStatus ADC_GetCalibrationStatus(ADC_TypeDef* ADCx)4.3 TFT液晶屏驱动程序设计随着工业技术的不断发展,人机界面的开发及应用空前火热,为了具有比较友好的人机界面,TFT数字彩屏被广泛的应用,但是TFT彩屏通常都不带有控制芯片,由STM32驱动液晶屏时,必须要给TFT配一个控制芯片,本设计使用的是新一代触摸屏控制器TSC2046。图14 液晶显示程序流程图从性价比上考虑,TFT屏的价格与传统的单色液晶的价格几乎不相上下,同尺寸下甚至比一些单色屏还要便宜;就客户和厂商而言,很多制造商也相继使用彩色TFT的设计方案,以提高显示效果,提升产品的竞争力15。与当今科技计接轨,本设计使用了STM32处理器的GPIO口作为液晶接口,挂载TFT数字屏控制器并结合DMA传输方式驱动RGB数字屏的方法。DMA属于直接存储器传输,通常用在外部设备和存储器之间或者单独存储器和存储器之间的高速数据传输。时钟来自锁相环,可以做到无须单片机干预,数据可以通过DMA迅速地传送到目标地址,这样就节省了MCU的资源,方便多任务做其他操作。本设计采用STM32F103RBT6外部挂接TSC2046的静态RAM用作显存,再使用DMA的Memory to Memory模式从外部显存往GPIO外设不停地送数据来刷彩屏,无需单片机内核的干预。其程序流程如图14所示。由于驱动RGB接口彩屏对时序要求相对来说比较严格,所以使用STM32103RBT6的高级定时器来产生精准的时基信号,以此为最小的时间单位来生成相应的刷屏时序,STM32由定时器来控制对TFT显示信息的循环扫描,以保证不会使人有较明显的视觉暂留。扫描时, CPU仅仅参与对DMA,GPIO和显存的设置等操作,由DMA控制器来直接从显存中读取要显示的数据并传送到连接RGB数字总线上,不停地读写。几乎全部是由DMA控制器来实现,占用CPU的时间很少,从而有足够的时间来处理用户程序16。整个硬件的输入设备有操作手柄、按键和触摸屏。大部分的位姿信息由操作手柄获得,触摸屏作为微调和快捷设置,按键的功能是进行报警参数设置、模式切换和急停等。按键使用的是独立按键,也可以用矩阵键盘,但是考虑到整体系统软件的简化及另中断向量的清晰化,过多的系统延时花费在键盘扫描上,是对系统资源的浪费,所以在设计时,使用了GPIO直接驱动的独立按键。4.4 上位机通讯部分软件设计一个完整的测控系统还要有上位计算机软件作为人机交互界面,在本设计中使用VB开发了一个简单的上位机监控软件。一方面作为调试仿真时使用的工具,另一方面作为机械臂状态的监控软件。上位机与下位机(以主控板为核心的机械臂硬件和机械系统)通讯时采用的是自定义的协议,本来打算使用工业标准的ModBus协议,但考虑到其在读取模拟量时的数据库组态在VB中实现起来稍微有些麻烦,再加上本设计的重点在于硬件设计而非上位机设计,故使用了自定义的协议。读下位机伺服电机位姿:上位机发送:FD+FF 00+CRC校验码下位机回复:FD+六个电机当前状态参数+限位报警参数+CRC校验码若下位机未响应或CRC校验码有误,则上位机每间隔20ms重新发送请求读取参数命令。控制下位机伺服电机位姿:上位机发送:CA+六个电机目标状态参数+限位报警阈值+CRC校验码下位机回复: CA+00 FF+CRC校验码若下位机未响应或CRC校验码有误,则上位机每间隔20ms重新发送控制命令。每一帧数据都必须经过CRC校验,以免发送或接收错误指令,造成机械臂的误动作,避免造成不必要的损失。连接上位机之前要先对波特率进行设置,保证上下位机通讯节拍一致。将下位机的通讯中断优先级设置为最高以便能快速响应砂锅内危机的指令,提高整个系统的实时性和可靠性。STM32串口中断优先级如下:void NVIC_USART1Configuration(void) NVIC_InitTypeDef NVIC_InitStructure; /* Configure the NVIC Preemption Priority Bits */ NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0); /* Enable the USART1 Interrupt */ NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn; NVIC_InitStructure.NVIC_IRQChannelSubPriority =

温馨提示

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

评论

0/150

提交评论