APP下载

基于红外反射式光电传感器阵列的智能循迹车设计

2019-09-13朱春华李方伟

通信电源技术 2019年8期
关键词:循迹中线小车

朱春华,李方伟

(河南工业大学信息科学与工程学院,河南 郑州450001)

0 引 言

智能循迹车又叫做轮式机器人,是一个集环境感知、规划决策、自动行驶等功能于一体的综合系统,已广泛应用于科学探索、工业生产等领域。智能循迹车以蓄电池为动力,以单片机组成的嵌入机式控制系统为核心,以光电传感器和电磁传感器为导航检测设备,可以完成固定路线自主驾驶[1-4]。一般方案为4个红外反射式光电传感器采集数据并做出简单控制,而少量信息量导致寻迹车的性能有限且提升的空间极小。本文为提高智能循迹车性能提出了一种研究方向,通过创新硬件和软件算法提高获取信息量,大大提高了智能循迹车的智能化程度和综合性能。

1 系统硬件设计

1.1 系统结构

系统结构如图1所示,包括电源模块、传感器模块、主控模块、驱动模块及执行机构模块。其中主控模块集成有无线通信模块、蓝牙模块。具体工作过程为:电源模块为系统供电,传感器模块将检测到的轨道信息传给主控模块处理,主控执行算法,通过驱动电路驱动执行机构做出动作。本文小车实物如图2所示。

图1 系统结构图

图2 本文小车实物图

1.2 传感器模块

用于轨道信息检测的传感器模块采用4×8的光电传感器阵列,光电传感器采用TCRT5000型红外反射式光电传感器。该传感器是一种一体化反射型光电传感器,其发射器是一个红外发光二极管,接收器是一个高灵敏度的光电三极管[5]。接收器的阻值对光线强度变化极为敏感,当接收到的红外光线很弱时,其阻值可达几百千欧;当接收到的红外光线较强时,阻值可降到几千欧[6]。光电传感器阵列的单元电路如图3所示,工作原理具体如下。光电传感器发射红外光信号,当遇到黑色物体时,红外光被吸收,没有红外光返射;当遇到白色物体,红外光被反射,使光电传感器的接收器阻值发生变化,进而4脚电平状态发生变化。4脚电平的变化经比较器与滑动变阻器R0的电平进行比较放大后进行输出,外部器件可以通过获取比较器输出脚的信号状态,区别黑色的轨道和白色地面。LED指示灯可用以监测每一个传感器单元的输出状态。

图3 基于TCRT5000红外反射式光电传感器单元电路

本文设计的4×8的光电传感器阵列由32个TCRT5 000传感器单元组成。

为优化硬件设计,本文设计了基于74LS165的并转串的方案,可将32路并行信号转为4路串行数据信号。74LS165是8位并入串出移位寄存器,其引脚图如图4所示,其基本原理具体如下。在芯片的引脚为低电平时,并行数据(A~H引脚)被置入寄存器,最高位状态通过输出引脚QH输出。引脚拉高后,并行数据被禁止置入寄存器,此条件下,寄存器数据在每个时钟(CLK引脚)的上升沿来临时进行一次左移位,可依次将寄存器中的数据通过输出引脚QH输出。本设计中,4块该芯片应用于该模块,大大简化了传感器模块的接口。

图4 74LS165引脚图

为保证电路的可靠性,本文设计电路板均为自主设计并有厂家代工生产的PCB板,光电传感器模块实物如图5所示。

1.3 电源模块

电池采用三节18650锂电池,通过降压电路稳定到9V,供给驱动电路。通过稳压模块降到5V给主控电路和传感器模块供电。考虑到本设计中执行机构、传感器模块等的使用导致系统电流较大,因此应选用可提供更大电流的电源降压模块。本文设计选用的是基于LM2596的降压模块。LM2596是一种降压型电源管理单片集成电路的开关电压调节器。该模块能够输出3A的驱动电流,同时具有很好的线性和负载调节特性,可固定输出3.3V、5V、12V三种电压,也可实现在1.2~37V的可调输出[7]。

图5 光电传感器模块实物

1.4 主控模块

主控模块以单片机STC15W4K32S4为核心。该芯片是宏晶科技公司生产的单时钟周期(1T)的单片机,是宽电压、高速、高可靠、低功耗及超强抗干扰的8051单片机,采用STC第九代加密技术,指令代码完全兼容传统的8051,但速度比传统8051快8~12倍[8]。主控模块同时集成了74LS165芯片实验电路,能够进行并转串的验证性实验,为将来在该方向研究者提供技术资料储备。主控模块同时集成了无线通信、蓝牙及OLED显示屏等模块。主控模块实物如图6所示。

图6 主控模块实物图

1.5 驱动模块

驱动电路基于L298N芯片(ST公司生产的一种高电压、大电流电机驱动芯片),最高工作电压可达46V,输出瞬间峰值电流可达3A,持续工作电流为2A,内含两个H桥的高电压大电流全桥式驱动器[9]。可通过脉冲宽度调制(PWM)技术驱动直流电机。脉冲宽度调制(PulseWidth Modulation)技术是对电机调速的常用方式,脉冲周期不变,只改变晶闸管的导通时间,就可以改变脉冲宽度对电机进行直流调速[10]。PWM信号可以通过单片机定时器进行程序编程输出,也可由专门的芯片产生。

1.6 执行机构模块

执行机构采用两个直流减速电机,分别驱动一个动力车轮。直流减速电机具有扭矩大、震动小的特点,可通过脉宽调制对其进行轮速控制。

2 系统软件设计

2.1 软件开发平台及编程语言选择

Keil4是通过C语言进行51单片机开发的常用软件,是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统。与汇编相比,C语言在功能、结构性、可读性及可维护性上有明显的优势。

2.2 数据获取

根据74LS165的基本原理,在读取一路数据时,应首先拉引脚。引脚拉高后首先读取第一位,然后依次进行7次脉冲移位和读取数据操作,以便获取全部8位数据。当信号输出为01110010B时,其对应时序如图7所示。

图7 时序图

数据获取尤为重要,为保证能够及时地读取到数据,本文设计中将数据读取程序放在定时器中断中进行操作。图8为数据获取程序的逻辑框图

图8 数据获取程序逻辑图

由图8可知,当程序允许读取数据时,主控将74LS165芯片的引脚拉高,此时并行数据被置入寄存器,并且最高位已经在输出引脚输出。读取74LS165芯片输出引脚的1bit数据,并通过移位操作压缩进入一个8bit的输出缓存,如此循环,直到把8位数据全部读取并压缩进缓存,最后将获取的一个8bit数据进行存储,并禁止数据读取。需要解释的是,禁止数据读取是要等待本次数据被使用后,即需要新数据时,再进行下一轮的数据获取,以避免过分占用定时器中断,造成代码运行效率低。

通过一片74LS165芯片可以获取一行(8个)的反射式红外传感器的信号的数据,那么通过4片芯片就可以获取传感器模块的4行全部数据,进而将所得数据组成一个信号状态矩阵:

其中,元素值为0或1,对应着其对应坐标位置的传感器获取的信号状态。

2.3 数据处理

数据处理程序中主要进行轨道中线计算和特殊位置标记。轨道中线和小车物理中线ai4进行比较,可以得到小车中线和轨道中线的偏差。基于此,通过算法驱动小车使轨道中线和小车中线重合,可以使小车按照轨道运行。其中,轨道中线计算算法具体如下。

定义从第一列到第8列的列标号为0~7,对每一行数据进行判断,将其所有感应到轨道的n个对管的列标号相加,再整除n,即可得到所在行的中线列标,此时便可绘制出轨道中线轨迹。以一个3×8的矩阵为例,定义1表示相应的红外传感器检测到轨道,0表示没有检测到轨道。第一行轨道中线的列标号应为第一行所有1的列标号之和除以第一行1的个数。则第一行的中线计算为同理可得第2、3行分别为3和4,计算得到的轨道中线位置如图9中的异色标记所示。

图9 计算得到的轨道中线位置

此外,数据处理中对左边线ai0、右边线ai7等特殊位置进行标记。当ai0或ai7中存在检测到轨道的状态数据时,就做出标记。

3 算法设计

算法中,输出PWM值由3个PWM参量的线性叠加调节:(1)基础速度v1;(2)两轮绝对差速v2;(3)与轨道偏离程度负相关的速度v3。δn表示第n行的中线偏差。中线偏差是指轨道中线与小车物理中线的绝对差值。

v1为两轮的共有量,是一个常量:

它是一个维持电机启动转速的基础值,起到辅助驱动电机的作用。v2是与δ1正相关的量,其算法式为:

其中,k1为相关系数。

δ'是与轨道偏离程度负相关的基础速度量,也是两轮的公有值,在不同的路况下起到调节整体车速的作用,其算法式为:

其中,k2为相关系数,δ'=δ1-δ4。

以第1行的中线相对于物理中线的位置为方向标志,将该方向一侧的轮称为“副轮”,另一侧则为“主轮”。假设此时中线在物理中线右侧,说明小车此时是向左侧偏离轨道,此时左轮就为修正车身的“主轮”,右轮就为“副轮”。“主轮”输出PWM值为:

“副轮”输出PWM值为:

根据轨道情况可以通过调节系数调试到较佳运行状态。

4 实验测试

实验环境中的测试轨道是在室内洁净的白色地板上用1cm宽的黑色电气胶带铺设而成,地板可以反射传感器发射的红外信号,电气胶带可以吸收传感器发射的红外信号,室内光线良好。轨道中包含直道、弧弯道、直角道、十字道、锐角道及钝角道等实验项目。其中,弧弯道曲率半径为20cm,锐角道的角度为45°,钝角道的角度为120°。

本文对评估小车性能涉及到的一些参数的定义具体如下。

第i行的左偏差δli:小车的第i行物理中线ai4左侧所有检测到轨道的传感器所在列的列标号之和与所在行的物理中线列标号的绝对差值为第i行的左偏差δli。同理,第i行右偏差用δri表示。这里的“左”、“右”是以小车前进方向为“物理正前方”的参考方位。

偏差δ'':所有行的左偏差与右偏差的差的绝对值之和即为中线偏差。

通过成功率η:系统正常运行情况下,一次性通过相应实验项目的概率。

本文所有偏差的原始数据均是通过代码定时采集数据,然后通过蓝牙传输到上位机,数据采样速率为10 次 /s。

本文使用同一辆车进行了对比实验。将本文小车改为4红外对管的硬件配置和相应的传统算法并调试到最佳状态后作为实验的参照组小车。对两组小车以相同速度分别进行了50次测试,在各个关键项目中的主要性能如表1和表2所示。

表1 本文所设计小车性能测试

表2 传统小车性能测试

表1和表2中,直角道、锐角道及钝角道行驶路线测试项目中,“—”表示无此类测试数据。即该测试环境下不能或不需要采用中线偏差评估运行稳定性。对比表1和表2可知,相对传统智能循迹车,本文小车的运行平均偏差、项目通过成功率均显著提高。其中,直道运行的平均偏差改善最大,降低了约95.6%,弧弯道和十字道也分别降低了90.4%、87.2%。关于项目通过成功率方面,本文小车比对传统小车在锐角道的通过成功率方面提高最明显,提高了90%。此外,十字道的通过成功率提高了30%,钝角道的通过成功率提高了26%,直角道、弧弯道、直道的通过成功率分别提高了24%、8%和6%。这表明了本设计能够有效提高智能循迹车的运行稳定性和抗干扰能力。

5 结 论

本文提出一种新的智能循迹车设计方案,并完成了硬件设计和性能测试。该设计引入4×8的红外反射式光电传感器阵列,采用并转串的设计思路并优化硬件实现方法,实现道路识别数据的实时处理,并提升道路识别分辨能力。软硬件测试对该设计的道路运行平均偏差和成功率指标进行了验证。结果表明,相比传统智能循迹车,该设计具有较强的运行稳定性和抗干扰能力。

猜你喜欢

循迹中线小车
基于DFT算法的电力巡检无人机循迹检测系统设计
大车拉小车
自制小车来比赛
浅谈基于机器视觉和姿态检测的循迹智能车
课本内外
刘老师想开小车
课本内外
——书写要点(三)
两轮自平衡小车的设计与实现
课本内外
智能差分循迹小车设计