APP下载

一种基于PID算法的智能小车设计

2019-11-10邓良益易佳王浩颜雁军单飞桥

科技创新与应用 2019年30期

邓良益 易佳 王浩 颜雁军 单飞桥

摘  要:文章基于PID算法设计了一种智能小车,该小车包括控制模块、探测模块、驱动模块、人机交互模块。以STM32F103芯片為控制模块核心,采用双路全H桥驱动芯片TB6612驱动直流电机,探测模块包括一个超声波测障模块、四个红外循迹对管和光电编码器、人机交互模块包括一个手机蓝牙APP和LCD彩色液晶显示屏。采用增量式PID算法实现了小车轨迹的精确控制。小车设计的功能有:直行、左右转弯、超声波避障及测距、红外循迹、APP蓝牙远程控制及测速。

关键词:增量式PID;STM32;超声波测障;蓝牙透传;红外寻迹

中图分类号:TP23         文献标志码:A       文章编号:2095-2945(2019)30-0093-02

Abstract: This paper designs an intelligent car based on PID algorithm, which includes control module, detection module, driving module and human-computer interaction module. With STM32F103 chip as the core of the control module, the DC motor is driven by a dual H-bridge driver chip TB6612. The detection module includes an ultrasonic obstacle detection module, four infrared tracer pairs and photoelectric encoder, and a human-computer interaction module including a Bluetooth APP and LCD color LCD display. The incremental PID algorithm is used to realize the precise control of car trajectory. The functions of car design include: straight line, left and right turn, ultrasonic obstacle avoidance and ranging, infrared tracing, APP Bluetooth remote control and speed measurement.

Keywords: incremental PID; STM32; ultrasonic barrier detection; Bluetooth transmission; infrared tracing

1 系统结构

1.1 系统整体结构

本系统的主控制器采用STM32系列单片机STM32F103VET6。系统整体框图如图1所示。

1.2 系统硬件设计

(1)电机及驱动模块

电机使用2个有刷直流电机,高的转速控制灵活简便。电机的驱动由1个TB6612FNG双H桥大电流驱动芯片实现,它具有大电流MOSFET-H桥结构,双通道电路输出,可同时驱动2个电机。TB6612FNG每通道输出最高1.2A的连续驱动电流,启动峰值电流达2A/3.2A(连续脉冲/单脉冲);4种电机控制模式:正转/反转/制动/停止;PWM支持频率高达100kHz。

(2)测速模块

本系统采用在电机上安装测速码盘,利用光电开关实现脉冲输出,通过程序实现测速,其优点是获取信息准确,体积小,不增加车轮的负担。

(3)超声波测障模块

本系统使用超声波模块HC-SR04来实现障碍物的有无检测和距离检测。HC-SR04超声波测距模块可提供2cm-400cm的非接触式距离感测功能,测距精度可达高到3mm;模块包括超声波发射器、接收器与控制电路。

机器内部超声波只需要提供一个10uS以上脉冲触发信号,该模块内部将发出8个40kHz周期电平并检测回波。一旦检测到有回波信号则输出回响信号。回响信号的脉冲宽度与所测的距离成正比。由此通过发射信号到收到的回响信号时间间隔可以计算得到距离。

(4)红外循迹模块

本系统采用四个红外光电对管实现循迹功能,每个红外对管的发射管不断的发射红外线,当发射出的红外线没有被反射回来或者被反射回来但是强度不够大时,红外接收一直处于关断状态,此时模块的TTL输出为高电平,相应的指示二极管一直处于熄灭状态;当黑线出现在检测范围内时,红外线被吸收且强度足够大,红外接受管关断,此时模块的TTL输出为高电平,指示二极管熄灭。

(5)蓝牙无线收发模块

本系统采用HC-05主从一体蓝牙模块,通过该蓝牙模块控制实现小车的前进、后退、右转弯、左转弯、倒车右转、倒车左转、测速、避障等功能。控制方法为在小车行走过程中通过Android手机利用APP界面的“按钮”控制改变小车运动状态。

2 智能小车软件设计

2.1 增量式PID的算法实现

本系统采用PID调节方式来完成小车的运动状态调节。该方法的调节效率高,绝对误差小。

传统的PID控制结构如图2所示:

在算法层面本系统使用单级增量式PID,输入为目标角度,输出为PWM的增减量。其计算公式(1)如下:

其中Kp、Ki、Kd分别为比例系数,积分系数和微分系数。ek为第k次采样的实时输出与设定值的误差。

其算法流程如下:

在整定PID参數时先进行比例系数的整定,然后进行积分系数的整定以消除稳态误差,最后进行微分系数的整定以减小角度的超调量。

智能小车机器人通过串口通信发送速度值,上位机用 Visual Basic 6.0编制的PID曲线绘制软件通过串口接收速度值,在校验通过后,实时的绘制出PID速度曲线,进行在线整定数字PID的三个参数Kp、Ki和Kd。

3 测试结果

3.1 直行及变向测试结果

实验结果:小车反应很迅速,不会出现程序跑飞的现象。前进后退、左转右转、加速减速均已实现。其中左转右转是通过改变左右轮的速度来实现的。加速减速是改变输出给电机驱动TB6612的PWM的占空比实现。

3.2 避障及循迹测试结果

寻迹的原理是通过红外对管来实现检测黑线的位置,通过程序判断黑线的位置来了解小车本身所处的位置,从而决定小车下一步的行进路线。经过试验测试效果非常好完全可以按照黑线所指示的路线行进,而且程序稳定性十分好。

3.3 蓝牙控制及数据回传实验现象

在stm32最小系统板上,蓝牙模块连接的是USART2的RX和TX,通过在程序的USART2的接收终端所接收的字符来判断小车下一步该执行什么程序。并且小车将当前所处的状态(左右轮的转速以及超声波探头所测的距离值)返回手机。

4 结束语

本文阐述了智能小车的总体设计思路和系统框图,主要研究了智能小车机器人的软硬件设计, 并给出了系统架构和软件流程。采用数字增量PID控制算法对直流减速电机的转速进行控制。在上位机编制 PID 曲线绘制软件方便整定 PID 参数。经过模块测试和整机测试,该系统控制精度高,运行可靠,具有很强的抗干扰能力,可被广泛用于教学、智能玩具和搬运等场合,有很好的实用价值。

参考文献:

[1]蒋龙,罗亮,王欣.基于积分分离PID控制的自平衡小车设计[J].西南科技大学学报,2015,30(2):56-58.

[2]史敬灼,刘玉.超声电机简单专家PID速度控制[J].中国电机工程学报,2013,5(36):148-152.

[3]张群,杨絮,张正言,等.蓝牙模块串口通信的设计与实现[J].实验室研究与探索,2012,6(3):251-253.