基于PID控制算法的气味循迹车设计
摘要:气味源的循迹是目前的研究热点之一,在以后的日常生活以及生产方面有着较为广泛的运用。本文介绍了一种基于 STC12C5A60S2单片机设计的简便智能气味循迹小车。采用两个气味传感器,根据浓度差判断气味流向,并通过PID算法控制舵机打出偏角,使小车循着气味行走。整个硬件模块的设计结构简单灵活,通过实验仿真,在室内时变气流场的环境下,该小车能达到气味循迹要求。
关键词:单片机;PID;气味;循迹小车
气味循迹可以从事寻找有毒有害气体泄漏源、寻找爆炸源等相关工作,受到科研人员高度关注,发展十分迅速。同时,随着人们日常生活智能化程度的增强,具有智能控制系统的小车、机器人层出不穷,而这些智能体将在未来工业生产和日常生活中扮演更重要的角色。智能车,是一种能感知环境和自动有目的地行驶的综合系统。我们也可以这样认为,智能车也是智能机器人的一种形式,它的双腿我们用轮子代替,因而更加简单实现和控制。
耗时长、跟随性能差是当下智能气味循迹车在循迹过程中普遍存在着的情况。本文介绍的智能气味循迹车的控制核心是STC12单片机,能自动感知附近特定的气味,并应用
PID算法调节舵机,控制方向遵循气味来向前行,实验结果显示能有效缩短循迹时间,改善智能车的跟随性能。
1 硬件系统及其工作原理
1.1 硬件系统设计
智能车的系统(图1)的组成模块有:电源模块(变压稳压)、控制处理模块、传感器模块(探寻气味)、转向控制模块、电机驱动模块和状态显示模块等。控制处理模块为STC12 C5A单片机,由ULN2003APC驱动电机,采用后轮驱动,舵机由单片机直接控制,而舵机控制前轮转向。部分电路图(图2)和电路板实物图(图3)如下。
1.2 工作原理简介
本设计中,智能小车先由气味传感器感知两个方向的气味浓度,传送给单片机的AD口,由单片机进行判断,判断两个方向的浓度高低,然后通过PID算法,控制舵机打出偏角,跟随轨迹前行。
2 芯片配置及其功能
2.1 单片机STC12C5A60S2介绍
STC12C5A60S2引脚图如图4所示。
此单片机具有如下配置:RAM拥有1 280字节,具备40个通用I/O口,复位后为准双向口/弱上拉。具有EEPROM、看门狗功能。5.0 V单片机为:11~17 MHz,3.3 V单片机为:8~12 MHz。Power Down模式可由外部中断唤醒,INT0/P3.2,INT1/P3.3,T0/P3.4,T1/P3.5,RxD/P3.0,CCPO/P1.3,CCPO/P1.3。
双串口,RxD2/P1.2,TxD2/P1.3。
气味传感器是气味循迹小车的关键模块,气体感应的准确性关系着小车最终能否寻找到气味源。本实验采用一个MS5100传感器。MS5100通电后,圆圈内的金属化合物能感知特定气味,其电阻随气味浓度升高而降低,则增大,输送给单片机的AD口,因为单片机能判断此气味传感器所处位置的气味浓度。(电路图如图5)
2.2 舵机模块
本设计中舵机(图2中舵机部分)采用PWM信号(脉宽调制信号)作为控制信号,控制周期为20 ms,拥有0.5~2.5 ms的脉冲宽度,以及0~180度的舵盘偏移角度,呈线性变化。也就是说,给它提供一定的脉宽,它的输出轴就会保持在一个相对应的角度上,无论外界转矩怎样改变,直到给它提供一个另外宽度的脉冲信号,它才会改变输出角度到新的对应的位置上。
2.3 电机驱动模块
由于单片机提供的电流无法直接驱动小车上的直流电机,故本设计采用外接驱动芯片达林顿管,即ULN2003作为电机驱动(图2中电机驱动部分),控制电机转动。此芯片能承受较高的工作电压和电流,采用编程产生有序的PWM波,对电机进行控制,能达到速度可调的效果。
2.4 指示灯显示模块
本设计中采用发光二极管,将将传感器的采集结果直接输出,可直观了解到各个传感器的工作情况。通过对观察传感器工作情况与的行驶小车状态,可判断小车是否正常工作。
2.5 电源模块
本设计中单片机、电机驱动等元器件的正常工作均需要稳定的电压,因此采用LM7805和LM7806并配上稳压滤波电路分别将干电池的电源直接变压成5 V和6 V的直流电源,来提供单片机、舵机、电机等元件工作所需电源。
3 实验
智能车追踪气味源的关键在于快速地分析气味的流向,并迅速准确地控制舵机打出偏角。然而在连续转弯时,由于曲率变化过大,加上小车具有一定的速度,舵机响应又需要一定的时间,所以在实际中经常出现小车来不及掉头而随意冲撞的情况。本设计中采用PID算法来控制舵机转向,在智能车对气味的跟随性能上有明显改善,能实现快速准确地控制(图8)。PID算法公式:
其中:Kp为比例控制参数;
KI为积分控制参数;
KD为微分控制参数。
C语言是实验的主要编程语言,上述PID算法代码可用下面语句实现:
PID_out=(servo_
- FPGA的DSP性能揭秘(06-16)
- 基于单片机通用引脚的软件UART设计(10-16)
- 分时操作系统思想在单片机中的具体应用 (10-30)
- 基于AT89C51+DSP的双CPU伺服运动控制器的研究(05-26)
- 关于RTX51 TINY的分析与探讨(05-30)
- 基于MC9S12DGl28单片机的智能寻迹车设计(04-03)