关键词:智能车控制系统;图像处理;串级PID;PCB设计
Abstract: In this paper, the design of the intelligent vehicle control system of NXP Semiconductor company to MK60FX512VLQ15 (32-bit) MCU as the core processor, uses the CMOS grayscale camera MT9V032 image acquisition module and ultrasonic ranging module for road information, grayscale array directly by image processing algorithms to identify the circuit elements, and the desired speed. At the same time, the incremental encoder is used to obtain the real-time speed of the vehicle, and then the PID algorithm is used to realize the closed-loop control of the vehicle speed and the steering control of the steering gear. In the test, the whole control system design above can effectively ensure the car running smoothly and fast on the track.
Key words: Intelligent vehicle control system; Image processing; Cascade PID; PCB design
1 引言
随着科学技术的发展,近年来,人们已经感受到新科技革命涌来的风雨之声,产业需求导向,新科技日新月异。目前,世界上许多国家将目光投向信息链的前端---信息获取与处理,高端传感器与智能感知已发展为现代科技的前沿技术,掀起了以“无线化,泛在化,智能化,网络化”等为基本特征的第三次信息化浪潮,强化智能信息获取和智能信息处理[1]。本文介绍的智能车是一个集环境感知、规划决策、智能信息处理、多功能辅助、等功能于一体的综合系统,集中运用了计算机、现代传感、信息融合、通讯、人工智能及自动控制等技术,是典型的高新技术综合体[2]。
2 控制系统总体设计方案
智能车的控制系统是指在无人干预情况下能自主地驱动小车行驶,实现控制目标的自动控制技术[3]。智能车的控制系统设计是制作智能车的核心环节。它由传感器采集、信号处理、控制算法、执行机构四个部分组成,其中以单片机为核心,配有传感器,执行机构以及它们的驱动电路构成了控制系统的硬件部分;信号处理和控制算法由单片机中的软件控制完成。因此,智能车的控制系统设计可分为硬件系统设计和软件系统设计两个部分,控制系统总体设计方案如图1所示。经过讨论和测试,小车的自动控制系统选用以单片机MK60FX512VLQ15为核心,CMOS灰度摄像头MT9V032为图像采集模块并以HC-SR04超声波测距模块作为辅助判断;采用RN380电机和Futaba S3010舵机等作为执行机构,配合电池以及相应的驱动电路;在硬件电路的基础上,利用道路检测信息和小车运行参数信息,并通过软件控制算法进行一系列计算;最终使小车能自主识别路径,对不同类型的赛道做出反应,稳定快速地运行在赛道上。
图1 控制系统总体设计方案
本文介绍的控制系统方案特点有:
(1)该系统本着严谨而简洁的设计思路,有着较强的层次感,也便于读者思考。
(2)在硬件系统设计上,电路简洁紧凑,减少系统负载,提高了小车的灵活性。
(3)在软件系统设计上,程序能对不同类型的赛道分别进行处理,使小车在较为复杂的赛道元素中能按比赛规定路线行驶,针对性强;在小车的转向和调速上使用了串级PID调节,提高了小车稳定性。
3 硬件系统设计
本方案的硬件系统可为电源模块电路、传感器模块电路、驱动电路、以及(时钟电路,复位电路和指示灯电路等)较为简单的电路。其中传感器电路由销售商提供,下面将主要对电源模块电路、驱动电路以及PCB板设计进行讨论。
3.1 电源模块电路
电源模块为系统中其它各个模块提供所需要的电源,是智能车运动的基础和前提条件,因此设计稳定可靠的电源电路尤为重要[4]。全部硬件电路的电源由18650锂电池提供(7.2V,2000mA),由于电路系统由各个不同模块电路组成,所需要的供电电压和电流也所不同。所以,需设计多个稳压电路完成,电源模块的电路结构图如图2所示,主要有:
3.3V电压:主要为MK60FX512VLQ15(K60)单片机,CMOS摄像头MT9V032提供电压。
5V电压:超声波传感器,增量式编码器及如OLED显示,指示灯等接口电路。
6V电压:主要为S3010舵机提供工作电压。
7.2V电压:主要用于电机驱动,可直接取用锂电池两端的电压[5]。
芯片电源原理图如图3所示。其中3.3V部分为核心部分,且容易受到干扰,可单独加一个稳压芯片,减少各模块之间相互干扰,减小噪声。
3.2 电机驱动模块
智能车后轮驱动电机型号为RN380电机,工作在7.2V电压下,空载转速为15000+500rpm,最大输出功率为20W。
通过电机驱动模块,控制电机驱动两端电压,可以使小车加速或制动。本次设计的电机驱动电路采用MOS芯片BTN7971,有着大电流,高驱动的特点;隔离芯片74HC244,供电电压为5V,最大限度保护单片机;有滤波电容,能有效对电源滤波。电机驱动电路原理图如图4所示。
图4 电机驱动电路原理图
3.3 PCB电路板设计
不合格的电路板可能导致较大的信号干扰,出现发热过大等现象。故硬件电路原理图完成后,在满足功能的前提下,设计出具有良好电路性能和散热性能的PCB板也非常重要。采用Altium Designer设计PCB板基本流程有:设置PCB设计环境(格点大小、板层参数、布线参数等)、规划电路板(确定边框)、导入原理图及零件封装、零件布局(建议采用交互式布局)。
在绘制智能车PCB板途中,需要注意:
(1)功率器件与控制器件的GND应该隔离,以防止前者干扰后者,可以使用0欧电阻;滤波电容尽量靠近需要滤波的模块,不用的引脚不要悬空,用10K电阻拉高或拉低,可以降低电磁干扰。
(2)在布局方面,同一模块尽量靠近,采用交互式布局比较方便。
(3)在布线方面,上层和下层的线最好垂直(如上层整体横着布线,下层整体竖着布线),可以减少信号干扰,布线起来也更为方便;各类线的布线线宽不同,其中电源线和地线较粗。
(4)在结构方面,尽量采用对称结构,可以使小车更好的平衡。
PCB板主控实物如图5所示。其中板子长为7.27cm,宽为5.55cm。简洁且紧凑,节约空间。
图5 PCB板主控实物
4 软件系统设计
智能车的软件系统是设计的关键部分,本次软件系统设计中主要的是系统初始化,图像采集与处理,小车转向和调速的串级PID控制。软件系统设计总流程图如图6所示。
图6 软件系统设计总流程图
4.1 系统初始化
系统的运行首先需要初始化,进而对一些模块参数进行调整。初始化顺序依次为:时钟初始化,编码器正交解码初始化,舵机与电机PID参数初始化,摄像头初始化,舵机与电机初始化,按键初始化,中断初始化,LCD初始化。
4.2 图像采集与处理
CMOS灰度摄像头MT9V032默认采集得到的是一幅188*120灰度图像,其中宽为188,高为120。一幅灰度图像远比黑白图像信息量要大,若使用合适的图像处理对赛道元素的判断也定然更为准确;同时经过测试,在阳光不均匀的情况下,用灰度图像处理能更为有效找出赛道左右边界;故并不将图像进行二值化。图像处理基本顺序为:对采集的图像信息预处理,通过边界拟合中线,对特殊赛道元素处理。
4.2.1 图像信息预处理
在对图像进行寻边界拟合中线之前,需要对图像的一些基本信息进行提取和处理。首先是对采集图像大小的确定,默认为188*120,但采集和处理数据过大,同时需要看的远才能保证小车及时动作,故最终选用188*80分辨率。然后对图像进行压缩,以减轻单片机处理图像负荷,可以取偶数对列减半,故图像数组由image[80][188]变为image[80][94]。
由于使用的是灰度图像进行的处理,所以需要一个跳变沿阈值来判断黑白分界用以确定赛道边界。经过测试,黑为0白为255,边界跳变沿阈值取20较为合适。
4.2.2 中线拟合方法
图像处理采用了赛道边沿提取的方法,基本思路如下:
(1)直接遍历扫描最底部三行的图像,根据跳变沿提取边界。
(2)确定赛道宽度,在赛道宽度内提取有效赛道边沿,这样可以有效的滤除不在宽度范围内的干扰。
(3)利用赛道的连续性,在上一行边界位置附近搜索本行边界。
(4)对整个左右赛道边界记录后,求和除二得到中线数组。
(5)由于摄像头可能会失真丢线,可以用两点法补线。
(6)在权重分配问题上,因为远处容易丢线,底部数据会使小车滞后反应,故中间的数组占的权重较大,上下的权重较小。
4.2.3 特殊赛道元素处理
赛道类型有直道和弯道、十字路、横断路障、圆环和起跑线等。其中,通过提取中线已经可以在直道和弯道以及十字路行驶。
针对横断路障,采用识别其本身的方法,因为路障有颜色,其灰度值与白色赛道有明显差异,可以采用纵向搜线的方式识别障碍,且用超声波测距传感器作为辅助判断,加大稳定性。判断成功后,可以用开环控制,打一个定角出去,再反打定角回来;离障碍越近,打角越大。针对圆环主要是识别圆环切点之前赛道的宽度由大到小,再由小变大,即可为判断圆环后,进行补线。针对起跑线,采用横向搜线的方式,如果搜索到3个以上左右边界,即可判断为起跑线,控制发车和停车。
4.3 转向和调速的串级PID控制
PID控制在工程实际应用中相当广泛,具有结构简单、工作可靠、性能稳定等特点[6]。
数字PID分为位置式PID和增量式PID。位置式PID控制的输出与整个过去的状态有关,用到了误差的累加值,适用于执行机构不带积分部件的对象,如:舵机,电液伺服阀。增量式PID的输出只与当前和前两拍的误差有关,输出为控制增量,适用于小车电机。
采用了位置式PID,并利用本次PID进行差速控制,代入电机增量式PID中,实现串级PID控制电机。经测试,该方法用于调速十分稳定。其中采取增量式编码器获取小车实时速度,相当于对电机的反馈系统动态实时的获取干扰信息,在与PID控制算法结合,形成基本的干扰观测补偿的复合控制。有效的抑制了外界干扰,使系统模型更加理想。执行机构控制方法原理图如图7所示,流程图如图8所示。
5 结束语
本文介绍一种基于K60的摄像头检测智能车的控制系统,主要分为硬件系统和软件系统设计。硬件系统主要包括电源模块,电机驱动模块和PCB制作;软件系统完成了各个模块的算法及程序设计,包括系统初始化,图像采集,赛道中线拟合以及舵机和电机的PID算法设计;同时也对应该注意的细节问题作出了说明。在团队每个人的努力和学校老师的支持下,经过多次调试与修正,方案能实现小车稳定快速地行驶。
参考文献:
[1]胡向东. 传感器与检查技术[M]. 北京: 机械工业出版社, 2013.
[2]刘进, 齐晓慧, 李永科. 基于摄像头的智能小车设计与实现[J]. 传感器世界, 2008(02): 34-37.
[3]卓晴. 学做智能车[M]. 北京: 北京航空航天大学出版社, 2007.
[4]童诗白. 模拟电子技术基础[M]. 北京: 高等教育出版社, 2000.
[5]高正中, 赵丽娜, 李世光等. 基于摄像头的智能车控制系统设计[J]. 自动化与仪表, 2015, 30(06): 1-4.
[6]张淑珍, 李泽元, 赵培等. 基于CMOS摄像头的智能车图像处理[J]. 机械与电子, 2017, 35(08): 67-71.
作者简介:
肖波(1987), 女,湖北省黄石市,硕士,实验师,研究方向为网络控制、多智能体。(通讯作者)
共0条 [查看全部] 网友评论