焊接文摘要浙江

点赞:3339 浏览:11790 近期更新时间:2024-02-14 作者:网友分享原创网站原创

毕业设计(论文)

题目智能小车

班姓名指左希庆

2007年6月7日

毕业设计(论文)开题报告

课题名称一,选题来源,目的和意义:

(一)选题来源:教师自拟

(二)选题目的及意义:智能小车的研究,开发和应用涉及,传感技术,电气控制工程,智能控制等学科,智能控制技术是一门跨学科的综合性技术,当代研究十分活跃,应用日益广泛的领域.本课题所设计的智能小车,既具有操作机(机械本体),控制器,伺服驱动系统和检测传感装置,是一种仿人操作,自动控制,可重复编程,能在三维空间完成灵活运动的自动化生产设备.

随着工业自动化的不断发展,工业机器人被广泛应用于工业生产的各个部门,如采掘,喷涂,焊接,医疗等各大领域.由于工业机器人的出现,它不断替代了人们的繁重劳动,大大提高了劳动生产率,减轻了人们的劳动强度,此外,它能在高温,低温,深水,宇宙,放射性和其他有毒,污染环境条件下进行操作,日益体现出它的优越性.

智能控制小车模拟机器人的运作,可以通过自己的动手排除故障,更加可以给学生一个实践操作的空间,加强学生的动手能力和思维能力.

在制作的产品中,发现一些比较符合实际应用的玩具,而且成本低廉,能够运用实际生产并且有一定的新颖度,有一定的社会需求.在制作中提高自身对社会需求方向的灵敏度,发现商机,为自己在以后实现创业这个宏伟的目标中打下一个坚实的基础.

二、课题的主要内容(项目概要):

收集资料

(1)到图书馆查阅有关的专业着作,学术杂志,简报,图纸,说明书等文献资料.

(2)上网查询,收集下载有关的技术资料.

制定本课题的初步设计方案

根据设计思路,初步分析完成本设计需要以下几个模块:

检验识别模块(包括引导线判别模块,电磁检测测里程模块,红外线模块,超声波模块),单片机控制模块,动力和转向模块,时间,里程动态显示模块,加减速模块,遥控控制模块.

主要系统框图(图一)

各方案具体分析如下:

(图一)

(1)引导线识别模块:

方案一:应用红外线传感器,通过红外敏感端对不同颜色的感光能力的不同,可以很容易的辨别白纸上的黑色引导线,在车身底部装上红外对管,分两级控制,使得小车循迹而行,电路容易实现且原理简单,并可以通过调节感光端三极管的限流电阻来调节感光距离,以此来避免不必要的干扰.在小车的车头两边各装一个红外线的发射头,在车头中间部加一个红外线的接收头,这样就可以来判断障碍物的位置,实现避障功能.

方案二:通过普通发光二极管和光敏二极管(三极管)来实现,但受自然光影响严重,且方向感不强,很容易造成判断误差.

经过论证方案一为计划方案

(2)电磁检验测里程模块

方案一:可选择透射式光电传感器或反射式光电传感器.这样需在车轮上作比较大的机械加工(打孔或粘贴黑白反光板),而且市场上能写到的可用的光电传感器体积较大,不易安装

经过论证方案二计划方案

(3)动力和方向控制模块

方案一:动力方面在单片机构建一个电阻网络,通过电阻的分压作用,对小车的速度进行控制.转向方面靠单刀双掷的继电器控制.如若这样做,动力和转向电路和原理简单,实施方便,但动力电路精度太差并且外电阻对电动机的分流作用使电源利用率太低.转向电路控制时时性太差,不能时时监控,也不稳定.

方案二:动力方面和转向方面采用L298电机驱动芯片,L298是恒压恒流双H桥集成电机芯片,可同时控制两个电机,且输出电流可达到2A.L298的IN2(第7引脚),IN4(第12引脚)分别与单片机的I/O口相连,作为调制信号.另外用反向缓冲器SN74LS06与IN2,IN4共同使用,控制直流电机的方向和转速.这样精度高并且稳定,可行性好,而且通过编程能实现人机分离,利于调试.

方案三:动力方面通过模型检测设--模型建立--模型求解--模型分析--模型检验--模型应用的数学建模方法,对周边的环境进行测试然后单片机依靠D/A输出的模拟量对小车的速度控制,转向方面采用桥臂电路.本方案特点精确可靠稳定但电路过于复杂,并且数学建模需要对环境进行精确,多次的测量不利于大赛的时间.

经过论证方案二为计划方案

(4)测距模块

方案一:超声波测距原理是发射器向某一方向发射超声波,在发射时刻的同时

始计时,超声波在空气中传播,途中碰到障碍物就立即返回来,超声波接收,收到反射波就立即停止计时.超声波在空气中的传播速度为340m/s,根据计时器记录的时间t,就可以计算出发射点距障碍物的距离(s),即:s等于340t/2这就是所谓的时间差测距法

方案二:通过普通发光二极管和光敏二极管(三极管)来实现,但受自然光影响严重,且方向感不强,很容易造成判断误差.而红外线能测到的距离没有超声波的距离远,检测不到障碍物.

经过论证方案一为最终方案

(5)里程,时间显示模块

离障碍物距离和里程实现5秒的交替动态显示,以精确实时表达小车的行驶情况.

(6)单片机控制模块

本设计采用了Atmel公司的AT89C52,它支持在线调试,这就大大减少了调试不断拔插芯片的烦恼,另外Atmel公司的AT89C52是一款集成化很高的芯片,利于小车调试和装载.在设计过程中,我们巧妙运用单片机I/O口和特殊功能,尽可能少的去占用口线.可以说,如果时间有充分的话,我们会利用其他I/O来设计更多的功能和一些更精密精巧的设计.

(7)电源模块

本模块采用9V蓄电池供电.在电车底座空隙装置9V蓄电池供电,方便有有效的利用空间.且蓄电池电量比干电池充足,占用空间相对小.

(8)遥控控制模块

遥控模块的选择有声,光,磁,电,波等几种形式,考虑到声音遥控受外界干扰较大,光控也有同样的弊病,磁,电等都受发射距离的限制,所以我们采用由Atmel公司的89C52单片机和HS0038一体化红外接收头作为小车遥控控制启停的控制器.由于空气中的红外光强度很小,因此我们采用UPD6121编码芯片作为红外发射器的控制核心部件,这样一来,由此红外发射系统发出的红外信号就具有相当高的强度,足以被与其配套的接收器件接收到.接收器件是根据发射器发射的红外信号进行调制和处理,然后进一步处理成电信号来对小车进行启动和停止的控制.在制作中,软件设计有一个很大的难度,解码程序的调试和编写是难点也是亮点.实际上,由于发射能力强,传输距离远,接受模块精度高,抗干扰能力强,且辨码率高,所以,此红外发射,接收模块不仅能完成小车的遥控控制的功能,还能实现其它许多功能.当然,虽然此遥控模块设计巧妙,功能比较齐全,但受时间,水平限制,肯定有不尽人意之处,我们一定继续努力,设计出更好的遥控模块,和其他方面的作品.

主要模块计划采用的方案

检验识别部分:采用红外线接收对管传感器实现循迹识别

障碍判别部分:采用红外线来实现对障碍物位置的判别

动力和转向部分:采用L298电机驱动芯片实现对小车方向控制

距离检测部分:霍尔传感器A44E测量里程

显示部分:液晶动态交替显示时间,里程

超声波测距部分:采用超声波来测量障碍物距离

单片机控制部分:Atmel公司的AT89C51

(四)软件流程图

(图二)

(五)根据本课题的原理图,绘制出线路板图.

1,选定印制线路板的材料,板厚和板面尺寸.

2,确定印制线路板的对外电连接方式.

3,设计印制线路板坐标尺寸图.

4,绘制印制线路板照相原图.

5,绘制印制线路板元件装配图.

6,器件布局.

7,布线.

(六)自己动手制作实物(焊接工艺与整机装配).

电子产品的焊接装配是在元器件加工整形,导线加工处理之后进行的,装配也是制作实物的重要环节.要求焊点牢固,配线合理,电气连接良好,外表美观,保证焊接与装配的工艺质量.

(七)调试与质量检测.

(八)撰写毕业设计论文.

(九)资料整理,作好答辩准备,进行答辩.

三、实施计划(设计工作的主要阶段,进度和完成时间等):

初期先是产品设计方案的选定.选定后就是元件采购阶段,之后就是产品的制作及调试过程,最后就是产品完成整理.

我们的进度是这样的:在本学期实现产品设计方案的选定,定下一个可行性较高的方案作为制作的基本方案.在下学期处一个月内我们将完成元件的采购和电路的设计及电路板的制作等工作,之后就是最后的电路安装和调试过程.最后完成时间大致在明年的四月底五月初.

四、现有的条件,人员及主要设备情况:

(1).现有条件:学校图书馆相关资料.

(2).主要设备:学校实验室相关设备.

(3).人员:张卫龙整体电路的设计与安排,以及产品的最后调试工作.

钱鹏霄主要负责PCB板的制作,和最后硬件的连接.

王传晓元件的采购和软件的编译还有就是最后的资料整理工作.

五、参考文献:

[1]杨西明.单片机编程与应用入门[M].机械工业出版社,2005

[2]张友德.单片机原理与应用技术[M].机械工业出版社,2004

[3]万文略.单片机原理与应用[M].重庆大学出版社学生

姓名学号专业

班级qianpengxiao@163.毕业设计(论文)题目指导

教师职称部门设计(论文)的主要内容及要求:

采用AT89C2051单片机设计一个发音系统.

任务1:小车能够实时测出与障碍物间的距离,并通过液晶实时显示.

任务2:小车在启动后的一段距离内加速,达到最大速度后匀速行驶,在距离障碍物一定距离后减速,要求不能碰到障碍物.

内容:

小车能够实时测距,可以考虑采用超声波测距,

小车的状态能够实时通过液晶显示,

小车能够实现自动控制,

小车可遥控,

注:带下划线的部分为学生发挥部分.推荐参考文献:

[1]R高速嵌入式单片机原理与应用,耿德根,马朝等,北京航空航天大学出版社,2002.10

[2]R单片机C语言开发入门指导,詹前卫等,清华大学出版社,2003.5

[3]R系列单片机编程与应用实例,金春林等,清华大学出版社,2003.11

[4]Nokia3310LCD_datasheet.pdf指导教师对学生开题意见和进度要求:

指导教师签名:

年月日

毕业设计(论文)成绩考核表

指导教师评语:

指导教师签名:

年月日答辩评审意见:

答辩组长签名:

年月日成绩:

(验收盖章)

年月日

摘 要

智能作为现代的新发明,是以后的发展方向,他可以按照预先设定的模式在一个环境里自动的运作,不需要人为的管理,可应用于科学勘探等等的用途.智能小车就是其中的一个体现.本次设计的简易智能电动车,采用AT89S52单片机作为小车的检测和控制核心,采用红外线接收对管来检测路上感应到的黑色轨道线,从而把反馈到的信号送单片机,使单片机按照预定的工作模式可控制小车预先设计好的路线或轨道行驶,采用霍尔元件A44E检测小车行驶速度,采用红外线检测来判断障碍物的位置,采用1602LCD实时显示小车障碍物的距离,小车停止行驶后,轮流显示小车行驶时间,1.设计任务1

2.设计要求及原理分析1

2.1基本要求:1

2.2原理分析1

2.2.1电控系统分析1

2.2.2机械系统分析1

2.2.3传感器设置与布局分析1

3.传感器和总控电路的选型与工作方式选取2

3.1红外探测器的选型与工作方式2

3.1.1红外探测器的选型2

3.1.2主动式红外探测器的工作方式选取3

3.2超声探测器的选型与工作方式3

3.2.1超声探测器的选型3

3.2.2用超声波探测器测距的工作方式的选取3

3.3总控电路的选型3

4.方案比较与选择:4

4.1引导线识别模块4

4.2显示模块:5

4.3测速模块:5

4.4控速模块:6

4.5障碍探测模块方案分析与比较7

4.6刹车机构功能方案比较8

4.7复位电路模块:8

4.7遥控模块:8

5最小系统图:9

6最终PCB板图:10

7程序框图:10

8系统程序:12

9调试16

致谢17

轴上,通过对脉冲的计数进行车速测量.

方案二:

采用红外传感器进行测速.但无论是反射式红外传感器还是对射式红外传感器,他们对都对环境要求较高,易受外部环境的影响,稳定性不高,且较为昂贵.

通过对方案一,方案二的比较其优缺点,综合多方面因素决定选用方案1,其原理图接线如图4.3所示:

图4.3霍尔A44接线图

4.4控速模块:

方案一:

使用功率三极管作为功率放大器的输出控制直流电机.线性型驱动的电路结构和原理简单,成本低,加速能力强,但功率损耗大,特别是低速大转距运行时,通过电阻R的电流大,发热厉害,损耗大,对于小车的长时间运行不利.

方案二:

采用继电器对电动机的开或关进行控制,通过开关的切换对小车的速度进行调整.此方案的优点是电路较为简单,缺点是继电器的响应时间慢,易损坏,寿命较短,可靠性不高.

方案三:

采用由集成了双极性管组成的H桥电路芯片L298.用单片机控制晶体管使之工作在占空比可调的开关状态,精确调整电机转速.这种电路由于工作在管子的饱和截止模式下,效率非常高,H桥电路保证了可以简单地实现转速和方向的控制,电子开关的速度很快,稳定性也很高,是一种广泛采用的调速技术.

综合三种方案的优缺点,决定选择方案三,其电路原理图如图4.4所示:

图4.4动力和方向控制模块模块原理图

4.5障碍探测模块方案分析与比较

考虑到在测障过程中小车车速及反应调向速度的限制,小车应在距障碍物40CM的范围内做出反应,这样在顺利绕过障碍物的同时还为下一步驶入车库寻找到最佳的位置和方向.否则,如果范围太大,则可能产生障碍物的判断失误,范围过小又很容易造成车身撞上障碍物或虽绕过障碍物却无法实现理想定向方案.

方案一:

采用一只红外传感器置于小车.一只红外传感器小车安装简易,也可以检测到障碍物的存在,但难以确定小车在水平方向上是否会与障碍物相撞,也不易让小车做出精确的转向反应.

方案二:

采用二只红外传感器分置于小车两边.二只红外传感器分别置于小车的前端两侧,方向与小车前进方向平行,对小车与障碍物相对距离和方位能作出较为准确的判别和及时反应.但此方案过于依赖硬件,成本较高,缺乏创造性,而且置于小车左方的红外传感器用到的几率很小,所以最终未采用.

方案三:

采用一只红外传感器置于小车右侧并与小车前进方向呈一固定角度.

基于对C点后行车地图中光源及障碍物尺寸,位置的分析,我们采用了从C点出发即获得光源对行车方向的控制,在向光源行驶的过程之中检查障碍物并做出相应的反应,这样不仅只使用一只红外传感器就实现了避障,而且避免因小车自然转弯而导致的盲目方向控制,同时为后面以最简单直接的路线和在最短时间内驶入车库创造了机会.

智能小车应以准确,智能见优,采用方案三.

4.6刹车机构功能方案比较

方案一,自然减速式

当系统发出停止信号时停止给驱动电机供电,小车在无动力状态因阻力而自然变为静止.由于惯性,小车全速行驶时需1.8秒后才能停止,因车轮滑行造成的误差较大.无法实现精确制动的目标.

方案二,反转式

当小车需要停车时给驱动电机以反转信号,利用轮胎与跑道的摩擦力抵消惯性效应.由于车速是渐减的,反向驱动信号长度也要渐减,否则小车可能反向行驶.使用此方案后全速刹车反应时间减少为0.5s.

本系统中采用方案二.

4.7复位电路模块:

单片机的复位电路通过手动来实现,复位电路图如图4.5所示.

图4.5复位电路原理图

4.7遥控模块:

遥控模块的选择有声,光,磁,电,波等几种形式,考虑到声音遥控受外界干扰较大,光控也有同样的弊病,磁,电等都受发射距离的限制,所以我们采用由Atmel公司的89C52单片机和HS0038一体化红外接收头作为小车遥控控制启停的控制器.由于空气中的红外光强度很小,因此我们采用UPD6121编码芯片作为红外发射器的控制核心部件,这样一来,由此红外发射系统发出的红外信号就具有相当高的强度,足以被与其配套的接收器件接收到.接收器件是根据发射器发射的红外信号进行调制和处理,然后进一步处理成电信号来对小车进行启动和停止的控制.在制作中,软件设计有一个很大的难度,解码程序的调试和编写是难点也是亮点.实际上,由于发射能力强,传输距离远,接受模块精度高,抗干扰能力强,且辨码率高,所以,此红外发射,接收模块不仅能完成小车的遥控控制的功能,还能实现其它许多功能.当然,虽然此遥控模块设计巧妙,功能比较齐全,但受时间,水平限制,肯定有不尽人意之处,我们一定继续努力,设计出更好的遥控模块,和其他方面的作品.(原理图见附录四)

5最小系统图:

该系统主要用到的是单片机,所以主要的部分是最小系统图,该最小系统图如图5.1所示,其余部分见附录三

图5.1单片机的最小系统原理图

6最终PCB板图:

该最小系统的最终PCB板图(包括LCD接口以及其他的外部扩展电路部分,考虑到最小系统的简洁以及容易看懂,外部扩展电路不在最小系统图上显示.)如图6.1所示

图6.1最小系统的PCB板图

7程序框图:

52单片机主程序框图,障碍物感应程序框图和寻迹程序框图分别如图7.1所

图7.1程序流程图

8系统程序:

寻迹子程序:

按照预定的功能,系统实现预定的功能的程序如下所示:

voidinte_infrared(void)interrupt0

{unsignedinti,

unsignedintdatapackettemp等于0,

unsignedintdatapacketend等于0,

unsignedintdatapacketstart等于0,

decode_counter++,EX0等于0,datapacketend等于0,

if(decode_counter等于等于1)

{TR0等于1,

while(remotein等于等于1&,(TH0<,53)),//低电平

datapacketstart等于TH0,

datapacketstart等于datapacketstart<,<,8,

datapacketstart等于datapacketstart|TL0,

while(remotein等于等于0&,(TH0<,35)),//记录起始时间

while(remotein等于等于1&,(TH0<,53)),//脉冲结速

datapackettemp等于TH0,

datapackettemp等于datapackettemp<,<,8,

datapackettemp等于datapackettemp|TL0,

datapacketend等于datapackettemp-datapacketstart,

TR0等于0,TH0等于0,TL0等于0,

}//记下13.5ms的引导码

if((datapacketend<,0x34BC)&,&,(datapacketend>,0x2EE0))//确认是红外信号

{

TR0等于1,TH0等于0,TL0等于0,//确认时间

datapacket等于i等于0,//初始化

for(i等于0,i<,等于31,i++)

{TR0等于1,TH0等于0,TL0等于0,

datapackettemp等于TH0,

datapackettemp等于datapackettemp<,<,8,

datapackettemp等于datapackettemp|TL0,//已经为低电平,应该马上记下时间

while(remotein等于等于0&,(TH0<,3)),

while(remotein等于等于1&,(TH0<,9)),

datapackettemp等于TH0,

datapackettemp等于datapackettemp<,<,8,

datapackettemp等于datapackettemp|TL0,

datapacketend等于datapackettemp-datapacketstart,

if(i>,23){

if((datapacketend>,0x0630)&,&,(datapacketend<,0x08cb))//为1

{datapacket等于(datapacket<,<,1)+1,}

if((datapacketend>,0x0231)&,&,(datapacketend<,0x0465))//为零

{datapacket等于datapacket<,<,1,}

elsedatapacketend等于0,//无效操作

}

TR0等于0,TH0等于0,TL0等于0,EX0等于0,

}//endfor

}

run_key(),

TCON等于TCON&,0xfd,EX0等于1,TR0等于0,TH0等于0,TL0等于0,decode_counter等于0,

}

按键子程序:

voidrun_key()

{

switch(datapacket){

case0xfe:

ahead(0),

break,

case0xde:

right(0),

break,

case0xee:

left(0),

break,

case0xce:

stop(0),

break,

case0x7e:

flag_follow等于1,//循迹开

break,

case0x5e:

flag_follow等于0,//循迹关

default:

break,

}

datapacket等于0x00,

}

voidtime_1s()interrupt3

{

k--,

if(!k){

count_time++,

k等于4000,

count++,

if(count等于等于5)flag_display等于1,

if(count等于等于10){

flag_display等于0,

count等于0,}

}

}

voiddistance()interrupt2

{

caculate_distance等于caculate_distance+1,

}

voiddisplay_t()

{

n_1等于count_time%60%10,

n_2等于count_time%60/10,

n_3等于count_time/60%10,

n_4等于count_time/60/10,

P1_3等于0,

P0等于time[n_1],

if(flag_follow&,P2_1){left(15),ahead(0),}

delay_all(20),

P1_3等于1,

P0等于0xff,

P1_2等于0,

P0等于time[n_2],

if(flag_follow&,P2_2){right(15),ahead(0),}

delay_all(20),

P1_2等于1,

P0等于0xff,

P1_1等于0,

P0等于distance_point[n_3],

if(flag_follow&,P2_1){left(15),ahead(0),}

delay_all(20),

P1_1等于1,

P0等于0xff,

P1_0等于0,

P0等于time[n_4],

if(flag_follow&,P2_2){right(15),ahead(0),}

delay_all(20),

P1_0等于1,

P0等于0xff,

}

voiddisplay_d()

{

n_1等于caculate_distance%10,

n_2等于caculate_distance/10%10,

n_3等于caculate_distance/100%10,

n_4等于caculate_distance/1000%10,

P1_3等于0,

P0等于time[n_1],

if(flag_follow&,P2_1){left(15),ahead(0),}

delay_all(20),

P1_3等于1,

P0等于0xff,

P1_2等于0,

P0等于distance_point[n_2],

if(flag_follow&,P2_2){right(15),ahead(0),}

delay_all(20),

P1_2等于1,

P0等于0xff,

P1_1等于0,

P0等于time[n_3],

if(flag_follow&,P2_1){left(15),ahead(0),}

delay_all(20),

P1_1等于1,

P0等于0xff,

P1_0等于0,

P0等于time[n_4],

if(flag_follow&,P2_2){right(15),ahead(0),}

delay_all(20),

P1_0等于1,

P0等于0xff,

}

9调试

能正确的按照遥控指令进行启动,左转,右转,停止,在进行寻迹调试时发现在驶出轨道左面时能快速灵敏的驶回原轨道,但在驶出右面时有时不能驶回原轨道,反应不是很灵敏,后来发现右面的红外对管的反射距离没有左面的反射距离大,最后我们决定采用垫高右面的轨道来达到右面红外对管的反射距离,经过这一处理基本可以达到寻迹的要求了.

致谢

在本次设计过程中,我们小组得到了很多来自各方面的帮助,特别是左希庆老师,从最初设计方向的确立,搜集各方资料,到真正进入到软硬件实际操作,反复更正补充,修改都得到了他的全程指导.其次,感谢同学们的帮助.由于工作比较的忙,耽误了一些设计的时间,是一些同学在默默的帮助我,使我的毕业设计能够在这段期间比较成功完成.

最后,谢谢学校领导对我们毕业设计的关注

art,

if(i>,23){

if((datapacketend>,0x0630)&,&,(datapacketend<,0x08cb))//为1

{datapacket等于(datapacket<,<,1)+1,}

if((datapacketend>,0x0231)&,&,(datapacketend<,0x0465))//为零

{datapacket等于datapacket<,<,1,}

elsedatapacketend等于0,//无效操作

}

TR0等于0,TH0等于0,TL0等于0,EX0等于0,

}//endfor

}

run_key(),

TCON等于TCON&,0xfd,EX0等于1,TR0等于0,TH0等于0,TL0等于0,decode_counter等于0,

}

/*************************************/

//键扫描盘

/*************************************/

voidrun_key()

{

switch(datapacket){

case0xfe:

ahead(0),

break,

case0xde:

right(0),

break,

case0xee:

left(0),

break,

case0xce:

stop(0),

break,

case0x7e:

flag_follow等于1,//循迹开

break,

case0x5e:

flag_follow等于0,//循迹关

default:

break,

}

datapacket等于0x00,

}

voidtime_1s()interrupt3

{

k--,

if(!k){

count_time++,

k等于4000,

count++,

if(count等于等于5)flag_display等于1,

if(count等于等于10){

flag_display等于0,

count等于0,}

}

}

voiddistance()interrupt2

{

caculate_distance等于caculate_distance+1,

}

voiddisplay_t()

{

n_1等于count_time%60%10,

n_2等于count_time%60/10,

n_3等于count_time/60%10,

n_4等于count_time/60/10,

P1_3等于0,

P0等于time[n_1],

if(flag_follow&,P2_1){left(15),ahead(0),}

delay_all(20),

P1_3等于1,

P0等于0xff,

P1_2等于0,

P0等于time[n_2],

if(flag_follow&,P2_2){right(15),ahead(0),}

delay_all(20),

P1_2等于1,

P0等于0xff,

P1_1等于0,

P0等于distance_point[n_3],

if(flag_follow&,P2_1){left(15),ahead(0),}

delay_all(20),

P1_1等于1,

P0等于0xff,

P1_0等于0,

P0等于time[n_4],

if(flag_follow&,P2_2){right(15),ahead(0),}

delay_all(20),

P1_0等于1,

P0等于0xff,

}

voiddisplay_d()

{

n_1等于caculate_distance%10,

n_2等于caculate_distance/10%10,

n_3等于caculate_distance/100%10,

n_4等于caculate_distance/1000%10,

P1_3等于0,

P0等于time[n_1],

if(flag_follow&,P2_1){left(15),ahead(0),}

delay_all(20),

P1_3等于1,

P0等于0xff,

P1_2等于0,

P0等于distance_point[n_2],

if(flag_follow&,P2_2){right(15),ahead(0),}

delay_all(20),

P1_2等于1,

P0等于0xff,

P1_1等于0,

P0等于time[n_3],

if(flag_follow&,P2_1){left(15),ahead(0),}

delay_all(20),

P1_1等于1,

P0等于0xff,

P1_0等于0,

P0等于time[n_4],

if(flag_follow&,P2_2){right(15),ahead(0),}

delay_all(20),

P1_0等于1,

P0等于0xff,

}

voidmain()

{

stop(0),

initial_T1(),

while(1)

{

if(!flag_display){display_t(),}

if(flag_display){display_d(),}

if(flag_follow)

{

if(P2_1)

{

left(2000),

}

if(P2_2)

{

right(2000),

}

ahead(0),

}

}

}

附录三:

整体原理图

附录四:

遥控原理图

湖州职业技术学院高职理工类毕业设计教师指导表

题目参加学生指导情况记录阶段阶段内容指导内容日期123456注:阶段与学生进度安排相一致

湖州职业技术学院毕业设计答辩情况记录表

班级学号姓名课题名称设计中采用的主要技术

课题中承担的主要任务

自我评价

(以下由答辩教师填写)评测项目评定成绩毕业设计选题与专业方向的贴近度设计中采用的技术路线的合理性提交完成的应用系统的质量软硬件的设计与调试能力与课题相关的专业知识和技能的运用情况答辩中提出的问题

综合评定

答辩组签名:______________,______________,______________

答辩时间:年月日

湖州职业技术学院毕业设计评定情况记录表

班级学号姓名课题名称设计中采用的主要技术

课题中承担的主要任务

自我评价

(以下由评审教师填写)评测项目评定成绩毕业设计选题与专业方向的贴近度设计中采用的技术路线的合理性提交完成的应用系统的质量软硬件的设计与调试能力与课题相关的专业知识和技能的运用情况毕业设计文档质量其他综合评定

评审组签名:______________,______________,______________

评审时间:年月日

注:未参加答辩学生填写本表

湖州职业技术学院机电类专业

第27页共41页

红外发光管

红外接收管

分立元件型

透射遮挡型

反射型

图3.1主动式红外探测器的形式

单片机控制

加减速控制模块

检验识别,循迹模块

动力,方向控制模块

遥控控制模块

里程,时间显示模块

电源模块

超声波模块

红外线模块

加减速控制模块

单片机控制

检验识别,循迹模块

动力,方向控制模块

遥控控制模块

里程,时间显示模块

电源模块

超声波模块

红外线模块

检测到在左向右转

传感器

结束

显示总里程

走完黑线停车

沿黑线行驶

前进10秒停车

前进

向右转

向左转

是否检测到黑线

小车启动

程序初始化

是否检测到障碍物