基于32位微控制器与线性CCD避障的智能车设计
2015-05-30汪玉珍
汪玉珍
【摘要】 智能车是一个集环境感知、规划决策和多等级辅助驾驶等功能于一身的综合系统。本文以“飞思卡尔”杯全国大学生智能汽车大赛为研究背景,采用飞思卡尔32 位微控制器MK60DN512ZVLL10作为核心控制单元。系统通过微控制器的控制在硬件条件完整的情况下实现智能小车的循迹运动,硬件方面应自行设计包括电源模块、单片机模块、液晶模块、驱动模块等硬件电路,以完成速度控制、转向控制的任务。控制算法上,从PID到Bang-Bang都进行了研究。通过硬件的合理布局,电路的合理规划,机械的合理配置,软件算法的合理可行,智能小车的设计才最终成功的跑起来。
【关键词】 智能小车 线性CCD MK60DN512ZVLL10 循迹 避障
一、系统设计要求及方案的选定
在设计上考虑系统机械性能、电气性能、系统软件、可靠性,外型、安装维护等诸多方面。该系统采用飞思卡尔MK60DN512ZVLL10单片机为检测和控制核心,以线阵CCD为路径检测传感器,根据CCD检测到的赛道信息和小车速度以及平衡信息,通过软件对小车进行转向和速度的控制。
二、系统总体方案的设计
智能汽车系统采用飞思卡尔的32位微控制器MK60DN512ZVLL10单片机作为核心控制单元用于智能汽车系统的控制。选择线性CCD以及LED作为光电车的传感器,线性CCD采集赛道明暗信息,返回到单片机作为转向控制的依据。为了使小车在规定的赛道上行驶,主控输出PWM波,通过调整PWM波占空比,控制电机的转速和舵机的转向以锁定赛道。让小车尽量平稳的行驶在赛道的中央。为了控制的准确性和快速性,我们使用编码器作为速度传感器。编码器返回的信号可以形成闭环,使用PID控制舵机的转向以及电机的转速。整个调试过程就是要保证车身稳定循迹的前提下不断提高车模前进的平均速度。
在硬件电路设计上将整个系统分为最小系统板、信号采集模块、信号初步处理模块等若干模块。每个模块只负责完成特定的功能,与其他模块之间相对独立。赛车共包括六大模块:MK60DN512ZVLL10主控模块、传感器模块、电源模块、电机驱动模块、速度检测模块和辅助调试模块。如图2所示。
各模块的作用如下:
(1)MK60DN512ZVLL10主控模块,作为整个智能汽车的“大脑”,将采集CCD传感器和光电编码器等传感器的信号,根据控制算法做出控制决策,驱动舵机和直流电机完成对智能汽车的控制。(2)传感器模块可通过一定的前瞻性,提前感知前方的赛道信息,为智能汽车的“大脑”做出决策提供必要的依据和充足的反应时间,用以保持车模稳定行进。由于赛道信息比较复杂,一个传感器不能精确的采集到所需信息,决定至少采用两个CCD。(3)电源模块,为整个系统提供合适而又稳定的电源。智能车系统的模块比较多,需要分别供电。对于传感器来说,需要稳定的3.3V电源,而智能车的电池提供的电源为7.2V,直接降到3.3V压差过大,需要进行二级降压,主控模块也需要一个稳定的3.3V电源,需要把它和传感器的电源分开供电,加上辅助调试模块也需要3.3V供电,一共需要3个3.3V的稳压模块;电机驱动模块和速度检测模块分别需要一个5V的电源进行供电。除了需要用多个稳压芯片之外,还要考虑他们相互之间的干扰,所以要在数字地和模拟地之间添加一个0电阻进行隔离,以确保CCD采集到的信息更加稳定。(4)电机驱动模块,驱动直流电机完成智能汽车的加减速控制。小车最终的目的是要沿着固定的路径行进,驱动电路直接决定电机的转速,需要电机反映迅速。由于集成驱动芯片散热差,这里决定采用N沟道的MOS管搭建H桥驱动电路,以防止热量过高,烧毁电路板,并且加隔离芯片防止反向烧毁控制芯片。(5)速度检测模块,检测反馈智能汽车轮的转速,用于速度的闭环控制。赛车行进过程中的信息需要收集,以便于根据实时状态进行调整。速度检测在小车行进中的闭环控制是必不可少的。(6)辅助调试模块,主要用于智能汽车系统的功能调试、赛车状态监控。K60芯片自带Flash存储,加入辅助调试模块可以实时改变其中参数,让调试过程变得更加方便。其中液晶显示模块用来显示小车各项参数,键盘和拨码开关用来调节需要改变的参数。
K60将CCD采集到的模拟信号转换为数字信号,通过简单计算,可以确定小车当前的位置,然后根据光电编码器传回来的数值计算出小车当前的速度,根据以上两个值算出小车位置偏差以及速度变化。
通过小车位置偏差以及速度变化,用舵机PID控制小车转向,速度PD控制电机速度,使小车平稳正确的在赛道上行驶。