基于瑞萨单片机自动寻迹智能车的设计
扫描二维码
随时随地手机看文章
摘要 以瑞萨超级MCU模型车大赛为背景,设计并实现了一种智能车自动寻迹系统。采用瑞萨16位微控制器H8/3048F作为核心控制单元,使用光电对管RPR220采集路面信息,自动控制舵机转向,并对直流电机转速进行PID调节,从而实现智能车稳定、快速的行驶。实验结果表明,该套设计方案简单可靠,具有良好的控制性,满足设计要求。
关键词 瑞萨;自动寻迹;智能车;PID控制
随着计算机、通信、传感器等技术的发展,智能车成为汽车发展的趋势。传感器技术在智能车的应用中越来越广泛,如在夜间、雾天、高危高污染等环境下的行驶。智能车将成为人们生活的一部分。文中以瑞萨智能车大赛为背景,设计了一种以16位微控制器H8/3048F作为小车的控制核心,采用红外反射传感器检测路面引导线,能根据给定参数行驶的电动车。文中从硬件和软件方面详细阐述了智能车工作原理和设计方法,设计的小车具有电路设计简单、软件控制高效等优点。
1 系统总体设计方案
本智能车利用车体前方的光电传感器采集赛道信息、后轴上的光电编码器采集车轮转速的脉冲信号。这些信号经单片机调理后,用于控制小车的运动。同时,内部模块产生的PWM波驱动直流电机,对智能车进行速度及转角控制,使赛车在赛道上能够自动、平稳行驶,并以最短的时间和最快的速度跑完全程。此外,本系统还增加了按键和显示设备,以便于调试。智能车系统总体模块图如图1所示。
2 硬件设计
硬件设计是设计的基础,包括整车供电的电源管理电路设计、电机的驱动电路设计,以及单片机的各个接口电路的连接设计等。
2.1 控制器模块
H8/3048F单片机是的日立公司生产的16位高性能微控制器。H8/3048F内部有16个16位通用寄存器。其最高时钟频率可达18 MHz,寻址空间为16 MByte。芯片内部包括:9个I/O口、32 kByte Flash、2 kByte RAM、16位的集成定时单元(ITU)、可编程定时式样控制器(TPC)、j监视定时器(WDT)、串行通信接口(SCI)以及A/D、D/A转换器等。控制器I/O口分配如下:P70~P77光电传感器信号的输入;PB用于车速检测信号的输入;PA用于启动传感器板信号的输入。控制器根据检测到的路况和车速信息,控制转向舵机和直流驱动电机,相应地调整小车行驶方向和速度,最终使智能车按给定路线稳定、快速地行驶。
2.2 电源模块
选用8节1.2 V镍氢电池为直流电机供电,并经降压、稳压后给单片机系统和其他芯片供电。蓄电池具有较强的电流驱动能力以及稳定的电压输出性能,且性价比高。电源部分采用LM2940CT芯片。该芯片最大能提供3 A的电流输出,完全满足系统要求。模块采用两片2940芯片,一片单独给MCU供电,一片给其他部件供电。
2.3 寻迹传感器模块
模块采用一体化反射型光电对管RPR22D。其发射器是一个砷化镓红外发光二极管,接收器是一个高灵敏度的硅平面光电三极管。RPR220具有如下特点:结构紧凑、抗干扰能力强、反应速度快。内置可见光过滤器能减小离散光的影响。当发光二极管发出的光反射回来时,三极管导通输出低电平。此光电对管调理电路简单,工作性能稳定。传感器检测与调理电路如图2所示。经示波器观察,输出波形规则,可以直接供单片机查询使用。
小车对白线的检测使用了9个等距排列的红外管采集路径识别路面信息。从左边的光电管开始循环采集数据,检测其是否在白钱上,如果在白线上,则接着检测其右边的光电管是否亦如此,依次向右推进,当出现3个以上光电管同时处于白线上方,则过滤掉当前采样数据,采用历史值。
2.4 电机驱动模块
电机驱动板为一个由分立元件制作的可逆双极型桥式驱动器,其功率元件由4支n沟道功率MOSFET管组成,大幅提高了电动机的工作转矩和转速。该驱动器主要由以下部分组成:PWM信号输入接口、逻辑换向电路、死区控制电路、电源电路、上桥臂功率MOSFET管栅极驱动电压泵升电路、功率MOSFET管栅极驱动电路、桥式功率驱动电路、缓冲保护电路等。通过设置HS/3048F输出的PWM波的盼占空比可以实现控制电机正反转。当输出的占空比为50%时,电机不转,当占空比>50%时,电机正转;<50%则反转。
2.5 测速模块
为提高检测精度,本模块最后确定为使用精度较高的光电编码器。光电编码器使用5 V电源,输出方波信号,具有质量轻、可靠性高、安装简单等优点。
3 算法及软件设计
3.1 方向控制算法
智能车方向的控制采用对预定轨道的闭环控制,即输出方向和测得的白线位置成分段比例关系。舵机的转角公式为
θ=arctan(e/b) (1)
式(1)中,θ为舵机的转角;e为偏移量;b为前轴到传感器间距。
通过实验可得舵机的转角与PWM脉宽呈线性关系,转向公式为
PWM=θ×K+M (2)
式中,K为比例系数;M对应于舵机位没有发生偏转时的PWM控制脉宽。实验证明,在一定范围调节K,可以起到良好的控制效果。
智能车检测到的路面情况有16种状态,其中每种状态都有一个舵机转角与之对应。这样就可以在程序中创建出每种传感器状态中对应的白线偏差e与舵机转角θ之间的关系,如表1所示。
3. 2 速度控制算法
智能车控制算法采用PID算法,包括3个部分:测量、比较和执行,即把测量得到的量与期望值相比较,然后用合格误差纠正调节控制系统的响应。PID控制算法是建立在经典控制理论上的一种控制策略。PID控制算法能够在保证不影响系统稳定精度的前提下提高系统的稳定性,并改善系统的动态性能。根据实验情况和现场调试经验,小车在直线运动时不进行PID控制,以最大速度运动,处于一般弯道状态时则引入PID算法,这样可以根据实际情况调节速度,使小车具有良好的可控性。PID控制器原理框图如图3所示。
系统主要由PID控制器和被控对象组成。它根据给定值r(t)与实际输出值m(t)构成控制偏差,将偏差按比例、积分和微分通过线性组合构成控制量,对被控对象进行控制。
PID的图形表达式
式(4)中,T是采样周期,必须足够小,以保证系统有一定的精度;Ti为调节器的积分时间;Td为调节器微分时间;Kp为调节器的比例系数;e(k)为第k次采样时的偏差;u(k)为控制量。
采用增量式PID进行控制,由△u(kT)=u(kT)-u(kT-T),可得
△u(kT)=Kp[e(kT)-e(kT-T)]+Kie(kT)+Kd[e(kT)-2e(kT-T)+e(kT-2T)] (5)
式中,e(kT)为第k次与中心位置的偏差程度;e(kT-T)、e(KT-2T)分别为k-1、k-2次误差项。以此算法为基础,用C语言编写出控制算法程序。
3.3 程序设计
主程序采用周期性检测控制思想。每隔20ms检测1次引导线、车速及加速度数据,根据程序处理结果调用舵机控制程序和驱动电机控制程序,对智能车的运行状态进行实时控制,以完成循线运行的要求。主流程图如图4所示。
4 结束语
智能车设计涵盖了自动控制、电子等多个学科,其技术可被应用到智能机器人、自动化作业平台等领域,具有较强的实用性。论文结合实际设计经验,从智能车的硬件设计、软件设计等方面讨论了智能车的设计。试验证明,用PID算法即使在路面导引线复杂的情况下,也能较好地保证智能车沿正确的方向前进,以及运行的平稳性。