版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目录摘要21 设计要求32 方案的选择与比较32.1 主控芯片选择32.2 电源的选择32.3 寻迹方案32.3 电机驱动方案43 最终方案54各功能模块的实现54.1 微控制器模块的设计54.2电源模块原理图64.3 tcrt5000红外检测模块64.4 系统pcb图74.5 系统程序流程图85 性能测试96 性能评价及总结107 附录11附录1:元件清单11附录2 系统原理图12附录3系统程序138参考文献19摘要本文研究了基于89s52单片机控制的小车循迹系统,通过光电传感器tcr5000检测路线的轨迹,将信号反馈回单片机,并通过单片机处理后,调节控制电机的pwm波使小车稳定运行在预定的
2、轨迹上。由于电机驱动使用性能优良的l298n芯片,使得电机运行速度稳定。电机采用容易控制的直流电机,通过测试小车能检测多种不同轨迹路线且运行稳定,实用性强,其所实现功能相当于简易机器人。关键词:89s51单片机tcr5000 l298 直流电机1 设计要求设计一自动寻迹小车,其实现功能如下:1. 使其能够检测到轨迹的路线,并按照预订轨迹运行;2. 要求在小车冲出预定路线后能够自动回到预定轨迹上;3. 小车能够按多种不同的轨迹运行。2 方案的选择与比较2.1 主控芯片选择方案1:采用51系列单片机,该系列单片机结构简单,但是能实现很多功能。与其它单片机相比较价格便宜。端口电流较大,可以达到20m
3、a,驱动能力强。方案2:采用msp430系列单片机,该系列单片机片上资源丰富,功能强大,但是端口灌电流和拉电流较小,驱动能力不强。它主要运用在需要低功耗的地方。本系统主要是进行寻迹运行的检测以及电机的控制,经过对比分析,我们选用at89s52单片机作为主控芯片来驱动电机,进而控制电机转速。2.2 电源的选择方案1:采用9v蓄电池为直流电机供电,将9v电压降压、稳压后给单片机系统和其他芯片供电。蓄电池具有较强的电流驱动能力以及稳定的电压输出性能。虽然蓄电池的体积过于庞大,在小型电动车上使用极为不方便。方案2:采用9v南孚干电池直接个电机驱动芯片l298n供电,并将9v经过7805稳压及电容滤波后
4、给单片机供电。由于方案2的质量小,且电池价格便宜,实用性强,足够实现系统功能,因此我们选用方案2。2.3 寻迹方案方案1:用光敏电阻组成光敏探测器。光敏电阻的阻值可以跟随周围环境光线的变化而变化。当光线照射到白线上面时,光线发射强烈,光线照射到黑线上面时,光线发射较弱。因此光敏电阻在白线和黑线上方时,阻值会发生明显的变化。将阻值的变化值经过比较器就可以输出高低电平。但是这种方案受光照影响很大,不能够稳定的工作。方案2:红外探测法,即利用红外线在不同颜色的物体表面具有不同的反射性质的特点,在小车行驶过程中不断红外发射管发出红外线,当发出的红外线照射到白色的平面后反射,若红外接收管能接收到反射回的
5、光线则检测出白线继而输出低电平,若接收不到发射管发出的光线则检测出黑线继而输出高电平。单片机就是通过接收到的高低电平为依据来确定黑线的位置和小车的行走路线。对于发射和接收红外线的红外探头,可以自己制作或直接采用集成式红外探头。经测试,此种方法简单可靠。经反复对比后,采用方案2。2.3 电机驱动方案方案1:采用传统的功率三极管作为功率放大器的输出控制直流电机。线性型驱动的电路结构和原理简单,成本低,加速能力强,但功率损耗大,特别是低速大转距运行时,通过电阻r的电流大,发热厉害,损耗大。方案2:采用继电器对电动机的开或关进行控制,通过开关的切换对小车的速度进行调整.此方案的优点是电路较为简单,缺点
6、是继电器的响应时间慢,易损坏,寿命较短,可靠性不高。方案3:采用专用芯片l298n作为电机驱动芯片。l298n是一个具有高电压大电流的全桥驱动芯片,它相应频率高,一片l298n可以分别控制两个直流电机,而且还带有控制使能端。用该芯片作为电机驱动,操作方便,稳定性好,性能优良。且由于l298n结合单片机可实现对小车速度的精确控制。这种调速方式有调速特性优良、调整平滑、调速范围广、过载能力大,能承受频繁的负载冲击,还可以实现频繁的无级快速启动、制动和反转等优点。由于l298n具有上述优点,因此我们采用方案三,其控制直流电机原理图如图二所示。图一 l298n驱动电机3 最终方案通过前面的分析我们的可
7、以得到如下方案:1. 采用89s52单片机作为主控制器;2. 采用9v南孚电电池直接供电;3. 用tcr5000对管进行寻迹;4. l298n作为直流电机的驱动芯片。其系统框图如图二:at89s52电源模块电机驱动模块寻迹模块图二 系统框图4各功能模块的实现4.1 微控制器模块的设计采用89s52单片机作为主控芯片,由于单片机的封装是直插式的、因此我们没有在最小系统上设计程序下载接口,直接通过单片机开发板下载程序,然后将89s52芯片安装在最小系统上,原理图如图三。图三 最小系统4.2电源模块原理图电源模块原理图如图四,通过p2接到9v电池上,由s1控制电源的通断,再通过滤波、稳压电路产生5v
8、电压给单片机供电。图四 电源模块4.3 tcrt5000红外检测模块我们设计了如图五所示的检测电路,图中r2为限流电阻,当有光反射回来时,光电传感器的三极管导通,在lm324的2脚出产生低电平电压,通过lm324处理后在p3.0出产生高电平,返回给单片机,从而达到检测的目的。并通过变阻器r3可调节传感器的灵敏度。图五 红外检测4.4 系统pcb图通过上面对各个模块的分析,我们得到整个系统的电路图,并制成pcb版,如图七所示。图七 系统pcb图4.5 系统程序流程图图六 系统程序流程图5 性能测试将电路板焊接好并安装在小车上,接上电源便得到我们需要寻迹的小车结构,寻迹小车实物图如图八所示。图八
9、寻迹小车实物图下载程序,通过不断地调试,最后得到运行稳定的小车,此外,我们还测试了多种不同轨迹的路线,如图九所示。图九 正在寻迹的小车6 性能评价及总结通过不断测试与改进,此项目能够检测多种不同轨迹的曲线,并且运行稳定,具有较强的实用价值,虽然实现的功能只是寻迹,但任何复杂的功能都是由简单的功能构成,并且程序是由c语言编写,所以可以很容易移植到较复杂的项目中。在前阶段的不断学习与实践中,我们的创新基金项目也逐渐完成,虽然我们中途遇到过很多问题,学习毕竟是一件快乐的事,为了使系统运行更加稳定,我们不断地改善硬件和软件结构,这使得我们认识到自己是在不断地成长。就是在这样的不断成长中,我们丰富自己的
10、知识,锻炼团队合作能力,为自己将来走入工作岗位打下了良好的基础。在这里我们要特别感谢我们的指导老师,他在我们的学习中给予了大量的支持和指导,使我们能顺利的完成创新基金项目。7 附录附录1:元件清单为了方便采购原件,我们将需要用到的原件列出了一张表,如表一表一:原件清单元件数量at89s52 单片机1片小车1部发光二极管5个自锁按钮1个不带锁按钮1个12mhz晶振1个排阻10k1个tcrt50005个lm3242片lm298n1片排针若干电阻若干电容若干导线若干散热片2个10k变阻器5个40、20脚dip座子若干7805稳压片1片杜邦线若干铜柱若干附录2 系统原理图附录3系统程序图/*实现功能:
11、右轮占空比为80%转圆,左轮占空比为60%,通过光电传感器检测小车是否在圆上,若不在则调整速度重新回到圆上。电机用pwm调制,总周期为100ms。*/#include#define uchar unsigned charsfr wdt_contr=0xe1; /看门狗设置uchar num;uchar pwm0=25,pwm1=50,pwm2=60; /设置占空比/*光电传感器定义*/sbit right1=p30; /最右边光电sbit right2=p31;/右边第二个光电sbit mid=p33;/中间光电sbit left2=p32;/左边第二个光电sbit left1=p34;/最左
12、边光电/*电机驱动控制定义*/sbit en2=p20; /右轮使能sbit in21=p21;sbit in22=p22;sbit en1=p23;/左轮使能sbit in11=p24;sbit in12=p25;/*延时函数ms毫秒*/void delay(uchar ms)uchar i,j;for(i=ms;i0;i-)for(j=60;j0;j-);/*电机初始化函数*/void init()en1=1;/开电机使能en2=1;in11=0;/先确定电机的低电平in12=0;in21=0;in22=0;/*电机后退函数*/void back()in11=0;/先确定电机的低电平in1
13、2=0;in21=0;in22=0;delay(100-pwm0);in11=in21=1;delay(pwm0);/*电机调整*/void turn_r0()/小车向左微偏,需向右微转in11=0;/先确定电机的低电平in12=0;in21=0;in22=0;delay(100-pwm1);in12=1;delay(pwm1);void turn_r1()/小车向左大偏,需向右大转in11=0;/先确定电机的低电平in12=0;in21=0;in22=0;delay(100-pwm2);in12=1;delay(pwm2);void turn_l0()/小车向右微偏,需向左微转in11=0;
14、/先确定电机的低电平in12=0;in21=0;in22=0;delay(100-pwm1);in22=1;delay(pwm1);void turn_l1()/小车向右大偏,需向左大转in11=0;/先确定电机的低电平in12=0;in21=0;in22=0;delay(100-pwm2);in22=1;delay(pwm2);/*discriminant()函数用于判断小车是否有偏转flag=0表示不偏转,flag=1向右微偏,flag=2向右大偏flag=-1表示向左微偏,flag=-2表示向左大偏,flag=3表示出错*/char discriminant()char flag;if(
15、mid)&right1&right2&left1&left2) /不偏转flag=0;else if (mid&right2)&right1&left1&left2)/向右微偏flag=1;else if(right1&right2)&mid&left1&left2) /向右大偏flag=2;else if(mid&left2)&right1&right2&left1)/ 向左微偏flag=-1;else if(left1&left2)&mid&right1&right2)/向左大偏flag=-2;else flag=3;/出错return flag;/*主函数*/void main()cha
16、r n; /n用于接收discriminant()的数据tmod=0x01;/设置定时器工作方式3th0=(65536-100)/256;/装初值,1ms产生一次中断tl0=(65536-100)%256;ea=1;/开总中断et0=1;/开启定时器0中断tr0=1;/开启定时器0init();/ 调用电机初始化函数wdt_contr=0x36;while(1)n=discriminant();switch(n)case 0:break;case 1:/检测到向右微偏,向左微转et0=0;while(n=1)n=discriminant();turn_l0();et0=1;break;case
17、 2:/检测到向右大偏,向左大转et0=0;while(n=2)n=discriminant();turn_l1();et0=1;break; case -1:/检测到向左微偏,向右微转et0=0;while(n=-1)n=discriminant();turn_r0();et0=1;break;case -2:/检测到向左大偏,向右大转et0=0;while(n=-2)n=discriminant();turn_r1();et0=1;break;case 3:/检测出错,倒退et0=0;while(n=3)n=discriminant();back();et0=1;break;wdt_contr=0x36;void t0_time()interrupt 1th0=(65536-100)/256;/装初值,1ms产生一次中断tl0=(65536-100)%256;num+;init();/*设置占空比*/if(num=(10
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 建设工程 机电合同范例
- 公司发工资写合同模板
- 律师 购车合同范例
- 小吃培训学员合同范例
- 回收店加盟合同模板
- 家电购销合同范例
- 工程质保延期合同模板
- 客车承保运营合同范例
- IT零售新篇章科普
- 土建弱电合同范例
- 护理文献检索步骤
- 2024年有子女无财产离婚协议参考范文(四篇)
- 2024欠款还款协议书
- 阿米巴巴长知识竞赛考试题库(含答案)
- 2024至2030年中国鸡蛋行业市场发展现状及投资规划建议报告
- 初一期中家长会课件
- 小学三年级下一字多义(答案)
- 六年级上册道德与法治全册教学课件
- XX集团内部审计人才库管理办法(专业完整格式模板)
- 人教版五年级上册语文《期中》测试卷及完整答案
- 《铸牢中华民族共同体意识》课件
评论
0/150
提交评论