基于线性CCD图像识别智能小车的设计与开发
0 引言 目前,具有自动驾驶功能的智能车越来越引起人们的重视。智能车装备了各种传感器来采集路况信息,通过计算机的控制可以实现自适应巡航,并且又快又稳、安全可靠。智能车不仅能在危险、有毒、有害的环境里工作,而且能通过计算机的控制实现安全驾驶,能大幅度降低车祸的发生率。智能车的设计关键是路况信息的采集,传统的方案多采用红外光电传感器,此方案不仅噪声较大,而且与主控CPU的连接电路复杂,传输速率慢。本文研究的智能小车系统选用了TSL1401CL线性CCD图像采集模块,该模块采用串行通信方式与主控CPU连接,不仅电路简单、性能稳定,而且采集速率快。通过实验测试,本文设计的智能车能根据采集到的图像分析前方路径及障碍而实现智能驾驶,具有极强的实用价值和市场前景。 1 系统设计思想 经过调研与分析,我们采用了MC9S12XS128单片机、TSL1401CL线性CCD图像采集模块、稳压芯片以及液晶OLED等外围器件设计与开发出这套智能小车系统。MC9S12XS128高速单片机为Freescale公司新推出的16位高性能高速单片机,其接口丰富、功耗低、信息处理能力强大,能对小车前方路径及障碍进行及时分析,处理迅速、性能稳定。为了提高路面图像采集的速度与质量,我们选用了TSL1401CL线性CCD图像传感器。TSL1401CL具有功耗小、性能稳定、灵敏度高、响应速度快等优点,其工作过程是先将路况光学信号转换为模拟电流,模拟电流放大后再进行A/D转换变成数字信号,最后通过串口送至主控CPU。智能小车的CPU根据CCD采集到的信息进行分析和处理,从而实现系统的自动控制与障碍处理、路径探测。在软件设计中我们采用了先进的PID(比例、积分、微分)算法,其运算参数可以根据过程的动态特性及时整定。通过PID算法,模糊PID算法来实现智能车的转向、控速等精确自动控制,另外还有很好的避障功能,实现了全智能的安全控制。 2 系统硬件设计 本项目采用模块化设计与开发,主要有CCD采集模块、电源模块、电机驱动模块、车速控制模块和转图1系统总体设计框图。 2.1 CCD采集模块 该模块采用TSL1401CL线性CCD图像传感器,其内部由一个128×1的光电二极管阵列、相关的电荷放大器电路和一个内部的像素数据保持功能组成,它提供了同时集成起始和停止时间的所有像素。对于TSL1401CL线性传感器的驱动与使用,本项目利用MC9S12XS128的PA0和PA1引脚对其CLK和SI两个引脚按特定的时序发出方波信号,TSL1401CL的AO引脚就会依次输出128个像素点的模拟信号给MC9S12XS128,其电路如图2所示。我们通过测试发现,该传感器的输出信号和环境光线密切相关,白天AO输出值比晚上高很多,对光和背光相差也很大,白炽光和日光灯光线条件下差异很大。同一镜头或信号放大倍数,必然无法适应各种环境,经常会出现过弱或信号饱和,对环境的适应性很弱,对此可通过软件使用动态曝光时间或通过单片机动态改变运放的放大倍数。 2.2 电源模块 系统由不同的模块组成,每个模块工作的电压不同,设计时还要考虑各模块所需的功率。另外还需设计电池检测系统,以便直观了解电池的情况。智能车需要的电源要求包括5V、7.2V等。对于5V供电设计我们选择了LM2940-5,对比7805,2940的优点是低压差稳压,其稳压差小于500mV,这样保证电池在低电压的情况下仍能使单片机和传感器正常工作,同时,LM2940的输出电流可以达到1A,足够供应放大电路和键盘显示电路的工作。LM2940模块电路设计图如图3所示。 2.3 电机驱动模块 驱动电路为智能车驱动电机提供控制和驱动,这部分电路的设计要求以能够通过大电流为主要指标。驱动电路的基本原理是H桥驱动原理,目前流行的H桥驱动电路有:H桥集成电路,如MC33886;集成半桥电路,如BTS7970以及MOS管搭建的H桥等电路。对于本系统的设计,我们选择了性能较好的BTS7970作为电机驱动模块的主芯片,其工作电路图如图4所示。 2.4 速度控制模块 智能车的车速主要采用增量式PID控制和位置式PID控制,将模糊控制与PID控制相结合,使智能车能够在赛道上平稳快速地行驶。智能小车速度控制系统以XS128单片机为核心,由单片机给电机一个给定速度即理论速度,建立模糊PID控制器,利用模糊PID控制器来控制电机的转速,即控制智能小车的实际速度。再利用光电编码器来测量智能小车的实际车速,并将实际车速反馈给模糊PID控制器,形成闭环负反馈回路。 2. 5 转向控制模块 智能车的舵机SD-5采用位置式PD控制,因为舵机的控制精度高,不同的PWM占空比对应舵机的不同转角,所以采用开环控制。当小车位于直道时,将舵机摆正;当小车位于弯道时,弯道的曲率越大则舵机的转角摆角越大,利用图像的加权平均偏差与图像中心之差作为控制量。 3 系统软件设计 系统软件采用C语言编写,通过Code Warrior IDE编译。软件设计的思想是驱动线性CCD光学器件采集单线图像信息,通过处理采集到的图像来判断小车所处的位置和确定小车行进时前进方向上的路线情况,然后将处理后的信息转化成变化的PWM量发送到舵机和电机以及编码器处理模块,从而达到对小车行走方向及车速的控制。系统流程图如图5所示。 4 总结 对于本项目智能小车系统的设计与开发,我们选用了MC9S12XS128高速单片机为控制核心,通过A/D转换方法获取TSL1401CL线性CCD采集信息以及角度测量信息,运用模糊PID算法实现对车模直行、转向以及速度控制的方案。其中MC9S12XS128为整个系统信息处理和控制命令的核心,线性CCD传感器用来识别小车的运行路径,采集的信息在单片机上进行实时比较,通过PID控制算法来控制小车速度、转向,从而实现小车的智能自动驾驶。本方案的优点是电路简单、系统性能稳定。经测试,本智能小车能在复杂的路况下实现智能自动驾驶。 |