APP下载

基于单片机的模拟灰度循迹小车设计

2019-09-10曹维杰刘海闵文彦丁树凯粟子恒李会

河南科技 2019年14期
关键词:单片机

曹维杰 刘海 闵文彦 丁树凯 粟子恒 李会

摘 要:本文设计了一套以S9KEA128单片机为主控的模拟灰度循迹智能车系统。针对一般智能车采用按键控制式启动,本文采用非接触式启动智能车设计,将E18-D80NK作为控制信号的采集装置。本文介绍了差速控制、电机PWM调速、循迹模块的设计、非接触式启动的设计、指定圈数自动停止的设计等。经试验验证,该智能车可以自主完成铺设有直角弯、U型弯、梯形楼梯、双驼峰、悬崖等元素的赛道,并且速度不低于2m/s,循迹效果可靠稳定,而且提升空间较大。

关键词:单片机;智能车;模拟灰度循迹算法;差速控制;电机PWM调速

中图分类号:TP23;TP368.12 文献标识码:A 文章编号:1003-5168(2019)14-0041-04

Intelligent Tracking Car of Gray Sensor Based

on Single Chip Microcomputer

CAO Weijie LIU Hai MIN Wenyan DING Shukai SU Ziheng LI Hui

(Nanjing Tech University Pujiang Institute,Nanjing Jiangsu 211100)

Abstract: A set of simulated gray-scale tracking intelligent vehicle system was designed, which was controlled by S9KEA128 single-chip computer. Aiming at the general intelligent vehicle using button-controlled startup, this paper adopted the non-contact startup intelligent vehicle design, using E18-D80NK as the acquisition device of control signal. This paper introduced the differential control, motor PWM speed regulation, the design of tracking module, the design of non-contact start, the design of automatic stop of specified number of cycles, etc. Experiments show that the intelligent vehicle can pave the track with right-angle bend, U-shaped bend, trapezoidal staircase, double hump, cliff and other elements independently, and the speed is not less than 2m/s. The tracing effect is reliable and stable, and the lifting space is large.

Keywords: MCU;intelligent vehicle;simulated gray track algorithm;differential control;motor PWM speed regulation

1 研究背景

智能循迹小车制作已成为目前电子竞赛中的一个热门项目[1-3]。传统比赛规定,小车需沿着地面具备明显对比度的白色引导线前行,且在不经意偏离引导线时还能自动回正,竞赛的成绩由到达终点的时间与循迹效果所决定,偏离引导线次数越少,完成赛道所耗时间越短,成绩就越好。

本设计采用32位微控制器S9KEA128作为主控,以用作路面信息监测、电机控制和输入信号处理,4个直流减速电机作为主驱动,与相应的电源电路、下载电路、路径检测电路和循迹电路构成整体电路。本设计采用模拟灰度传感器(以下称循迹模块)实现自动循迹功能,其由若干组光敏二极管和发光二极管组成。信号经过放大整流后输入微控制器ADC模块进行数字化处理,之后由程序对数据进行处理,解算出路径偏差。微控制器利用此路径偏差值控制电机差速转向,进而实现智能车沿着引导线的偏转方向转向[4,5]。在程序设计方面,本设计采用C51语言编程[6],旨在设计出一套智能循迹系统。本文涉及的核心为模拟灰度传感器循迹技术、非接触式启动、指定圈数自动停止的硬件及程序设计,其中所提出的解决方案来源于反复测试,试验结果可靠。

2 智能车机械设计

小车采用亚克力板作为底盘,四轮双驱,电机采用常见的微型可调速永磁直流减速电机。智能车通过一侧电机正转另一侧电机反转实现转向,利用循迹模块和两侧固定的光电传感器采集道路信息,保证了智能车循迹的可靠性,同时实现了智能车运行指定圈数后自动停止。试验场地如图1所示,智能车实物如图2所示。

3 智能车硬件设计

硬件基本框架如图3示。

根据道路信息,集成于主控的FTM模块产生两路占空比不同的PWM波及输出控制量,以对智能车两侧电机进行调速和方向控制。同时,智能车配备了OLED显示模块、贴片按键、拨码开关、NRF无线模块(蓝牙模块)、电池电压检测、蜂鸣器等,较好地实现了有线或无线的信号传输,同时方便程序调试[7]。

智能車其主要的硬件是循迹模块与运算放大器,其它硬件均易于采购,然后通过程序上的调试和适配使用方便,并无过多的硬件设计以及设计要求。因此,硬件主要分析循迹模块与运算放大器设计。

3.1 循迹模块设计

循迹模块由若干组光敏二极管和发光二极管组成,每组构成一个光敏对管。循迹模块进行颜色深浅检测的原理是:光敏电阻对不同颜色的检测面对光的反射程序不同,其阻值变化也不同。当发光二极管在有效的检测距离内发出白光并照射在检测面时,光敏二极管能对检测面反射的部分白光进行检测并将其转化成智能车能识别的信号。对于模拟量型的灰度传感器,返回的信号是电压信号,是一个不确定的值。此电压信号经过放大整流后输入微控制器ADC模块进行数字化处理,之后由程序对数据进行处理,解算出路径偏差。微控制器利用此路径偏差值控制电机差速转向。

智能车运行时需要不断地检测路面信息,即需要借助传感器探测地面色调迥异的两种色彩以修正其运动轨迹。模拟灰度传感器包括信号检测单元、参考电压单元、控制单元、电源和防护单元,其循迹模块中光敏对管的分布如图4所示。

3.2 运放模块的设计

循迹模块位于智能车前端。为了确保智能车循迹过程中的运行精度,应将微弱的电压信号进行放大。经验证明,四路运放芯片OPA4377符合使用需求,运放电路如图5所示。

4 程序设计

4.1 主程序设计

智能车循迹所需的8个光敏对管组分布如图4所示,智能车的运行状态可分成7种状态,分别为右转、向右调整、向右微调、全速直行、向左微调、向左调整和左转;当R1检测到白线时,右转;当R2检测到白线时,向右调整;当R3检测到白线时,向右微调,从而在较短时间内完成路线的调整,高低速度调整由控制PWM波的占空比实现。相类似,当L1检测到白线时,左转;当L2检测到白线时,向左调整;当L3检测到白线时,向左微调;不同的是,当L4、R4检测到白线并且L3、R3未检测到白线时,全速直行;当L1、L2、L3、L4同时检测到白线时,加速左转。光敏对管组与智能车偏转方向关系如表1所示,其中数字0表示低电平,数字1表示高电平,主程序流程图如图6所示。

程序如下(25ms执行一次):

if(ADC_Colour.ADC_L1==1) //左转

{

Speed_L=0-400;

Speed_R=400;

}

else if(ADC_Colour.ADC_L2==1&&ADC_Colour.ADC_R1!=1) //向左边调整

{

Speed_L=400;

Speed_R=800;

}

else if(ADC_Colour.ADC_L3==1) //向左边微调

{

Speed_L=700;

Speed_R=800;

}

else if(ADC_Colour.ADC_L4==1&&ADC_Colour.ADC_R4==1&&ADC_Colour.ADC_L3!=1&&ADC_Colour.ADC_R3!=1)//全速直行

{

Speed_L=800;

Speed_R=800;

}//另一侧转向类似略

4.2 电机PWM调速分析

光敏对管组接收信号,通过ADC模块将信号送入单片机中。智能车进入循迹模式,单片机会不停地扫描电磁传感器的I/O口,一旦检测到某一个I/O出现高低电平跳动时,微控制器就会执行相应程序,从而实现对智能车运行状态的控制。其中,高电平的脉冲个数与上一个周期的总脉冲个数的百分比即为占空比的大小,不同两路的占空比控制着两侧电机的转速与转动方向,电机的转速随着占空比的变化而变化,占空比越大,则该侧电机输入的电压越大,电机转速越快。电机的平均速度等于在一定的占空比下电机的最大速度乘以占空比[8]。

4.3 非接触式启动设计

将E18-D80NK-N光电传感器安装在智能车底盘尾部(距地面55mm),传感器检测部位向后,在安装时传感器与智能车底盘水平放置,同时避免离传感器检测部位20~30mm处有障碍。在智能车通电进入工作状态时,操作者只要在传感器检测部分20~30mm处使之有障碍,智能车即启动开车跑车。程序片段如下(25ms执行一次):

if(redstart==0&&FLAG_START==0)

{

timer(0,1);  //重置计时器

while(Time<4)//在此处停留3.99秒

BEEP_ON;   //開启蜂鸣器

BEEP_OFF;    //关闭蜂鸣器

OLED_ClearScreen(0X00); //OLED清屏

Speed_L=0;   //初始化输出速度左为0 PWM

Speed_R=0;   //初始化输出速度右为0 PWM

FLAG_START=1;//标志位置1,开始跑车程序

timer(0,1);  //重置计时器

}

4.4 指定圈数自动停止设计

将E18-D80NK-N光电传感器安装在智能小车底盘两侧(距地面距离20mm),以实现检测赛道上与引导线垂直的黑色线条数。其中,针对飞越悬崖和通过双驼峰、梯形楼梯导致计入的黑线条数与实际的黑线条数产生的误差,本设计采用的是多次跑车检测智能车跑一圈实际计入的黑线条数记为Z,在需要运行指定圈数时,以指定圈数乘以Z作为程序计数的参考量,从而实现智能车按指定圈数自动停止,程序片段如下(25ms执行一次):

delay++;//记黑线

if(delay>1000)

{

delay = 1000;

}

if(redblack&&delay>100)

{

flag++;

delay = 0;

}

if(flag >= 9) //outward8 midle9 inward8

{

Speed_L=0;

Speed_R=0;

}

5 結语

目前,广泛使用的传感器有颜色传感器、光敏电阻灰度传感器。其中,颜色传感器容易受外界光线影响,而且颜色传感器的通信过程非常复杂,且价格昂贵。光敏电阻灰度传感器同样易受到外界光源的干扰,并且稳定性差,采集的灰度对比值偏离较大,智能车循迹容易出错。本设计采用的是模拟灰度传感器,用以解决现有传感器抗干扰能力差、成本高以及不能同时使用的问题。

本设计结合了差速控制、电机PWM调速、循迹模块的设计、非接触式启动的设计、指定圈数自动停止的设计,提出了一套模拟灰度智能循迹的设计方案,其具有可靠性强、成本低等优点,可满足大部分室内及室外有引导线的运输需求。

本设计方案还有诸多待改进的地方,改进思路如下。

①智能车速度过快通过直角弯时,存在未触发操作指令易偏离引导线的问题。针对此问题,可在车体前部安装一个激光传感器,进行路口提前检测,然后降速通过直角弯。

②智能车在上梯形楼梯时容易出现撞击,严重影响了前行速度,而且还可能引起偏离引导线的风险。对此,可同样采取标记黑线的方法,进而解决此类似情况的发生。

③智能车过弯平顺性较低,可采用PID控制算法,从而既能在不偏离引导线的情况下以较高的速度前行,又能实现精准的过弯表现。

参考文献:

[1]张岩,裴晓敏,付韶彬.基于单片机的智能循迹小车设计[J].国外电子测量技术,2014(3):51-54.

[2]蓝厚荣.单片机的PWM控制技术[J].工业控制计算机,2010(3):97-98,108.

[3]王海波,冯蓉珍,司俊,等.基于PWM调速的智能小车控制系统实现[J].科技广场,2011(11):144-147.

[4]王珊珊.轮式移动机器人控制系统设计[D].南京:南京理工大学,2013.

[5]甘天宇.自寻迹机器人小车的设计与关键技术研究[D].长春:吉林大学,2017.

[6]邱玉娟.单片机应用系统中C51与汇编语言的区别[J].淮阴工学院学报,2007(3):64-66.

[7]史彬,牛岳鹏,郭勇.智能车模双电机差速控制的可行性研究[J].电子产品世界,2012(8):50-52.

[8]朱昌平,李永强,单鸣雷.“飞思卡尔”智能车常见技术问题与解决方案[J].试验室研究与探索,2012(4):45-49,57.

猜你喜欢

单片机
基于单片机MCU的IPMI健康管理系统设计与实现
浅析51单片机的特点与应用
单片机在智能控制中的应用
C8051F020与80C51单片机的异同点
MCS—51单片机多串口通讯技术应用分析
一种单片机虚拟实验室的建立方法
点阵式液晶显示器lMl2864与51单片机的接口设计
单片机I/O口模拟串行通讯的C51实现方法
单片机调试方法的探讨
用PIC单片机制作的时间继电器