基于16位单片机MC9S12DG128的智能车控制系统设计与实现
时间:11-11
来源:作者:邓岳 周辉 谈英姿
点击:
生一个阻碍输出轴运动的力,这个力的大小与负荷的大小成正比,此时电机处于能耗制动状态。
本设计方案中采用两片MC33886并联,一方面减小导通电阻对直流电机特性的影响,另一方面减小MC33886内部的过流保护电路对电机启动及制动时的影响。直流电机驱动模块电路原理图如图4所示。
(3)传感器电路设计。智能车采用CMOS摄像头作为图像传感器,保证赛道信息采集准确有效。CMOS摄像头的输出信号是PAL制式的复合全电视信号,每秒输出50帧(分为偶场和奇场)。当CMOS摄像头采集图像时,偶场和奇场不是同时采集的,因此,可以在每场信号都对路径进行识别。
(4)无线数据传输模块设计。智能车加装了基于射频收发芯片nRF403的无线数据传输模块,并在此基础上实现了MODBUS 通信协议,在测试智能车参数及程序调试的过程中很有帮助。在运行的过程中可以将智能车的各项参数实时地发送上来,分析智能车的运行状态可以更有针对性地对控制程序进行改进。在调试运动参数的过程中,可以通过上位机软件改变如Kp、Ki、Kd 等参数,而不用重新烧写程序,迅速而方便。
5 软件设计
智能车控制系统程序结构如图5所示,这是一个两层的分级控制系统。底层控制系统包括"转向控制系统"和"车速控制系统" ,上层主控程序通过改变底层控制系统的设定值、控制参数和约束条件的方法,对整个控制系统进行调度。设计这种分层结构的控制系统是参照了集散控制系统DCS的结构特点,程序各部分功能明确、结构清晰,便于调试和维护。为了调试方便,主控程序中添加了基于无线信道的MODBUS通讯协议,对智能车行驶参数的监视和调整提供了很大的便利。
软件所实现的功能有:
①初始化。
②数据采集及滤波处理。为了尽量减少引入的纯滞后时间,本文提出了一种独特的具有创新性的视频信号采集方法,即用MC9S12DG128 单片机提供的SPI 口直接读取经过二值化处理的视频信号。大赛规则中指定了赛道上黑色引导线的宽度为2.5 厘米,故摄像头中采集到的引导线宽度在正常情况下也应当落在一定范围内。可以用实验的方法测得引导线对应的像素宽度,然后在滤波程序中对采集到的引导线线宽进行控制,如果超出正常范围即认为是无效数据。实验证明,这种方法可以有效地将干扰滤除。
③道路识别。智能车分层控制系统的核心是赛道的识别。实际测试发现由于CMOS摄像头的可视范围比较小而且视野范围呈梯形,在快速运动中经常发生赛道部分甚至全部脱离视野范围的情况,给赛道识别带来很大的困难,因此完整识别赛道模式几乎是不可能的。为了简化问题,本方案只识别赛道中的直线段,根据直线段的数量和长度将赛道分割成不同的区域,在一个区域中对控制参数进行优化。
④电机控制。单片机通过接收旋转编码器检测智能车后轮转动所产生的脉冲数,采用位置式PID控制算法的递推形式对直流电机的转速进行快速准确地控制。
位置式PID控制算法的递推形式:
Δu(k) =Kp[e(k) -e(k-1)] +Ki×e(k) +Kd[e(k) -2e(k-1) +e(k-2)],u(k) =u(k-1) +Δu(k)
式中:u(k)为k时刻控制器的输出; e(k)为k时刻的偏差;Kp、Ki、Kd分别为位置式PID控制算法的比例系数、积分常数和微分常数[7]。
⑤舵机控制。单片机通过CMOS摄像头检测到的路径信息,采用不完全微分PD控制算法控制舵机的转角,实现路径跟踪。
6 结语
本文介绍了一种智能车控制系统的设计与实现。通过大量实验测试证明该智能车能快速平稳地在制作的赛道上跟踪黑色引导线行驶,寻迹效果良好,速度控制响应快,动态性能良好,稳态误差较小,系统的稳定性和抗干扰能力强。在2008 举办的全国大学生"飞思卡尔杯"智能汽车竞赛中取得了华北赛区二等奖的好成绩,充分证明了设计方案的有效性和稳定性。 (编辑:chiying)
本设计方案中采用两片MC33886并联,一方面减小导通电阻对直流电机特性的影响,另一方面减小MC33886内部的过流保护电路对电机启动及制动时的影响。直流电机驱动模块电路原理图如图4所示。
(3)传感器电路设计。智能车采用CMOS摄像头作为图像传感器,保证赛道信息采集准确有效。CMOS摄像头的输出信号是PAL制式的复合全电视信号,每秒输出50帧(分为偶场和奇场)。当CMOS摄像头采集图像时,偶场和奇场不是同时采集的,因此,可以在每场信号都对路径进行识别。
(4)无线数据传输模块设计。智能车加装了基于射频收发芯片nRF403的无线数据传输模块,并在此基础上实现了MODBUS 通信协议,在测试智能车参数及程序调试的过程中很有帮助。在运行的过程中可以将智能车的各项参数实时地发送上来,分析智能车的运行状态可以更有针对性地对控制程序进行改进。在调试运动参数的过程中,可以通过上位机软件改变如Kp、Ki、Kd 等参数,而不用重新烧写程序,迅速而方便。
5 软件设计
智能车控制系统程序结构如图5所示,这是一个两层的分级控制系统。底层控制系统包括"转向控制系统"和"车速控制系统" ,上层主控程序通过改变底层控制系统的设定值、控制参数和约束条件的方法,对整个控制系统进行调度。设计这种分层结构的控制系统是参照了集散控制系统DCS的结构特点,程序各部分功能明确、结构清晰,便于调试和维护。为了调试方便,主控程序中添加了基于无线信道的MODBUS通讯协议,对智能车行驶参数的监视和调整提供了很大的便利。
软件所实现的功能有:
①初始化。
②数据采集及滤波处理。为了尽量减少引入的纯滞后时间,本文提出了一种独特的具有创新性的视频信号采集方法,即用MC9S12DG128 单片机提供的SPI 口直接读取经过二值化处理的视频信号。大赛规则中指定了赛道上黑色引导线的宽度为2.5 厘米,故摄像头中采集到的引导线宽度在正常情况下也应当落在一定范围内。可以用实验的方法测得引导线对应的像素宽度,然后在滤波程序中对采集到的引导线线宽进行控制,如果超出正常范围即认为是无效数据。实验证明,这种方法可以有效地将干扰滤除。
③道路识别。智能车分层控制系统的核心是赛道的识别。实际测试发现由于CMOS摄像头的可视范围比较小而且视野范围呈梯形,在快速运动中经常发生赛道部分甚至全部脱离视野范围的情况,给赛道识别带来很大的困难,因此完整识别赛道模式几乎是不可能的。为了简化问题,本方案只识别赛道中的直线段,根据直线段的数量和长度将赛道分割成不同的区域,在一个区域中对控制参数进行优化。
④电机控制。单片机通过接收旋转编码器检测智能车后轮转动所产生的脉冲数,采用位置式PID控制算法的递推形式对直流电机的转速进行快速准确地控制。
位置式PID控制算法的递推形式:
Δu(k) =Kp[e(k) -e(k-1)] +Ki×e(k) +Kd[e(k) -2e(k-1) +e(k-2)],u(k) =u(k-1) +Δu(k)
式中:u(k)为k时刻控制器的输出; e(k)为k时刻的偏差;Kp、Ki、Kd分别为位置式PID控制算法的比例系数、积分常数和微分常数[7]。
⑤舵机控制。单片机通过CMOS摄像头检测到的路径信息,采用不完全微分PD控制算法控制舵机的转角,实现路径跟踪。
6 结语
本文介绍了一种智能车控制系统的设计与实现。通过大量实验测试证明该智能车能快速平稳地在制作的赛道上跟踪黑色引导线行驶,寻迹效果良好,速度控制响应快,动态性能良好,稳态误差较小,系统的稳定性和抗干扰能力强。在2008 举办的全国大学生"飞思卡尔杯"智能汽车竞赛中取得了华北赛区二等奖的好成绩,充分证明了设计方案的有效性和稳定性。 (编辑:chiying)
MC9S12DG128 智能车 控制系统 单片机 相关文章:
- 基于9S12DG128的智能车控制系统设计与实现(08-27)
- 数字CMOS摄像头在智能车中的应用(08-29)
- 基于电磁场检测的寻线智能车设计(09-22)
- 基于载流导线循迹智能车的数学模型(10-12)
- 一种非均匀行采集的智能车路径识别算法(10-22)
- 飞思卡尔智能车舵机和测速的控制设计与实现(01-15)