本设计以玩具小坦克为车体,以单片机AT89S52为核心,利用黑白线传感器判断小车行驶的轨迹;利用金属传感器判断轨迹中放置的铁片;由单片机对小车状态做出实时反应,并输出相应的控制指令。 本文设计方案以多功能的智能小车作为自动控制系统的载体,以单片机AT89S52为核心;利用黑白线传感器判断小车行驶的轨迹,利用金属传感器判断轨迹中放置的铁片,由驱动执行电路完成小车的行驶,由单片机对小车状态作出实时反应,并输出相应的控制指令;通过LCD显示器对小车运行的时间、铁片数目以及行驶路程等参数进行直观显示。整个系统安装于车体上并实施控制。安装在车上的多个测距传感器精度高,能够准确测算出速度与距离,各种声光器件实时显示各模块的工作状态。全程无需人为控制,顺利完成设定任务。经性能指标测试实验,该系统可实现控制小车的进退转向等动作且精度较高。
1 硬件设计
1.1 车型
本设计选用的履带车,采用带电感的大扭力260马达,具有动力性能强、底盘稳定性高等特点,左右电机速度调整到一定时,不易偏离轨道。
1.2 显示模块
采用2行16个字的MD1602A液晶显示器,其功耗低、体积小、显示内容丰富。可通过与单片机连接,编程,完成显示时间和距离等等一系列的功能。
1.3 电源
单电源+DC/DC转换供电。由于电机驱动和其他芯片工作电压不一样,需各自独立供电。使用6节电池产生约7~9 V的电压,进行DC/DC转换,可得到5 V左右的稳定电压。该方案电路简单、性能稳定可靠。
1.4 直流电机
采用专用芯片L298N作为电机驱动芯片。采用一个L298N,可以同时驱动两个电机。使用PWM方式的调速电路搭接简单、驱动电流大、可靠性高,电机驱动原理如图1所示。
L298N芯片内部包含4通道逻辑驱动电路,是一种二相和四相的专用驱动器,内含2个H桥的高电压大电流双全桥驱动器,接收标准TTL逻辑电平信号,符合两轮驱动和单片机控制。它可驱动46 V,2 A以下的电机,满足小车马达的驱动要求。
L298N驱动2个电机,2、3脚和13、14脚之间分别接2个电动机。5、7、10、12脚接输入控制电平,控制电机的正反转,ENA(6脚),ENB(11脚)接控制使能端,控制电机的停转。其中5、7、10、12脚分别接P1.0,P1.1,P1.2,P1.3,L29N的逻辑控制功能如表1所示。
1.5 传感器模块
1.5.1 传感器的安装
传感器的安装如图2所示,车头一共有5个黑白线传感器和3个金属传感器。中间的金属传感器(检测距离为8 mm)是来检测跑道上的铁片,旁边的2个金属传感器(检测距离为4 mm)是来检测距离引导线70 mm以上的金属片的。由于在拐弯断线处,小车可能会偏出轨道,无法继续寻迹,故最外围的2个黑白线传感器就是使小车在偏离轨道一定范围的情况下,仍能够调整车头,重新回到轨道上,故两个传感器的距离要尽量的远,在不超出车身范围的情况下。中间的黑白线传感器的可扩展为让小车在断线处仍能够画出断线部分的轨迹(显示一段断线,属于特色部分),另外两个黑白线传感器的任务就是让小车完成基本的寻迹功能。
1.5.2 霍尔传感器
霍尔传感器是利用霍尔效应实现磁电转换的一种传感器,它具有灵敏度高,线性度好,稳定性高、体积小和耐高温等特点。对测速装置的要求是分辨能力强、高精度和尽可能短的检测时间。
霍尔传感器和磁钢配套使用,用来计算小车的行驶路程。本作品用到两个霍尔传感器和20个磁钢,左右后车轮各一对(1个霍尔传感器和10个磁钢),安装方式如图3所示。磁钢数量越多,测量出的车轮圈数约精确,行驶路程也越精确。
1.5.3 金属传感器
选用的金属传感器为NPN常开型传感器,理论的测测量距离为4 mm,传感器输出为1、0开关量信号,当金属传感器感应到金属片时,其输出由高电平变为低电平。
1.5.4 黑白线传感器电路模块
选用TK-20黑白线检测传感器,它是TK-10的升级版,有效探测距离达5 cm。通过调节电位器,最远可以达到10 cm(该距离下,探测黑白线的精度降低)。
1.6 硬件总体框图
硬件总体硬件框图如图4所示。
2 软件设计
2.1 软件流程图
图5为小车整体的系统流程图。当小车前头的黑白线传感器同时检测到起点的黑线时,单片机接收到信号,小车开始加速行驶,且开始交替显示行驶时间和行驶路程,此时由于还没检测到金属片,故行驶距离显示为0。当小车在行驶的过程中检测到第一片金属片时,小车减速行驶直到停止。数码管显示铁片数量为1,且闪烁提示。此时单片机收到相应信号,控制小车停止5 s,在停止的过程中交替显示行驶距离和时间。当5 s过后,小车继续行驶,当检测到下一块铁片时,小车又停止5 s,铁片显示加1(同样闪烁显示)。到终点时,小车前头的黑白线传感器同时检测到终点的黑线,小车停止,数码管显示铁片数量且交替显示行驶的总时间和第一片铁片到终点的路程。此方案的特色是LCD显示屏还能同步画出小车行驶的轨迹图。当按下ZLG按键,LCD将切换到轨迹显示,并能在LCD上标出铁片位置。
2.2 编程思想及核心算法的实现
2.2.1 PWM方波的产生
采用内部定时器方式来产生占空比可调的PWM方波信号。
2.2.2 小车拐弯的实现
如图7所示,左1黑白线传感器碰到黑线时,小车向左拐,并锁住拐弯状态等到左2黑白线传感器碰到黑线,左2黑白线传感器碰到黑线时,小车向左拐。右1,右2碰到黑线的处理与左1,左2碰到黑线的处理一样。其他状态小车直走(除特殊情况如起跑线与终点)。
2.2. 3 小车行驶路程的计算
小车的行驶的路程是用霍尔传感器来计算的。由于黑线位于两个轮子之间,设左轮走过的路程为S1,右轮走过的路程为S2,故实际距离应为(S1+S2)/2。
2.2.4 小车轨迹的绘制
小车的轨迹是由一段段射线构成的。小车每走一段距离L,就在屏幕上画一条线段,线段长度设计为4个像素。画射线的算法:
横坐标: x=Lcosθ
纵坐标: y=Lsinθ
通过描点函数一点点描出来。由于单片机没有计算sinθ,cosθ的函数,所以本组采用查表法。
3 系统性能测试方法与结果
3.1 测试步骤
(1)根据要求做出完整轨迹,总长度为3.8 m,接着分别在直道、弯道放置4个铁片,其距离起点依次为30 cm,140 cm,210 cm,270 cm,观察小车能否寻迹,检测到金属片时能否停下5 s,显示并给出提示。
(2)将小车放置起点处,启动小车,手中秒表开始计时,到终点时停止计时,看数码管显示。
(3)重复步骤(1),步骤(2)四次。
3.2 性能指标测试数据
性能指标测试数据如表2所示。
经测量小车履带车轮的半径为24 mm,经计算的周长为150.72 mm,测试跑道的长度为380 cm,经过测试每次行驶的时间误差很小,性能指标良好。
4 小结
经性能指标测试实验,该系统通过调节PWM输出可实现控制小车的前进、后退、转向、加速、减速等动作;结果表明,该设计方案科学合理,可精准地完成小车沿黑色引导线的寻迹(断开引导线亦可)、检测铁片个数、实时LCD显示行驶距离、时间和行车轨迹等功能,精度较高。 |