导言
本文是依据第三届全国大学生“飞思卡尔”杯智能轿车大赛要求规划自主辨认路途的智能车。整个体系选用了组委会供给的16位单片机mc9s12dg128为中心,模型车自身带有差速器和后轮驱动,需求规划完结依据单片机的自动操控体系使得模型车在关闭的跑道上自主循线运转。
车模与操控器构成一个自动操控体系,如图1,体系硬件以单片机为中心,配有传感器、执行机构以及它们的驱动电路,而信息处理与操控算法由单片机软件完结[1]。体系规划要求单片机把途径的敏捷判别、相应的转向伺服电机操控以及直流驱动电机的操控精细的结合在一起。
智能车的规划是在确保模型车牢靠运转的前提下,以电路规划简练、车体灵活性高为准则。规划的两大要点,一是光电传感器的布局和电路规划,一是循线操控算法的规划。
本文第二节首要介绍了光电传感器的电路规划和布局,这是信号收集的要害,相当于智能车的“眼睛”;第三节首要介绍了循线操控算法,这是操控的中心,相当于智能车的“脑筋”;终究在第四节对智能车的硬件、软件规划及试验状况进行了大体阐明。
光电传感器
光电传感器的挑选及电路规划
光电传感器坐落智能车的最前方,起到预先判别途径的作用。其发射的光对白色和黑色有不同的反射率,因而能得到不同的电压值,采进单片机后经过必定的算法比较电压来判别黑线的方位,然后操控舵机的滚动。这种办法易于完成,呼应速度快,实时性好,成本低。
本文选用性价比根本合适的反射式红外传感器tcrt5000。红外光电传感器电路的规划办法多种多样,因为本文算法中选用的是传感器阵列经历判别办法,为了操控简洁选用数字量输出传感器电路,如图2所示。
光电管选用脉冲调制式发光,即vo是震动电路发生的脉冲电压,这样易滤除外界搅扰。尽管电路相对杂乱,但足以确保模型车的安稳行进[3]。
光电传感器布局的研讨
光电管阵列的布局直接影响智能车的循线作用。一般来说,典型的布局有“一”字形布局和“w”形布局两种。
所谓“一”字形布局,便是把多个传感器依照“一”字排开。这种传感器布局办法最常见,算法在理论上易于完成。其不足之处在于:对赛道的曲率几乎没有任何猜测功用。因而一般不选用这种布局。
而“w”形布局,是把多个传感器依照“w”形摆放。“w”形布局因为传感器散布在两排,使得智能车对弯道有必定的猜测功用,这种猜测功用特别体现在直道进入弯道时间。后一排传感器仍在直道时,前一排传感器现已进入弯道。而不足之处是添加了操控算法的杂乱程度,判别舵机的旋转方向时,往往需求上一次的检测数据。经历判别的或许性也跟着传感器数量的添加而添加。
光电传感器布局仿真
经屡次仿真试验,终究确认了传感器的布局和数量。选用如图3所示的“w”形布局,一共有13个传感器,前排8个,后排5个,前后两排间隔为3.5cm。设置这个间隔,使其对赛道有必定猜测功用。详细的布局及仿真作用如图4所示。
循线操控算法
本文选用经历反应操控,即在一般经历操控的基础上,参加pid操控的思维,引进份额、积分、微分三个操控常数,施行反应,并选用积分别离的操控办法。
循线操控算法是使用前后两排传感器归纳检测信号来推理得到模型车的准确转向及详细的车速。方向判别的办法是:如图3,首要判别下排5个传感器的状况,假定s3处在黑线方位,再调查上排8个传感器,此刻s3将上排传感器分为左右两头,因为相邻两个传感器间隔离稍大于黑线宽度,因而任何时间只能有2个传感器一起检测到黑线,这样一来依据剖析上下两排传感器信号就可以根本判别出模型车的转向状况。例如,某一时间s3和s8检测到黑线,就可大致判别模型车应向右拐,并依据两个传感器的连线和竖直方向的夹角可判别舵机的转向和大致视点。
但一起还应留意,当车模进入左边弯道时,也或许呈现s3和s8一起检测到黑线的状况,这种状况下就要查看上一时间的传感器信号,便是检测s4||s13的状况,若s4||s13成果为1,则以为车模应左拐,若s4||s13成果为0则应右拐。一次方向判别的流程如图5所示。
在程序中树立两个数组,一个存储每次检测到的信号,另一个存储施行操控后的当时信号作为历史数据。参加这种带历史纪录判别的思维后,使得操控更为准确[4]。
除了以上判别规律之外,还有两种状况需求考虑。即只要一个传感器检测到黑线的状况以及穿插赛道的状况。关于只要一个传感器检测到黑线的状况,相同需求查看上一时间的传感器信号,例如,某一时间只要s6检测到黑线,若上一时间s5检测到黑线,则车模左转,若上一时间s7检测到黑线,则车模右转。
关于穿插赛道的状况,则使用一种“滤波”的思维将其“滤”除去。遇到穿插赛道时,必然会呈现同一排几个传感器一起检测到黑线的状况,此刻就给模型车一个指令使其直线行进,将穿插赛道排除去。
这便是本体系依据经历逻辑判别的循线操控算法,在此基础上经过不断试验调整各个参数可到达较好的操控作用。
试验成果
硬件规划
电机驱动电路
电机驱动选用mc33886作为驱动芯片,其原理如图6所示。经过向in1、in2口送出pwm波来操控电机的正转和回转,正转为智能车加快,回转减速。改动pwm波的占空比,可操控电机的滚动速率[5]。
速度检测电路
本文选用增量式光电编码器来丈量车速,其输出脉冲的频率正比于转速,可以经过丈量单位周期内脉冲个数或许脉冲周期得到脉冲的频率,具有较高的精度。
电源改换电路
智能车体系配有7.2v的蓄电池,可直接为直流电机供电。单片机、光电传感器和光电编码器所需电压为5v,伺服舵机为6v。这些电压则由7.2v蓄电池调理得来。
单片机和光电编码器经过稳压芯片7805稳压输出5v电压供电。光电传感器数目多、功耗大,对电源安稳性要求更高,故独自选用功率较高的芯片lm2575对它供电。给舵机供电的芯片选用的是低压差可调输出三端线性稳压器lm1117,片上供给安全操作维护等功用。
软件规划
软件规划分模块完成,其间主程序包含时钟初始化、i/o口初始化、舵机电机初始化、收集信号和操控算法,程序流程见图7。
试验成果及其剖析
程序开发过程中彻底选用了组委会供给的s12中心开发板,它是由mc9s12dg128单片机构成的最小体系。mc9s12dg128归于hcs12系列单片机,是motorola推出的高性能16位微操控器。它可以供给32-512kb的第三代快闪嵌入式存储器,总线速度可达50mhz,外围时钟可达25
mhz。还具有编码效益、片上纠错才能,并与mc68hc11和mc68hc12结构编码向上兼容。mc9s12dg128单片机具有112个引脚,其间与cpu相关的引脚都是兼容的。
s12开发板上有构成最小体系的复位电路、晶体振荡器及时钟电路,串行接口的rs-232驱动电路,+5v电源插座。单片机中现已写入了开发的监控程序。8个小灯用于调试使用体系。单片机的一切i/o端口都经过两个64芯的欧式插头引出。
硬件调试时,分别对各模块功用进行测验,要点调理光电传感器,它感知是非线时输出信号应不同,感知白线时经过比较器输出为低电平,感知黑线时输出为高电平。软件调试时,可使用bdm开发工具,显现单片机运转时其内部存储器中的数据。
经过硬件软件的联合调试和试验,呈现了一些问题,但经过对程序的完善和车模的重新装配后作用大大改进。终究车模可在跑道上循线运转,但仍存在功耗较大,转向延时等问题。
结语
本文依据自动操控原理,使用探路模块的路途误差信号使智能车完成寻迹盯梢,使用pwm技能操控电机的转速和舵机的转向。
本文要点介绍了光电传感器的排布“w”形布局以及循线操控算法,它们是确保智能车循线运转的要害。“w”形布局使智能车具有了路途猜测才能,而循线操控算法使得车体转向快速正确。
经过对智能车仿真和试验标明,整个体系的计划可行,体系的操控战略和软硬件根本合理。操控方面,尽管经典的pid操控在电机调速方面有杰出的操控作用,但因为车模的动力学模型因车况不同而改变等原因,使得pid操控作用受到影响,今后可考虑选用含糊操控,使算法愈加智能化,体系的适应性更强。