第四章 软件设计
推荐给好友
打印
加入收藏
更新于2008-05-27 10:37:02


4.1 寻线算法

        当智能车行驶在跑道时,红外接收管根据自己位于黑线的位置而呈现出不同的反应,15个红外传感器在正常情况下,分别会有1、2或者3个管导通,由此可得共有14+13+15=42种情况,分别对这42种情况编程,可得42种程序入口。

4.1.1 抗干扰算法—tiny memory算法 

        由于在智能车行驶过程中,难免遇到车身震动或是红外传感器由于某种原因暂时无法工作的情况,此时探测器传回的数据有可能是错误的,也有可能出现不是上述42种情况中的一种,这样就会造成智能车暂时失明,不能够准确的行驶,有可能冲出赛道。这种情况理论上不会发生,但是在实际中还是要加以克服的,在这里我们采用轻微记忆算法,即在程序中设有一个变量,它专门记住上次探测正常时的数据,当此次读取探测器数据失败或者读取到干扰的数据,程序会自动抛弃本次数据,而采用上次的数据,由于两次采样的时间非常短,所以对行驶不会有太大的影响,另外,即使探测器的数据是42种情况中的一种,但是其两次的间隔过大,例如,一次左转极限,一次右转极限,显然不合实际情况,这时也要采用tiny memory算法抛弃本次的数据,使用正确的数据,使智能车安全的行驶。

4.1.2 前瞻式算法 

        前瞻式算法的原理是根据智能车在行使中得到的数据预测前方道路的情况,提前作出情况,例如在车行使时,每隔0.05s取一个样本点,观察车的速度与舵机转动情况,若是连续3次采样点舵机均没有偏转,我们就认为智能车走的是直道,此时就立即加速,使其以较高速度运行,当采到某一采样点舵机偏转,且检查其不是干扰点,则认为智能车进入弯道,此时应立即减速,减速的趋势是最低极限速度(半径为60cm圆的速度),此后仍然采样舵机偏转角度。如图4-1,通过计算两个采样点(定时采样,时间间隔为T)的距离d,以及这期间舵机的转角α,既可以计算出轨道半径r,又由赛道材质便可确定该弯道的最大极限速度v,行驶时以这个极限速度行驶,既不会冲出赛道,又加快了赛车的速度。

4.2 舵机控制 

        当我们对舵机进行测试时,发现舵机在规定的50HZ运行稳定,有很好的线性。那么我们为了进一步提高舵机的反应速度能不能在进一步提高舵机的控制信号频率呢?我把控制信号加为为100HZ时,此时多极反应速度明显比50HZ时加快。且依然具有非常好的线性。当进一步提高舵机的控制信号频率时,舵机有时变得不稳定,同时由于软件执行速度的原因,为了稳定和快速,我采用了100HZ为控制信号。由第3章红外传感器探测头的设计,我们可以确定若干种转角,再由转角与控制信号脉宽的对应关系,即可由CPU产生适当的PWM控制信号来通过舵机控制转角。

4.3 调速 

        调速装置是由驱动装置和测速装置组成的负反馈系统,其结构图图4-2,在本系统中,为了达到最理想的加速减速效果,采用如图4-3所示的离散反馈系统。其中两个开关的作用是当智能车行驶的实际速度小于给定速度时,智能车以最大加速度加速,当实际速度大于给定速度时,智能车以最大加速度减速,这样使得小车的速度变化时间缩短,有利于提高小车行驶时速度反应的快速性和灵活性,并且在实际测试中也达到了理想的效果。下面就调速机构的驱动部分和测速部分分别展开讨论。 

        设编码盘的齿数为N,则当车轮转动一周时红外接受对的接受的脉冲为N个,设齿轮的半径为r,则每接收一个脉冲,智能车行进的路程为2*PI*r/N,再由芯片MC9SDG128B的ECT(增强型捕捉定时器)功能,配合中断技术,就可以得到智能车的行驶速度,从而形成速度反馈。

4.4 主程序调用 

        在前面几章中我们分别介绍了智能车的各个部分的组成原理以及软硬件分析,但是这些子程序单个并不能完成整个车的功能,需要一个总的主程序通过有顺序的合理调用它们才能使得智能车沿着预定的目标行驶,下面分别介绍各个子程序的功能及主程序的调用方法。 主程序结构图见图4-4:


                                 上一章:硬件设计                                       下一章:结论与展望




 
关于我们 | 诚邀加盟 | 客户服务 | 相关法律 | 网站地图 | 友情链接 | 服务信箱:service@eefocus.com
© 2006 与非门科技信息咨询(北京)有限公司 All Rights Reserved.