作者:孙浩 程磊 黄卫华 程宇 来源:单片机与嵌入式系统应用
摘要 基于HCSl2单片机设计一种智能车系统。在该系统中,由红外光电传感器实现路径识别,通过对小车速度的控制,使小车能按照任意给定的黑色引导线平稳地寻迹。实验证明:系统能很好地满足智能车对路径识别性能和抗干扰能力的要求,速度调节响应时间快,稳态误差小,具有较好的动态性能和良好的鲁棒性。
关键词 智能车 HCSl2单片机 红外光电传感器
智能车系统以迅猛发展的汽车电子为背景,涵盖了控制、模式识别、传感技术、电子、电气、计算机、机械等多个学科;主要由路径识别、角度控制及车速控制等功能模块组成。一般而言,智能车系统要求小车在白色的场地上,通过控制小车的转向角和车速,使小车能自动地沿着一条任意给定的黑色带状引导线行驶。
笔者基于HCSl2单片机设计了一种智能车系统。硬件系统中的路径识别功能由红外光电传感器实现,车速控制由模糊控制器进行调节。软件设计中实时检测路况,并定时中断采集速度反馈值。
1 系统分析及控制方案
1.1 智能车系统分析
智能车系统根据检测到的路况和车速的当前信息,控制转向舵机和直流驱动电机,相应地调整小车的行驶方向和速度;最终的目的是使智能车能快速、稳定地按给定的黑色引导线行驶。
小车在行驶过程中会遇到以下两种路况:①当小车由直道高速进入弯道时,转角方向和车速应根据弯道的曲率迅速做出相应的改变,原则是弯道曲率越大则方向变化角度越大,车速越低。②当小车遇到_卜字交叉路段或是脱离轨迹等特殊情况时,智能车应当保持与上次正常情况一致的方向行驶,速度则相应降低。因此,对智能车的设计,要求具有实时路径检测功能和良好的调速功能。
1.2 控制方案的设计
系统的控制分为小车转向角控制和速度控制两部分。
小车转向角的控制通过输入PWM信号进行开环控制。根据检测的不同路径,判断出小车所在位置,按不同的区间给出不同的舵机PWM控制信号。小车转过相应的角度。考虑到实际舵机的转向角与所给PWM信号的占空比基本成线性关系,所以舵机的控制方案采用查表法。在程序中预先创建控制表,路径识别单元检测当前的路况,单片机通过查表可知当前的赛道,然后给出相应的PWM信号控制舵机转向。
本设计采用了一种参数自整定的模糊控制算法对小车速度进行闭环控制。小车在前进过程中,根据不同的路况给出不同的速度给定值,通过模糊控制器进行速度调节,以缩短小车的速度控制响应时间,减小稳态误差。系统将小车的角度变化率反馈给模糊控制器,通过修正规则进行模糊参数的自整定。智能车自动控制系统结构框图如图1所示,图中dt表示小车角度的微分环节,θ表示输出的转角,n’表示速度的设定值,n表示实际速度反馈值。
2 硬件结构与方案设计
系统硬件主要由HCSl2控制核心、电源管理单元、路径识别单元、角度控制单元和车速控制单元组成,其结构框图如图2所示。
2.1 HCSl2控制核心
系统的核心控制采用飞思卡尔半导体公司的16位HCSl2系列单片机MC9S12DGl28。其主要特点是高度的功能集成,易于扩展,低电压检测复位功能,看门狗计数器,低电压低功耗,自带PWM输出功能等。系统I/O口具体分配如下:PORTAO、PTH0~PTH7共9位用于小车前面路径识别的输入口;PACNO用于车速检测的输入口;PORTB0~PORTB7用于显示小车的各种性能参数;PWM01用于伺服舵机的PWM控制信号输出; PWM23、PWM45用于驱动电机的PWM控制信号输出。
2.2 电源管理单元
电源管理单元是系统硬件设计中的一个重要组成单元。本系统采用7.2V、2000mAh、Ni-Cd蓄电池供电。为满足系统各单元正常工作的需要,系统将电压值分为5V、6.5V和7.2V三个档。三个电压档的具体实现及其功能如下:
①采用稳压管芯片L7805CV将电源电压稳压到5V,稳压电路如图3所示,给单片机系统电路、路径识别的光电传感器电路、车速检测的旋转编码器电路和驱动芯片MC33886电路供电;
②将电源电压7.2V经过一个二极管降至6.5V左右后给舵机供电;
③将电源电压7.2V直接供给直流驱动电机。
2.3 路径识别单元
为提高小车转向角的控制精度,系统路径识别单元采用9个发射和接收一体的反射式红外光电传感器JY043作为路径检测元件。红外线具有极强的反射能力,应用广泛,采用专用的红外发射管和接收管可以有效地防止周围可见光的干扰,提高系统的抗干扰能力。
对于小车循迹场地的黑白两种颜色,发射管发出同样的光强,接收管接收到的光强不同,因此输出的电压值也不同;给定一个基准电压,通过对不同输出电压值进行比较,则电路的输出为高低电平。当检测到黑自线时分别输出为高低电平,这样不仅系统硬件电路简单,而且信号处理速度快。其路径检测硬件电路如图4所示。
2.4 角度控制单元
系统角度控制单元采用Sanwa公司SRM-102型舵机作为小车方向控制元件。在实际运行过程中,舵机的输出转角与给定的PWM信号值成线性关系,以PWM信号为系统输入信号,实现舵机开环控制。舵机响应曲线和控制电路如图5、图6所示。由于舵机的开环转向力矩足够,单片机通过采集的当前路况,给定PWM控制信号,从而实现舵机的转向,具体的舵机转向角与路径识别单元输出值的关系如表1所列。
2.5 车速控制单元
车速控制单元采用RS-380SH型直流电机对小车速度进行闭环控制,并用MC33886电机驱动H-桥芯片作为电机的驱动元件。车速检测元件则采用日本Nemaicon公司的E40S-600-3-3型旋转编码器,其精度达到车轮每旋转一周,旋转编码器产生600个脉冲。
系统通过MC9S12DGl28输出的PWM信号来控制直流驱动电机。考虑到智能车由直道高速进入弯道时需要急速降速。通过实验证明:当采用 MC33886的半桥驱动时,在小车需要减速时只能通过自由停车实现。当小车速度值由80降至50时(取旋转编码器在一定采样时间内检测到的脉冲数作为系统速度的量纲),响应时间约为0.3s,调节效果不佳;当采用MC33886的全桥驱动时,其响应时间约为0.1s。因此系统利用MC33886的全桥结构,实现了小车的快速制动。其电机驱动电路如图7所示。VCC为电源电压7.2V,INl和IN2分别为MC33886的PWM信号输入端口。 MC33886的输出端口OUTl和OUT2分别接驱动电机的两端。Dl、D2为芯片的使能端。
3 软件流程设计
本智能车系统的软件设计基于MetrowerksCodeWarrlor CWl2 V3.1编程环境,使用C语言实现。整个系统软件开发、制作、安装、调试都在此环境下实现。
系统软件设计由以下几个模块组成:单片机初始化模块,实时路径检测模块,舵机控制模块,驱动电机控制模块,中断速度采集模块和速度模糊控制模块。系统软件流程如图8所示。
4 实 验
对小车循迹功能实验是通过控制舵机的转向角实现的,而对车速控制功能,则进行了传统模糊控制与参数自整定模糊控制的对比实验。
(1)小车循迹功能实验
系统通过采集到当前路况,对舵机的转向角进行控制米实现小车的循迹功能。在舵机工作电压6.5V情况下,输入的PWM信号与舵机输出的转角一一对应。实验测得,舵机角度从左转-45°至右转45°对应的输入PWM信号范围为131~165。具体的舵机转角与PWM对应关系如表2所列,实验测得小车运行轨迹平滑,循迹图如图9所示。图中细线为任意给定的黑色引导线,粗线为小车循迹所行驶的曲线。
2)小车速度控制功能实验
在小车给定的三档速度情况下,对小车速度进行传统模糊控制与参数自整定的对比实验。具体车速控制曲线如图10所示。图中纵轴为采样周期(T=O.0ls) 的车速检测元件检测到的脉冲数,横轴为采样周期的整倍数。曲线1为速度设定值,曲线2为传统模糊控制响应曲线,曲线3为采用参数自整定模糊控制响应曲线。由小车的速度控制曲线可知,采用传统模糊控制用于智能车系统时,响应时间太长,且调节过程中会产生较大幅度的振荡;当采用带参数自整定的模糊控制算法后,小车在减速时能在较小的振幅范围内快速调节到设定值,从而保证了小车的平稳过渡且不影响整体速度。
5 结论
通过对小车进行转向角度和车速控制实验证明:小车能平稳地按照任意给定的黑色引导线行驶,循迹效果良好,速度控制响应快,动态性能良好,稳态误差较小,系统的稳定性和抗干扰能力强。