基于单片机的智能车课程设计

智能汽车的设计与制造

摘要:我们课题组设计生产了一款具有智能判断功能的汽车,功能强大。该车具有以下功能:自动避障功能;追踪功能(根据道路的黑色轨迹行驶);趋光功能(找到前方的点光源,驱动到位);检测放置在路面上的铁片数量的功能;计算和显示行驶的距离和时间,并发出声音和光。该工作可作为一种先进的智能玩具和大学生学习嵌入式控制的有力应用实例。

工作主要由两个电机驱动,通过各种传感器件采集各种信息,送入主控单元AT89S52单片机,对数据进行处理后完成相应的动作,从而实现自控。电机驱动电路采用高电压、大电流、四通道驱动集成芯片L293D。其中,红外收发器用于躲避障碍物;铁皮检测部分采用感应式接近开关LJ18A3-8-Z/BX进行检测;黑带检测由红外接收二极管完成;在趋光部分,光源信号由三个光电二极管采集,然后由ADC0809转换成数字信号,送入单片机进行处理和方向确定。数据经控制单元处理后,完成相应的动作,无需控制即可完成一系列动作,相当于一个简单的机器人。

关键词:障碍物红外收发器智能控制,跟踪驱动,寻光驱动

1.总体方案的论证和比较

方案一:小车的控制系统由各种数字电路组成,对外围避障信号、黑带检测信号、铁片检测信号、各种趋光信号进行处理。这种方案电路复杂,灵活性低,效率低,不利于汽车的智能化扩展,难以处理各种信号。

方案二:采用ATM89S52单片机作为整机的控制单元。红外探头采用市场上常见的发射管和接收头,由单片机调制后发射。铁片由电感式接近开关LJ18A3-8-Z/BX检测,黑带光源信号由光电二极管采集,再由ADC0809转换成数字信号送入单片机系统进行处理。该系统灵活多变,用软件解决了复杂的硬件电路,使得系统硬件简单,各种功能易于实现,能够很好地满足课题的要求。

对比以上两种方案的优缺点,第二种方案简洁、灵活、可扩展,能够满足题目的设计要求,故采用第二种方案实现。方案2的基本原理如图1所示。

图1智能车运行基本示意图

避障部分采用红外发射和接收原理。通过感应式接近开关LJ18A3-8-Z/BX检测铁片,并对产生的高低电平信号进行处理,完成相应的记录数字,驱动蜂鸣器发声。黑带追踪依靠安装在汽车底部的两对光电二极管来感应地面上的反射光。寻光设计中,在车头安装三个光敏电阻(左、中、右)采集光源信号,模拟信号经ADC0809转换成数字信号,送入MCU进行处理。记录是通过在轮子上安装一个小磁块,然后通过霍尔管感应产生计数脉冲来进行的。时间记录由软件实现,显示器采用普通七段LED。本系统灵活多变,复杂的硬件电路用软件方法解决,使得系统硬件简单,各种功能易于实现。

2.模块电路的设计与比较

1)避障方案选择

方案一:利用超声波避障,超声波受环境影响较大,且电路复杂,超声波在地面的反射会影响系统对障碍物的判断。

方案二:采用红外避障,单片机产生38KHz信号调制发射红外发射管。当发射的红外线遇到避障物体时,被反射回来,红外接收管解调反射信号,输出TTL电平。外界对红外信号的干扰比较小,容易实现,相对便宜,所以采用第二种方案。

红外发射和接收电路的原理图如图2所示。

采用红外避障方法。一管发射,一管接收,接收管对外界红外线的接收强度决定了障碍物的距离。因为红外线受外部可见光影响较大,所以38KHz的载波被250Hz的信号调制,从而减少了一些外部干扰。接收管输出的TTL电平有利于单片机进行信号处理。采用红外线发射和接收原理。单片机产生的38KHz信号用于调制和发射红外发射管。发射距离由RW调整,设计调整约为10CM。发射的红外线遇到避障物体时被反射,红外接收管解调反射信号,输出TTL电平。利用单片机的中断系统,控制电机,汽车遇到障碍物时转向。由于只使用了一套红外收发管,在避障和转弯方向,程序采用遇到障碍物左转的方式。如果要求汽车正确判断左转还是右转,就需要在汽车侧面加一组对管。外界对红外信号的干扰比较小,性价比高。。调试时主要是将发射频率调制到接收机能接收的频率,用单片机程序解决。发射信号的强度由可调精密电阻调节。

图2红外发射和接收电路示意图

2)检测铁皮的方案选择

方案一:基于涡流原理的自制传感器,获取方便,但调试困难,且输出信号不可靠,成功率低,难以准确输出传感信息。

方案二:采用市售电感式接近开关,本系统采用普通的LJ18A3-8-Z/BX完成铁皮检测任务。电感式接近开关虽然体积较大,但成本尚可,输出信号可靠稳定,受外界干扰较小,所以采用第二种方案。

检测铁片电路原理图如图3所示。

图3检测铁片电路示意图

3)语音提示

方案一:利用单片机产生不同频率的信号来完成声音提示。这种方案可以完成声音提示功能,给人的提示可懂度较差,但在一定程度上可以满足要求,且实现简单,成本不高。出于经济原因,我们采用方案1。

方案二:使用DS1420分段录放模块,可以给人直观的提示。而DS1420录放模块相对较贵,也可以按此方案处理,但方案二的性价比不如方案一。

4)黑带检测方案选择

方案一:发光二极管用来发光,光敏二极管用来接收。由于光电二极管受可见光影响较大,稳定性较差。

方案二:用红外发射管发射红外线,用红外二极管接收。采用红外发射,外界可见光对接收信号影响很小,然后信号被发射器输出器件隔离。这种方案也容易实现,可靠,所以采用第二种方案。黑带检测的电路图如图4所示。

输出信号进入74LS02。稳定性能得到改善。当车下部一侧的红外收发管遇到黑带时,输入电平为高,否则为低。结合中断查询方式,由程序控制小车行走的方向。电路中的可调电阻可以调节灵敏度,使汽车可以在不同光度的环境光下追踪。由于接收管安装在车底,发射距离很难控制。调节可调电阻器总是会导致不令人满意的灵敏度。最后在接收管上套一根塑料管,屏蔽外界光线的影响,灵敏度大大提高。然后是转弯的延时和短时控制。

图4黑带检测电路图

3)测距方案

方案一:通过在汽车车轮上开一些光孔,用红外线交叉拍摄的方式测量车轮的转数,从而间接测量距离。

方案二:用霍尔元件计数车轮转数,在车轮上安装一个小磁片,霍尔元件靠近磁片一次,计数车轮周长。这种方案传感信号强,电路简单,但精度不高。

如果要达到一定的测量精度,用霍尔传感器很难实现,因为在车轮上安装一定数量的小磁片会相互影响,而用红外线反射不会影响各自的脉冲,可以达到厘米级的精度,所以采用该方案来实现。计量距离示意图见图5。

通过计算轮子的转数来间接测量距离,利用霍尔元件感应磁块产生脉冲的原理,然后对脉冲进行计数。此外,红外原理可用于提高距离记录的准确性。方法是在轮子上均匀的打透光孔。当轮子转动时,发射红外光,连续输出脉冲。单片机对脉冲进行计数,然后通过数据处理过程计算出汽车行驶的距离。孔越多,计数越准确。

图5计量距离示意图

3)智能车辆驱动电路

方案一:采用分立元件组成的平衡驱动电路,可直接由单片机操作。但由于分立元件和两个继电器占用空间较大,考虑到汽车的空间问题,这种方案并不理想。

方案二:由于汽车电机装有减速齿轮组,考虑到不需要调速功能,采用市售电机驱动芯片L293D。该芯片采用TTL电平控制电机,操作方便。通过改变芯片控制端的输入电平,可以使电机正反转运行,方便单片机的操作,也能满足DC减速电机的要求。智能车驱动电路的实现如图6所示。

图6智能车驱动电路

台车电机是带齿轮组的DC减速电机。考虑到不需要调速功能,采用了电机驱动芯片L293D。L293D是著名的SGS公司的产品。它是一种高电压、大电流、四通道驱动的单片集成电路。它旨在接收DTL或TTL逻辑电平,驱动感性负载(如继电器,DC和步进电机)和开关功率晶体管。它包含一个4通道逻辑驱动电路。其额定工作电流为1A,最大可达1.5A,最小Vss电压为4.5V,最大可达36V。Vs电压的最大值也是36V。通过实验,Vs电压应该高于Vss电压,否则有时会失控。表1是其使能、输入引脚和输出引脚之间的逻辑关系。

表1引脚和输出引脚之间的逻辑关系

EN A(B) IN1(IN3) IN2(IN4)电机运行。

H H L向前旋转

高-低-高倒置

h带IN2(IN4)和IN1(IN3)快速停止。

L X X停止

L293D可以直接控制电机,无需隔离电路。通过单片机的I/O输入改变芯片控制端的电平,可以使电机正反转和停止,非常方便,也能满足DC减速电机的大电流要求。调试时,根据上表,用程序输入相应的代码值,即可实现相应的动作,调试通过。

3)找到光源的作用

方案一:在车前安装几个光电开关,光电开关通过不同方向的光来工作,从而控制车的行驶方向。根据光电开关的特性,只有当光线达到一定强度时才能开启,所以有一定的局限性。

方案二:在车前安装一个相同参数的光电二极管或光敏电阻,然后通过A/D转换电路转换成数字量发送给单片机。单片机会对读取的数据进行存储和比较,然后发出命令操作外围设备。对比第一种和第二种方案,第二种方案的硬件稍微复杂一点,但是可以采集和比较不同强度的光,操作灵活,所以采用第二种方案。

寻找光源的电路图如图7所示。

图7寻找光源的电路图

3)显示部分

方案一:液晶显示器和单片机可以显示数据,但显示亮度和字体大小不尽如人意,价格也比较贵。

方案二:采用LED七段数码管,经典电路解码驱动。电路结构简单,可以和单片机的I/O口一起使用,显示效果直观、明亮,易于调试。因此采用LED数码管进行显示。

4)显示电路如图8所示。

图8显示了该电路

3.系统原理和理论分析

1)单片机最小系统组成

单片机系统是整个智能系统的核心部分,它对所有的传感信号进行采集、处理、分析和调整。主要部件有:单片机AT89S52,ADC0809,小车驱动系统芯片L293D,数码管显示的解码芯片74LS47和74LS138,以及各种传感器件。

2)避障原则

采用红外避障方法。一管发射,一管接收,接收管对外界红外线的接收强度决定了障碍物的距离。因为红外线受外部可见光影响较大,所以38KHz的载波被250Hz的信号调制,从而减少了一些外部干扰。接收管输出的TTL电平有利于单片机进行信号处理。

3)对数原理

通过计算轮子的转数来间接测量距离,在轮子上均匀打孔透光孔。当轮子转动时,发射红外光,连续输出脉冲。单片机对脉冲进行计数,然后通过数据处理过程计算出汽车行驶的距离。

4)黑带检测原理

基于光线反射的原理,当光线照在白纸上时,反射的量比较大。相反,当它照在黑色物体上时,由于黑色对光的吸收,反射量较少,从而可以判断黑带轨道的方向。因为每个传感器都会干扰单片机,所以信号会出错。因此采用一阶发射极输出方式隔离信号,使系统对信号的判断更加准确。

4.系统编程

38KHz方波由单片机定时器T0产生,再由定时器T1产生250Hz方波对38KHz方波进行调制。为了提高小车的反应灵敏度,红外接收信号和黑带检测信号采用中断法处理。铁片检测、测距、换向、转向和数码管动态扫描均采用计时方式。

主程序流程图如图9所示,子程序如图10、图11和图12所示。

图9主程序流程图

图10外部中断0服务子程序

图11外部中断1服务子程序

图12定时器1中断子程序

6.调试和性能分析

整机焊接完成后,首先检查硬件的接线是否有错误,然后一步一步调试各个模块。先写电机控制小程序控制其正反转,关机正常。增加了避障子程序,汽车运行正常,灵敏度调整到最佳效果。添加显示时间子程序,显示正常。铁皮的检测靠接近开关,接近开关处理检测信号,实时显示并发出声光信息,没有异常情况。距离显示部分用于计数霍尔管脉冲。为了达到尽可能高的精确度,轮子上装有小磁盘。然后调试黑带检测模块,发现有时候车会跑出黑带。判断红外收发器对灯管不敏感,调整灵敏度后仍达不到满意效果。怀疑是受环境光影响,在红外收发机周围套上塑料套后问题得到解决。趋光电路主要由三个光敏电阻组成。调整三个光敏电阻的角度,同时测试软件,达到最佳效果的趋光功能。

经过整机综合调试,上电后系统初始化,然后控制电机驱动小车前进。突然发现系统立即进入外部中断1,重复测试多次,结果是自动进入中断。推断是刚通电时电机启动造成的。为了避免上电瞬间的影响,汽车启动后延时几毫秒,然后开启外部中断,问题解决。如有可能,应采用双电源供电,即电机和电路分开供电,L293D和单片机采用隔离信号控制。这样汽车启动时就不会出现程序错误、数码管闪烁显示等问题。在测井精度方面,利用红外原理可以获得更高的精度。

7.结论

通过各种方案的讨论和尝试,以及整个软硬件的多次调试,系统不断优化,智能车可以完成各种功能,到达车库。

8.参考

单片机应用技术

周立功单片机

单片机原理及应用

8051单片机程序设计及实例

MCS-51单片机实验指南