2011大学生电子设计大赛报告(C_智能小车).doc

上传人:叶*** 文档编号:36129943 上传时间:2022-08-25 格式:DOC 页数:18 大小:197.50KB
返回 下载 相关 举报
2011大学生电子设计大赛报告(C_智能小车).doc_第1页
第1页 / 共18页
2011大学生电子设计大赛报告(C_智能小车).doc_第2页
第2页 / 共18页
点击查看更多>>
资源描述

《2011大学生电子设计大赛报告(C_智能小车).doc》由会员分享,可在线阅读,更多相关《2011大学生电子设计大赛报告(C_智能小车).doc(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、智能小车设计报告摘要:随着智能控制技术和检测传感技术的飞速发展,智能小车在工业生产和家庭生活中得到了广泛应用。智能小车控制系统采用STC89C52单片机作为检测和控制核心,使用反射式红外光电传感器检测路面的标志线,采用红外蔽障传感器控制两车之间的距离。小车驱动采用前轮双驱动,利用减速直流电机控制小车的转向和速度。通过不断对单片机I/O口进行扫描来监测传感器的状态,根据监测数据控制两辆小车循线、转弯、交换速度和切道等动作,最终实现两小车按预定轨道行驶,并在规定区域超车的功能。系统相当于一个简单的车辆自动驾驶系统,经进一步改进后可应用在智能交通和无人探测等方面。关键字:智能小车;单片机;传感器;减

2、速直流电机;循线 目录1 方案论证与比较- 1 -1.1总体方案设计与比较- 1 -1.2电机的比较与选择- 2 -1.3电机驱动模块的比较与选择- 2 -2 理论分析与计算- 3 -2.1信号检测与控制- 3 -2.1.1转弯与前进信号的检测与控制- 3 -2.1.2加速减速(超车)信号的检测与控制- 4 -2.1.3发挥部分切换跑道交换速度信号的检测与控制- 4 -2.2两车之间的通信方法- 5 -2.3 关于节能的设计- 6 -3 电路与程序设计- 6 -3.1电路设计- 6 -3.1.1单片机最小系统- 6 -3.1.2电机驱动模块- 6 -3.1.3循线模块- 7 -3.1.4两车通

3、信模块- 8 -3.2程序设计- 8 -3.2.1程序流程图- 8 -3.2.2源程序- 9 -4 系统测试- 9 -4.1测试方法- 9 -4.1.1小车转弯的测试方案与测试条件- 9 -4.1.2顺利超车的测试方案与测试条件- 9 -4.1.3发挥部分换道与速度交换测试方案与测试条件- 9 -4.2测试结果- 10 -5 结论- 10 -参考文献- 10 -附录- 11 -1 方案论证与比较1.1总体方案设计与比较方案一:采用STC89C52单片机作为整机的控制单元。以STC89C52单片机为核心的控制电路,采用模块化的设计方案,运用反射式红外光电检测传感器、红外蔽障传感器组成不同的检测电

4、路,实现小车在行驶中转弯、加速、减速、超车等问题。并将测量数据传送至单片机进行处理,然后由单片机根据所检测的各种数据实现对电动小车的智能化控制。在本系统中,(1)小车左侧反射式红外光电传感器检测板的内边界线,然后将信号传送到单片机系统进行处理,使行驶在后方的小车沿板的内边界线自主行走,从而使小车走完整个赛道;单片机通过检测小车左侧光电传感器的输出信号,确定汽车是否过于接近跑道左侧挡板,从而发出电机驱动信号,对汽车运动方向实现转弯与纠偏,避免跑出赛道。(2)小车右侧的反射式红外光电传感器检测板的外边界线,使行驶在前方的车小车沿板的外边界线自主行走,并且可避免小车从右侧掉下赛道。(3)小车正前方的

5、反射式红外光电传感器检测小车通过的黑线的条数,从而控制两辆小车在正常行驶、超车时分别行使在不同的赛道。并且可控制行驶在前边的小车何时减速以便后边的车能顺利超过。并且在发挥部分检测标志线,实现发挥部分的交替超车与领跑。(4)小车前方的红外蔽障传感器信号用作两车之间的通信信号,在超车部分,若小车甲检测到前方已超过它的乙车,甲车便加速前进。缩短完成整个赛道的时间。电源模块ATC89C52电机驱动模块超车模块速度控制模块两车通信模块图1 智能小车运行基本原理图框图方案二:采用STC89C52单片机作为整机的控制单元,转弯、加速、减速、超车全部用软件来实现利用赛道上的标志线,通过单片机识别标志线,编程让

6、其在转弯标志线处延时后转弯,在超车部分,对标志线的条数进行计数,计够条数后进行超车处理。由于此种方案不定因素很多,比如说电池电量不断减小,小车速度越来越慢,这样延时不精确便很容易掉出赛道,并且别的功能也很难控制。方案三:选用一片CPLD作为系统的核心部件,实现控制与处理的功能。CPLD具有速度快、编程容易、资源丰富、开发周期短等优点,可利用VHDL语言进行编写开发。但CPLD在控制上较单片机有较大的劣势。同时,CPLD的处理速度非常快,而小车的行进速度不可能太高,若采用该方案,必将在控制上遇到很多不必要增加的难题综合考虑了传感器、电机的驱动等诸多因素,方案一简洁、灵活、可扩展性好,并且我们对单

7、片机掌握的比较好,且能达到题目的设计要求,因此本设计采用方案一来实现,充分利用STC89C52的单片机资源。1.2电机的比较与选择方案一:采用步进电机。步进电机的一个显著特点就是具有快速启停能力,如果负荷不超过步进电机所能提供的动态转矩值,就能够立即使步进电机启动或反转。另一个显著特点是转换精度高,正转反转控制灵活。方案二:采用减速直流电机。直流电动具有优良的调速特性,调速平滑、方便,调整范围广;过载能力强,能承受频繁的冲击负载,可实现频繁的无级快速启动、制动和反转;能满足生产过程自动化系统各种不同的特殊运行要求。 由于普通直流电机更易于购买,并且电路相对简单,所以采用直流电机作为动力源。1.

8、3电机驱动模块的比较与选择 电机驱动模块的主要作用是控制小车的正转、前进、加速、减速、转弯和停车。由以下方案:方案一:采用电阻网络或数字电位器调整电动机的分压。但是电阻网络只能实现有级调速,而数字电阻的元器件价格比较昂贵,且可能存在干扰。最重要的问题是,一般电动机的电阻很小,电流很大,分压不仅降低效率,而且难以实现。方案二:采用继电器对电动机的开或关进行控制。这个电路的优点是电路较为简单,缺点是继电器的响应时间长,易损坏,寿命较短,可靠性不高。方案三:采用由达林顿管组成的H型PWM电路。PWM电路由四个大功率晶体管组成H桥式电路构成,四个晶体管分为两组,交替导通和截止,用单片机控制达林顿管使之

9、工作在开关状态,根据调整输入控制脉冲的占空比,精确调整电动机转速。这种电路由于管子工作只有饱和和截止状态下,效率非常高。但是H型PWM电路必须要用分立元件搭起来,所以比较麻烦。方案四:采用直流电机专用驱动芯片L298。L298作为驱动的原理与H型PWM电路相同,只是将这些分立元件集成在一块芯片内部,方便适用。 从硬件和电路的工作量,以及成本考虑,选择方案四。2 理论分析与计算2.1信号检测与控制2.1.1转弯与前进信号的检测与控制根据题目要求,我们设计后边的小车正常情况下沿赛道内外边沿行驶,在车左侧装3个红外对管,车沿轨道,向左偏离轨道,向右偏离轨道时通过单片机识别比较器输出端经过编码的信号控

10、制两个电机便可实现后边小车的转弯与前进。前边的小车正常情况下沿赛道外边沿行驶,在车右侧装两个红外对管,车沿轨道,向左偏离轨道,向右偏离轨道时通过单片机识别比较器输出端经过编码的信号控制两个电机便可实现前边小车的转弯与前进。沿赛道内侧行走时,由于转弯处角度有锐角、钝角、直角,根据三个红外对管分别是否检测到反射信号,并将信号通过比较器后编码,经分析可能出现的情况如下:(1)000: 偏左 右转(2)001: 偏左 右转(3)010: 不存在(4)011: 偏右 左转(5)100: 不存在(6)101: 由于在转锐角弯时,车直接转弯会掉到赛道外,所以让前进一定时间后左转(7)110: 不存在(8)1

11、11: 偏右 左转沿赛道外侧行走时,转弯处角度只有直角,根据两个红外对管分别是否检测到反射信号,并将信号通过比较器后编码,经分析可能出现的情况如下:(1)00:偏右 左转(2)01:偏右 左转(3)10:前进(4)11:偏左 右转2.1.2加速减速(超车)信号的检测与控制 小车正前方光电传感器检测经过标志线的条数,在到达超车区域前,总共经过8条标志线,通过单片机计数,计数值到8,前边小车延时一定时间后停止,等待后边的车超过。小车正前方蔽障传感器检测到后车跑到它前边,便延时一定时间后加速,并顺利通过整个赛道。2.1.3发挥部分切换跑道交换速度信号的检测与控制发挥部分换道与交换速度标志发挥部分换道

12、与交换速度标志图2 赛道图形发挥部分要完成甲车追乙车必须进行准确换道与交换速度,如图2所示,两个箭头所指标志线分别为两辆小车的换道与交换速度标志,小车正前方的红外对管通过计标志线条数检测这两道标志,以完成准确换道与交换速度。2.2两车之间的通信方法两车通信通过红外蔽障传感器实现,两车通信出现在超车过程中,当后车超过前车时,被超过的前车通过红外蔽障传感器检测到后车跑到它前边,利用单片机延时一定时间后加速,以便顺利通过整个赛道。红外蔽障传感器的灵敏度要能很好的控制,否则极易受到干扰,会把别的物体检测成另一辆小车。2.3 关于节能的设计经反复试验与检测小车行进时的功率很小,并且我们小车前端伸出的传感

13、器模块全部用废旧的电路板焊接拼制而成,不仅制成了我们所需要的形状,而且达到节能的目的。电源部分我们选择可充电电池,可以反复利用,达到节能环保目的。3 电路与程序设计3.1电路设计3.1.1单片机最小系统图3 单片机最小系统原理图图3为单片机最小系统,包括单片机晶振与复位电路。3.1.2电机驱动模块图4 电动机驱动模块原理图电机驱动模块采用双电源对单片机和减速电机单独供电,从面使电机流畅运转,采用了光耦隔离模块,减小了控制电路对L298模块产生的干扰。L298集成模块可以单独控制两个电机的正反转,采用PWM对ENA,ENB使能端进行调制从而对电机速度进行控制。用单片机的四个I/O口控制两路电机的

14、四个输入端,从而控制电机的转向、前进、停止。L298真值表如下:ENIN1IN2电机状态ENIN1IN2电机状态0XX停止110倒转100停止111急刹101正转3.1.3循线模块循线模块的电路原理图如下图所示,其中LM339集成块内部装有四个独立的电压比较器,类似于增益不可调的运算放大器,每个比较器有两个输入端和一个输出端。两个输入端一个称为同相输入端,用“+”表示,另一个称为反相输入端,用“”表示,用作比较两个电压时,任意一个输入端加一个固定电压做参考电压(也称门限电压),另一端加一个待比较的信号电压。当“+”端电压高于“”端时,输出管截止,相当于输出端开路。当“”端电压高于“+”端时,输

15、出管饱和,相当于输出端接低电位。R1,R3,R5为限流电阻,R2,R4,R6为上拉电阻,红外对管的发射二极管发射出的红外线若接受二极管可以接收到,T1,T2,T3输出低电平,否则输出高电平,T1,T2,T3接到比较器反相输入端,如果比门限电压低,OUT输出高电平;如果比门限电压高OUT输出0。这样根据OUT1, OUT2, OUT3输出的高低电平进行编码,便可控制小车左转、右转前进,发射二极管发射出的红外线照到黑线或距离反射物很远时不反射,对应的接收二极管接收不到;没照到时被反射,对应的接收二极管接收到。小车右侧两个红外对管和正前方的红外对管的工作原理跟左侧的三个红外对管工作原理一样。图5 循

16、线模块原理图3.1.4两车通信模块 两车通信通过红外蔽障传感器实现,两车通信出现在超车过程中,当后车超过前车时,被超过的前车通过红外蔽障传感器检测到后车跑到它前边,便延时一定时间后加速,并顺利通过整个赛道。3.2程序设计3.2.1程序流程图开始偏左检测赛道边侧与赛道上标志线偏右正常右转左转前进检测通过标志线的条数执行相关操作结束3.2.2源程序源程序见附录部分。4 系统测试4.1测试方法4.1.1小车转弯的测试方案与测试条件小车沿内圈走时分别检测其通过锐角、直角、钝角时的情况,不断调整传感器的位置,修改程序,调整其延时时间,调整电机速度,直到通过所有弯为止。检测要在不同的电压条件下进行,这样便

17、可以对更多的情况进行提前的把握。4.1.2顺利超车的测试方案与测试条件前边小车到达超车区域后,每次检测停的位置不一样,不断检测,不断调整其延时的时间,直到其停在最佳位置。当其被后面车追上后,其开始走的时间也要不断调整,走的太早会碰到另一辆车,走的太晚检测不到另一辆车已追上它,会一直停在原地不动。4.1.3发挥部分换道与速度交换测试方案与测试条件检测换道与交换速度要准确对赛道上的标志线进行计数,测试时,有时计标志线条数不准,这就需要多此进行模拟检测,以便检测到是软件的问题还是硬件的问题。4.2测试结果测试沿内赛道行进时,转过锐角便转不过钝角,改变传感器位置后,两种弯道都能顺利跑过。测试超车环节时

18、,前边的小车停的位置随着延时时间长短停的位置不一样,对软件进行不断优化最终让小车位置合适,准确进行超车。经反复测试并调试软硬件后,发挥部分也能正常完成。5 结论我们的作品完成了基本功能及发挥部分的功能,两辆小车第一圈分别跑一圈后,第二圈两辆车一前一后并且在超车区域成功超车,后车超过前车后,当前车通过两车通信模块检测到被后车超过后便加速跑过剩余路程。在乙车超过甲车后,两辆小车换道并交换速度,实现第二次甲车超乙车,并能交替进行,达到题目要求的基本部分和发挥部分。整个系统也有不足之处,车子前边加的传感模块不对称,力矩不同导致小车前进时不稳,还需要加改,另外两辆小车的速度也还有提升的空间。参考文献1张

19、红润,智能技术系统设计与开发,北京航空航天出版社,2007.22温志明,运动控制系统分析与应用,国防工业出版社,2008.23杨 刚,电子系统设计与实践,电子工业出版社,2009.34何希才,新型实用电子电路400例,电子工业出版社,2000.85陈伯时,电力拖动自动控制系统,第二版,北京:机械工业出版社,2000.66刘少强,传感器设计与应用实例,中国电力出版社,2008.3附录#include #include #define uchar unsigned char #define uint unsigned int/*sbit in1=P00;sbit in2=P01;sbit in3=

20、P02;sbit in4=P03;P33用来测避障P32用来计黑线条数;*/uchar num;/num计黑线条数uint count;/count用来计时sbit ena=P04;sbit enb=P05;sbit flag=P30;/用来检测档位 1沿外圈,0沿内圈sbit p32=P32;sbit p33=P33;sbit p34=P34;/用来检测档位 bit flag1=0;/用来检测前车是否可以继续行驶;void delay(uint z);void xj_nei();void xj_wai();void init();void delay_us(uint z);void main

21、()if(p34=1)delay(5);if(p34=1)while(1)xj_wai();elseinit();flag=1;if(flag=1)delay(5);if(flag=1)EX0=1; while(1) xj_wai(); if(num=5) TR0=1;EX0=0;num=0;while(count0;x-)for(y=115;y0;y-);void delay_us(uint z)uint x,y;for(x=z;x0;x-)for(y=100;y0;y-);void xj_nei()uchar a; a=P2&0x07; switch (a) Case 0x00: P0=0

22、xfb;ena=0;enb=0;delay_us(16);ena=1;enb=1;delay_us(10);break;/偏左 右转 case 0x01: P0=0xfa;ena=0;enb=0;delay_us(16);ena=1;enb=1;delay_us(10);break; /前进 /case 0x02: delay(10);P0=0xfe;break;/偏右 左转 case 0x03: P0=0xfe;ena=0;enb=0;delay_us(16);ena=1;enb=1;delay_us(10);break; /偏右,左转 /case 0x04: case 0x05: P0=0

23、xfa;delay(1200);P0=0xfe;break;/135度,左转 case 0x07: P0=0xfe;break; /偏右,左转 void xj_wai() uchar b; b=P1&0x03; switch(b) case 0x00: P0=0xfe;break;/偏右,左转 case 0x01: P0=0xfa;break;/前进/case 0x02: P0=0xfe;break;/不存在 case 0x03: P0=0xfb;break;/偏左,右转 void ex_0()interrupt 0EX0=0;delay(20);if(p32=0)while(!p32);delay(10);num+;EX0=1;void ex_1()interrupt 2EX1=0;delay(20);if(p33=0)while(p33=0);flag1=1; delay(2000);ena=1;enb=1; void time() interrupt 1TH0=(65536-50000)/256;TH0=(65536-50000)%256;count+;- 16 -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 公文通知

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁