电子设计竞赛论文智能车.docx
《电子设计竞赛论文智能车.docx》由会员分享,可在线阅读,更多相关《电子设计竞赛论文智能车.docx(77页珍藏版)》请在冰点文库上搜索。
电子设计竞赛论文智能车
。
智能小车(C题)
【本科题】
一、任务
甲车车头紧靠起点标志线,乙车车尾紧靠边界,甲、乙两辆小车同时起动,先
后通过起点标志线,在行车道同向而行,实现两车交替超车领跑功能。
跑道如图
1所示。
C-2
二、要求
1.基本要求
(1)甲车和乙车分别从起点标志线开始,在行车道各正常行驶一圈。
(2)甲、乙两车按图1所示位置同时起动,乙车通过超车标志线后在超车
区内实现超车功能,并先于甲车到达终点标志线,即第一圈实现乙车超过甲车。
(3)甲、乙两车在完成
(2)时的行驶时间要尽可能的短。
2.发挥部分
(1)在完成基本要求
(2)后,甲、乙两车继续行驶第二圈,要求甲车通过超
车标志线后要实现超车功能,并先于乙车到达终点标志线,即第二圈完成甲车超
过乙车,实现了交替领跑。
甲、乙两车在第二圈行驶的时间要尽可能的短。
(2)甲、乙两车继续行驶第三圈和第四圈,并交替领跑;两车行驶的时间
要尽可能的短。
(3)在完成上述功能后,重新设定甲车起始位置(在离起点标志线前进方
向40cm范围内任意设定),实现甲、乙两车四圈交替领跑功能,行驶时间要尽可
能的短。
三、评分标准
设计报告
项目主要内容满分
系统方案总体方案设计与比较2
理论分析与计算
信号检测与控制
两车之间的通信方法
节能
6
电路与程序设计
电路设计
程序设计7
测试方法与测试结果
测试方案及测试条件
测试结果完整性
测试结果分析
3
设计报告结构及规范性
摘要
设计报告正文的结构
图表的规范性
2
总分20
基本部分实际制作完成情况50
发挥部分
完成第
(1)项15
完成第
(2)项10
完成第(3)项20
其他5
总分50
四、说明:
1.赛车场地由2块细木工板(长244cm,宽122cm,厚度自选)拼接而成,
C-3
离地面高度不小于6cm(可将垫高物放在木工板下面,但不得外露)。
板上边界线
由约2cm宽的黑胶带构成;虚线由2cm宽、长度为10cm、间隔为10cm的黑胶带
构成;起点/终点标志线、转弯标志线和超车标志区线段由1cm宽黑胶带构成。
图1中斜线所画部分应锯掉。
2.车体(含附加物)的长度、宽度均不超过40cm,高度不限,采用电池供
电,不能外接电源。
3.测试中甲、乙两车均应正常行驶,行车道与超车区的宽度只允许一辆车行
驶,车辆只能在超车区进行超车(车辆先从行车道到达超车区,实现超车后必须
返回行车道)。
甲乙两车应有明显标记,便于区分。
4.甲乙两车不得发生任何碰撞,不能出边界掉到地面。
5.不得使用小车以外的任何设备对车辆进行控制,不能增设其它路标或标
记。
6.测试过程中不得更换电池。
7.评测时不得借用其他队的小车。
2011年全国大学生电子设计竞赛陕西赛区
竞赛设计报告封面
作品编号:
(由组委会填写)
……………………………剪切线………………………………
作品编号:
(由组委会填写)
参赛队编号
(参赛学校填写)
学校编号
组(队)编号
选题编号
说明
1.为保证本次竞赛评选的公平、公正,将对竞赛设计报告采用二次编码;
2.本页作为竞赛设计报告的封面和设计报告一同装订;
3.“作品编号”由组委会统一编制,参赛学校请勿填写;
4.“参赛队编号”由参赛学校编写,其中“学校编号”应按照巡视员提供的组
委会印制编号填写,“组(队)编号”由参赛学校根据本校参赛队数按顺序编排,“选题编号”由参赛队员根据所选试题编号填写,例如:
“0105B”或“3367F”。
5.本页允许各参赛学校复印
摘要
智能小车由两辆相同电动小车组成。
本系统是基于自动控制原理,针对多通道多样化传感器综合控制;采用PWM技术动态控制电动小车的运动速度和运动方向;利用红外传感器器检测道路上的边沿。
本系统的控制部分以8位51系列单片机STC89C52为核心,通过红外探测车道内线,自动寻找行驶路线,确保小车按规定的路线行驶。
当小车进入超车区,当被超小车(甲车)进入开始减速,当要超车小车(乙车)也进入超车去后,向甲车发出超车请求信号,甲车收到乙车的信号后进一步减速,并回应乙车,可以超车,乙车接收到信号后走转进入超车去,同时加速。
当乙车超过甲车的位置,向右转驶出超车去,并向甲车发出超车结束信号。
甲车接收到信号后加速到正常速度行驶。
关键词:
单片机,智能小车,超车,红外传感器,PWM技术,STC89C52,PWM系统
一.系统方案选择和论证
1.1题目任务及要求
1.1.1题目任务
甲车车头紧靠起点标志线,乙车车尾紧靠边界,甲、乙两辆小车同时起动,先后通过起点标志线,在行车道同向而行,实现两车交替超车领跑功能。
小车车道如图1.1所示。
图1.1 智能小车跑道
1.1.2题目要求
(1)甲车和乙车分别从起点标志线开始,在行车道各正常行驶一圈。
(2)甲、乙两车按图1所示位置同时起动,乙车通过超车标志线后在超区内实现超车功能,并先于甲车到达终点标志线,即第一圈实现乙车超过甲车。
(3)甲、乙两车在完成
(2)时的行驶时间要尽可能的短。
1.1.3题目说明
(1)赛车场地由2块细木工板(长244cm,宽122cm)拼接而成,离地面高度不小于6cm(可将垫高物放在木工板下面,但不得外露)。
板上边界线由约2cm宽的黑胶带构成;虚线由2cm宽、长度为10cm、间隔为10cm的黑胶带构成;起点/终点标志线、转弯标志线和超车标志区线段由1cm宽黑胶带构成。
图1.1中斜线所画部分应锯掉。
(2)车体(含附加物)的长度、宽度均不超过40cm,高度不限,采用电池供电,不能外接电源。
(3)测试中甲、乙两车均应正常行驶,行车道与超车区的宽度只允许一辆车行驶,车辆只能在超车区进行超车(车辆先从行车道到达超车区,实现超车后必须返回行车道)。
甲乙两车应有明显标记,便于区分。
(4)甲乙两车不得发生任何碰撞,不能出边界掉到地面。
(5)不得使用小车以外的任何设备对车辆进行控制,不能增设其它路标或标记。
(6)测试过程中不得更换电池。
1.2系统基本方案
根据题目要求,系统可以划分为控制部分和信号检测部分。
其中信号检测部分包括:
边界检测模块,超车区检测模块。
控制部分包括:
速度控制模块,方向控制模块。
模块框图如图1.2为实现各模块的功能,分别作了几种不同的设计方案并进行了论证。
图1.2系统模块框图
1.3各模块方案选择和论证
1.3.1控制器模块
根据题目要求,控制器主要用于各个传感器信号的接收和辨认、控制小车的电机的转速、控制舵机转向等。
对于控制器的选择有以下三种方案。
方案一:
采用新华龙C8051F02作为系统控制器,C8051F020微控制器的内核CIP-51在保持CISC结构及指令系统不变的基础上对指令实行流水作业,该器件废除了机器周期的概念,它的指令以时钟周期为运行单位,因而大大提高了指令的运行速度。
与以前的51系列单片机相比,C8051F020增添了许多功能,同时其可靠性和速度也有了很大提高。
但该单片机系统相对传统的51系列单片机价格较高,而且他的大量的资源在本系统都用不到,造成很到的资源浪费。
方案二:
采用ATMEL公司的AT80C51作为系统控制器,AT89C51便宜,稳定,开发简单,通用性好,但其程序存储器只有4k,大大限制了程序长度,适用范围也应此受到限制,而且就是速度也不快。
方案三:
采用STMicroelectronics公司的STC89C52作为系统控制器.STC89C52便宜,稳定,开发简单,通用性好,低功耗,而且内部有8K字节Flash储器.存储空间较大。
由于智能小车的控制是速度要求不高,STC89C52完全满足他的要求。
基于以上分析拟定方案三。
小车单片机控制的方框图如图1.3所示
图1.3单片机控制的方框图
1.3.2路线探测模块
路面检测模块实现小车从指定轨道行驶,在行驶的途中不能超出轨道。
考虑到轨道边沿是黑胶带组成的黑线,可以利用传感器辨认路面是否为黑色。
(1)对路面识别的选择有以下方案
方案一:
利用定时器来计算小车的行驶距离,判断小车当前状态。
如果到转弯处,则减速,边转动合适的角度。
直线道路上则可保持较大速度行驶。
但直流电机的转速要准确控制很难,且不同场地小车的行驶速度也有差异。
方案二:
用A、B、C、D探测器小车车道外沿进行探测,当A探测到黑线,B、C、D都是非黑色区时小车直走。
当B、C、D为黑色是小车向左转适当的角度。
当A为白色时,小车右转。
当小车在转角处时因为转角太大,小车不能及时转过来,小车会开可能出车道。
方案三:
用A、B、C、D红外探头小车车道内沿进行红外探测,当A探测到黑线,B、C、D都是白色区时小车直走。
当B或C或D为黑色是小车向右转适当的角度。
当A为白色时,小车左转适当的角度。
由于内侧边界不存在直角,小车完全可以转过来。
基于以上分析拟定方案三。
小车探测器状态真值表如表1.1所示
表1.1为使用四个红外传感器时的状态真值表(黑色为高),从表中可以看出,中间的传感器起到预判的作用,在小车轻微偏离时,可以调整车轮小幅度偏转,一旦小车速度过快,严重偏离轨道时,调整小车大幅度偏转,小车的稳定度和速度得到了保证。
基于以上分析,拟定方案三。
表1.1探测器状态真值表
传感器编号
小车状态/处理方式
D
C
B
A
偏右/左拐20读
0
0
0
0
正常/直走
0
0
0
1
轻度偏左/右拐5度
0
0
1
1
中度偏左/右拐10度
0
1
1
1
重度偏左/右拐20度
1
1
1
1
(2)对传感器的选择有以下方案。
方案一:
采用热探测器。
热探测器是利用所接收到的红外辐射后,会引起温度的变化,温度的变化引起电信号输出,且输出的电信号与温度的变化成比例,当红外线被黑线吸收是、时,温度会减小,电压变低,而红外线没有被吸收时,电压不变,单片机可以根据电压的变化来判断路面的状态。
由于温度变化是因为吸收热辐射能量引起的,与吸收红外辐射的波长没有关系,即对红外辐射吸收没有波长的选择,因此受外界环境的影响比较大。
而且在本系统中边界线外都是没锯掉的,小车可能也会将这些区域误当做非黑色的车道。
方案二:
可见光发光二极管与光敏二极管组成的发射—接收电路。
这种方案的缺点在于其他环境光源会对光敏二极管的工作产生很大的干扰,一旦外界光亮条件改变,很可能造成误判和漏判;虽然产生超高亮发光二极管可以降低一定的干扰,但这又将增加额外的功率损耗。
方案三:
采用红外探测器。
红外探测器(InfraredDetector)是将入射的红外辐射信号转变成电信号输出的器件。
红外辐射是波长介于可见光与微波之间的电磁波,人眼察觉不到。
要察觉这种辐射的存在并测量其强弱,必须把它转变成可以察觉和测量的其他物理量。
一般说来,红外辐射照射物体所引起的任何效应,只要效果可以测量而且足够灵敏,均可用来度量红外辐射的强弱。
现代红外探测器所利用的主要是红外热效应和光电效应。
这些效应的输出大都是电量,或者可用适当的方法转变成电量。
基于以上分析,拟定方案三。
1.3.3驱动调速模块
方案一:
采用电阻网络或数字电位器调整电动机的分压,从而达到调速的目的。
但是电阻络只能实现有级调速,而数字电阻的元器件价格昂贵。
更主要的问题在于一般电动机的电阻较小,但电流很大;分压不仅会降低效率,而且很难实现。
方案二:
采用继电器对电动机的开或关进行控制,通过开关的切换对小车的速度进行调整。
方案的优点是电路较为简单,缺点是继电器的响应时间慢,机械结构易损坏,寿命较短,可靠性不高。
方案三:
采用PWM电路。
用单片机控制达林顿管使之工作在占空比可调的状态,精确调整电机转速。
基于以上分析,拟定方案三。
1.3.4转弯超车控制模块
方案一:
利用定时器来计算小车的行驶距离,当小车走完直线距离后先走转90°,再直走,当家车进入超车区后减速等乙车,乙车进入超车去绕过甲车回到行车道上,甲车等待时间一道恢复正常速度。
直到回到出发点。
但小车行驶路线很难确定为直线,且小车用直流电机驱动,行驶的速度受环境影响较大。
方案二:
小车沿着行车道内边界行驶。
甲车通过超车标志区后沿虚线减速行驶指定时间,乙车一直沿着内边界线行驶,直到到达终点。
但一车言行车道内边界行驶在进入超车区后应为转角太大,可能会使出行车道。
方案三:
小车沿着行车道内边界行驶。
甲车通过超车标志区后沿虚线减速行,同时打开左侧和尾部信号灯,乙车通过超车标志区当乙车捕捉到甲车的信号后左转当接收到甲车右侧信号后开始右转,回到行车道。
甲车接收到一车的信号加速到正常速度。
直到到达终点。
甲乙辆车超车时交换信息,相互控制。
能较好的实现超车。
基于以上分析,拟定方案三。
二.系统的硬件设计
2.1系统的总体设计,系统的计算
本组智能小车的硬件主要有以STC89C51作为核心的主控器部分、自动循迹部分、显示部分、电机驱动部分。
STC89C51的P1口作为外部信号采集端口,采集外部采用红外对管对车道边界线进行扫描。
小车左侧扫描车道内线,车底探测转弯标记线或超车标记线。
小车的左侧和尾部各有一个红外发射管,用于在超车时向另一辆发送信号,小车车头有两个红外接收管,右侧有一个红外接收管,用于在超车区接收另一辆小车发出的信号。
系统采用一块8.2V锂电池供电。
通过电源模块将电源转换为+5V。
电源模块主要有LM7805构成,可以稳定输出最大1.5A的电流。
小车硬件系统结构示意图如图2.1
图2.1硬件系统结构示意图
2.2单元电路的设计
2.2.1电源电路设计
本系统采用一块8.2V锂电池做电源,通过LM7805电源稳压芯片获得稳定的5V电源,分别给系统各模块供电。
为保证电机正常工作,系统中电机供电用PNP型三极管8050做位驱动。
图2.2电源模块原理图
7805能够输出稳定的5V电压,最大电流可达1.5A,足以给个系统正常供电。
8050为NPN型三极管,最大集存器电流0.5A,直流电曾益10到60.功耗625W。
用作本系统电机的驱动非常合适。
2.2.2探测电路设计
本系统采用红外探测,小车左侧有四个探头,用来探测车到内侧边界线,车前方有两个红外接收管,用来接收前车发出的信号。
车前方车底还有一个用于监测转弯标志线或超车标志线的探头。
原理图如图2.3。
图中L1~L4为小车左侧红外发射器,L9为车底红外发射器;Q2~Q5为小车左侧的边界线探测器,Q6为车底转弯标记线探测器,Q7~Q9为小车前方和右侧接收器。
红外发射器发出红外线,当遇到非黑色物体时反射会来,红外探测器接收到反射回来的红外型号,将光信号转为电信号,发送给单片机处理。
图2.3探测电路原理图
2.2.3控制电路设计
(1)方向控制:
本系统设计的方向由MG90S型舵机控制前轮转动来改变小车行驶方向,最大可转动30°。
(2)速度控制:
通过8051三极管驱动一个直流电机带动小车后轮转动。
(3)信号控制:
本系统设计由于涉及到超车,说以两车之间要有信息交换,在小车的后面和左侧分别有一个红外发射管,用于在超车时向另一辆车发送信号。
图2.4控制电路原理图
2.3系统原理图
图2.5系统原理图
三.系统软件设计
3.1程序总体流程图
图3.1
3.2各个功能模块流程图
图3.2寻迹模块
图3.3超车模块图3.4等待超车模块
3.3程序清单
见附录三:
四.系统调试
4.1系统的测试方案
4.1.1传感器测试
用示波器测量测试红外接收管接收到红外线时两端电压变化范围。
记录并计算需要放大的倍数。
选出一组最佳数据用于施行的方案。
4.1.2电源测试
按设计接好电源电路,调节负载大小,用万用表电源输出电压变化情况、电流变化情况,记录不同负载下的电压和电流值。
4.1.3直流电机测试
通过调节PWM控制直流电机转速。
调节占空比,计算出平均电压值。
测量在不同占空比下电机转速和最大负载能力。
4.1.4舵机测试
调节PWM,保持其脉冲周期为20ms,用信号发生器給舵机输入不同脉宽,记录不同脉冲占空比下舵机的转向角度,
4.2测试仪器
信号发生器、示波器、万用表、秒表
4.3测试结果
通过以上各项模块中和测试,本系统设计所选用的各项器件模块均达到设计要求所需要的性能指标。
红外接收管和10K分压电阻串联后。
捕捉到红外信号后电压变化范围在2~4.5V之间。
表4.1对接式距离与电压变化范围
距离(Cm)
1
2
3
5
10
15
20
电压值(V)
0.7
0.8
1.0
1.3
1.7
2.5
4
表4.2反射式距离与电压变化范围
距离(Cm)
电压值(V)
1
2
3
5
8
10
黑
1.4
2.3
2.9
3.6
4.5
4.5
白
0.7
0.9
1.2
1.9
2.5
3.7
电源能输出稳定的5V电压,最大电流为500mA,电压变化范围5±0.2V。
直流电机转速由PWM决定,高电平脉宽和低电平脉宽的比值越大直流电机的转速越快,详细参数见表4.3
表4.3高(+5V)低脉宽比值与直流电机的转速
比值
0.1
0.5
1
2
3
5
10
无穷大
转速(rad/min)
0
500
1000
1500
2000
2700
3000
3200
舵机转向与输入脉宽的关系见表4.4
表4.4高电脉宽比值(周期为20ms)
比值
0.025
0.05
0.075
0.1
0.125
角度
-90度
-45度
0度
45度
90度
五.总结
测试结果表明:
本组智能小车能很好的完成了题目基本功能。
甲车和乙车分别从起点标志线开始,在行车道各正常行驶一圈。
甲、乙两车按图1所示位置同时起动,乙车通过超车标志线后在超区内实现超车功能,并先于甲车到达终点标志线,即在第一圈实现乙车超过甲车。
本组智能小车目前只能完成基本任务,要想甲、乙两车继续行驶第三圈和第四圈,并交替领跑,还须要对程序进行补充和修改。
我们保留了各种硬件接口和软件子程序接口,方便以后的扩展和进一步的开发。
六.参考文献
1.梅遂生、杨家德.光电子技术—信息装备的新秀[M].北京:
国防工业出版社.1999年.88-102
2.张友德、赵志英、涂时亮.单片机微型机原理应用与实验(第三版)[M].上海:
复旦大学出版社.2000年
3.何立民.MCS-51系列单片机应用系统设计[M]、系统配置与接口技术.北京:
北京航空航天大学出版社.1990年.149-156
4.陆坤、奚大顺、李之权等.电子设计技术[M].四川:
电子科技大学出版社.1997年.P682-688、838-941
5.谢自美、阎树兰、赵云娣等.电子线路设计·实验·测试(第二版)[M].湖北:
华中理工大学出版社.2000年.293-300
6.杨邦文.新型实用电路制作200例[M].北京:
人民邮电出版社.1998年.175-288
7.高吉祥,黄智伟,丁文霞.数字电子技术[M].北京:
电子工业出版社,2003年,第1版
8.江晋剑,钱萌.一种基于AT89S52的简易智能小车设计:
科技论文.成都:
电子科技大学高能所,2007.97~100
七.附录
附录一:
原器件清单
原件名称
型号/大小
数量
电容
0.1uF
4
电解电容
470uF
4
可变电阻
10K
16
电阻
10K
32
1K
2
300Ω
14
红外发射管
5MM
14
红外接收管
5MM
16
电压比较器
LM393
8
感光三极管
NPN-PHOTO
18
51单片机
STC89C52
2
电源
8.2V
2
稳压芯片
LM7805
2
直流电机
2
舵机
MG90S
2
附录二:
软件程序代码
/******循迹程序********/
#include
#include"DC_EM.h"//直流电机
#include"SteeringEngine.h"//舵机
#include"tracking.h"
#include"Detection_LandMark.h"
#include"delay.h"
#defineHAVE1
#defineNONE0
/*****定义传感器接口******/
sbitL1=P0^0;
sbitL2=P0^1;
sbitL3=P0^2;
sbitL4=P0^3;
/***********启动程序*********/
voidstart1()//甲车启动程序
{
while(L1==NONE&&L2==NONE&&L3==NONE&&L4==NONE)
{
SE_Ctrl(10);
Move(LowSpeed);
delay_ms(100);
SE_Ctrl(-10);
Move(LowSpeed);
delay_ms(150);
}
}
voidstart2()//乙车启动程序
{
while(L1==0&&L2==0&&L3==0&&L4==0)
{
SE_Ctrl(0);
Move(LowSpeed);
delay_ms(500);
//SE_Ctrl(5);
//Move(LowSpeed);
//delay_ms(200);
SE_Ctrl(-10);
Move(LowSpeed);
delay_ms(300);
}
while(L1==0&&L2==0&&L3==0&&L4==0)
{
SE_Ctrl(0);
Move(LowSpeed);
delay_ms(500);
//SE_Ctrl(5);
//Move(LowSpeed);
//delay_ms(200);
SE_Ctrl(-10);
Move(LowSpeed);
delay_ms(300);
}
}
/**********循迹程序***********/
voidtracking()
{
while(Count_LandMark<16)//在进入超车区以前都使用循迹程序
{
P0=0xff;
while((L1==HAVE)&&(L2==NONE)&&(L3==NONE)&&(L4==NONE))
{
//////////////正常行驶在直道上////////////////
SE_Ctrl(0);//控制直行
Move(NormalSpeed);//以正常速度运行
}
while((L1==HAVE)&&(L2==HAVE)&&(L3==NONE)&&(L4==NONE))
{
///////////表明有点向左边偏离///////////////
SE_Ctrl(-5);//向右偏转5度