基于S12的光电式自动寻迹车的设计

分享到:

引言

自动寻迹车是一种具备自主判断、决策能力的综合智能系统。它的设计集机械、电子、检测技术与智能控制于一体,在社会生活中有着广泛的应用,例如自动化生产线的物料配送机器人,医院的机器人护士,商场的导游机器人等。

全国“飞思卡尔”智能模型车大赛在这样的背景下产生,智能模型车比赛要求利用车上的视觉装置,使智能小车在给定的区域内沿着轨迹自动行进,在确保稳定性的情况下,速度最快者获胜,根据路径判别的原理不同,分为光电组、电磁组和摄像头组三种类型。本文所述智能车为光电组设计,采用与白色地面颜色有较大差别的黑色线条引导和反射式激光管识别路径,通过舵机驱动前轮转向,采用直流电机驱动后轮前进,并采用PWM实现电机的调速,使智能车快速、平稳地行驶。

总体设计思想

为了能够自主寻迹行驶,智能车应具有路径识别、方向控制、速度检测、驱动控制等功能,根据比赛规定,本设计以飞思卡尔公司提供的比赛专用车模为载体,以飞思卡尔16位微控制器MC9S12XS128单片机作为控制核心,用激光传感器来进行路径识别,采用前轴转向后轴驱动方式。为了精确的控制赛车速度,在智能车后轴上安装光电编码器,采集车轮转速的脉冲信号,由主控制器进行PID自动控制,完成智能车速度的闭环控制。整个智能车的设计可分为硬件设计与软件设计两部分。

硬件设计

硬件系统应包括主控制器选择、电源管理模块、寻迹传感器模块、测速传感器模块、舵机控制模块以及电机驱动模块。

主控制器模块

本设计以16位微处理器MC9S12XS128为控制核心,最高总线速度40MHz,模数转换器(ADC)转换时间3μs,具有出色的EMC功能。主要I/O口的分配如下:PA0~PA7共8位用于小车前面路径识别的输入口,PT7用于速度传感器检测的输入口;PWM1用于伺服舵机的PWM控制信号输出;PWM3、PWM5用于驱动电机的PWM控制信号输出。

电源管理模块

电源管理模块为各部分提供动力,全部硬件电路的电源由7.2V镍镉蓄电池提供,由于系统各模块所需电压和电流容量不同,采用芯片LM2940将7.2V蓄电池转换为5V电源给单片机系统、路径识别的光电传感器、光电编码器等供电,由芯片LM2941提供6V为舵机提供电源,而为了提高伺服电机响应速度,电机模块直接由7.2V蓄电池提供电源。

路径检测模块

图1 总体结构

图2 车体结构和传感器布局及编码

由于红外光电传感器价格便宜,电路设计简单,所以被经常采用。RPR220是一种一体化的反射型光电探测器,可进行反光性差别较大的两种颜色(如黑白两色)的识别,从而判别赛道的方向。

本设计共采用8个RPR220型红外传感器,水平均布在赛车前部的传感器板上,由于其前瞻性较差,通常只有3cm~5cm,所以将传感器板悬伸在车头前方,采用垂直检测的方法,如图2所示。传感器间距为12mm,小于赛道黑线宽度,保证当赛车在赛道上行驶时始终有传感器能检测到黑线。赛车8个传感器可以检测到8个精确的位置,加上相邻两个传感器同时检测到黑线和没有传感器检测到黑线的情况,一共有16种检测状态,这样的横向检测精度可以达到6mm,基本满足寻迹要求。

速度检测模块

测速模块硬件的主要功能是将频率随转速变化的模拟信号送入信号处理电路,最终转换成数字脉冲信号。为了精确控制车模运动,我们采用的是单片机控制编码器的方法来检测小车的电机转速。编码器我们选用OMRON公司生产的一款100线旋转编码器OME-100-1N型光电编码器,按1:1传动比用一对齿轮与驱动轴连接,驱动轴旋转一周,编码器可获得100个脉冲,单片机通过对脉冲计数就可以得到转速的具体数值。

驱动电机与舵机模块

本设计驱动电机选用直流电机,其控制效果直接影响小车的速度以及前行的稳定性。为了得到较大的驱动能力,最初选用两片MC33886驱动芯片构成H桥驱动电路,单片机的PP3和PP5引脚输出的PWM脉冲经6N137光耦隔离后,接入MC33886 H桥输入端,但由于比赛电机内阻仅为430毫欧,而该集成芯片内部的每个MOSFET导通电阻在120毫欧以上,大大增加了电枢回路总电阻,驱动电路效率较低。后改为两片BTS7960构成全桥驱动电路,内部MOSFET导通电阻为7+9毫欧,直接与单片机相连,提高了驱动效率。

舵机采用的S3010型电机实质是一个位置随动系统,由舵盘、减速齿轮组、位置反馈电位计、直流电机和控制电路组成,通过内部位置反馈,可使它的舵盘输出转角正比于单片机PWM1通道给定控制信号。

软件设计

智能车比赛最终以速度作为评判依据,智能车路径识别算法、转向控制、速度控制算法是研究的重点。智能车的运行控制是根据路径识别和车速检测所获得的当前路径和车速信息,控制舵机和直流驱动电机动作,从而调整智能车的行驶方向和速度。控制算法相当于人的思维,是其最核心的部分,负责按预定的流程处理传感器所采集的数据。软件流程图如图3所示。其中,FOR循环包含了检测黑线位置,更新舵机输出等子程序,如图4所示。

图3 控制主程序

图4 FOR循环子程序

路径识别算法

小车自主寻迹过程中,光电传感器会受外界光线、车体抖动、交叉线、上下坡、路径黑斑等环境因素的干扰,会使传感器检测路径信息存在偏差而影响小车寻迹的稳定性。为此,我们采用连续检测滤波处理的方式消除干扰:即传感器对路径连续检测5次并将采集到的信息存于数组Line[5][8],检测到黑线存值1,否则存值0。若 ,则Line[5][8]的第n列检测到黑线,Line[n]=1;否则为干扰,Line[n]=0,将数组Line[5][8]转为数组Line[8]。由于传感器间距略小于黑线线宽,Line[8]一般有16种状态:多余两个为1(检测到路径交叉线),一个或两个为1(检测到黑线),全为0(没有检测到黑线)。

如图2所示,赛车的偏距大小为e,当检测到黑线点数0<Point≤2时,如式1所示:
式1
智能车的方向控制

智能车的前进方向主要取决于赛道与赛车的偏距大小e,由图2可知,为前轮转角;y为传感器距赛车前轴间距。则赛车的前进方向转角应为 。舵机安装在前轴中心上方,通过转向连杆带动前轮转向。由于舵机采用位置伺服电动机,其输出转角与给定的PWM脉宽成线性关系,PWM控制信号高电平的宽度决定舵机输出舵盘的角度。

继续阅读
基于S12的光电式自动寻迹车的设计

引言自动寻迹车是一种具备自主判断、决策能力的综合智能系统。它的设计集机械、电子、检测技术与智能控制于一体,在社会生活中有着广泛的应用,例如自动化生产线的物料配送机器人,医院的机器人护士,商场的导游机器