APP下载

基于STM32的智能小车循迹优化设计

2022-01-22曾尧

机械工程师 2022年1期
关键词:循迹舵机转角

曾尧

(西华大学汽车与交通学院,成都 610039)

0 引言

在计算机和网络高速发展的现代社会,智能UI技术的普及与开发也已经逐渐步入正轨,其应用完善的速度也在快速提高。由于家庭乃至工作中智能化的程度越来越高,使得其应用范围也从以前的工业扩展到当今生活的每一个角落。

与此同时,汽车行业在人、路、环境各个领域当中都出现了长足的进步,智能循迹小车简单来讲就是汽车理论结构与智能UI控制技术同时应用在一种机械设备上的产物,也是当今社会中的一个热门领域。简单来讲,智能循迹小车就是智能UI的另一种形式,执行器从一般运动关节改变成了4个车轮,达到行驶时能控制方向与起停,相对于一些执行复杂工作的机器人更加简单普遍,便于制作。其控制系统主要执行器是电动机与舵机[1]。

很多企业都不得不考虑智能替代人工,因为这将节约很大一部分成本。智能对于工业如此重要,本次的优化设计就是在学习了汽车构造的基础上,通过对芯片控制的理解,设计一个自动循迹的智能小车,来实现小车的自动行驶。在具备识别道路的前提下,为汽车安全行驶提供了较为科学的模型,具有一定的指导意义。

1 系统的控制方案设计

采用STM32单片机为控制核心。使用了CCD线性传感器对曝光度进行采集(单片机芯片内部会进行AD转换),通过单片机处理后去控制转向与驱动模块,使其按照轨迹行驶[2]。STM32函数库功能强大,调用方便。内置时钟控制,使系统能简单地实现循迹的控制及测速显示,与一般单片机相同,都能使用C 语言编码并且处理效率高、功率小,另外可附加电源模块驱动电动机。

以单片机STM32为核心,通过CCD线性传感器检测路线曝光度,测量精准可靠,送入单片机处理后输出电压信号,送入舵机与减速直流电动机比较信号,采取转向操作,动力模块由外部电源提供。采取SD测速模块输入显示模块显示,电路相对简单,程序略微复杂,可操作性强,购买L298N电动机控制芯片价格便宜,且易制作。

2 线性光感传感器优化

TSL1401包含128个线性光电二极管,相关的电荷放大电路还能在积分开始和结束时给所有像素提供数据保持功能。操作时可以提供数据保持功能。控制端口可以使用逻辑电平,只需要一个连续输入信号和一个时钟信号。

图1 系统框图

图2 TSL1401 PCB工作原理图

此次设计采用定时器采样,一个周期内128个光感点位选择其中20~110的位置,以防止数据突变点引起误差。在1个周期内,光感CCD传感器发现blackline出现的线性数据组,并记录该位置数据。通过定义中线midline=64,获取差值err。从而采取PID模糊控制舵机转向,直接提高直流电动机占空比以跟随转向[3]。

计算公式:对于采集到的ADC_DR数据值,在3.3 V输出电压下对应值应是4096的码值,ADC_DR/当前电压值=4096/3300。所以转换关系为:Voltage=(ADC_DR×3300)/4096 mV。

3 软件设计

3.1 舵机PID控制算法设计

此次设计舵机采用MG995舵机,转角范围为±30°,舵机控制采用反馈调节,由程序控制PID反馈调节,不存在实际控制硬件进行专门反馈调节,所以PID调节数据经过测试后设置,只为符合实际情况,并不是所有PID控制都为此数据。曝光度由小车运行初始采样的曝光点强度决定,此误差重新上电后可以恢复[4]。

本系统是通过控制舵机转角实现小车前轮转向,小车行驶时,具有一定的行驶速度,因此需要采取一定的误差控制,即整个小车的转角不能过大,影响小车正常行驶轨迹。小车的行驶轨迹由高处CCD光感采样获取,这样可能导致整个转角过程有着明显的滞后特征。对行驶过程详细分析可知,系统有惯性特征,小车既定速度会使采样延迟。可以根据系统设置传递函数。

惯性环节的传递函数为G(s)=K/TIS。纯滞后环节的传递函数为G(s)=e-τs。所以整个系统的传递函数为G(s)=(Ke1+ts)/(1+T1s)。式中:K为放大系数;τ为纯滞后时间;T1为惯性时间常数。

表1 SL1401CCD终端功能

图3 舵机控制PCB原理图

TS是系统采样得到的blackline值,可以从CCD传感器AO口获取。程序DTS(S)将TS转换成单片机可以识别的数据类型。采样过程中,e(k)是第k次blackline与设定值midline之差。STM32在执行完编好的运算程序后,通过线路送给执行器。电动机控制齿轮转动,而齿轮转过角度则由舵机运算得到,Δu(k)是第k次blackline数据比第k+1次blackline数据的增量。

图4 Simulink转向滞后仿真

图5 转角线性图

具体小车参数采用m文件编写,其中:m为小车质量,1818.2 g;Iz为转动惯量,3885 g·cm2;L为小车的初始转角(采用弧度制),3.048(即174°);a为前轮轮心到小车理论质心的距离,14.63 cm;b为后轮轮心到小车理论质心的距离,15.85 cm;k1为前轮转向侧偏刚度,62.618 N/rad;k2为后轮转向侧偏刚度,-110.185 N/rad;v是小车的行驶速度,22.35 cm/s。

3.2 主程序设计

该程序由CCD线性传感器采集信号开始,把输入的曝光度信号经过内部处理由AO口输入STM32进行记录。主程序如图6所示。

图6 主程序流程图

经过处理后的blackline差值,作为PWM占空比值送入左右直流减速电动机,跟随舵机转向,定时采样SD车速传感器采样数据后送入OLED显示。同时外部电源通过稳压电路为整个电动机供电,实现智能小车的循迹控制。

4 系统测试

如图7所示,传感器采用红外栅栏式光电测速传感器,模式为传统的脉冲计数,通过记录中断次数,判断电动机转动圈数,从而得到车轮转过的距离。测速模块的OUT 口链接MCU 的外部中断口,每当有红外射线导通就是一个外部缓冲。实际测试速度由OLED 屏幕显示,SSD1306驱动电路包含128个字节可写入寄存器。实测结果表明误差为0.1 cm/s,符合设计要求。小车循迹运行照片如图8所示。

图7 运行时显示车速

图8 小车循迹运行照片

5 结论

本系统是通过控制舵机转角实现小车前轮转向,小车行驶时具有一定的行驶速度,这就需要误差控制,即整个小车的转角不能过大,影响小车正常行驶轨迹,小车的行驶轨迹由高处CCD光感采样获取,这样导致整个转角过程有着明显的滞后特征[5]。对行驶过程详细分析可知,系统还有一个惯性特征。

改进方案首先将测量值提前,使用预估型PID调节,偏差值向后调节2个单位曝光值。其次,使用MG995驱动芯片根据采样中线与黑线差值,差速调节左右后驱动电动机,根据转向的方向调整小车后轮转速,进行直线、左右转弯行驶时基本能够达到不脱离轨道边缘线,提高了智能循迹小车的安全行驶可靠性能。

猜你喜欢

循迹舵机转角
基于DFT算法的电力巡检无人机循迹检测系统设计
玩转角的平分线
侧围外板转角深拉伸起皱缺陷研究
浅谈基于机器视觉和姿态检测的循迹智能车
基于dsPIC单片机的飞艇舵机控制实现
智能差分循迹小车设计
超音速舵机保护器
INS/GPS组合系统初始滚转角空中粗对准方法
飞机活动面转角测量的方法探讨
菜鸟看模型