基于单片机循迹小车的设计.doc
时间:2022-08-25 21:00:00
目录
[摘要]2
第一章绪论3
1.1智能汽车的来源3
1.研究智能汽车的目的和意义4
1.3智能汽车的现状及未来4
第二章方案的设计与论证4
2.1主控系统5
2.2电源模块6
2.3电机驱动模块设计6
2.4检测模块8
2.5显示模块10
第三章硬件设计10
3.1总体设计10
3.2主控电路11
3.3电机驱动电路12
3.4跟踪检测电路13
3.5显示模块电路15
第四章软件设计16
4.1主程序模块16
4.2跟踪模块程序流程图17
第五章PCB的制作18
5.1PCB的设计制作19
结束语23
谢辞23
参考文献24
封底25
附图一26
[摘本文介绍了红外光电传感器(rpr220)循迹车的设计与实现。黑色绝缘胶带路线与白色地面对比较大,引导车辆按照既定路线跟踪。通过安装在直流电机上的光电对射管,用两个直流减速电机控制汽车的行驶状态,测量电机的速度AT89C52单片机芯片作为控制核心。
同时也介绍了本文ITR8104红外光电测速管,光电对管安装在光电测速盘上小圆孔通过的弧上,输入信号通过专用检测电路输入单片机进行显示处理。
随着科学技术的发展,对智能汽车的要求越来越高,各种传感器的应用是实现智能汽车智能的关键因素。随着智能汽车技术的发展,该技术可广泛应用于自动巡逻、无人生产线、自动跟踪等。
[关键词]循迹直流减速电机光敏电阻传感器、红外传感器、光电传感器。
第一章绪论
1.1智能汽车的来源
自第一台工业机器人诞生以来,机器人的发展已经遍布机械、电子、冶金、交通、航天、国防等领域。近年来,机器人的智能水平不断提高,人们的生活方式也迅速改变。在不断探索、改造和理解自然的过程中,制造能够取代人类劳动的机器一直是人类的梦想。
随着科学技术的发展,机器人感觉传感器种类越来越多,其中视觉传感器已成为自动行走和驾驶的重要组成部分。典型的视觉应用领域是独立的智能导航系统。对于各种视觉技术,图像处理技术相当发达,基于图像的理解技术仍然非常落后。机器视觉只能通过大量的操作来识别一些简单的结构化环境目标。视觉传感器的核心器件是摄像管或CCD,目前的CCD能够实现自动聚焦。但CCD传感器的价格、体积和使用方法都没有优势,所以使用接近传感器是一种实用有效的方法,不需要清晰的图像,只需要粗略的感觉。
在历届全国大学生电子设计竞赛中,集光、机、电于一体的简易智能汽车问题多次出现,飞思卡尔智能汽车竞赛更具影响力。跟踪是智能汽车的基本功能。单片机通过安装在汽车底部的光敏电阻传感器将信号反馈给单片机,以控制汽车在白色道路上行走。
1.研究智能汽车的目的和意义
为了实现自动导轨功能,智能汽车必须感知导线。感知导线给机器人一个视觉功能,选择正确的行驶路线,使用传感器感知路线,并做出判断和相应的执行动作。
该智能小车可以作为机器人的典型代表。它可分为传感器检测部分、执行部分三部分CPU。为了实现自动跟踪功能,机器人还可以扩展测速功能,感知导线和速度。车辆可自动识别路线,选择正确的行驶路线。基于上述要求,传感检测部分考虑到汽车一般不需要感知清晰的图像,只需要粗略的感知,可以放弃昂贵的CCD考虑使用价廉物美的光敏电阻传感器作为传感器。智能汽车的执行部分由直流电机充当,主要控制汽车的方向和速度。单片机驱动直流电机一般有两种方案:一是不占用单片机资源,直接选择PWM功能单片机,可实现精确调速;第二,软件可以模拟PWM输出调制,采用专业的电机驱动芯片进行控制,可实现精确的调速、转向,同时单片机型号选择空间较大。考虑到实际情况,本文选择了第二种方案。CPU使用STC89C52单片机,配合软件编程实现。
1.3智能汽车的现状及未来
现在智能汽车发展迅速,从智能玩具到其他行业都取得了实质性的成果。它基本上可以实现跟踪、避障、检测补丁、照明存储、悬崖等基本功能。这些电子设计竞赛的智能汽车正在向声控系统发展,更著名的飞思卡尔智能汽车走在前列。智能汽车未来的发展方向主要是自动驾驶和导航,汽车将进一步更加智能。
第二章方案的设计与论证
根据要求,确定以下方案:在现有玩具电动汽车的基础上,安装红外传感器、光电探测器,实现对汽车行驶路线和速度条件的实时测量,并将测量数据传输到单片机进行相应处理。单片机目前应用广泛AT89C52单片机。然后单片机根据检测到的各种数据对汽车进行智能控制。该方案可实现实时控制汽车运动状态,控制灵活、可靠、高精度,可满足系统的要求。
2.1主控系统
根据设计要求,我认为该设计是一个复杂的多输入程序控制问题。因此,制定了以下两种方案,并进行了全面的比较论证,具体如下:
方案一:
选用一片CPLD(如EPM7128LC84-15)作为系统的核心部件,实现控制和处理功能。CPLD它具有速度快、编程方便、资源丰富、开发周期短等优点VHDL编写和开发语言。但CPLD比单片机在控制上有很大的劣势。同时,CPLD处理速度很快,汽车的行驶速度不能太高,所以系统处理信息的要求不会太高,在这一点上MCU就已经可以胜任了。如果采用这种方案,在控制上会遇到很多不必要的问题
方案二:
以单片机为整个系统的核心,控制行驶中的汽车,实现其既定的性能指标。充分分析我们的系统,关键是实现汽车的自动控制,在这一点上,单片机显示出其控制简单、方便、快捷的优点。这样,单片机就可以充分发挥其资源丰富、控制功能强、可位搜索操作功能、价格低廉等优点。所以这个方案是理想的方案。
针对本设计特点——多开关量输入的复杂程序控制系统,需要处理多开关量的标准单片机,而不是简化I/O小体积单片机器的小体积单片机,D/A、A/D不需要选择功能。根据这些分析,我们选择了MCS-51单片机。51单片机具有强大的位置操作指令,I/O口均可按位寻址,程序空间多达8K,这个设计绰绰有余,更可贵的是51单片机的价格很低。在综合考虑了传感器、两台电机的驱动等诸多因素后,我们决定充分利用单片机STC89C52单片机资源。
与以上两种方案相比,我们选择了方案2。
2.2电源模块
方案一:
提供5个干电池V考虑到整个系统正常工作时的额定电压,我们选择了方案二;
方案二:
整体采用系统DC 9V干电池经LM稳压三端稳压管输出7805DC 5V电压供电。4节干电池输出电机驱动模块电源DC 6V电压供电。
2.3电机驱动模块设计
方案一:
继电器用于控制电机的开关,并通过开关切换调整汽车的速度。该方案的优点是电路相对简单,缺点是继电器响应时间慢,易损坏,寿命短,可靠性低。
方案二:
主要采用L298N,通过单片机I/O输入改变芯片控制端的电平,可以正反转电机,停止操作
1
0
1
0Ⅹ
0
1
1
0停止
正转
反转
刹停
停止电机驱动采用集成电机驱动芯片L298N。L298N是SGS公司产品包含4通道逻辑驱动电路,是二相和四相电机的专用驱动器,即高压大电流双全桥驱动器,包含两个H桥,接收标准TTL逻辑电平信号可驱动46V、2A以下电机。引脚排列图如图2所示。
OUT1、OUT2和OUT3、OUT4分别连接两个电机MG1、MG2。IN1、IN2、IN3、IN4引脚从单片机输入控制电平,控制电机正饭转。ENA、ENB连接控制使能端,通过pwm波形控制电机转速。L298N逻辑功能表如下图所示,
我们使用电机的速度pwm调速方法。原理是开关管在一个周期内的导通时间是t,周期为T,电机两端的平均电压UVCC*t/Ta*VCC。其中,at/T(占空比),VCC是电源电压。电机的转速与电机两端的电压成正比,电机两端的电压与控制波形的比例成正比,因此电机的速度与比例成正比。
占空比越大,电机转速越快。在硬件电路上,我们使用单片机P1^0~P1^三口分别连接L289N芯片的IN1~IN四、通过改变P1^0~P1^口的高低电平变换以控制小车的前进方向与停转,通过改变P1^0~P1^3口上的高低电平的占空比以控制电机的转速。
Pwm配合桥是驱动电路L298N,实现直流电机调速,简单且调速范围大。因此,我们选用了方案二。
另外,我们特别在直流电机的电枢两端并联一个瓷片电容104,以稳定电机的电压不至于对单片机造成干扰。
2.4 检测模块
本模块分为两个部分,分别为检测循迹模块和测速模块。
第一部分,检测循迹模块
方案一:
寻迹模块我们可以用光敏电阻组成,光敏电阻的阻值可以跟随周围环境光线的变化而变化。当光线照射到黑线上面时,光线反射较弱,光线照射到白色地面上时,光线反射较强。因此当光敏电阻在白色路面和黑线上方时,阻值会发生明显的变化 将阻值的变化值转化为高低电平的变化。但是这种方式受环境光影响较大,实际测试中采用三路光敏检测循迹模块,为了减少可见光的干扰,在信号的输出端加上了一个非门输出信号(减小环境光的干扰)。但在实际测试中发现该电路输出并不稳定,电路图如图六所示,其中发光二极管D1在电路中只是作为电路的辅助光源补充器件,以便于小车在夜间循迹。
方案二:
在这里我们实际采用的是 RPR220 型反射式传感器制作的寻迹模块 RPR220是一种一体化反射型光电探测器,其发射器是一个砷化镓红外发光二极管,而接收器是一个高灵敏度,硅平面光电三极管 当发光二极管发出的光反射回来时,三极管导通并输出低电平。
对比以上两种方案,我们选用方案二。
该器件有如下特点:
1.塑料透镜以提高灵敏度;
2.内置的可见光过滤器以减少离散光的影响;
3.体积小,结构紧凑。
第二部分,测速模块 方案一:
采用目前技术比较先进的霍尔传感器作为测速的核心元件。该器件的优点是体积小,测速精准,误差小,芯片集成度高。但,由于成本较高,因此,未选用该器件。 方案二: 采用目前技术比较成熟的红外光电对射管作为本模块测速核心元件。此处我们选用型号为ITR8104的光电对管。光电对管安装在光电测速盘上小圆孔经过的圆弧上。该传感器具有测速精准、受可见光干扰小、价格便宜、易于装配、使用方便等特点。 将红外对射管安装在光电盘上圆孔的圆弧上,电机每旋转一 周,安装在光电盘上的光电传感器检测4次信号,并将检测的信号送到单片机的外部中断I/O,对外部中断进行中断次数的计数,进而通过程序算法将小车的行驶速度显示在数码管上。
2.5 显示模块
方案一:
采用LCD1602液晶显示器作为显示模块电路显示器件。此方案的优点是可以对小车的行使信息,包括行驶速度、路程、状态等的显示,功能强大。但,考虑到该器件成本较高,且体积较大,因此没有采用。
方案二:
采用四位共阳极数码管作为模块电路的显示器件。通过外部安装在单片机上的光电对射管对光电盘(安装在直流电机转子上)进行单片机的外部中断计速,进而送数码管显示,其中,数码管的高两位显示小车行驶的路程,低两位显示小车的行驶速度。该电路结构简单,成本较低,并且基本满足设计的要求。
对比以上两种方案以及实际设计要求,我们选择方案二
第三章 硬件设计 3.1 总体设计 整个系统基于玩具小车的机械结构,并利用了小车的底盘、转向控制电机、行驶状态控制电机,能够平稳跟踪路面黑色轨迹运行,并能实时的根据小车的行驶情况对小车的状态进行调整,此部分通过专业的电机驱动芯片L298N控制。
小车控制系统总体结构如下图所示。以AT89C52单片机为控制核心,主要由电源模块、寻迹检测模块、红外对射测速模块、直流电机驱动模块、数码管显示模块等功能模块组成。首先利用光电传感器对路面信号进行检测,经过比较器处理后,送给单片机进行实时控制,单片机输出相应的信号给驱动芯片驱动电机转动,从而控制整个小车的运动。与此同时,红外对射管传感器开始对小车的行驶速度进行检测,并通过程序算法将小车的行驶速度与行驶距离实时的显示在数码管上。
3.2 主控电路 本次设计的主控芯片选择为STC89C52。STC89C52是一种低功耗高性能CMOS 8位微控制器,具有8K的系统可编程Flash存储器使用高密度非易失性存储器技术制造,与80C51产品指令和引脚完全兼容片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在线系统可编程Flash ,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。主控电路模块采用AT89C52单片机作为主控芯,CPU采用外部经稳压电路模块输出的+5V直流电源供电,可支持高打1000次以上数据擦写。
3.3 电机驱动电路 电机驱动模块电路是基于一片集成电机驱动芯片L298N,该芯片具有工作稳定,调速范围广且灵活,该部分采用独立的DC+6V直流电源供电,实际调试过程中发现可以通过PWM对电机的的运转速度进行调节。
3.4 循迹检测电路
第一部分,检测循迹模块
检测循迹模块主要采用的是 RPR220 型反射式传感器制作的,RPR220是一种一体化反射型光电探测器,其发射器是一个砷化镓红外发光二极管,而接收器是一个高灵敏度,硅平面光电三极管 当发光二极管发出的光反射回来时,三极管导通并输出低电平。
在此部分中,我们使用了双电压比较器LM393,下图为其引脚功能排列表及电路图。
第二部分,测速模块
如图二十三所示,传感器ITR8104在没有外部中断信号时,ITR8104接收管经R14电阻对外输出高电平,此时PNP三极管Q8工作于截至状态,INT0输出高电平。
当传感器接受到外部中断信号(光电测速盘上的4个小孔),红外传感器接收管的集电极电平被拉低,经限流电阻R28导通三极管Q8,INT0此时电平被拉低,单片机I/O口P3.2产生中断信号,单片机对中断信号进行计数,进而对检测到的数据进行程序算法处理输出。
图二十三 红外对射管测速模块电路
3.5 显示模块电路
显示模块为数码管驱动经典电路,电路中PNP三极管起到开关管的作用用来驱动共阳极数码管。段选端通过1K的限流电阻接单片机的P0口,起到段选的作用,4个位选口接单片机的P2.0至P2.3口,当需要选中单个数码管是,相应的位选口上输出低电平,经PNP三极管后选中相应的位,达到控制的目的,其中R16至R19为限流电阻,防止电流过大,烧毁数码管,起到保护数码管的作用。
第四章 软件设计
4.1 主程序模块
主程序默认单片机上电调用初始化程序以及判断三路传感器的状态,输入到单片机内进行处理后输出,调用循迹子程序,同时单片机的定时器及外部中断服务子程序对检测到的外部中断次数处理,实时刷新显示在数码管上。
4.2 循迹模块程序流程图
根据实际情况,我们分析出了小车的7种行驶状态,如下所示,
小车的7种行驶状态
A B C 状态
a 1
0 1 B路正照在黑线上,小车前进
b 0
0 1 AB找在黑线上,小车左转弯
c 1
1 1 A在黑线上,小车左转弯
d 1
0 0 BC在黑线上,小车右转弯
e 1
1 0 C在黑线上,小车右转弯
f 1
1 1 ABC都不在黑线上,小车保持上一次状态不变
g 0
0 0 ABC都在黑线上,小车停止
第五章 PCB的制作
5.1 PCB的设计制作
采用Protel 99se绘制原理图与PCB板,布线的过程中必须注意焊盘的大小与铜线的宽度。我选取的焊盘内径为0.8mm,外径2mm;正常布线线宽2.5mm,电源与地线宽5mm。从做板的情况来看基本达到制作得要求。
基于Protel 99se 软件的硬件电路原理图见附图一,图1为基于Protel 99se 软件绘制的主板PCB印刷电路板,绘制电路图以及制板整个过程是建立在硬件原理图的成功绘制以及每个部分硬件电路的反复多次测试的基础上完成的。特别是后期制作PCB板的的时候,为了考虑小车实际工作时的需要,三路RPR220红外传感器单独绘制PCB电路板(副板)是根据传感器实际安装位置安装在小车前底部,安装示意图如图6所示。
图2 基于Protel 99se 绘制的主板PCB图(未加泪滴及覆铜前的电路板),图3基于Protel 99se 绘制的主板PCB 3D 效果图,图4 基于Protel 99se 绘制的副板PCB图,图5 基于Protel 99se 绘制的副板PCB 3D效果图。
图1 基于Protel 99se 绘制的主板PCB图(覆铜、泪滴过后的电路板)
图2 基于Protel 99se 绘制的主板PCB图(未加泪滴及覆铜前的电路板)
图3基于Protel 99se 绘制的主板PCB 3D 效果图
图4 基于Protel 99se 绘制的副板PCB图
图5 基于Protel 99se 绘制的副板PCB 3D效果图
图6 基于Protel 99se 绘制的副板PCB 3D效果图
结束语
整个系统的设计以单片机为核心,利用了多种传感器,将软件和硬件相结合。本系统能实现如下功能:
(1)自动沿预设轨道行驶小车在行驶过程中,能够自动检测预先设好的轨道循迹,若有偏离,能够自动纠正,返回到预设轨道上来。
(2)通过安装在主板上的数码管能够实时显示小车当前行驶速度与行驶距离。
从运行情况来看循迹的效果比较好,显示的效果不是很好,我认为是由于软件部分的原因。另外就是小车的速度不好控制,虽然采用了专业的电机控制芯片,但pwm调速有待完善,这也是我这次设计的误区。我相信如果实验条件和时间的允许下我肯定能解决这一问题。
通过本次设计我掌握了很多以前不熟练的东西,认识了很多以前不熟悉得东西,使我在人生上又进了一步。也认识到很多的不足。
谢辞
本设计能够顺利完成,还承蒙沈老师以及身边的很多同学的指导和帮助。在设计过程中,沈老师给予了悉心的指导,最重要的是给了我解决问题的思路和方法,并且在设计环境和器材方面给予了大力的帮助和支持,在此,我对沈老师表示最真挚的感谢!同时感谢所有帮助过我的同学!感谢评阅老师百忙之中抽出时间对本论文进行了评阅!
参考文献
[1]毕万新,李明.单片机原理与接口技术.大连理工大学出版社,2009.7
[2]王东锋,王会良,董冠强. 单片机C语言应用100例[M]. 电子工业出版社,2009.3:
145-300.
[3]韩毅,杨天. 基于HCS12单片机的智能寻迹模型车的设计与实现[J].学术期刊,2008,
29(18):1535-1955.
[4] 王晓明. 电动机的单片机控制[J]. 学术期刊,2002,13(15):1322-1755.
[5]王静霞,杨宏丽,刘莉.单片机应用技术(C语言版).
[6]郭天祥.十天学会单片机C语言
[7]孙涵芳,徐爱卿.MCS-51/96 单片机原理及应用[M]北京:北京航空航天大学出版社,2005.
[8]王化祥,张淑英传感器原理及应用[M]天津:天津大学出版社2004年.
[9]张军,AVR系列单片机C语言编程与应用实例[M]北京:中国电力出版社,2003:25-86.
[10]卓晴,黄开胜,邵贝贝等,学做智能车[M]北京:北京航空航天大学出版社,2007.
[11]高峰 单片微型计算机原理与接口技术[M]北京:科学出版社2003:12-18.
封底
设计(论文)评语:
指导教师:
年
月
日 设计(论文)成绩: 指导教师: 答辩评语:
答辩委员会:
年
月
日 答辩成绩: 答辩委员会: 总评成绩: 系(部)主任: 备注:
附图一
基于单片机循迹小车的设计
1 CPU控制模块(AT89C52单片机)
电机模块驱动电路
红外对射测速模块电路
显示模块电路
晶振电路
复位电路
光敏检测模块电路
电源模块电路