为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

寻线小车

2010-10-25 21页 doc 440KB 23阅读

用户头像

is_437519

暂无简介

举报
寻线小车目录 中山大学信息科学与技术学院 第五届电子普及赛 项目结题报告书 项目名称: 自动寻线小车 项目编号: 项目负责人(院系、年级): 联系电话(手机): 通讯地址: 邮政编码: 结题日期:2009 年 6 月 20 日 目录 一.项目简介 1.项目名称 3 2.成员信息 3 3.项目完成时间 3 4.项目摘要 3 二.方案设计与论证 1.车模选择 4 2.电机驱动模块 4 3.路面黑线探测模块 4 4.测距模块及时间显示功能模块 5 5.电源模块 6 6.其他功能 6 7.小结 6 三.项目的具体设计及实现 1.系统的硬件设计...
寻线小车
目录 中山大学信息科学与技术学院 第五届电子普及赛 项目结报告书 项目名称: 自动寻线小车 项目编号: 项目负责人(院系、年级): 联系电话(手机): 通讯地址: 邮政编码: 结题日期:2009 年 6 月 20 日 目录 一.项目简介 1.项目名称 3 2.成员信息 3 3.项目完成时间 3 4.项目摘要 3 二.与论证 1.车模选择 4 2.电机驱动模块 4 3.路面黑线探测模块 4 4.测距模块及时间显示功能模块 5 5.电源模块 6 6.其他功能 6 7. 6 三.项目的具体设计及实现 1.系统的硬件设计 7 2.系统的软件设计 9 四.实际测试 10 五.程序清单 11 六.经验总结 18 七.附题目要求 19 一.项目简介 1.项目名称 自动寻线小汽车 2.项目完成时间 2009年6月10日 4.项目摘要 本设计采用一块单片机89c52作为自动往返小车的和控制核心。路面黑线检测使用反射式红外传感器,车速和距离检测使用红外检测传感器,利用PWM技术动态控制电动机的转速,倒退,在显示上采用8位动态扫描,.基于这些完备而可靠的硬件设计,进行了独特的软件设计,以实现小车在转弯及停车过程中的准确控制。 二.方案论证与设计 基于题目要求,系统可化为几个基本模块,如图2-1所示,下面对各个模块的方案进行论证。 1.​ 车模选择 方案一:选择遥控玩具小车,对小车进行改装,这种车速度较快,反应灵敏。然而,这种小车,转弯扭力较小,且速度较快,容易冲出赛道。 方案二:选择直流减速电机的小车,这种车扭力较大,可以转过曲率很大的弯道。然而,车速较慢。 处于弯道曲率并非很大,我们选择了方案二。 2.​ 电机驱动模块 方案1:采用继电器的方法,使用继电器作为开关作用,通过单片机的控制实现某个继电器的打开和关闭,打开和关断其中一个或两个电机,从而实现小车的转弯和停止。但实际证明当有继电器的方案时,小车在减速时不能碰到任何障碍物,否则车子很容易停下来,说明稳定性不高. 方案2:采用达林顿管搭成的H桥型电路,通进H桥型电路可方便地实现电机的正,反转和突然刹车,但由于自己搭制的桥型电路体积庞大且调试稳定性不高所以我们没有采用. 方案3:采用L298驱动芯片,L298驱动芯片是大功率的内集成有两个H型电路的驱动芯片,由于是集成芯片体积小,且稳定性高,驱动力强,所以我们采用了这种方法. 3.​ 路面黑线探测模块 方案1:用光敏电阻组成光敏探测器。光敏电阻的阻值可以跟随周围环境光线的变化而变化。当光线照射到白线上面时,光线发射强烈,光线照射到黑线上面时,光线发射较弱。因此光敏电阻在白线和黑线上方时,阻值会发生明显的变化。将阻值的变化值经过比较器就可以输出高低电平。 但是这种方案受光照影响很大,不能够稳定的工作。因此我们考虑其他更加稳定的方案。 方案2:用红外发射管和接收管自己制作光电对管寻迹传感器。红外发射管发出红外线,当发出的红外线照射到白色的平面后反射,若红外接收管能接收到反射回的光线则检测出白线继而输出低电平,若接收不到发射管发出的光线则检测出黑线继而输出高电平。这样自己制作组装的寻迹传感器基本能够满足要求,但是工作不够稳定,且容易受外界光线的影响,因此我们放弃了这个方案。 方案3:用RPR220型光电对管。RPR220是一种一体化反射型光电探测器,其发射器是一个砷化镓红外发光二极管,而接收器是一个高灵敏度,硅平面光电三极管。RPR220采用DIP4封装,其具有如下特点: 塑料透镜可以提高灵敏度。 内置可见光过滤器能减小离散光的影响。 体积小,结构紧凑。 当发光二极管发出的光反射回来时,三极管导通输出低电平。此光电对管调理电路简单,工作性能稳定。 因此我们选择了方案3。 加上用555接成的施密特触发器以后,由于施密特具有整波作用,所以可以把输电平稳在0.000几伏和4.000几伏两个数值间变化,因此可以被单片机识别,引发中断,进而完成黑线的探测。下图是施密特触发器的接法。 4.​ 测距模块及时间显示功能模块 方案一:采用霍尔集成片。改期间内部由三片霍尔金属板组成,当磁铁正对金属板时,由于霍尔效应,金属板发生横向导通,因此可以在车轮上安装磁片,而将霍尔集成片安装在固定轴上,通过对脉冲的计数进行车速测量。 方案二:采用红外传感器,,在后轮子张贴一张线条黑白相间的硬纸,检测轮子转动的圈数,另外测量轮子的周长,则车子的行驶路程为:路程=周长*圈数. 以上两种都是比较可行的转速测量方案。尤其是霍尔元件,在工业上得到广泛采用。但是在本题中,小车的车轮较小,方案一的磁片密集安装十分困难,容易产生相互干扰。相反,方案二适用于精度较高的场合,且简单,因此拟采用方案二。 时间显示采用两个数码管,在冲过黑线时显示。 5.​ 电源模块 采用6节充电电池供电,并通过7805稳压芯片使电压保持在5v给单片机供电。 6.​ 其他功能 在小车上装上红绿两个发光二极管,当小车停止时,红色发光二极管亮,小车运动时,绿色二极管亮。 7.小结 经过一番仔细的论证与比较,我们决定了系统各个主要模块的最终方案如下: 电动机驱动与调速模块:采用L298电动机驱动电路。 车轮检速模块:采用红外传感器。 路面黑线检测模块:采用反射式红外传感器。 电源:单电源供电6节AA电池。 三.项目的具体设计及实现 1.系统的硬件设计 (1)​ 驱动模块的电路设计与实现 L298的引脚图 其中9脚是逻辑电平输入,它接的是给单片机供电的5v电压,4脚接的是给电机供电的电池组的正极. L298N的控制方法如下表所示: 6脚 5脚 7脚 运行状态 0 --------------------------- ----------------------------- 停止 1 0 0 停止 1 1 0 正转 1 0 1 反转 1 1 1 刹车 (2)​ 路面黑线检测模块及测距模块 为了检测路面的黑线,在车子前面装四个红外传感器,左右各两个,当红外检测到黑线时,传给单片机低电平。下图是红外传感器的接法。 2.系统的软件设计 单片机控制电路只由一片89C52组成。89C52组要实现对路面黑线的软件检测,车速控制,电动机驱动,数据显示等功能。 (1)时间显示 本设计我们采用8位动态扫描,使用两个共阳四位数码管,一个显示时间,一个显示路程.具体电路如图所示 (2)系统交叉线计数 将四个红外传感器由左向右进行编号,分别为1,2,3,当1,2,3或者2,3,4检测到黑线时,系统进行计数,当检测到五条黑色交叉线时,单片机发出信号给电机驱动模块,使电机停止工作。 为了提高小车的速度又不至于冲出跑道,我们做了如下设计:在第一条交叉线到第二条交叉线之间,通过pwm技术进行慢速行驶,在第二条交叉线到第三条交叉线之间,再次降低速度,,第三条线过就按照速度行驶。总的流程如下图所示 四.实际测试 使用规定跑道进行测试,测试数据如下所示。 表1 次数 1 2 3 4 实测距离m() 22.5 20.7 18.0 23.1 时间(s) 26 23 22 27 五.程序清单 #include sbit p = P0^7; sbit q = P1^1; #define uchar unsigned char; #define uint unsigned int; sbit pA=P2^0; sbit pB=P2^1; sbit p1=P2^2;//控制前轮 sbit p2=P2^3; sbit p3=P2^4;//控制后轮 sbit p4=P2^5;//驱动管脚 sbit p_green=P2^6; sbit p_red=P2^7; sbit p_ro=P3^4; sbit p_ri=P3^5; sbit p_li=P3^6; sbit p_lo=P3^7;//红外管脚 bit black_flag = 0; unsigned char code table1[]= { 0xc0,0xf9,0xa4,0xb0, 0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83, 0xc6,0xa1,0x86,0x8e, 0xff }; unsigned char code table2[]= {0xfe,0xfd,0xfb, 0xf7,0xef,0xdf,0xbf,0x7f,}; unsigned char dp=0x7f; //Use AND to add the decimal point/clock point. unsigned char cp; int s=0; int sec=0; //定义路程,时间 char a; int i=0; int j=0; bit rup3=0; int GAO=4000; int T=0;//处理时间中断3 int timeCount;//计时标志 int wheelCount;//测距标志 int black=0;//测交叉线 bit rupt=0;//用于控制时间中断3的状态 void delay(int x) { int a; int b; for(a=x;a>0;a--) for(b=125;b>0;b--); } //电机子程序 void lft() //左转 { pA=1; p2=0; p1=1; } void rgt() //右转 { pA=1; p2=1; p1=0; } void straight()//不转向 { pA=0; } void display()//显示时间和路程 { //车轮周长为13.51cm, s=(int)((11*wheelCount)+0.5); //显示时间 P0=table1[(sec/60)/10]; P1=table2[0]; delay(1); P0=table1[(sec/60)%10]&dp ; P1=table2[1]; delay(1); P0=table1[(sec%60)/10]&dp; P1=table2[2]; delay(1); P0=table1[(sec%60)%10]; P1=table2[3]; delay(1); //显示路程,精度为cm P0=table1[s/1000]; P1=table2[4]; delay(1); P0=table1[(s%1000)/100]; P1=table2[5]; delay(1); P0=table1[(s%100)/10]; P1=table2[6]; delay(1); P0=table1[(s%10)]; P1=table2[7]; delay(1); } void main() { //打开外部中断,并设置为下降沿触发模式 EA=1; EX0=1; IT0=1; //打开时间中断1计时 TMOD=0X11; TH0=(65536-50000)/256; //赋TMR0的预置值,溢出次是ms TL0=(65536-50000)%256; TR0=1; ET0=1; //打开时间中断3控制后轮,停车后闪亮红灯 EA=1; TMOD=0X11; TH1=(65536-GAO)/256; //赋TMR0的预置值,溢出次是ms TL1=(65536-GAO)%256; TR1=1; ET1=1; while(black<5) { p_green=0; while(p_ro==0&&p_lo==1) {rgt();} while(p_lo==0&&p_ro==1) {lft();} while((p_ro==1)&&(p_lo==1)) {straight();} straight(); while((p_ro==0&&p_ri==0&&p_li==0)||(p_lo==0&&p_ri==0&&p_li==0)) { if(black_flag==0) {black++;black_flag=1;} straight(); } black_flag=0; } //5条黑线过后,即冲过终点 rup3=!rup3; GAO=50000;//控制时间中断3转移状态 p_green=1; TR0=0;//关闭计时中断 //刹车程序 pA=0; pB=1; p4=1; p3=0; delay(300);//反转一段时间 pB=0;//停车 while(1) { display(); } } //关掉时间中断 //时间中断程序 void count_time() interrupt 1 { timeCount++; TH0=(65536-50000)/256; //重载初值 TL0=(65536-50000)%256; if(timeCount==20) //计时1s { timeCount=0; sec++; } } //外部中断程序,测路程 void count_stance() interrupt 0 { wheelCount++; } void red() interrupt 3 { if(rup3==0) { s=(int)((11*wheelCount)+0.5); if(sec<2) {j=22;} else if(sec<17) {j=19;} else {j=26;} T++; GAO=5000; TH1 = (65536-GAO)/256; TL1 = (65536-GAO)%256; if(T==30) { T=0; } if(j>T) {pB=1; p3=1; p4=0; } else { pB=0; } } else if(rup3==1) {i++; GAO=50000; TH1=(65536-GAO)/256; //重载初值 TL1=(65536-GAO)%256; if(i==10) //计时1s { i=0; p_red=!p_red; } } } 六.经验总结及教训 由于小组成员以前都没做过电子设计,所以刚开始有点困难,不过后来通过网络以及对询问有经验的同学,逐步完成了任务。在这个过程,我们深深得体会到了耐心及细心在电子设计中的重要作用,在焊板,写程序中,我们遇到许多的困难,不过我们都咬紧牙关坚持下来了。 七.题目要求 自控方向:自动寻线电动小汽车 一、任务 设计并制作一个能自动沿黑线行驶的电动小汽车。允许用玩具汽车改装,但不能用人工遥控(包括有线和无线遥控)。 跑道具体形式见说明(3) 二、要求 1.基本要求   (1)车辆从起跑线出发(出发前,车体不得超出起跑线),沿黑线行驶,直至终点线。完成一次的时间应力求最短(从合上汽车电源开关开始计时)。   (2)到达终点线后,整个车身要完全驶过终点线,且要停在终点线后1m区域内。   (3)中途小车不能驶出赛道(有两个或更多车轮驶出赛道)。 2.发挥部分   (1)自动记录、显示行驶一圈时间(记录显示装置要求安装在车上)。   (2)自动记录、显示行驶距离(记录显示装置要求安装在车上)。   (3)其它特色与创新。 三、评分标准 项目与指标 满分 基本 要求 设计与总结报告:方案比较、设计与论证,理论分析与计算,电路图及有关设计文件,测试方法与仪器,测试数据及测试结果分析。 50 实际制作完成情况 70 发挥 部分 完成第(1)项 10 完成第(2)项 10 完成第(3)项 10 四、说明 (1)不允许在跑道内外区域另外设置任何标志或检测装置。 (2)车辆(含在车体上附加的任何装置)外围尺寸的限制:长度≤35 cm,宽度≤15cm。 (3)跑道: ①跑道为闭合曲线,宽度60cm,表面为白色,中间、起点、终点有黑线,黑线宽度2.5cm。 ②弯道曲率半径不小于90cm ③含交叉线,且交叉线垂直。 ④交叉线: ⑤起跑线和终点线: 起点线和终点线之间距离为3cm
/
本文档为【寻线小车】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索