电子大赛二等奖 悬挂运动控制系统.docx
《电子大赛二等奖 悬挂运动控制系统.docx》由会员分享,可在线阅读,更多相关《电子大赛二等奖 悬挂运动控制系统.docx(14页珍藏版)》请在冰豆网上搜索。
电子大赛二等奖悬挂运动控制系统
悬挂运动控制系统[2005年电子大赛二等奖]
文章来源:
凌阳科技教育推广中心
作者:
广西师范大学黄钦宁李树海莫琼华 发布时间:
2006-8-3011:
43:
34
摘要:
本系统采用凌阳16位单片机SPCE061A作为控制中心,由直流步进电机、红外收发对管、4*4键盘及中文液晶显示屏构成的悬挂运动控制系统。
该系统能自由控制悬挂物体完成自行设定运动、画圆运动、沿黑线运动等,并能正确显示物体到达的坐标位置。
关键词:
SPCE061A单片机 中文液晶显示屏 逼近画圆算法
一、方案的选择与论证
1、单片机选择
方案一:
采用传统的8位89C51单片机作为运动物体的控制中心。
51单片机具有价格低廉,使用简单等特点,但其运算速度低,功能单一,RAM、ROM空间小等缺点。
本题目在确定圆周坐标值时,需要进行大量的浮点数运算,若采用89C51需要做RAM,ROM来扩展其内存空间,其硬件工作量必然大大增多。
方案二:
采用16位单片机SPCE061A作为运动物体的控制中心。
SPCE061A具有丰富的资源:
RAM,ROM空间大、指令周期短、运算速度快、低功耗、低电压、可编程音频处理,易于编写和调试等优点。
尤其在复杂的数学运算,其运算速度快,精度高,在控制步进电机时运行速度比一般51单片机快。
基于上述分析,拟选择方案二。
2、电动机选择
方案一:
用步进电机实现物体的精确定位和方向控制。
步进电机是一种脉冲控制电机,它是一种能将脉冲信号转换为角位移的数模转换器,可广泛用于无需反馈控制但要求有精确位置的场合。
方案二:
采用带旋转编码器控制直流电机,电机运转平稳,精度可以得到保证。
但其驱动电路复杂,在短时间内难与实现。
在本题中因考虑到控制画笔画图准确性和电路的复杂性,拟选择选用方案一,并采用控制性能高的步进电机来控制运动物体。
3、控制物体运动算法
方案一:
直线插补法。
直线插补法是在绘图系统中常用的一种逐点比较算法。
它的原理是:
执行机构每走一步,都要和给定轨迹上的坐标值进行一次比较,看当前位置和轨迹位置的关系,从而确定下一步的进给方向。
如果当前位置在给定轨迹的下方,下一步向给定轨迹的上方走,反之则相反。
如果当前位置在给定轨迹的里面,下一步向给定轨迹的外面走,反之则相反。
这样走一步看一步,决定下一步走向,形成"逐点比较",使走线逼近给定轨迹。
方案二:
直线简易算法。
这种算法是根据计算机图形学中直线的显示方法改变而来,基本原理也是"逐点比较",执行机构根据当前位置和轨迹位置的关系,从而确定下一步的进给方向,但是数据的处理过程不同。
在直线插补法中,一次循环只能确定一个走向同时,直线插补法要考虑象限的问题,不同的象限有不同的计算公式,而直线简易算法绕开了象限的问题,可以节省很多代码。
结合软件编程的难易和上面的比较,拟选择选用方案二。
4、黑线探测模块
方案一:
采用红外反射式探测,即用已调的红外线垂直射到板面,经反射后转换为电信号送入单片机处理,这是一种很普遍的应用,但是它存在着缺点:
<1)由于反射距离较短,红外反射功率小,如果板面的纸凹凸不平或白纸表面有杂物,也会使单片机误判。
<2)由于板面的黑线可能是墨水或者胶布,两种虽然都是黑色,但经实际应用发现其反光程度均不同,也会对红外传感器造成一定的干扰。
方案二:
采用多路阵列式光敏电阻组成的光电探测器。
因为光敏电阻探测到黑线时,黑线上方的电阻值发生变化,经过电压比较器比较将信号送给单片机处理,从而控制物体做相应的动作。
光敏电阻对环境光的识别,要求考虑外界环境光的影响,测试时可能在室内或室外,为了消除外界光照强度的干扰,在每个光敏电阻旁边加了一个高亮度发光二极管,这样每个光敏电阻的环境一样,即使在黑暗的条件下也可以正常工作。
测试结果表明使用这种方法就可以消除外界光的干扰。
基于上面的讨论,选用了抗干扰能力强的方案二。
5、显示方案
方案一:
采用LED数码管显示器。
LED数码管亮度高,醒目,但是其电路复杂,占用资源较多,显示信息量较小。
方案二:
采用汉字LCD液晶显示器。
LCD有明显的优点:
微功耗、尺寸小,超薄轻巧、显示信息量大、字迹清晰、美观、视觉舒适;可以用中文LCD液晶进行菜单显示,使整个控制系统更加人性化。
基于上面的比较分析和现有的LCD器件,拟选用方案二。
二、系统的具体设计与实现
1、系统的总体设计方案
如图1所示采用凌阳16位SPCE061A单片机作为运动物体的控制中心,进行数学计算、对光电传感器送来的信号进行处理来控制运动物体的运行方向、计算运行物体的坐标位置、LCD数据显示、键盘控制等。
图 1系统原理图
2、系统硬件设计与计算
<1)电机驱动电路的设计与实现
图2电机驱动电路
具体电路如图2,该电路采用L298驱动芯片,L298驱动芯片是性能优越的小型直流电机驱动芯片之一。
它可被用来驱动两个直流电机或者是一个步进电机。
在4--46V的电压下,可以提供2A的驱动电流。
L298还有过热自动关断功能,并有反馈电流检测功能,符合电机驱动的需要。
由于采用的是步进电机,所以对电机的驱动必须是采用脉冲控制。
本作品中的控制系统采用5V电源,电机驱动L298的电源也使用5V。
基于稳定性考虑,我们运用了TLP521光耦集成块,将主控制部分电源与电机驱动部分的电源隔离开来,这样减少电机对主控制电路的干扰。
<2)黑线探测设计与实现
利用该模块探测板面黑线的原理是:
光线照射到板面并反射,由于黑线和白纸的反射系数不同,黑线上方的电阻值发生变化,经过电压比器比较将信号送给单片机处理。
电路示意图如图3:
1,3为光敏电阻 黑色引导线 2,4为光敏电阻
图3 黑线探测示意图
本电路<如图3)利用光敏电阻在不同的光照的条件下电阻变化的原理。
根据第几路的光敏检测到黑线来控制步进电机的转向。
将光敏电阻分为前、后、左和右四个方向,设计为'+'字形。
采用一组两个探测头,当出现一个探测头的误判时,可以通过软件禁止物体跑出轨迹。
当探测头1检测到黑线时,物体左走,同时禁止物体右转防止跑出黑线,直到中间的探测头2或探测头4再次检测到黑线证明物体已经回到黑线上才向前走,这样就可以保证物体不会跑出黑线。
在实验时采用的电路如图4。
图4黑线探测原理图
由于在正常状态下每个光敏电阻感光量相同,通过调节电位器,使得电压比较器输出为零,当内侧<黑线两侧)的光敏电阻进入黑色引导带时,感光量大大改变,电压比较器翻转电压为高电平。
将电平变化送到单片机控制物体的调整方向。
用这种方法即使板面受到不同程度的光照射,比较器正向输入端和反向输入端的变化值相等,比较器输出端不变。
只有黑色引导线进入内侧一组光敏电阻区域才能引起感光量大大改变,比较器才翻转,这种方法抗干扰能力强。
<3)红外线无线控制台电路的设计
采用红外线无线通信可以对运动物体进行远程控制并传输物体的坐标位置到远处的控制台显示。
发射电路如图5示,由NE555构成无稳多谐振荡器,其振荡频率由电阻W1、R1和C3决定,通过调节W1可以改变振荡频率,使输出频率为38KHz。
T作为单片机的串口输出端,当T为高电平时,T1截止,T2、T3没有振荡频率。
当T为低电平,T1导通,这样38KHz就可以对T出来的信号进行调制;调制后的信号经过T2、T3后级电流放大去控制红外线发射管。
红外线的接收电路直接采用彩色电视机的一体化接收头,达到预期效果。
图5 红外无线控制台原理图
<4)语音播放电路
通过SPY0030功率放大器,驱动喇叭,完成对物体运行时间的语音播放<图6)
图 6语音播放电路
<5)显示模块
采用汉字液晶显示屏作为显示模块,同时使用4*4键盘操作,以菜单形式进行显示。
显示设定位置值、当前位置值。
三、系统软件设计及数学运算
<1)系统主程序流程框图<图7)
图7主程序流程图
<2)物体位置控制部分
图8物体位置示意图
1、坐标点参数的计算
将画笔所在的位置设定为整个物体的位置。
如图8
设定物体位置的初值坐标为 L1=
L2=
设电机A 的步进为acm,电机B的步进为bcm,物体高度为hcm。
如图8为物体在画板某一位置,则有:
解得X轴点位置和h为
则Y轴点位置
Y=115-h
控制物体从一点到另一点的实现就是当X、Y已知条件,求电机的步进过程。
由图8解得:
解得
由此,利用软件实现以上算法来分别控制两个步进电机的步进a,b,这样就可以向控制系统输入起点坐标和终点坐标让物体在画板置任意行走。
因此物体可以由自行设定的两点坐标走直线。
也可以将曲线分为多点坐标,采用直线逼近法走曲线。
2、多边形逼近画圆实现画圆算法
一个正多边形,当其边数n足够大,即每边所对的圆心角△
足够小时,就非常接近一个圆。
这样,画圆的问题就变成画多边形、画直线的问题了,只要确定n和
角的大小,多边形顶点的坐标位置,就可以绕开烦琐的象限问题,直接利用上面的画线的简易算法来实现画圆。
1)、n和角的大小的确定
在用正多边形逼近一个圆时,假设多边形的各个顶点落在圆周外侧,而各边中点落在圆周内侧,并假设它们偏离圆周的绝对误差均为ε,如图9所示,只要ε<0.5,则边线与弧线的差别就可以忽略。
图9中,R为圆半径,正多边形的边数n与每边所对圆心角△
的关系为
n=2π/△
根据图2-2-2的几何关系,不难得到/2>=2ε <1)
一般△
远小于1弧度,cos(△
/2>≈1-<△
)2/8,故上式可简化为:
)2/8=2ε <2)
由式1和式2解得:
n=0.5π
≈0.5π
<3)
若取ε<0.5,代入式<3)可得
n≥2.5π
当圆心为计算为
i的角度
物体的位置
求得物体的坐标位置后在利用以上坐标点参数的计算得出来的结果控制物体在两点坐标间走直线。
多边形的边数n的值越大,画出来的圆精度就越高。
2)、多边形逼近法画圆流程框图
在上面的讨论中,知道了多边形的边数n的值和多边形顶点坐标的推导方法,这样可以利用画直线的简易算法用线段来完成圆。
以圆心在 由于在直线的简易算法处理过程中,起点为坐标所以在多边行逼近中,每画一条直线,都要把坐标平移把起点xi和yi放到起点,再调用直线简易算法。
这种方法简单易行,在直线简易算法的基础上经过简单的数学计算处理,多次画线就可以实现画圆,相比较圆弧插补法,多边形逼近法程序代码少,可以大大节省内存空间;程序流程简单,容易编写调试;运行速度也相对圆弧插补法有较大提高。
3)、软件编程
软件编程使用凌阳u'nSPIDE1.8.4平台,该平台集程序的编辑、编译、链接、调试和仿真等功能为一体,可以使用C语言和汇编语言混合编程,编译效率高,在线调试方便。
具体程序略。
四、实际测试
<1)测试设备
模拟行使路线:
示意图见试卷 卷尺:
精度0.01m
秒表:
精度0.01s
坐标纸采用喷塑坐标纸<调试中易于擦洗无用的画笔轨迹)
<2)走自行运动实际测量结果
第一次走实际测量结果:
到达目的坐标,运动轨迹与预期轨迹之间的最大偏差1.7cm,运行时间为124秒。
第二次走实际测量结果:
离达目的坐标1.3cm,运动轨迹与预期轨迹之间的最大偏差1.4cm,运行时间为131秒。
第三次走实际测量结果:
离达目的坐标1.1cm,运动轨迹与预期轨迹之间的最大偏差1.3cm,运行时间为147秒。
第四次走实际测量结果:
离达目的坐标1.5cm,运动轨迹与预期轨迹之间的最大偏差1.1cm,运行时间为118秒。
第五次走实际测量结果:
离达目的坐标0.8cm,运动轨迹与预期轨迹之间的最大偏差1.3cm,运行时间为138秒。
第六次走实际测量结果:
离达目的坐标1.4cm,运动轨迹与预期轨迹之间的最大偏差1.9cm,运行时间为128秒。
六次运行物体离达目的坐标最大误差为1.5cm,运动轨迹与预期轨迹之间的最大偏差1.9cm。
平均运行时间约为130秒。
达到了预期的效果。
<3)画圆实际测量结果
画圆测试结果如下表
第一次画圆以(40,50>为圆心,对圆周进行8个点采样。
圆上的坐标
物体实际坐标
(15,50>
<17,50)
(22,68>
(23.8,69.7>
(40,75>
(40,74>
(58,68>
(56.5,66>
(65,50>
(64,50.4>
(58,32>
(59.3,31>
(40,25>
(40,24.2>
(22,32>
(23.4,32.7>
最大误差为1.8cm,运行时间为225秒,画笔曲线接近圆。
第二次画圆以(40,50>为圆心,对圆周进行8个点采样
圆上的坐标
物体实际坐标
(15,50>
<15.5,50.6)
(22,68>
(21.9,69.4>
(40,75>
(40.5,74>
(58,68>
(58.3,66.7>
(65,50>
(64.8,50.2>
(58,32>
(59.1,34..2>
(40,25>
(40.6,24.5>
(22,32>
(23.5,32.4>
最大误差为2.2cm,运行时间为224秒画,画笔曲线接近圆。
第三次画圆以(40,50>为圆心,对圆周进行8个点采样
圆上的坐标
物体实际坐标
(15,50>
<15,50.6)
(22,68>
(22.2,69.4>
(40,75>
(38.5,74.1>
(58,68>
(56.6,66.7>
(65,50>
(65.8,51.7>
(58,32>
(59.3,31.1>
(40,25>
(39.6,24.5>
(22,32>
(22.5,32.7>
最大误差为1.7cm,运行时间为221秒,画笔曲线接近圆。
三次画圆,运动轨迹与预期轨迹之间的最大偏差2.2cm,平均运行时间约为224秒,达到了预期的效果。
<4)走黑线实际测量结果
第一次走黑线走完连续线段,运动轨迹与预期轨迹之间的偏差1.8cm,连续线段运行时间为95秒。
第二次走黑线走完连续线段,运动轨迹与预期轨迹之间的偏差2.3cm,连续线段运行时间为98秒。
第三次走黑线走完连续线段,运动轨迹与预期轨迹之间的偏差1.6cm,连续线段运行时间为101秒。
第四次走黑线走完连续线段,运动轨迹与预期轨迹之间的偏差0.9cm,连续线段运行时间为94秒。
第五次走黑线走完连续线段,运动轨迹与预期轨迹之间的偏差2.2cm。
走过第一个断点,走断续线段运动轨迹与预期轨迹之间的偏差2.5cm,连续线段运行时间为95秒,第一个间断线段运行时间为45秒。
第六次走黑线走完连续线段,运动轨迹与预期轨迹之间的偏差1.5cm。
走过第一个断点,走断续线段运动轨迹与预期轨迹之间的偏差2.1cm,连续线段运行时间为97秒,第一个间断线段运行时间为54秒。
第七次走黑线走完连续线段,运动轨迹与预期轨迹之间的偏差1.4cm。
走过第二个断点,走断续线段运动轨迹与预期轨迹之间的偏差1.5cm,连续线段运行时间为92秒,两个间断线段运行时间共为96秒。
第八次走黑线走完连续线段,运动轨迹与预期轨迹之间的偏差1.2cm。
走过第二个断点,走断续线段运动轨迹与预期轨迹之间的偏差1.9cm,连续线段运行时间为96秒,两个间断线段运行时间共为102秒。
八次运行物体运动轨迹与预期轨迹之间的最大偏差2.5cm,连续线段平均运行时间约为95秒,间断线段平均运行时间约为98秒,达到了预期的效果。
<5)其他附加功能
1、语音播报功能
用秒表计时结果与单片机语音播报物体运行时间相符。
2、红外无线控制控制台
红外无线控制控制台硬件已经完成,但是由于时间问题,红外无线控制台的软件没有加到主体程序里,没有进行该项测试。
五、结论
本作品采用凌阳16位单片机SPCE061A作为运动物体的控制中心,SPCE061A具有比51单片机更多、更强的功能。
使用SPCE061A单片机的语音功能给本作品带来了很多趣味。
采用主控制电路电源与电机电源光电隔离,减少电机对主控制电路的干扰。
采用多边形逼近法画圆和优化算法进行自动控制,实现了准确的定位。
六、参考资料
[1]北阳资料.C语言在凌阳十六位单片机中的应用
[2]罗亚非.凌阳十六位单片机应用基础.北京航空航天大学出版社
[3]徐爱钧.单片机高级语言C51Windows环境编程与应用.电子工业出版社
[4]凌阳单片机网.
[5]陈振初,蔡宣平.计算机图形显示原理<软件).国防科技大学出版社
[6]王力虎.李红波.PC控制及接口程序设计实例.科学出版社
[7]李朝青.无线发送/接收IC芯片及其数据通信技术选编
[8]何立民.单片及应用技术选编
[9]肖景和.赵健.实用遥控电路
[10]涂时亮.张友德.单片微机控制技术.复旦大学出版社