智能循迹小车硬件设计及路径识别算法
摘要:设计用于全国大学生智能汽车竞赛用的循迹小车,摄像头采集黑线引导线的位置,直流电动机驱动小车后轮,舵机作为转向驱动。根据实际应用环境,提出用于循迹的图像处理方法,以排除黑线引导线以外物体的干扰,同时提出一种适应力强的小车循迹策略。实验表明,在这种控制策略下,小车运行稳定,能够排除各种干扰,并且能够使小车维持很高的速度行驶。
关键词:循迹;单片机;图像处理
全国大学生智能汽车竞赛要求在组委会提供统一智能车竞赛车模、单片机MC9S12DG128开发板、开发软件Code Warrior和在线调试工具的基础上,制作一个能够自主识别路线的智能车,它将在专门设计的跑道上自动识别道路行驶。中心目标是,在不违反大赛规则的情况下以最
短时间跑完单圈赛道。
本文主要对车模整体设计思路、硬件与软件设计及车模的装配调试过程作简要的说明。
1 整体设计
系统按照功能划分为:电源模块、单片机控制系统模块、运行调试模块、路径识别模块、直流电机驱动模块、舵机转向模块、速度测量模块等。图1是小车系统硬件模块图。本文重点介绍路径识别模块、直流电机驱动模块、舵机转向模块、速度测量模块。
1.1 路径识别模块
路面信息检测模块要能够实现检测路径参数。将面阵CMOS用于赛道参数检测的方案,充分利用S12单片机内部硬件资源ATD模块,直接采集CMOS输出的模拟信号,可以获得满足参数检测需要的图像,计算出赛道参数,进而完成路面信息检测。检测路径传感器采用CMOS图像传感器。普通CMOS传感器图像分辨率都在300线之上,远大于光电管阵列。
通过镜头,可以将车模前方很远的道路图像映射到CMOS器件中,从而得到车模前方很大范围内的道路信息。对图像中的道路参数进行检测,不仅可以识别道路的中心位置,同时还可以获得道路的方向、曲率等信息。利用CMOS器件,通过图像信息处理的方式得到道路信息,可以有效控制车模运动,提高路径跟踪精度和车模运行速度。
1.2 直流电机驱动模块
为了利用单片机实现对主电机的控制,使用Motorola公司的H桥芯片MC33886。该芯片的供电电压在5~40 V之间,MOSFET管的导通电阻为120 mΩ,控制信号的输入兼容TTL/CMOS电平,PWM的最高频率可达10 kHz,同时具有短路保护功能和故障信号的输出。
MC33886的应用示意图如图2所示。图中,V+是为直流电机供电的电源。IN1和IN2两个逻辑电平输入端分别控制输出端OUT1和OUT2。当IN1输入高电平时,OUT1输出也为高电平——即通过H桥与V+导通;当IN1输入低电平时,OUT1输出也为低电平——即通过H桥与GND导通。IN2和UT2的关系与此相同。FS为故障信号开漏极输出,低电平有效。当D1是高电平或者D2是低电平时,同时禁用OUT1和OUT2的输出,使OUT1和OUT2同时变为高阻态。通过控制IN1和IN2的电平,即可控制电机正转、反转、停转。对IN1和IN2的电平信号进行脉宽调制,即可控制电机的转速。
主电机驱动电路采用大赛组委会指定的竞赛用电池直接为MC33886及主电机供电。MC33886的所有输入、输出信号均采用TLP521-4光电耦合芯片隔离,以避免驱动电路对单片机的正常工作造成干扰。为了保证MC33886散热良好,该电路板上依据MC33886数据手册的推荐样式设计了散热敷铜并为MC33886安装了散热片。焊接、装配时,将电路板正面的敷铜与MC33886底部的裸露的散热铜焊盘焊接在一起,可大大增强芯片的散热能力。
1.3 舵机转向模块
利用汽车转向机构原理,为了保证小车在转弯过程中,既能快速响应,又防止速度过快冲出跑道,把舵机的位置进行了提升,可以增大力矩,使小车快速响应,按照轨迹进行快速转弯。测量出摄像头能够检测到的黑线位置,并量车距离为b,测量车正中间和黑线的横向距离为a,那么转角的正切就等于b/a,如图3所示。可以使用这个方法,把黑线从视野最左端移动到最右端,分别测量出转角。由于舵机连杆加长,可发现转角于舵机的PWM值基本是线性的,所以舵机控制采用P控制即可。再考虑到转弯必须有一定的及时性,所以并不采用PID控制。
1.4 速度测量模块
考虑到成本要求,采用了红外对管和黑白码盘作为测速模块的硬件构成。其中码盘为32格的黑白相间圆盘,如图4所示。
红外传感器安装在正对码盘的前方,虽然这样做精度比编码器要低很多,但是成本低廉制作容易,如果智能车速度较快,可以考虑再减少码盘上黑白色条的数量即可。
当圆盘随着齿轮转动时,光电管接收到的反射光强弱交替变化,由此可以得到一系列高低电脉冲。设置MC9S12DG128的ECT模块,同时捕捉光电管输出的电脉冲的上升沿和下降沿。通过累计一定时间内的脉冲数,或者记录相邻脉冲的间隔时间,可以得到和速度等价的参数值。
单片机 相关文章:
- FPGA的DSP性能揭秘(06-16)
- 基于单片机通用引脚的软件UART设计(10-16)
- 分时操作系统思想在单片机中的具体应用 (10-30)
- 基于AT89C51+DSP的双CPU伺服运动控制器的研究(05-26)
- 关于RTX51 TINY的分析与探讨(05-30)
- 基于MC9S12DGl28单片机的智能寻迹车设计(04-03)