悬挂运动控制系统Word格式文档下载.docx
《悬挂运动控制系统Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《悬挂运动控制系统Word格式文档下载.docx(14页珍藏版)》请在冰豆网上搜索。
![悬挂运动控制系统Word格式文档下载.docx](https://file1.bdocx.com/fileroot1/2022-11/27/3647513d-5ca4-4f0a-b1a4-a135619ce687/3647513d-5ca4-4f0a-b1a4-a135619ce6871.gif)
采用MCS-51系列单片机。
经典的MCS-51单片机功能和速度有限;
而高档的MCS-51系衍生产品价格昂贵、冗余资源较多、使用范围较窄。
方案2:
采用凌阳公司推出的SPCE061A单片机及其开发板--61板作为控制模块。
SPCE061A的CPU时钟为0.32MHz~49.152MHz,速度可以满足电机控制对实时性的要求,也可以满足浮点运算的要求;
内置2KWords的SRAM,为浮点运算提供了足够的数据存储器空间;
具有7个触键唤醒中段和2个外部中断,可以满足本系统中键盘和传感器对外部中断的要求;
SPCE061A可以通过在线调试器Probe和EZ_Probe实现在线程序下载和调试,极大地提高了开发效率。
此外使用凌阳公司提供的音频函数库和SPCE061A丰富的时基中断可以方便地实现功能扩展。
鉴于SPCE061A的以上优点,采用方案2。
2.键盘模块
键盘模块完成参数输入功能。
在本系统中我们参考了iPod播放器和电脑显示器中常见的方向键和几个特殊功能键组合完成人机交互功能,而不采用单独的数字键。
这样简化了软硬件设计、提升了人机交互体验。
3.显示模块
完成参数和状态显示,要求有较大的显示容量、占用单片机事件较少。
因为LED数码管显示容量有限,且动态扫描需要占用大量单片机时间,无法做到实时显示,所以本设计中采用1602字符型LCM。
1602字符型LCM克服了LED数码管的缺点,具有显示容量大、占用单片机口线少、节省单片机时间、功耗低等优点,完全符合本系统要求。
4.循线传感器模块
循线传感器模块用于实现沿任意黑线运动。
采用反射式红外光电开关来实现传感器模块的功能。
为了适应不同形状的曲线,采用8支光电开关排列成"
字形置于黑线上方,如图1-2所示。
当光电开关采用此种排列方式时,无论曲线是上-下、左-右、左上-右下、右上-左下走向,均可以有两支以上的光电开关检测到黑线,也可以预测到曲线的走向。
当2、7检测到黑线时,说明物体沿竖直线前进;
当4、5检测到黑线时,说明物体沿横线前进;
当3、7检测到黑线时,说明曲线将向右转;
当1、7检测到黑线时,说明曲线将向左转;
……。
设物体正沿竖直直线前进,当断线时,则2检测不到黑线,7检测到黑线,此时只要控制物体继续前进,就可以越过断线继续前进;
当到达曲线尽头,2检测不到黑线,7检测到黑线(与遇到断线时情况相同),此时控制物体继续前进,直到7也检测不到黑线,这时表明曲线已经走完,控制物体停止前进即可。
图1-2"
字形排列的光电传感器
5.位置传感模块
位置传感模块用于实现"
显示画笔位置"
的功能。
对于这个模块可以有硬件和软件两类解决方案。
在物体上安装水平和垂直方向的两只激光笔,在板边缘每条坐标线旁边安装一光电传感器,物体坐标所在处的传感器接收到激光笔,即可确定物体位置。
可见本方案共需要180个光电传感器,造成此方案几乎不可实现。
采用软件的方法确定物体位置。
单片机控制物体从某个已知的坐标位置出发,并且记录步进电机的每一次移动情况,就可以通过一定的算法计算出物体的位置。
这种方案没有位置传感器,精度较低,但是系统简单。
避免了硬件方案过于复杂的缺点。
本设计使用方案2。
6.电机驱动模块
电机驱动模块是本系统的执行机构,用于控制悬挂物体的运动。
因为本系统中未设置位置传感器,系统对位置的定位完全靠软件来实现,这就要求电机的控制精度必须要高。
采用普通小型直流电机。
普通直流电机由于其自身结构的限制,控制精度很低,无法达到系统要求的指标,这里不予采用。
采用专用步进电机驱动器及与其配套的步进电机。
用这种方案的控制精度、效率和可靠性都很高。
唯一的缺点是价格较高。
7.电源模块
电源模块为步进电机驱动器、循迹传感器等提供电源。
对电源模块的基本要求是具有系统要求的电压输出和足够的容量,散热条件良好。
本设计采用7812和7912构成±
12V输出并串联构成+24V输出给步进电机驱动器提供电源;
采用7805构成+5V输出给传感器等电路供电;
61板由外接电池盒供电,以获得较高的稳定度。
通过以上论证和选择,我们最终确定系统详细方框图如图1-3所示。
图1-3系统的详细方框图
二、电路设计与实现
1.键盘模块
电路原理图如图2-1。
图2-1键盘模块原理图
键盘模块包括Key_Up、Key_Down、Key_Left、Key_Right4个方向键和Key_Ack、Key_INT2个特殊功能键。
Key_Ack用于确认输入数据;
Key_INT用于启动键盘扫描程序;
Key_Up、Key_Down用于调整数值;
Key_Left用于状态的切换;
Key_Right用于调整坐标点;
Key_Sel用于选择需要调整的位。
2.显示模块
显示模块的电路原理图如下:
图2-2显示模块原理图
液晶显示模块选用HS162-4型LCM。
将8位数据线连接到SPCE061A的A口高8位;
控制线RS、RW、E分别连接到IOB15、IOB14、IOB13;
另外用IOB12通过一支三极管控制背光的开关;
显示亮度由连接到3脚的可调电阻控制。
3.循线传感器模块
循线传感器模块的原理图如下:
图2-3循线传感器模块原理图
当8个反射式光电开关位于黑线之上,光电开关输出高电平;
反之,输出低电平。
将电平输出到比较器LM339的正输入端;
LM339的负输入端连接到可调电阻上用于设置比较器的阈值电压;
比较结果输出到SPCE061A的A口低8位。
4.电机驱动模块
本系统中采用HB202M型两相混合式步进电机细分驱动器,控制57BYG型两相混合式步进电机。
该驱动器的外部接线功能描述如下表格所示:
端子标记
功能
说明
CP+
步进脉冲正输入端
光耦开通有效,最小脉宽2μS
CP-
步进脉冲负输入端
CW+
方向控制正输入端
光耦关断时为正转,开通时为反转
CW-
方向控制负输入端
FREE+
脱机控制正输入端
光耦导通时驱动器输出电流为0,电机无锁定转矩
FREE-
脱机控制负输入端
A
A相头输出
/A
A相尾输出
B
B相头输出
/B
B相尾输出
+24V
电源输入
额定电压DC24V/2A
0V
HB202驱动器上带有三个开关,用于选择不同的细分模式,本系统选用(123)=101这种模式,每拍转过的角度为Δθ=360o/50/8=0.9o。
连线如下图所示:
图2-4电机驱动模块原理图
5.电源模块
电源模块电路如下:
图2-5电源模块原理图
三、软件设计与实现
本系统软件的主要任务是电机运动控制、循线传感器检测、模式与参数控制、语音提示等。
1.电机运动控制
电机运动控制是本系统的核心程序。
本系统没有位置传感器,这对电机控制的精度提出了很高的要求。
电机运动控制程序的基本思路是控制两个电机在两个相近点之间的运动来合成各种轨迹,即把要走的轨迹分割成一定数量的点,只要两点之间的距离合适,就可以通过电机在这些相邻点之间的运动合成各种轨迹。
电机在两点之间的运动的步骤如下:
○1分别计算电机位于当前点与目标点时,左右拉线的长度。
这就必须在电机开始运动之前,将起始点的位置输入到单片机中。
计算拉线长度,
L2=Lx2+Ly2+Lz2;
其中L为定滑轮与物体之间拉线的长度;
Lx、Ly、Lz分别为定滑轮与物体之间的横向、纵向、垂直(与板面)距离。
每走一个点需要计算一次距离,且为浮点开平方等运算,速度比较慢,故走两点之间的时间间隔会比较大,可能使线呈波浪形。
但是由于凌阳单片机速度较快,对物体运动速度要求不高,仍然可以满足题目要求。
○2根据两个拉线的长度,得到左右电机转动的方向与步数。
电机转动的步骤需要根据定滑轮半径、电机绕线轮半径来调整。
○3单片机输出所需的方向控制电平和步进脉冲。
对于设定的曲线,先建立其分割后各点的横坐标与纵坐标的一维数组,使电机依次走过相邻的两点。
Motor()实现对电机两点之间的控制:
实现物体各种路线运动的流程图:
2.循线传感器检测
为了精确定位,采用了8个"
字形排列传感器,连到A口的低8位。
根据8个传感器对黑线检测的不同情况控制电机的运动状况。
本方案重点在于根据传感器得到的信息来推断下一个点于当前点的相对位置。
由定位函数Orientation()实现。
循迹的主要困难在于轨迹曲线角度的多样性,我们安排了8个传感器以保证全方位的检测,但同时也使检测结果呈现多样性,软件设计时很难穷尽所有情况。
我们采取了以下措施:
首先判断方向明确的情况,比如当4,5两个传感器压黑线时,说明此时的曲线基本处在水平方向,因此,不管其他传感器是否压线,物体都将水平运动一段距离。
类似的还有:
当3、6压线时斜向上45度运动;
1、8压线时斜向下45度运动;
2、7沿线时有两种情况,向上或向下运动,具体情况可根据以前状态的总体趋势来判定,本软件中设置了标志位作为判断依据;
所有传感器均检测不到黑线时,说明已经走到曲线尽头,电机停止。
除了以上几种情况外,其他的一些特殊情况可在实验中测定,然后在软件中列成类似真值表的形式,用于判断具体运动趋势。
判断电机运动趋势的函数为:
Orientation();
3.模式切换与参数调整及显示
模式与参数控制实现系统在各种轨迹运行模式之间的切换及其相应的参数调整及显示。
通过扫描按键的值,对不同的键值设置为相应的状态。
4.语音提示
语音函数库是凌阳公司为其系列产品提供的一组录放音及语音识别API函数,是凌阳系列MCU的特色之一。
这些函数库使得在凌阳单片机中使用语音变成了一件及其容易的事情。
本设计中实现了对设定模式、运行状态、坐标位置、运行时间的自动语音提示。
语音提示功能是对本系统人机交互功能的有益补充,为本系统增色不少。
四、系统调整与测试
1.测试方法及结果
1)基本要求2:
控制物体作自行设定的运动
测试方法:
设定为系统沿正弦曲线运动模式,正弦曲线峰值40cm,水平长度62cm。
测试次数
起点位置
关键点位置
终点
总计耗时
最高点
最低点
过零点
1
(0,30)
(15,51)
(47.5,10)
(31,30)
(64.5,31)
26s
2
(0,70)
(16,91.8)
(43.5,50)
(32.5,70)
(62.5,71.2)
2)基本要求3:
控制物体作圆周运动
设定好圆心(XO,YO)位置,手动将物体放置在(XO+25,YO)点,启动运行。
测试数据如下表:
圆心坐标
关键点坐标实测
终点坐标
最左点
最上点
最下点
(50,50)
(75,50)
(24,50)
(50,75.5)
(50,24.6)
(74.5,49.5)
37s
(40,50)
(65,50)
(13,50)
(40,75)
(40,25)
(64.5,50)
3
(35,65)
(60,65)
(7.5,65)
(33,90)
(34.39)
(59.5,64.8)
36s
3)基本要求4:
控制物体作从坐标原点到任意坐标点的运动
手动将物体放置在原点处,通过单片机设定系统工作于本模式,并设定好终点坐标,启动运行。
设定终点目标
实测终点目标
最大误差
耗时总计
(70,40)
(71,42)
<
2cm
15s
(70,80)
(70.2,80.5)
1cm
14s
(20,80)
(19,80)
16s
测试的结果表明本系统已具备了控制物体按直线运动的能力,并且误差在要求的范围以内(<
4cm),时间也在要求范围以内。
4)发挥部分2:
控制物体沿板上标出的任意曲线运动
测试方法:
在底板上按照题目要求用黑色电工胶带分别粘贴出若干条轨迹,如左下至右上单调上升的轨迹、先从左下开始上升然后下降的轨迹。
设定物体从左下位置开始运动。
测试表明,系统能以较快的速度完成循线运动的功能;
在曲线间断区,物体运动速度不会变慢。
但是测试中发现本系统不能完成从上到下的循迹,这可能是由于在向下转弯处的传感器状态与其它状态冲突或程序设计考虑不周等原因。
2.误差分析
从测试结果可以看出,本系统已经完成了题目中的各项基本要求,其中按指定轨迹运动的精度较高,可控制在2cm左右以下,每一种轨迹的运动时间都远小于题中要求。
分析系统中的误差,主要包括以下几方面:
1)绕线滑轮半径引起的误差。
2)电机绕线轮引起的误差。
五、结束语
本设计以凌阳16位单片机SPCE061A作为悬挂运动控制系统的控制核心,采用创新的软硬件结构实现了对悬挂物体的预设轨迹运动、圆周运动、到指定点运动、循迹运动进行控制的功能,达到了题目的要求。
由于时间限制,本设计还存在着一些值得改进的地方,如减小运动过程中的抖动、改进算法使系统能够对任意黑线的下降转折点进行循迹、补偿因为定滑轮和电机绕线轮造成的误差等。