收藏 分享(赏)

单片机 巡线小车.doc

上传人:myw993772 文档编号:7833270 上传时间:2019-05-27 格式:DOC 页数:22 大小:761.50KB
下载 相关 举报
单片机 巡线小车.doc_第1页
第1页 / 共22页
单片机 巡线小车.doc_第2页
第2页 / 共22页
单片机 巡线小车.doc_第3页
第3页 / 共22页
单片机 巡线小车.doc_第4页
第4页 / 共22页
单片机 巡线小车.doc_第5页
第5页 / 共22页
点击查看更多>>
资源描述

1、南京工程学院课 程 设 计 报 告课 程 名 称 单片机原理及应用 班 级 数控 092 姓 名 卞维彬 学 号 203090639 起 止 日 期 2011.11.52011.11.16指 导 教 师 孙来业 自动循迹小车1一、系统方案1.1 设计要求设计一个基于直流电机的自动寻迹小车,使小车能够自动检测地面黑色轨迹,并沿着黑色车轨迹行驶。系统方案方框图如图 1-1所示。检测(黑线) 驱动电机软件控制 控制小车图 1-1 系统方案方框图1.2.方案论证与比较1、小车循迹原理这里的循迹是指小车在白色地板上循黑线行走,由于黑线和白色地板对光线的反射系数不同,可以根据接收到的反射光的强弱来判断“道

2、路”。通常采取的方法是红外探测法。红外探测法,即利用红外线在不同颜色的物体表面具有不同的反射性质的特点,在小车行驶过程中不断地向地面发射红外光,当红外光遇到白色纸质地板时发生漫反射,反射光被装在小车上的接收管接收;如果遇到黑线则红外光被吸收,小车上的接收管接收不到红外光。单片机就是否收到反射回来的红外光为依据来确定黑线的位置和小车的行走路线。红外探测器探测距离有限,一般最大不应超过 3cm。但是由于我们的传感器离地面距离较近,所以,用红外探测器就足够实现寻迹功能。 2、小车变速原理采用PWM 调速法进行调速,利用单片机输出端输出高电平的脉宽及其占空比的大小来控制电机的转速,从而控制小车的速度。

3、自动循迹小车2在脉冲作用下,当电机通电时,速度增加;电机断电时,速度逐渐减少。只要按一定规律,改变通、断电的时间,即可让电机转速得到控制。本系统中通过控制单片机的定时器T0的初值,从而可以实现P1.0、P1.1、P1.2和P1.3输出口输出不同占空比的脉冲波形来控制电机驱动。3、控制系统总体设计自动循迹小车控制系统由有以STC89C52作为核心的主控器模块、稳压电源模块、红外检测模块、电机及驱动模块、显示模块、声光报警模块等部分组成,控制系统的结构框图如图所示。从单片机发出PWM波,驱动直流电机对小车进行加减速控制以及控制电机对小车进行转向。为了对小车的速度进行控制,在小车电机齿轮旁安装编码盘

4、,采集电机转速的脉冲信号,经光电传感器捕获后来进行速度的一系列计算,完成小车速度的闭环控制。控制系统结构框图1、主控制电路模块:用 STC89C52单片机、复位电路、时钟电路2、传感检测模块:光电传感器 RPR2203、电机及驱动模块:电机驱动电路、两个直流电机4、电源模块:LM78051.3系统方案选择与论证稳压电源模块主控芯片 STC89C52电压比较器光电传感器驱动 电机自动循迹小车31、车体设计方案一:自己动手制作电动车,由于制作过程要花费大量的时间,也受到手艺不好的影响,制作出来的小车还可能机械性能不好。考虑到时间与性能这两方面,我们放弃了这一方案。方案二:购买玩具电动车,购买的小车

5、具有组装完整的车架车轮、电机及其驱动电路。易改装,好控制,机械性能有保障。但选择购买时应注意有的玩具电动车由于装配紧凑,使得各种所需传感器的安装十分不方便。综上考虑,我们选择了方案 2。2、电源模块单片机系统、路径识别的传感器等均需要 5V 电源,市场上 5V 的稳压芯片有很多,例如 LM2940、LM7805、开关型 LM2575、LM2596,其中 2940 和7805 转换效率比较低,只有 40%左右,但是输出纹波很小,对于单片机这种对电源要求比较高的元件而言很适合,而 2575 和 2596 是开关型的稳压芯片,转换效率可以达到 75%甚至 80%以上,最大过流 1A。但是输出有纹波,

6、很可能让单片机出现重启现象。7805 输入 7.5V 以上可以稳定输出 5V,所以我们决定选用 LM7805 作为稳压芯片。3、寻迹传感器模块方案 1:用光敏电阻组成光敏探测器。光敏电阻的阻值可以跟随周围环境光线的变化而变化。当光线照射到白线上面时,光线发射强烈,光线照射到黑线上面时,光线发射较弱。因此光敏电阻在白线和黑线上方时,阻值会发生明显的变化。将阻值的变化值经过比较器就可以输出高低电平。但是这种方案受光照影响很大,不能够稳定的工作。因此我们考虑其他更加稳定的方案。方案 2:用红外发射管和接收管自己制作光电对管寻迹传感器。红外发射管发出红外线,当发出的红外线照射到白色的平面后反射,若红外

7、接收管能接收到反射回的光线则检测出白线继而输出低电平,若接收不到发射管发出的光线则检测出黑线继而输出高电平。这样自己制作组装的寻迹传感器基本能够满足要求。自动循迹小车4因此我们选择了方案 2。5、电机模块对于电动车来说,其驱动轮的驱动电机的选择就显得十分重要。由于本实验要实现对路径的准确定位和精确测量,我们综合考虑了一下两种方案。方案 1:采用步进电机作为该系统的驱动电机。由于其转过的角度可以精确的定位,可以实现小车前进路程和位置的精确定位。虽然采用步进电机有诸多优点,步进电机的输出力矩较低,随转速的升高而下降,且在较高转速时会急剧下降,其转速较低,不适用于小车等有一定速度要求的系统。经综合比

8、较考虑,我们放弃了此方案。方案 2:采用直流电机。直流电机转动力矩大,体积小,重量轻,装配简单,使用方便。由于其内部由高速电动机提供原始动力,带动变速(减速)齿轮组,可以产生较大扭力。能够较好的满足系统的要求,因此我们选择了此方案。6、驱动模块方案 1:采用专用芯片 L298N 作为电机驱动芯片。L298N 是一个具有高电压大电流的全桥驱动芯片,一片 L298N 可以分别控制两个直流电机,而且还带有控制使能端。用该芯片作为电机驱动,性能优良。但是该芯片成本较高,不符合实际情况。方案 2:对于直流电机用分立元件构成驱动电路。由分立元件构成电机驱动电路,结构简单,价格低廉,在实际应用中应用广泛,也

9、完全符合题目要求。因此我们选用了方案 2。 二、模块介绍与电路自动循迹小车52.1传感器模块电路设计1.光电传感器 RPR220简介含一个反射模块(发光二极管)和一个接收模块(光敏三极管)。通过发射红外信号,看接收信号变化判断检测物体状态的变化。A、K之间接发光二极管,C、E之间接光敏三极管(二者在电路中均正接,但要串联一定阻值的电阻)RPR220实物图 2.具体电路通过RPR220检测黑线,输出接收到的信号给非门 ,接收电压与比较电压比较后,输出信号变为高低电平,再输入到单片机中,用以判定是否检测到黑线。自动循迹小车6传感器模块电路图如果输出加施密特触发器就可以实现良好的输出波形。但是这种电

10、路用电量比较大,给此种传感器调理电路供电的电池压降较快。究其原因,是因为光敏三极管和三极管 VT1 导通时的导通电流较大。考虑用比较器的方案,图中可调电阻可以调节比较器的门限电压,经示波器观察,输出波形相当规则,可以直接够单片机查询使用。而且经试验验证给此电路供电的电池的压降较小。因此我们选择此电路作为我们的传感器检测与调理电路。此光电对管电路简单,工作性能稳定。3.传感器安装我们用一个字节来代表车底的 3 个光电传感器。用每一个位来代表当前传感器的检测状态。我们把小车直线行进时分成三种状态,当中间 2 个传感器都检测到白线时,小车在跑道的正上方,这时控制两电机同速度全速运行。当检测到有一个传

11、感器或者同侧的两个传感器偏出白线时,小车处于微偏状态,这时将一个电机速度调慢,另一电机速度调快,完成调整。当检测到有三个电机偏出时,小车处于较大的偏离状态,这时把一个电机的速度调至极低,另一电机全速运行,从自动循迹小车7而在较短时间内完成路线的调整。用这种三级调速的寻迹算法同单纯的判断检测到对管的位置并作出判断的方法相比,程序思路清晰,程序执行结果较好。该检测传感器子程序的流程图如图所示:在小车具体的循迹行走过程中,为了能精确测定黑线位置并确定小车行走的方向,需要同时在底盘装设3个红外探测头,进行两级方向纠正控制,提高其循迹的可靠性。这3个红外探头的具体位置如图所示传感器安装图左轮右轮左x1右

12、y1中间自动循迹小车8图中循迹传感器全部在一条直线上。其中X1与Y1为方向控制传感器。小车前进时,始终保持(如图3-6中所示的行走轨迹黑线)在X1和Y1这两个第一级传感器之间,当小车偏离黑线时,把检测的信号送给小车的处理、控制系统,控制系统发出信号对小车轨迹予以纠正。若小车回到了轨道上,即2个探测器都只检测到白纸,则小车会继续行走。2.2控制器模块采用 STC89C52 单片机作为主控制器。它是一个低功耗,高性能的 8 位单片机,片内含 32k 空间的可反复擦写 100,000 次 Flash 只读存储器,具有 4K 的随机存取数据存储器(RAM) ,32 个 I/O 口, 2 个 8 位可编

13、程定时计数器,且可在线编程、调试,方便地实现程序的下载与整机的调试。时钟电路和复位电路 如图(与单片机构成最小系统)1)采用外部时钟,晶振频率为 12MHZ2)采用按键复位时钟电路和复位电路自动循迹小车9单片机构成最小系统实物图2.3电机驱动模块驱动:用分立元件搭建的 H桥驱动电路。驱动电路的设计如图 3-10 所示:自动循迹小车10图 3-10电机驱动电路电机转动状态编码:左电机 右电机Z1 Z2 Y1 Y2 左电机 右电机 电动车运行状态0 1 0 1 正转 正转 直走1 0 0 1 正转 反转 左转0 1 1 0 反转 正转 右转1 1 1 1 杀停 杀停 立刻停止自动循迹小车11电机驱

14、动模块实物图 2.4系统总体说明当光电传感器开始接受信号,通过比较器将信号传如单片机中。小车进入寻迹模式,即开始不停地扫描与探测器连接的单片 I/O 口,一旦检测到某个I/O 口有信号变化,就执行相应的判断程序,把相应的信号发送给电动机从而纠正小车的状态。单片机采用 T0定时计数器,通过来产生 PWM波,控制电机转速。自动循迹小车12小车总实物图三、系统测试自动循迹小车13测试工具:仪器名称 用途电脑 调试及下载程序数字万用表 测量各种电路工作情况单元模块的测试(A)电源测试:用数字万用表电压档测量电路输出的电压值是否正常。(B )光电对管线路寻迹模块测试:通电后,在光电对管下面放一张白纸是,

15、用电压表测量输出端是不是为高电平;在放一张贴有黑胶布的纸张在光电对管下面,看电压表的的电压是否为低电平;来回移动带有黑胶布的纸张,看电压表的电压值是否高低电平的变化。(C) 电机驱动模块电路测试:给电路通电以后,分别对 2 电路每个输入端一个高低电平,看电机是否转动;然后在反接试下,电机是否和开始的运转方向相反。自动循迹小车14四、软件设计流程图4.1 PWM控制本系统采用PWM来调节直流电机的速度。PWM是通过控制固定电压的直流电源开关频率,从而改变负载两端的电压,进而达到控制要求的一种电压调整方法。PWM可以应用在许多方面,如电机调速、温度控制、压力控制等。在PWM驱动控制的调整系统中,按

16、一个固定的频率来接通和断开电源,并根据需要改变一个周期内“接通”和“断开”时间的长短。通过改变直流电机电枢上电压的“占空比”来改变平均电压的大小,从而控制电动机的转速。因此,PWM又被称为“开关驱动装置”。在脉冲作用下,当电机通电时,速度增加;电机断电时,速度逐渐减少。只要按一定规律,改变通、断电的时间,即可让电机转速得到控制。自动循迹小车15本系统中通过控制 51单片机的定时器 T0的初值,从而可以实现 P1.0和P1.1输出口输出不同占空比的脉冲波形。定时计数器若干时间(比如 0.1ms)中断一次, 就使 P1.2或 P1.3产生一个高电平或低电平。占空比为高电平脉冲个数占一个周期总脉冲个

17、数的百分数。一个周期加在电机两端的电压为脉冲高电压乘以占空比。占空比越大, 加在电机两端的电压越大, 电机转动越快。电机的平均速度等于在一定的占空比下电机的最大速度乘以占空比。当我们改变占空比时, 就可以得到不同的电机平均速度, 从而达到调速的目的。精确地讲, 平均速度与占空比并不是严格的线性关系, 在一般的应用中, 可以将其近似地看成线性关系。4.2小车循迹流程图小车进入循迹模式后,即开始不停地扫描与探测器连接的单片机 I/O口,一旦检测到某个 I/O口有信号,即进入判断处理程序,先确定 5个探测器中的哪一个探测到了黑线,如果左面第一级传感器或者左面第二级传感器探测到黑线,即小车左半部分压到

18、黑线,车身向右偏出,此时应使小车向左转;如果是右面第一级传感器或右面第二级传感器探测到了黑线,即车身右半部压住黑线,小车向左偏出了轨迹,则应使小车向右转。在经过了方向调整后,小车再继续向前行走,并继续探测黑线重复上述动作。循迹流程图如图所示自动循迹小车16循迹流程图启动循迹模式探测黑线是否检测到黑线判断处理程序向左转 向右转 直走 停止继续前进NY4.3 中断程序流程图这里利用的是 51单片机的 T0定时计数器,从而让单片机 P1口的P1.0、P1.1、P1.2 和 P1.3引脚输出占空比不同的方波, 然后经驱动芯片放大后控制直流电机。定时计数器若干时间(比如 0.1ms)比如中断一次, 就产

19、生一个高电平或低电平。中断程序流程图如图所示自动循迹小车17五 设计感想本次单片机课程设计我是选择自主命题,自己画电路板,这样可以提高我的动手能力和实践应用能力。我以前看到过别人的寻迹小车,感觉很好玩,很想自己也做一辆,所以我就选择做寻迹小车了。刚开始做时,基本没有什么思路,所以我只好通过上网,去图书馆找资料来搜集信息,这让我对传感器知识有了很多了解。我和我们班几个同学是自己做电路板,自己画电路图并自己画 pcb 板,由于我们是用单层板腐蚀制板,pcb图比较困难,要通过不同的修改,有的地方还要用跳线,所以通过这次课程设计,我的 pcb 画图能力得到很大提高。板子制好后要用多用表测量有没有短路的

20、电路,所以检查要十分细心。然后打孔也十分困难,如果打孔时钻头稍微偏一点,就会是线路破坏,板子可能就没用了。焊接元件也十分小心,由于没有阻焊层,电路很容易短路,连接完后一定要记得检查是否短路,不然会烧毁器件。对于每一个硬件模块,我都要用程序去检查调试,以此来发现问题,然后在合起来一起测试。所以模块化设计是一个很好的设计思路,可以使问题化解,把复杂的问题简单化。P1.0 P1.1 P1.2 P1.3控制左电机 控制右电机状态0 1 0 1 直走0 1 1 0 右转1 0 0 1 左转1 1 1 1 停止自动循迹小车18其实寻迹小车的设计,硬件部分比较难,软件部分相对简单。我是采用PWM 技术来进行

21、速度调试的,只要控制电压的占空比来调节速度的,所以只要通过开关的延时来调节。通过查询探头的状态然后用 switch 语句来判断,可以实现不同速度的转换,从而控制左转,右转等运动。从这次课程设计中我收获颇多。虽然遇到了很多困难,但从解决困难中是自己的工程实践能力得到显著提高,自己分析解决问题的能力也得到提高。书本上很多语句只有在实际应用中才能采能发现它的具体用法,在实践中才能真正检验自己的能力。六参考资料1 宋健,姜军生,赵文亮. 基于单片机的直流电动机 PWM 调速系统J . 农机化研究,2006 , (1) :102 - 103.2 边春元 李文涛 江杰 杜平等;C51 单片机典型模块设计与

22、应用;机械工业出版社;2008.43 李华. MCS- 51 系列单片机实用接口技术M.北京:航空航天大学出版社, 20034 楼然苗.51 单片机设计实例M.北京:航空航天大学出版社,2005.85 王晶,翁显耀 ,梁业宗 自动寻迹小车的传感器模块设计.武汉理工大学自动化学院 湖北武汉 6 刘迎春. 传感器原理设计与应用M . 长沙:国防科技大学出版社,1992.自动循迹小车19七程序附件:#include#define uchar unsigned char#define uint unsigned intsbit z1=P10;sbit z2=P11;sbit y1=P12;sbit y

23、2=P13;void delay(uchar speed)uint t;t=65536-1000*speed;TMOD=0x01;TH0=t/256;TL0=t%256;EA=1;ET0=1;TR0=1;while(TF0!=1);TF0=0;TR0=0;void zuodianji(uchar x,uchar y)y1=0;y2=1;delay(x);y1=1;自动循迹小车20y2=1;delay(y);void youdianji(uchar x,uchar y)z1=0;z2=1;delay(x);z1=1;z2=1;delay(y);void stop()z1=1;z2=1;y1=1;

24、y2=1;void zhizou()zuodianji(10,10);youdianji(10,10);void xunji()uchar temp,a;uchar i=50;P0=0xff;a=P0;temp=(aswitch(temp)case 0x05: zhizou();break;case 0x00: zhizou();break;case 0x04: zuodianji(30,60);youdianji(60,30);break;case 0x06: zuodianji(10,60);youdianji(60,10);break;case 0x01: zuodianji(60,30);youdianji(30,60);break;case 0x03: zuodianji(60,10);youdianji(10,60);break;case 0x07: stop();break;default: break;void main()自动循迹小车21while(1)xunji();

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报