您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 大学生电子设计竞赛作品论文--悬挂物体的控制,附源代码
设计报告悬挂运动控制系统摘要本悬挂运动控制系统,采用步进电机作为系统的运动源,采用AT89C52作为系统的核心,通过输入脉冲来控制步进电机的运转,从而控制悬挂物体的运动轨迹。该系统能够用键盘输入坐标的参数,设置运动模式;用LCD器件RT12864M作为系统的显示器件,界面友好,能够显示系统的工作模式和及当前坐标值,通过拨码开关还可设置电机的步进。软件采用修正查表法(自行设计)计算电动机需要的脉冲个数,节省大量CPU资源和程序存储空间,代码简洁,便于设计和调试。本系统具有多种画图功能,能够画直径为50cm的(面板内)任意圆心的圆或弧,能够画出任意斜率的直线,任意大小和方向的矩形,且能够动态显示当前的坐标,运行速度快,误差小,基本上完成了所要的功能。关键词:AT89C52步进电动机查表法LCD目录第一部分系统原理···············································1本系统包括三大模块··············································1第二部分方案的分析与论证·····································2硬件电路设计、比较与论证········································2软件算法选择与论证··············································3第三部分硬件电路设计与调试····································5硬件电路的设计··················································5硬件电路的调试··················································8第四部分系统软件设计和调试····································9坐标点确定······················································9步进电机脉冲个数确定···········································10定时器中断服务子程序流程图·····································11第五部分软硬件联调和结论·····································13软硬件联调·····················································13结论···························································13附录:使用工具和仪器··········································15第一部分系统原理一、本系统包括三大模块:1、单片机、键盘和显示模块该模块为整个系统的监控中心,单片机接收键盘和黑线检测模块传出的数据,经过处理,对显示器LCD写显示数据,对步进电动机组发出脉冲信号,控制电机做各种要求的运动。2、黑线检测模块该模块主要用于完成发挥部分2中画任意给定曲线。光电传感器识别黑线的位置。当发光二极管发出的光照射黑线时,光线被吸收,接收部分无法接收到光信号。接收光电三极管上输出高电平,经过比较器输出高电平。而没有黑线的地方,光信号被光电三极管采集到,输出低电平,经过比较整形输出低电平。单片机通过采集该电平信号判断黑线的位置,根据这个位置走动,也即实现了发挥部分2。3、电机组模块该模块接收单片机发出的脉冲信号,做正或反转,带动物体按要求运动。系统原理框图如图1-1-1:图1-1-1第二部分方案的分析与论证一、硬件电路设计、比较与论证1、单片机选择考虑到本系统无须特殊功能模块,且有现成的MCS-51系列单片机开发工具,我们决定使用价格便宜,供货充足MCS-51系列单片机。由于AT89C51和AT89C52在价格上没有多少区别,且AT89C52有更大Flash程序存储空间和RAM空间,外部引脚也相同。为满足大数据,长代码的要求,我们最终决定选用AT89C52单片机做为本系统的核心器件。2、电机选择方案一:直流电动机调速系统直流电动机具有良好的线性调速特性,简单的控制性能,高的效率,优异的动态特。普通的直流电动机虽然能够达到提升或降低物体以控制画笔的目的,但是普通直流电动机在不工作时,其转子受到重物的拉力而旋转,在加电流的情况下,只有某个适当电流使电动机转子的转动力矩和物体拉力力矩平衡。显然使用普通直流电动机实现本系统,将会遇到难以想象的困难。方案二:采用步进电动机。可以通过单片机输出数字脉冲来控制电动机,它将电脉冲信号转换角位移,即给一个脉冲信号,步进电动机就转动一个较小的角度,没有累计误差,具有良好的跟随型,可以精确控制电动机转子转动来控制画笔的运动,并且能够很好得解决了普通直流不能满足重物固定的难题。显然我们选用该种电机。3、示器件部分方案一:采用数码管显示模块。数码管虽然说成本低,原理简单,但是接口电路相当复杂,控制烦琐,功耗大,不利于系统设计,控制及布局。并且本系统要显示的数据量特别大,用该种设计方案显然不切合实际。方案二:采用液晶显示模块。4*8汉字显示的12864系列液晶可以一屏显示包括汉字在内的多种信息,且功耗小,接口电路简单,控制方便,界面友好,能较好的满足系统的设计要求。经比较,我们选择方案二。二、软件算法选择与论证1、不限定轨迹的运动方案一:起点和目标一旦确定,其相应的绳长变化就确定了,那么直接算出电机需要的脉冲数,并通过单片机提供脉冲,画笔自然到达目标点。这种方式运行时间很短,编程非常简单,但坐标难以时实显示,影响后面的发挥部分。方案二:所有情况都分段运动,即使不要求运动轨迹也要分段做近似直线运动,该方法运动时间增加,编程麻烦,但是容易动态显示当前坐标。为确保发挥部分,我们选择该方案。2、限定轨迹的运动(1)画圆方案一:公式逼近法。在当前位置上,通过在轴向上增加一小段固定位移S,计算下一个坐标,并移动画笔,然后通过圆的公式计算偏离程度,确定下一次在哪个轴线方向上移动位移S及其坐标,如此计算,直到画完一个圆。该方法优点是可以节省数据存储空间,编程容易。缺点是占用大量的CPU资源,且在4个轴点附近的偏差很大。方案二:一般查表法。将圆上的均匀采集的数据点存储于表格中供程序调用。该方法优点节省CPU资源,精度比方案一高。但代码程序量很大,而且随着采集点的增加和精度的提高,代码太大,程序的修改也很麻烦。方案三:修正查表法(自行设计)。圆周运动比较特殊,在圆上按弧长均分的点,x和y的增加存在一定关系。y值变化量y加快(或变慢),y随之变慢(或加快)。且相位相差1/4圆周,幅度相同。这种方法便于修改,代码不大,为方案二的1/4,但精度跟方案二相同。同时用查表法,节省了大量的CPU。我们选择了方案三。(2)直线方案一:计算斜率,用斜率直接乘以分段长度,当斜率过大数据溢出会导致严重错误,而当斜率过小,会有较大的舍入误差,计算精度不高。计算出的脉冲误差很大,积累的误差导致运动达不到要求。方案二:不计算斜率,比较整个直线长度x和y分量的大小,取大值先按1cm等份,再用等份数等份小的分量,并且将其值扩大100,取整,其误差很小。我们选择该方案画直线。我们选择方案二。第三部分硬件电路设计与调试一、硬件电路的设计1、步进电动机和驱动选型本系统采用的是常州步进电机及驱动,下面对该型号的电机和驱动作以下简单介绍。特点:采用12-30V直流或10V-24V交流供电H桥双极性恒相流驱动输出驱动电流多档可选多档细分可选(1,2,4,8)输入信号光电隔离短路、错相保护提供节能的半电流锁定功能接口信号选择公共端(com)电压(由拨码开关)选择(见表3-1-1):表3-1-15V适应控制机+5VTTL电平信号24V通用PLC的24V接口信号本题用5V。运行模式本驱动器可以提供整步、改善半步、四细分和八细分四种运行模式,利用驱动器面板上5位拨码开关的第3、第4两位可组合出四种状态(见表3-1-2):(0:ON,1:OFF)表3-1-2SW3,SW4运行模式SW3,SW4运行模式00整步01改善半步10四细分11八细分本题用改善半步。电流选择本驱动器利用驱动器面板上的4位拨码开关的第1,第2位组合出四种状态(见下表3-1-3):(0:ON,1:OFF)表3-1-3本题用为0.6A电源电压:输入10VAC到30VAC之间选择,本题选择20VAC。输入信号公共端COM本驱动器的输入信号采用共阳极接线方式,用户应将输入信号的电源正极连接到对应的内部光耦导通,控制信号输入驱动器中。脉冲信号输入CP该脉冲信号下降沿被驱动器解释为一个有效脉冲,驱动电机运行一步。脉冲低电平的持续时间不少于10us。方向信号输入DIR该端信号的高电平和低电平控制电机的两个转向。该端悬空被等效认为高电平。控制电机转向时,应确保方向信号领先脉冲信号至少5us建立。与单片机接口电路如下图3-1-1:图3-1-12、键盘和显示电路的设计SW1,SW2电流SW1,SW2电流000.6A011.2A101.8A112.5A由于本系统仅采用4个键,因此将键盘直接连接到单片机的I/O口上去,并且采用软件消抖。液晶主要技术参数和显示特性:电源:VDD3.3V~+5V(内置升压电路,无需负压)显示内容:128列X64行显示颜色:黄绿显示角度:6:00钟直视LCD类型:STN与MCU接口:8位或4位并行/3位串行配置LED背光多种软件功能:光标显示、画面移位、自定义字符、睡眠模式等液晶的主要命令如下:二、硬件电路的调试1、电机测试使用信号发生器输入5V,10~2000Hz方波信号到电动机驱动CP端,设置细分模式,COM接+5V电源,DIR不接或接电源地,发现电机运转精确。2、键盘和显示键盘和液晶硬件电路比较简单,连接好电路,经过万用表测试,电路连接一切正常。3、黑线检测电路电路上电后检测在纸上画的任意黑线,用信号发生器检测电流信号,一切正常。第四部分系统软件设计和调试所有画线均采用分段画线。一、坐标点确定1、画任意直线图4-1-1起点:00(,)xy,终点:11(,)xy。11(,)xy-00(,)xy=(,)xy,如上图4-1-1。显然有xyxy或者,不妨取xy(这样做有两个好处:1、防止用短的坐标轴向距离等份产生的舍入误差在长的上面放大而导致更大的误差。2、避免直线与轴线平行时,错选0作为除数,导致系统出错)。将x以1cm等份n。由此等份数n去等份y,可以得到一系列新坐标:001111(,),(,),(,)nnxyxyxy。此方法可以画任意直线,只需输入所要到达的目标点坐标。(1)画直径为50cm的圆(包括弧线)如图4-1-2在四个区域中有:图4-1-2abcda逆时针画圆,则有xyxy与相位相差一个区长,变化幅值完全相同。ab,x按弧长25等份,得到序列0125,,,xxx。取1(024),nnnxxxn其变化量为:表4-1-1abbccddax序列024,,xx240,,xx024,,xx240,,xxy序列240,,xx024,,xx240,,xx024,,xx得到修正值表为:024,,xx(保存于代码段中)为了避免大量浮点数带来的麻烦并兼顾精度,采用扩大100取整的办法,可以精确到0.01mm,完全满足设计的需要。(3)动态显示每一次画笔运动时,将新坐标输入到LCD即可。二、步进电机脉冲个数确定步进电机带动绳子进而带动画笔运动。唯一可以确定的是两坐标间绳子长度的变化量,左边滑轮坐标为(15,115),右边为(95,115)。画笔运动前后两分别为坐标11(,),(,)nnnnxyxy,绳长变化:2222111(15
本文标题:大学生电子设计竞赛作品论文--悬挂物体的控制,附源代码
链接地址:https://www.777doc.com/doc-4288753 .html