全国大学生电子设计竞赛中的C题,要求设计一个以单片机为核心器件实现对行驶中的电动模型汽车自动控制系统,控制过程是利用反射式光电检测器采集数据,通过软件完成对电动模型汽车在不同路段的行驶速度实时控制,用数码管对指定行程和所用的时间进行显示,同时利用红外数传方式将在限速区、终点区和返回到起点区后的时间和距离数据向手持显示装置单向传送。系统将键盘设在小汽车中对其速度的控制调整更加方便、更加精确。
方案论证
根据题目的基本要求,设计任务主要是完成电动小汽车在规定行驶路线中的速度控制,根据不同的行驶路段采用变速行进,对行程中的有关数据进行处理显示。为了使汽车与固定点保持联络,本系统加装了红外数码传感器装置,以实现对汽车的行驶过程定位。下面对系统的实现方案进行论证。
1.数据采集方案的选择数据采集一般可采用以下几种方案:(1)使用发光二极管和光敏三极管组合;(2)使用红外发光二极管和接收管组合;(3)利用激光。
通过对比,在本设计中由于是近距离探测,我们采用方案二来完成数据的采集。由于红外光的波长比可见光长,因此受可见光的影响较小。同时红外系统还具有尺寸小、重量轻、能有效防止可见光波的干扰、对辅助装置要求最少、对人眼无伤害等优点。当然红外光也有一定的缺点,如在潮湿的大气、雾和云中传播时会衰减,所以只适合于室内通信。我们选用的反射式光电检测器具有体积小、灵敏度高、线性好等特点,外围电路及电路设计简单、安装方便、电源要求不高、性能稳定可靠,用它作为近距离传感器是较理想的选择。
2.显示装置的选择车载显示我们采用了数码管,对时间和路程通过按键选择显示内容。
3.通信方式的选择可用无线电或红外光方式,无线电方式通信距离较远,但电路较复杂;而红外光方式适合于近距离通信,电路较简单。目前只考虑单向传输,所以我们选择了红外光作为载波来传送信息。
4.电源供电及车载重量的选择考虑电动车马力和车载重量及摩擦阻力等问题,电路器件应从功耗小、体积小和重量轻三方面进行选择,所以电源采用6节5号电池组成9伏直流电源。
系统框图及工作原理
上图给出系统组成框图,数据采集通过光电传感器完成对不同标志的检测,并以电信号脉冲的形式送人单片机的INTO和Tl口。单片机对送来的信号进行分析、运算、处理,从Pl.1口输出信号控制马达的转速,使电动车的行驶速度得以调整;电动车返回起点后,立即从单片机的串行通信口输出数据显示已行驶的距离和所用时间。另外,单片机从Pl.7口输出数据通过红外方式在指定位置向手持接收系统发送,手持接收系统也是由一单片机进行数据处理,这样我们可以随时知道电动车运行的时间和位置情况。键盘是便于在调试时参数的设置,使小车的速度和位置更精确。
硬件原理分析及设计
由于跑道是白色的,在某些规定区域贴有黑色线条标志,根据颜色对光的吸收和反射特性,光接收管在黑白区域的导通状态不相同。当小车在规定的跑道行驶时,贴在小车底部的反射式光电检测器就会作出不同的反应。小车前端贴有一片光电传感器,对线区的数据进行采集,把变化的光信号转换为电信号,此信号经施密特触发电路整形后,送入单片机的中断端(INTO)。在小车的后轮上贴一白纸及轮框上也贴有一片光电传感器,对车轮的转数进行采集,送进计数器端口(Tl)。经单片机处理以后,用P1.0、P1.1分别控制电机的转向以及脉宽,车载显示器在运行过程中显示通过地面标志的数量。在车停止后,显示小车通过全程的时间及里程,显示部分设置两个按键,一个用来重启单片机,另一个用来翻页查看小车运行过程中的各种参数。手持显示部分是由一体化红外接收头将发送过来的串行数据送入单片机,采取软件上的模拟串行通信的手法,对指定位置的里程和运行时间进行显示。
1.数据采集部分利用红外反射式检测器对黑色或白色有敏感反应的特性,可完成数据的采集,上图为数据采集电路原理图。图中1、2端为光发射,3、4端为光接收。当光电反射器在黑白面上移动时,4端便得到一个变化的脉冲电压。在对不同介质材料进行综合比较后,我们选择光电反射器离地面为0.5cm的数据为基准,此电压经过一个施密特电路整形后得到一TTL电平送单片机。
我们利用NE555定时器来构成施密特电路,输入输出之间的迟滞回线特性关系如上图所示。当电压由低向高变化时:0<Vi<l/3VCC,Vo=“1”:l/3Vcc<Vi<2/3Vcc,Vo保持不变;Vi>2/3Vcc,Vo翻转为“0”。当电压由高向低变化时:2/3Vcc<Vi<Vcc,Vo=“0”;l/3Vcc<Vi<2/3Vcc,Vo保持不变;Vi<1/3Vcc,Vo翻转为“l”。当输入低电平ViL为0.49V,高电平ViH为4.19V,压差为3.70V。若Vcc=5V,有l/3Vcc=1.67V,2/3Vcc=3.33V,能满足要求。但为了适应实际情况,采取可变参考电压,改变NE555第⑤脚电压,可取得不同的回差电压(1/3Vcc),此电压越大,电路抗干扰性越强,但触发灵敏度越低。综合考虑,我们取⑤脚电压为3.60V,则l/3Vcc=1.2V,2/3Vcc=2.4V。参考图2,当光电传感器检测到黑线时,第4端电压为高电平4.19V,NE555的第②脚也为高电平,③脚输出低电平“0”;反之,在白纸上时,NE555的③脚输出高电平“1”。利用下降沿可触发AT89C51的中断“0”。同样,在黑色车轮上贴一白纸,转动时也有高低电平的变化,触发AT89C51的定时器T1进行计数,对轮子转过的圈数计数,从而可得到小车的行驶速度和距离。
2.电机转速控制小车运行速度的测量是通过在后轮加上反光片,当轮子转动时,光电反射器会检测到脉冲,利用单片机的一个计数器对车轮所转的圈数进行计数,同时通过另一个计数器对时间进行测量,结合两个计数器的值,由单片机计算出小车运行的速度,而里程则是由车轮的周长和所转的圈数计算得出。
本系统在小车电机的控制部分利用8050、8550等不同三极管的组合,构造一座“桥”,实现了对驱动电机的轻松控制,电机驱动电路如下图,其控制过程如下:Pl.0为正反转控制端,Pl.1为启停控制端。
(1)Pl.1为高电平时:当Pl.0为低电平时,则“向后”端为低电平,由Q51构成的反相器使向前端为高电平。于是,Q52、Q53、Q54导通,Q55、Q56、Q57截止。其中Q52为激励级,Q53、Q54为功放级。电流从+9V经Q53到电机“+”端再到“-”端最后经Q54人地端,电机正转;当Pl.0为高电平时,则反之,Q55、Q56、Q57导通,Q52、Q53、Q54截止,电机反转。
(2)Pl.1为低电平时,“向前”和“向后”端均为低电平,电机停转。
该“桥”的优点是原理简单、易控制、带负载能力强。在单片机的配合下,通过调脉宽的方法,实现了对驱动电机的轻松调速,通过键盘对具体参数的修改,可以使小车适应各种不同的电源。正因为采取了该项技术,使我们完成基本要求的过程变得简单易行。
在速度控制方面,一般是通过改变加在电机两端的电压来实现的,可以是连续改变(加直流电压),也可以是断续改变(加脉冲电压)。为了简单实用我们采用了脉宽调速,脉冲宽度的变化可以通过硬件或软件来实现。硬件实现是通过改变振荡电路中RC参数来调整充放电时间;而软件的做法是通过设置高电平及低电平的保持时间来达到。比较而言,软件调整量化指标更高、调整更可靠、更方便、更准确。于是,键盘成了人机交流必不可少的器件。
脉冲频率对电机转速也有影响,脉冲频率高连续性好,但带负载能力差,频率低则反之。经实验发现,脉冲频率在15~20Hz效果最佳。
脉宽调速实质上是调节加在电机两端的平均功率,通过计算可发现汽车的速度与脉宽成正比。
软件编程时的考虑是设置脉宽这个变量,在P1.1的启停控制端产生20Hz可调脉宽方波。
3.显示与键盘显示部分采取独具创新的软件技术,仅使用三根线完成,即数据线、时钟线及输入输出控制线,通过对单片机串口的编程,创造性地实现了键盘显示与单片机之间的串行接口技术。外部硬件只使用两片74LS164和一片74LS166完成,通过该接口,我们使用了8个LED管,可继续扩展,也可以与键盘接口,其原理图见下图。
同时我们还有另一套方案,就是当单片机的串口被其他硬件占用时,我们同样可以仅使用一个I/O口,实现模拟串口功能,使硬件的应用更灵活、更方便。我们已在本系统中使用了模拟串口技术,实现了车载系统与手持显示系统的数据传递。这正符合了当今时代所追求的“尽量使用软件实现硬件”的原则,大大降低了外设硬件的成本。
三线串行显示/键盘原理:三线为DAT(P3.O)——串行输入/输出数据线、CLK(P3.1)——移位时钟线、RD(P3.7)——输入/输出控制线。
RD为低电平时为显示模式,数据线(DAT)输出位码和段码,一共16位。数据送完后,在U2(74LS164)存放的是位码,在Ul(74LS164)存放了段码,这样便可在指定的一位显示一个数码。利用人的视觉暂留效应,便可动态显示出一个数据;RD为高电平时为键盘模式,由9014构成的反相器屏蔽UI、U2的时钟信号,但位码和段码仍存储在Ul、U2中故仍能正常显示,而时钟对U3(74LS166)仍有效。由于显示时保留的位码仍在U2,可作为行列键盘的行码使用,当有键按下时,列码通过U3送到数据线(DAT)。这样,单片机便可通过行列码确定按键。
正常工作时每显一位数码就读一下列码,由于显示和键盘都为动态扫描,看起来是连续的。通过RD协调键盘和显示,在显示的同时又可读入按键,充分利用了串口资源。
4.红外数据传输部分红外传输部分采取了简单易行的调制方案,使用了CD4069和38kHz晶振完成了载波的产生。同时利用三极管8050实现了数据信号对载波的调制,采用键控方式,调制后的信号直接驱动红外发光管。在接收端,信号经一体化接收头内部的前放、限幅放大、带通滤波、检波、积分及施密特比较等单元电路后,在输出端输出标准的TTL电平信号,直接送单片机的Pl.7口,利用软件模拟串口的形式,对收到的数据进行解调并送到显示部分显示。室内红外通信是利用视线光或反射光来完成通信的,在室内环境下可以不考虑大气和气象条件引起的衰减,信道衰减主要由系统的几何结构和接收机的聚光器增益所决定。
本系统在室内是采用视线光来完成通信的,实验测试红外发射功率为63μW,接收机正常接收数据时光功率为-27dBm,基本达到了近距离传输数据的要求。
软件编程
通过对单片机的编程,利用它的中断功能完成由外部电路采集的脉冲计数,实现软件对小车的速度、里程、时间的计算,以及对电机的一系列动作进行控制。上图给出主程序流程图,下图给出红外接收流程图。
编程特点:(1)设置键盘软中断,专对按键进行处理;(2)专设定时中断,提供系统时钟,提供动态显示、键盘扫描、脉宽发生器以及提供秒脉冲;(3)以模块化设计思想为指导,以函数形式实现一个功能模块,如显示函数、调速函数、发送数据函数等,这样主函数就是一个判断当时处在的线区状态从而运行相应函数的过程;(4)用keil-c51编写。
软件系统主要函数功能简介如下,键盘:对4x6键盘扫描,得到扫描码后产生键盘中断;显示:用同步串口模式,提供两片74LS164串联,分别传送段码和位码,采用动态显示;电机控制:Pl.0为正转反转控制,“0”为正转,“1”为反转,Pl.1为停转启动控制,“0”为停转,“1”为启动;INTO:过线时使变量LINE加l,并让蜂鸣器发生“哔”的提示声;模拟串口:Pl.7为模拟1200bit的异步模式串口,主要以置一位数据延时l/1200秒实现。
测试结果及误差分析
测试跑道如上图所示,跑道全长为11米,宽为0.5米,起跑线与终点线之间的距离为9米,两侧挡板高度为0.3米,跑道中间有2米长的限速区。电动车的长度为29厘米,宽度为14厘米,高度为10厘米。由于这种电动车不能完全走直线,在行驶2米之后就会与两侧挡板摩擦行驶,这对小车的速度影响较大。我们在电动车车体的四个角加装了四只小滑轮,以减小车体与挡板的摩擦,同时对驱动轮进行了相对固定,使电动车的速度和平稳性大大提高。实验中小车刹车后离起跑线和终点线的最短距离为1厘米,小车通过限速区的时间8·9秒,电机平均转速4圈/秒,总圈数166圈,全程平均速率0.49米/秒,往返一次的时间和距离的显示准确率为95%,在汽车慢速移动或停止时,与手持显示板的通信的准确率为75%(四米内)、98%(一米内)。从红外方式进行通信的角度看,本系统中的红外通信存在一定误码,且性能不够稳定。原因主要是红外通信只适用于室内静止或慢速移动中的点对点通信,方向性要求高。而在本实验中,我们将这种通信手段尝试性地应用在移动物体上,因此受到客观环境因素的影响,如背景光的干扰、各种脉冲干扰源的影响,以至于效果不佳。这次尝试也说明在运动的物体中,红外方式不如无线电方式。从测试结果分析,有时造成误动作和误差的原因是受实验条件的约束,如跑道不够平整、电动车的性能不好、挡板接口不够吻合,电机电源消耗过快等因素,这些都有待于改进。
现代交通的飞速发展,汽车的智能化控制已成为汽车工业同行关注的焦点。利用高科技手段,将电子化和智能化用于汽车控制中是对汽车工业的一次变革。从本次设计大赛的汽车自动控制中体会到,要对行使中的汽车实施控制不是一个简单的电子控制问题,只有将机械学、力学、光学等方面的知识与单片机应用技术完美地结合,汽车自动控制才能得心应手。相信单片机在今后的自动控制领域中将会有更广阔的应用前景。
上一篇:单片机应用系统的可靠性分析
下一篇:单片机89C51指令
推荐阅读最新更新时间:2024-03-16 15:57