MC9S12DG128的路径识别的智能车系统设计
引言:随着控制技术及计算机技术的发展,智能车系统将在未来工业生产和日常生活中扮演重要的角色。本文所述智能车寻迹系统采用红外反射式光电管识别路径上的黑线,并以最短的时间完成寻迹。通过加长转臂的舵机驱动前轮转向,使用符合PI算法的控制器实现直流电机的调速。为了使智能车快速、平稳地行驶,系统必须把路径识别、相应的转向伺服电机控制以及直流驱动电机控制准确地结合在一起。
1 硬件设计
本系统硬件部分以飞思卡尔公司的16位微处理器MC9S12DG128为控制核心,由电源模块、主控制器模块、路径识别模块、车速检测模块、舵机控制模块和直流驱动电机控制模块组成。系统硬件结构如图1所示。
1.1 主控制器模块
本系统主控制器模块采用的MC9S12DG128主要特点是功能高度集中,易于扩展且支持C语言程序设计,从而降低了系统开发和调试的复杂度。
1.2 电源模块
本系统由7.2V/2000mAh的Ni-cd蓄电池组直接供电。鉴于单片机系统的核心作用,主控制器模块采用单独的稳压电路进行供电;为提高舵机响应速度,将电源正极串接一个二极管后直接加在舵机上;电机驱动芯片MC33886直接由电源供电。通过外围电路整定,电源被分配给各个模块。
1.3 路径识别模块
路径识别模块采用收发一体的红外反射式光电管JY043作为路径的基本检测元件。本系统选用11个JY043按“一”字形排列在20cm长的电路板上,相邻两个光电管之间间隔2cm。因为路径轨迹由黑线指示,落在黑线区域内的光电二极管接收到的反射光线强度与白色的不同[2],所以根据检测到黑线的光电管的位置可以判断行车方向。光电传感器寻迹的优点是电路简单、信号处理速度快。在不受外部因素影响的前提下,光电管能够感知的前方距离越远,行驶效率越高,即智能车的预瞄性能越强[3]。
1.4 车速检测模块
车速检测模块采用韩国Autonics公司的E30S-360-3-2型旋转编码器作为车速检测器件。该旋转编码器硬件电路简单、信号采集速度快,360线的精度足以满足PI控制算法调节的需要。旋转编码器与直流驱动电机通过齿数为1:1的两齿轮连接在一起,所以智能车车轮转动一圈即可以用360个脉冲表示。因此一定时间内单片机累加器获得的脉冲数值可以用来表示车速,并可直接作为控制器参数。图4为车速检测模块硬件电路图。
1.5 舵机控制模块
本系统使用SANWA SRM102型舵机完成智能车转向。舵机属于位置伺服电机,控制信号是MC9S12DG128单片机产生的PWM信号。舵机自身硬件特性决定:在给定电压一定时,空载和带载时的角速度ω分别保持恒值,而线速度υ=ω?R,正比于转臂的长度R。当舵机所需转动幅度一定时,长转臂要比短转臂转动的角度小,即响应更快。如图5所示,对于转臂1和2,当R1R2且转动相同的位移时,转角θ1>θ2。因此对于相同的角速度ω,可得转臂响应时间t1>t2。显然利用舵机的转距余量可以提高系统整体的响应速度[4]。
智能车在行驶过程中,舵机的响应时间决定着系统的稳定性及快速性。为了减小舵机的时滞现象,充分利用舵机的转矩余量,本系统采用了以下三种方法:
(1) 提高舵机工作电压,使其工作在额定电压之上,从而减小舵机的响应时间;
(2) 将舵机转臂加长至3.5cm,充分利用转矩余量;
(3) 将两个8位PWM寄存器合并为一个16位PWM寄存器,将舵机的PWM控制周期放大至2000,从而细化PWM控制量,使转臂变化更加灵活、均匀。
1.6 直流驱动电机控制模块
本系统中,直流驱动电机控制模块由RS-380SH型直流电机、功率驱动芯片ULN2003、电机驱动芯片MC33886及MC9S12DG128单片机组成。
功率驱动芯片ULN2003为单片高电流增益双极型大功率高速集成电路,本系统采用了其中两组用于增强单片机输出的PWM信号的驱动能力。
其中,电机驱动芯片MC33886是单片集成的H桥元件,它适用于驱动小马力直流电机,并且有单桥和双桥两种控制方式。D1、D2为使能端,IN1、IN2为PWM信号控制输入端,OUTl、OUT2为输出端。由于智能车从直道高速进弯时需通过紧急降速来保证系统的稳定,所以电机正转时必须能够产生反向制动力矩。因此本系统选择了MC233886的全桥工作方式。
当需要智能车减速时,PI控制器计算值为负,令PWM5输出的PWM信号占空比为零,PWM3输出的PWM信号占空比与计算值的绝对值相同,并且计算值越负,OUT2的电平高出OUT1越多,电机有反转趋势。反之,当需要智能车加速时,PI控制器计算值为正,PWM3输出的PWM信号占空比为零,PWM5输出的PWM信号占空比与计算值的绝对值相同,计算值越大,OUTl的电平高出OUT2越多,电机有正转趋
系统 设计 智能 识别 路径 MC9S12DG128 相关文章:
- Linux嵌入式系统开发平台选型探讨(11-09)
- VxWorks实时操作系统下MPC8260ATM驱动的实现(11-11)
- VXWORKS内核分析(11-11)
- Linux内核解读入门(11-09)
- linux文件系统基础(02-09)
- 基于Winodws CE的嵌入式网络监控系统的设计与实现(03-05)