APP下载

基于ATmega128的智能机器人小车控制系统设计

2012-10-10冯蓉珍

河北软件职业技术学院学报 2012年1期
关键词:障碍物小车灰度

冯蓉珍

(苏州经贸职业技术学院 信息系,江苏 苏州 215009)

0 引言

机器人小车是一个集环境感知、动态决策与规划、行为控制与执行等多功能于一体的综合系统。随着传感技术、计算机科学、人工智能及其他相关学科的迅速发展,机器人小车正向着智能化的方向发展[1]。智能机器人小车必须具有感知周围环境、进行任务规划和决策的能力,特别是在上下坡、弯道等不同的环境中需要实现速度控制、避开障碍物及沿某轨迹自主行走等功能,因此系统必须具有丰富的传感器、功能强大的控制器以及灵活精确的驱动系统。本文设计了一种基于AT-mega128单片机的智能机器人小车控制系统,该系统将实时检测到小车运行速度和设定速度的差值进行含bang-bang成分的PID运算,产生PWM信号控制电机转速,实现对车速的快速调整和精确控制。同时利用灰度传感器检测地面灰度使得小车沿特定轨迹自主行走,在行走的同时还利用红外传感器检测障碍物,实现避障功能。

1 系统组成和控制原理

1.1 系统组成

系统由上位机和下位机组成。上位机包括PC、无线数据发射模块和无线图像接收模块,下位机由CMOS摄像头、测速模块、单片机系统、红外避障传感器、地面灰度传感器、PWM调速与电机驱动控制模块等部分组成。整个系统的结构如图1所示。搭载在小车上的CMOS摄像头获取道路的实时信息并通过无线通信发送给上位机;上位机对传来的路况图像进行处理,计算出小车的最佳运行速度并通过无线数据发送模块将该速度值发送给下位单片机;下位单片机收到设定的速度值后,进行PID运算并产生PWM信号控制车速快速准确地达到设定值。本文主要探讨下位单片机控制系统的设计。

图1 系统结构框图

1.2 控制原理和流程

PID控制器的参数整定是本控制系统设计的核心内容,它是指根据被控过程的特性确定PID控制器的比例系数、积分时间和微分时间大小。PID控制器的参数整定方法主要有理论计算整定法和工程整定法。一般采用工程整定法,该方法主要有临界比例法、反应曲线法和衰减法。无论采用哪一种方法,都需要在实际运行中进行最后的调整与完善[2]。本系统采用临界比例法,首先预设一个够短的采样周期让系统工作,然后仅加入比例控制环节,直到系统对输入的阶跃响应出现临界振荡,记下此时的比例放大系统和临界振荡周期,最后在一定的控制度下根据“齐格勒-尼克尔斯经验法”可计算得到PID控制器的参数Kp,Ki,Kd。

本系统对直流电机的调速控制采用引入了含bang-bang成分的PID算法来实现闭环控制小车速度,原理如图2所示。

式中:U(k)是第 k 次输出量,U(k)-U(k-1)为输出增量,ek是第k次偏差,ek-1是第k-1次偏差。

图2 增量式PID速度控制框图

上位机把设定车速rk通过无线数据发送模块发送给ATmega128单片机。单片机将测速模块输入的脉冲信号经过计算得到实际车速Vk,Vk和rk之差ek被输入到PID控制器,通过PID运算后得出一个增量△U(k),根据该增量控制单片机内部的PWM直接输出一个脉冲宽度随U(k)变化的PWM信号,从而控制电机的转速。

为了加快电机的响应速度,算法中还引入bang-bang成分,当车速大于/小于设定值的某一比例时电机将以最小或最大速度运转,即当|rk-Vk|/rk>M(M 一般取 0.3~0.5) 成立时,算法将跳出 PID 控制模式,直接采用bang-bang的方式控制电机,这就使得小车的加减速比单纯使用PID控制算法更加迅速。

除了运行速度,小车运行的稳定性也很重要。这就要求小车能够根据行驶道路的复杂程度,如弯道、上下坡、直道等来实时给出小车的最佳运行速度,使之能稳定安全行驶,避免冲出弯道、爬不上坡或下坡速度过快而冲出道路等情况发生,这是由上位机根据无线摄像头发送的图像信息通过图像处理完成的。

避障模块中的红外传感器由一对红外发射器和接收器组成,发射器发射红外光线如遇障碍物则被反射回来,接收器接收到被反射的红外线后输出一高电平给单片机,单片机根据这个电平通过电机驱动与控制模块控制小车自主躲避障碍物。

寻迹模块中的三个灰度传感器分别检测地面灰度,把该灰度值发送给单片机自带的A/D端口,通过A/D转换后得到一个数值。单片机根据地面灰度值通过电机驱动与控制模块控制小车沿着某种颜色的轨迹行走。

2 硬件设计

系统硬件以ATmega128单片机为控制核心,主要由单片机最小系统电路、测速电路、红外避障电路、红外寻迹电路、电机调速和驱动电路等组成。

2.1 单片机最小系统电路

单片机部分是整个系统的控制核心。从满足系统功能方面考虑,本系统选择Atmel公司生产的ATmega128单片机,它是AVR系列单片机中的高档型,采用RISC结构,具有128K字节的支持ISP编程的FLASH存贮器和4K字节的片内SRAM,它还具有六个PWM通道,可实现任意2~16位、相位和频率可调的PWM脉宽调制输出,八通道10位A/D转换和两个全双工硬件串口USART[3],方便和上位机独立通讯。

单片机最小系统电路包括单片机复位、晶振等外围电路。它负责将测速、避障等电路产生的输入信号进行处理并通过自带的硬PWM输出控制信号给驱动放大电路,从而控制电机转速,此方式产生的PWM信号比用定时器中断产生的PWM信号实时性更好,而且不会占用系统的定时器资源,这也是本系统采用ATmega128单片机的原因之一。同时ATmega128内部自带10位A/D转换器,可以将寻迹传感器检测到的地面灰度电压值进行模数转换,从而对地面灰度值进行量化,实现小车寻迹功能。

2.2 测速电路

测速模块由黑白码盘和光电传感器组成。黑白码盘贴在驱动轮的轮盘上,光电传感器位于码盘同侧,如图3所示。当光电传感器中发射的红外光投射到码盘的黑白条纹上时,将被间隔地反射到传感器接收端,接收端收到与轮子转速成正比的光电脉冲信号,从而在传感器的输出端产生一定频率的电脉冲信号,通过一非门输入到单片机的外部中断口。通过单片机对脉冲计数就可算出小车的移动距离L,L=∏*D*N/M(D为驱动轮外径,M为码盘的黑白条纹数,N为实测的电脉冲正负跳变次数),小车的行驶速度Vk=L/T(T为单位时间间隔)。通过对一次时间间隔内接收到的脉冲个数进行计数,再通过上式计算即可得到小车实际运行速度Vk。

图3 黑白码盘与光电传感器

2.3 红外避障电路

红外避障电路的基本工作原理为晶振通过电容与非门产生一38Khz的脉冲信号,该信号作为载波控制红外二极管将信号发射出去,遇到障碍物反射回来的信号被一体化接收头接收并输出高电平,若无障碍物则无返回信号,输出低电平。单片机通过查询信号输入引脚的状态来判断是否有障碍物并输出相应的控制信号,控制电机运行方向和速度。可以在小车不同方向上安装红外避障传感器,本系统在小车的左前方和右前方各安装一对。

2.4 红外寻迹电路

本系统配有3路红外收发一体灰度传感器,发射管向地面发射红外光线,接收管根据接收到的红外光线的强弱,输出某个电压值,该电压值输入到单片机的A/D口,进行A/D转换后得到一个0~1 023的数值,数值大小反映地面不同灰度,每种颜色都对应于一个数值范围。例如,白色灰度值为 0~20,黑色为 1 000~1 023,单片机根据这些数值能判断出传感器所在地面的颜色,从而控制小车沿某种颜色的地面行走。3路传感器并排放置,间距可根据颜色线宽度调整。

2.5 电机控制及调速模块

电机控制及调速模块原理如图4所示。图中INPUT1~INPUT4为输入控制的TTL电平信号,此4路信号经功放U7放大后驱动两个电机,INPUT1和INPUT2控制小车左边电机,INPUT3和INPUT4控制右边电机,控制信号和电机转动方向关系如表 1所示(表中“1”表示高电平,“0”表示低电平)。对电机的调速通过PWM实现,当INPUT1~INPUT4输入的不是恒定的高低电平而是脉冲宽度可调的脉冲波形时,电机转动的速度就变为可调,脉冲占空比越小则电机速度越慢,反之速度越快。

图4 电机控制及调速模块原理图

表1 控制信号和电机转动方向关系表

3 软件设计

系统软件由主程序和定时器中断子程序、外部中断子程序等组成。主程序主要进行一些变量的初始化、开中断并等待定时器中断和外部中断的发生。PWM输出、PID算法处理等均在T0中断子程序中完成,其程序流程如图5所示。外部中断子程序负责对光电传感器产生的脉冲信号进行计数。

首先判断小车是否处于寻迹状态,如果是则调用寻迹子程序:根据安装在小车底部的三个灰度传感器检测到的地面灰度值来控制小车的运行方向。例如,假设要求小车沿着白线自主行走,当A/D转换后的值介于0~20之间时,说明传感器在白线上。若左侧传感器在白线上,说明小车在白线右侧,应控制小车偏向左行走;若中间的传感器在白线上,小车应继续直行;若右侧传感器在白线上,应控制小车偏向右行走;若三个传感器都不在白线上,应按某种算法行走,直到有一个传感器在白线上为止。同样,如果要让小车沿其他颜色线行走,则应该根据A/D转换后的值是否在此颜色对应的灰度值范围,来控制小车的运动方向。

若不在寻迹状态下,则调用避障子程序:单片机根据左右两侧传感器传来的信号,判断正前方是否有障碍物,如果有,控制小车以设定速度后退并大幅度右转,没有则判断左前方是否有障碍物;如果左前方有障碍物,以设定速度后退并小幅度右转,没有则继续判断右前方是否有障碍物;如果右前方有障碍物,以设定速度后退并小幅度左转,否则说明无障碍物,调用调速子程序。

调速子程序流程如图6所示。首先根据脉冲计数值计算出小车当前的实际车速Vk,把Vk和设定速度 rk 进行比较,假设 P=(rk-Vk)/rk,如果 P>0.5,说明当前车速离设定速度较远,需要快速达到设定值,因此输出最大设定PWM值;若0<=P<=0.5,则按照PID运算后输出某个脉冲宽度的PWM值,控制电机快速达到设定值;若-0.3<=P<0,说明实际车速超过了设定速度某个范围,则以最小设定 PWM 值来控制小车减速; 若-0.5<=P<-0.3,说明小车可能是下坡,需要减速以避免小车冲出轨道,因此让电机停转;若P<-0.5,说明坡度很陡,此时电机应反转以快速降低车速,一般这种情况很少出现,P 在-0.3~-0.5 之间时已得到了修正。

图5 定时器中断程序流程图

图6 调速子程序流程图

4 结束语

本智能小车控制系统以Atmega128单片机为控制核心,采用bang-bang+PID控制算法精确快速地控制小车速度,使之完成上下坡、走弯道等任务。同时还采用了红外避障和寻迹传感器,提高了小车行驶的安全性和智能性。该智能小车已成功应用于机器人竞赛并取得较好成绩。本小车还可作为移动机器人的载体,在功能上稍作扩展后即可应用于小区巡逻、实地勘测、智能玩具等领域。

[1]朱孟强,卢博友,雷永锋,周茂雷.基于ARM的智能机器人小车控制系统设计[J].微计算机信息,2008,24(5-2):239.

[2]黄友锐,曲立国.PID控制器参数整定与实现[M].北京:科学出版社,2010.

[3]马潮.高档8位单片机ATmega128原理与开发应用指南(上)[M].北京:北京航空航天大学出版社,2004.

[4]李朝青.单片机原理及接口技术[M].北京:北京航空航天大学出版社,1994.

[5]周斌,李立国,黄开胜.智能车光电传感器布局对路径识别的影响研究[J].电子产品世界,2006(9):139-140.

猜你喜欢

障碍物小车灰度
采用改进导重法的拓扑结构灰度单元过滤技术
基于灰度拉伸的图像水位识别方法研究
大车拉小车
自制小车来比赛
高低翻越
SelTrac®CBTC系统中非通信障碍物的设计和处理
刘老师想开小车
两轮自平衡小车的设计与实现
基于最大加权投影求解的彩色图像灰度化对比度保留算法
基于灰度线性建模的亚像素图像抖动量计算