基于摄像头的智能车控制系统的设计

2022-09-12

“飞思卡尔”杯全国大学生智能车竞赛已举办多届, 此项赛事专业知识涉及控制、模式识别、传感技术、汽车电子、电气、计算机、机械等多个学科, 旨在加强大学生的创新意识、团队合作精神和培养学生的创新能力。根据大赛组委会要求, 赛道由白色底板和黑色引导线组成, 可以通过光电传感器和摄像头两种方案对黑线进行寻迹, 在这两种方案中, 采用的控制器都是由组委会指定的。本文讨论的是基于摄像头方案的智能车控制系统, 系统具有电路简单、重量轻和前瞻远等特点, 保障了小车在高速运动中的稳定性和急转弯时不冲出赛道。

1 系统硬件设计

1.1 系统硬件总体框架

系统硬件总体框架如图1所示, 以摩托罗拉公司的16位单片机MC9S12XS128MA A为控制核心, 外围扩展5V/6V电源电路、直流电机驱动电路以及拨码开关输入和LE D显示等电路。其中, 电源电路中的5V给单片机和数字摄像头OV6620供电, 6V给舵机S3010供电, 采用6V供电可以提高舵机的反应速度。

1.2 电源电路

电源电路产生5V和6V两路直流电压。其中, 5V由电池电压通过低压差稳压器LM2940稳压到5V输出;6V由LM1117-ADJ产生。具体的电源电路如图2所示。

1.3 图像采集电路

赛道黑色引导线的采集由数字摄像头OV6620来实现, 该摄像头采用5V供电, 与系统主控芯片供电电压相同, 省略了一般模拟摄像头需要的12V供电电路。OV6620直接输出8位亮度信号, 无需A/D转换, 同时输出场同步、行同步等信号, 可直接与单片机的I/O和中断输入引脚相连。实际使用时, 亮度信号Y7~Y0连接到PB7~PB0;场同步信号连接到PH7;行同步信号连接到PH6。在软件设计时, 场同步信号采用软件查询, 行同步信号产生中断, 在中断服务程序中, 读取亮度信号, 即赛道信息。

1.4 直流电机驱动电路

直流电机驱动电路采用组委会推荐的专用电机驱动芯片MC33886, 驱动电路如图3所示。其中, V1+接电池正极;VCC接系统+5V;OUT1和OUT2接直流电机;PWM0和PWM1控制MC33886输出不同的直流电压。为了增强电机的驱动能力, 采用两片MC33886相并联, 另外一片MC33886的连接与图3完全相同。两片MC33886的IN1和IN2脚由同一PWM0和PWM1分别控制, 通过控制PWM的占空比和极性, 可以实现对直流电机的转速和方向进行控制, 从而实现小车在跑道上的加速、减速和反向制动。

1.5 测速电路

为了提高速度检测的精度和准度, 本系统采用了欧姆龙E6A2系列光电编码器作为测速模块, 该编码器每转一圈输出200个脉冲信号, 完全满足高精度测速的要求。将编码器的脉冲输出连接到MC9S12XS128MAA的PT7脉冲捕获引脚, 采用16位脉冲累加器对其进行计数, 从而确定小车的运行速度。

1.6 人机接口电路

人机接口由拨码开关和LED数码管显示两部分组成。LED数码管主要用于小车调试时, 显示一些系统运行的参数, 它由单片机的I/O口直接驱动, 为了降低系统功耗, 在单片机的I/O口与数码管的位段之间串入了限流电阻。拨码开关用于设置一些重要的参数, 如小车的直道速度、弯道速度等, 拨码开关非常必要, 在实际比赛时, 往往需要根据试跑结果, 通过拨码开关对相关参数进行重新设置, 大大提高了系统的灵活性。

2 系统软件设计

2.1 黑线位置识别算法

小车前方的跑道信息由数字摄像头OV6620采集, 如何根据采集到的大量数据确定黑线位置, 这就涉及到路径识别问题。由于今年跑道的底板颜色不一定是白色的, 有可能是蓝色、黄色的或是黑色的, 因此路径识别算法非常重要, 否则有可能将跑道底板认为是黑色引导线。根据采集到的某行数据, 以确定其黑线位置为例, 本系统采用的黑线位置识别算法大致过程为:从采集到的某行数据的中心位置开始, 首先判断该中心点是否为黑点, 如果是, 则从该中心点先向右依次搜索白点, 若搜到, 记下最后一个黑点位置, 假设为black_r;若搜索不到白点, 该行数据作废, 算法结束。若搜索到白点, 则再从该中心点向左依次搜索白点, 同样若搜索到白点, 记下最后一个黑点位置, 假设为black_l;若搜索不到白点, 该行数据作废, 算法结束。在该行数据有效的情况下, 其黑线中心位置为 (black_r+black_l) /2。

第二种情况, 中心点为白点。从该中心点往右开始, 搜索白到黑和黑到白边缘, 若出现这两种边缘则记下两端黑点位置, 假设分别为black_l和black_r, 算法结束。若只出现白到黑或是全白, 则从该中心点向左开始搜索白到黑和黑到白边缘, 若出现记下两端黑点位置, 若不出现, 则该行数据无效, 算法结束。在该行数据有效的情况下, 其黑线中心位置也为 (black_r+black_l) /2。

2.2 转向与速度控制算法

依据黑线位置识别算法可以得到所有行与中心点的偏差, 然后通过最小二乘法, 拟合直线, 得到直线的斜率, 根据此斜率控制舵机的转向。在算法上, 采用PD, 并结合单独一行的偏差与斜率共同控制舵机转向, 具体选择哪行参与转向控制, 本系统采用高速看远低速看近的原则来选择, 具体实现时, 要结合小车的运行速度去确定。

在速度控制上, 本系统也采用传统的PD算法, 将速度偏差作为算法输入, PWM占空比作为算法输出, 从而达到给定运行速度的控制目的。

系统主程序流程如图4所示。首先对系统进行初始化操作, 主要包括系统时钟设置、速度设置、PWM初始化等;接下来延时2秒然后系统正式起动, 接下来进行图像采集、寻找黑线位置并根据偏差进行舵机转向控制和速度控制。当小车跑完指定圈数后, 应自动刹车。根据大赛组委会要求, 不能自动停车的, 最终成绩加1秒。

3 结语

在系统设计完成后, 以第三届华东赛区的实际跑道为参考, 经过多次的调试运行, 智能车系统运行状态良好, 平均速度达到2m/s。然而, 系统也存在诸多不足, 如起始线识别不准确, 存在漏检、误检;寻找黑线位置算法的运行时间较长, 也有待改进小车总体运行速度较慢, 控制策略还有较大的改进空间。

摘要:介绍了一种采用数字摄像头识别路径的智能车控制系统。系统以单片机MC9S12XS128为控制核心, 给出了电机驱动、速度检测和电源等电路的硬件设计以及路径识别算法。实验结果表明, 路径识别算法可行, 该系统工作稳定、可靠。

关键词:智能车,路径识别,摄像头

参考文献

[1] 卓晴, 黄开胜, 邵贝贝, 等.学做智能车——挑战“飞思卡尔”杯[M].北京:北京航空航天大学出版社, 2007.

[2] 张淑谦, 王国权.智能车黑线识别算法及控制策略研究[J].电子技术, 2009 (3) :89~92

[3] 高凤水, 靳涛, 赵书朵.基于飞思卡尔单片机的智能车设计[J].电子设计应用, 2008 (5) :104~106.

上一篇:护理安全管理在老年患者护理管理中的应用下一篇:浅谈电力建设起重机械事故的预防