ImageVerifierCode 换一换
格式:DOCX , 页数:21 ,大小:383.29KB ,
资源ID:9364295      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9364295.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(《基于51单片机的红外避障自动车的实现》技术报告.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

《基于51单片机的红外避障自动车的实现》技术报告.docx

1、基于51单片机的红外避障自动车的实现技术报告基于51单片机的红外避障自动车的实现技术报告 小组成员:李相华 王太杰 孙学军 指导老师: 时间:2010/05/03摘要本小组所设计一个带有红外传感器的小车,基本能实现自动避障的功能。本小车以STC89C52为其主控单元,以俩个直流减速电机为驱动电机提供基本动力,并依据差速原理实现转向,用红外传感器进行探测,使用分离元件组成的电路去驱动电机,使用PWM波实现变速功能。小车分为五个模块:STC89C52主控模块,传感模块,电源模块,电机驱动模块,测速模块。关键词:89C52 红外避障 自动车题目:基于51单片机的红外避障自动车的实现下面是一些基本资料

2、:小车参数障碍检测方式红外探测(探测模块功耗7mA)车模几何尺寸(mm)149 x 102 x 59测 障 精 度前方:75 cm 左右:25cm车模轮距(mm)120电 源 系 统4 x 1.5 v干电池4 x 1.2 v充电电池及其稳压输出电 机直流减速电机,112V工作电压,传动比:71.2:1主 控 芯 片STC89C52MCU其 他 芯 片LM7806 LM7805 STC11F01等小组资料小组成员:姓 名班 级善长项目负责模块王太杰0804211班擅长于硬件焊接技术强硬件知识充足红外探测部分驱动调试孙学军0904211班擅长于编程C语言功底扎实思路开阔程序驱动部分程序调试李相华0

3、804211班查阅资料能力强善于方案选择和优化电源部分小组优势: 硬件与程序搭配协调,每人负责各自模块,只提供最终模块接口,使对方不必关注自己模块内部结构,只需将接口连接完成即可,减少了每人负责的内容,提高了效率。制作流程与时间2010年5月1日 小组成员对各模块电路进行了选择、优化,并进行了电路搭建、焊接,各模块调试,确定模块交互接口;主控程序思路成型,并编写了测试程序,对软硬件进行了测试。最后各模块交互,整体调试,主程序确定及细节敲定。2010年5月2日: 模块交互,整体调试,主控程序细节修改;经布局后各硬件模块转移至车体,最终焊接,整车成型。主控程序下载,调试,最终成功。技术资料设计思路

4、: 为节省电机数量和电路复杂程度,红外避障小车(以下简称小车)采用前轮主动,后轮从动原理。前轮采用双电机驱动,利用差速法实现车身转向。检测部分利用红外发射管发射红外光,遇障碍物后经反射被红外接受管接收,产生电平转换,利用单片机I/O口检测红外检测模块电平输出,以此判断前方障碍物有无,检测到障碍物后,经单片机I/O口控制电机驱动电路,经由电机驱动电路输出不同电压,产生差速,实现转向,最终以达到避障的目标。其总体方框图如图所示:主控模块:方案一:采用凌阳公司的16位单片机,它是16位控制器,具有体积小、驱动能力强、可靠性高、功耗低、结构简单、具有语音处理、运算速度快等优点,但考虑到我们小组对这个方

5、案采用的微处理器并不熟悉,使用起来并不是很方便,这对于硬件电路的设计和软件编程增加了难度。我们决定不再使用此方案,考虑其他方案。方案二:采用STC 89C52单片机作为主控制器。STC 89C52是一个超低功耗,和标准51系列单片机相比较具有运算速度快,抗干扰能力强,支持ISP在线编程,片内含8k空间的可反复擦写1000次的Flash只读存储器,具有256 bytes的随机存取数据存储器(RAM),32个I/O口,2个16位可编程定时计数器。其指令系统和传统的8051系列单片机指令系统兼容,降低了系统软件设计的难度,电路设计简单、价格低廉,在后来的实验中我们发现,STC 89C52精确度和运算

6、速度也都完全符合我们系统的要求。综合以上方案我们选择比较普通的更为熟悉的方案二使用STC89C52单片机为我们整个系统的控制核心。其各个引脚如图1所示图1探测模块:方案一:用三极管驱动红外发射管和红外解收管。 在三极管的射级接俩个红外发射管,加大红外线的强度,进儿提高其探测距离。在红外接收电路中,用电阻和红外接收管串联来调节基极的电位,当接收管接收到红外线时可以改变基极电位,进儿使三极管工作在截止或饱和状态,即调节了输出电平,实现了高低电平的转换。其发射和接受电路如图2所示:图2 优点:电路简单,搭建方便。 缺点:探测精度不高,探测距离比较近。 考虑到小车行驶时对精度的要求,我们最终放弃了这套

7、方案。方案二:用三极管驱动红外发射管,用LM358来实现接受电路。 发射电路和方案一基本一致,这里就不赘述了。LM358是包含俩个运算放大器的集成器件,我们用第一个放大器来实现对探测到得信号进行放大,把第二个作为电压比较器(阈值电压Vth=1/2Vcc)。把处理过的信号和阈值电压进行比较,实现高低电平转换,并把数字信号送给单片机,使小车做出正确动作。器接收电路如图所示: 优点:探测精度较高,并且通过滑动变阻器可以改变探测距离,可以适应不同环境进行探测。 缺点:电路较为复杂。 综合考虑,最终我们选择了方案二。测速模块: 方案一:用光电对管实现测速。 光电对管是我们所熟知的器件,用它进行测速数据准

8、确。我们的电机上面正好有一个光栅,用其测速实现比容易。 但最终由于电机相对光电对管来说比较小,无法很好将二者结合起来,我们不得不放弃这种方案。 方案二:用红外对管实现测速。 由探测模块中的方案一可知,此电路探测距离短,稍作改动可以实现测速。再小车的一个轮子上贴上黑纸,并在黑纸上贴上一条白纸(黑色可以吸收绝大多数的红外线而白纸却可以反射大部分红外线),当轮子转起来时就会产生高低电平,送给单片机的计数器进行计数。通过单位时间内的轮子转过的圈数实现了测速.。其电路如图所示: 通过实验分析可得,此方案基本可以满足我们的需要。最终选择了此方案。电源模块:方案一:交流供电。实现方式:220V交流电经整流稳

9、压获得。优点:供电稳定,电压输出灵活。缺点:须稳压,电源传输线较长,且可能会对车子的避障功能产生干扰。考虑到小车行驶的灵活性和避障抗干扰性,我们抛弃了采用交流电的方案。方案二:直流电供电。实现方式:4接南孚电池串联获得。优点:无需稳压即可输出稳定电压,无需使用电源线。缺点:电压输出固定,无法获得灵活的电压输出。考虑到避障小车工作时各模块需求电压分别为:单片机4.55.5V,电机112V,红外测障模块5V,灵活性不高,因此可实现5V、6V的电压输出对各模块供电。因此我们最终采用直流电供电方式。在制作调试过程中,我们采取了4节5号南孚电池,用电池盒串联。经测量4节南孚电池串联输出为6.3V稳定电压

10、。针对各模块电压需求我们产生以下具体实现方案:单片机电源:单片机工作电压为4.5V5.5V,且其对工作电压要求比较严格方案一:我们设想采取基于LM7805稳压芯片的稳压芯片输出5V恒定电压。但是由于LM7805对输入输出两端电压要求有23V压降,且稳压芯片功耗较大,可能导致电源利用效率不高,故最终舍弃了这种方案。方案二:经过在网上查阅相关经验方法,我们最终确定了一种简单易行的方法:在电源处串联一个(两个/可通过跳线帽选择)二极管实现0.7V(1.3V)压降,用来提供单片机工作电压。如图2所示:图2 电源模块驱动电路电源:电机对电压要求不精确,但电压会影响电机功率以及速度。方案一:采用模拟CD-

11、DC升压电路获得较高电压供给电机驱动电路已获得较高的功率输出,提高转速。最终考虑到电路实现的复杂性。我们最终舍弃了这种方案。方案二:采用专门的直流电升压芯片(比如MC34063A)以简化电路。不过最终由于经济原因放弃了这种方案。方案三: 直接用电池串联后的电压给驱动电路供电,此方案简单易行,制作成本较低,不过电机功率不大。最终经测试小车速度能达到我们的需求,最终采取了本种方案。经分析电源方案的优缺点,我们得出以下方案:考虑到一次性干电池的不可利用性,我们在整车成型时采用了4节可充电电池经电池盒串联的方案,以降低后续制作成本。考虑到电压输出端的单一性,我们考虑采用10V稳压管另做一路电源输出,为

12、电机提供工作电压,在一定程度上可提高电机功率,提高整车运行速度。电机驱动模块:方案一: 采用电机驱动集成芯片(如L9110)来驱动电机。优点:电路简化,双路输出,可以实现双电机的正反向转动,实现整车的前进后退。但由于电机驱动集成芯片的价格比较高(1830元/片),为降低制作成本,最终舍弃了采用电机驱动芯片驱动的方案。方案二: 采用分立元件模拟电路驱动。优缺点:制作成本低,电路无法简化,稳定性较驱动芯片(如L9110)差。经考虑避障小车的控制精度不是很高,运用分立元件模拟电路即可达到系统要求,最终采取了本种方案。经选择我们最终采取了利用双三极管控制开关电路,利用三极管的反应灵敏性,并将其俩端接在

13、MCU的I/O口上,可以通过控制I/O口输出0、1来控制三极管开关,以达到控制输出电压的目的。最终驱动电路如图3所示:其控制如表所示:图3 电机驱动表1P00P01P02P03状态1010前进0101后退1000右转0010左转 主控程序为了降低程序复杂性,我们分析了软件运行原理,尽量简化程序设计。单片机我们最终选用了10个I/O口。其中1个用来计数或测速,3个I/O口用来接收红外部分电平转换,检测障碍物,2个I/O口用来控制转向灯,另外4个I/O口端接电机驱动电路,用程序使其产生0、1脉冲数量比来控制驱动电路开关,最终实现速度差以实现转向避障。主控程序如下:/* * 程序开发环境Keil u

14、Vision3 语言:C 编写者:王太杰 时间:2010/04/04* */* * 主程序及注释如下:* */#include#define uint unsigned int #define uchar unsigned charsbit x=P20; /定义左侧探测器接收端sbit y=P21; /定义中间探测器接收端sbit z=P22; /定义右侧探测器接收端sbit m1=P10; sbit m2=P11; /定义左侧电机控制端sbit n1=P12;sbit n2=P13; /定义右侧电机控制端sbit l=P14; /定义左侧转向灯控制端sbit r=P15; /定义右侧转向灯控

15、制端uint k,num;void delays(uint i) /定义一个延时1MS的延时函数 uint m,n; for(m=i;m0;m-) for(n=110;n0;n-);input_num(uchar bai,uchar shi, uchar ge) /信号运算函数 uint he; he=4*bai+2*shi+ge; return(he);void zuo_zhuan() /小车左转函数 uint i; for(i=1;i=5;i+) m1=0; m2=0; n1=1; n2=0; l=1; /控制转向灯 r=1; delays(15); m1=1; m2=0; n1=1; n

16、2=0; l=0; r=1; delays(5); void you_zhuan() /小车右转函数 uint i; for(i=1;i=5;i+) m1=1; m2=0; n1=0; n2=0; l=1; r=1; delays(15); m1=1; m2=0; n1=1; n2=0; l=1; r=0; delays(5); void hou_tui() /小车倒车函数 uint i; for(i=1;i=50;i+) m1=0; m2=1; n1=0; n2=1; l=1; r=1; delays(15); m1=0; m2=1; n1=0; n2=1; l=0; r=0; delays

17、(10); for(i=1;i=50;i+) m1=0; m2=0; n1=1; n2=0; l=1; r=1; delays(20); m1=1; m2=0; n1=1; n2=0; l=0; r=1; delays(5); void qian_jin() /小车前进函数 uint i; for(i=1;i=5;i+) m1=1; m2=0; n1=1; n2=0; l=1; r=1; delays(20); uint read() /小车测速的计数函数 uchar t1,th1,th2; uint val; while(1) th1=TH0; t1=TL0; th2=TH0; if(th1

18、=th2) break; val=th1*256+t1; return val;void T1_time() interrupt 3 /定义定时器1 TH1=(65535-45872)/256; TL1=(65535-45872)%256; /定时时间为50ms k+; if(k=30) num=read(); k=0; TH0=0; TL0=0; /计数器清零 main() /主函数 uint grade; TMOD=0x15; TH0=0; TL0=0; TH1=(65535-45872)/256; TL1=(65535-45872)%256; /在定时器中装入初值 EA=1; ET1=1

19、; TR0=1; TR1=1; while(1) if(num=0) hou_tui(); else if(num!=0) grade=input_num(x,y,z); switch(grade) case 2:qian_jin();break; case 0: case 4: case 6:you_zhuan();break; case 1: case 3:zuo_zhuan();break; case 5: case 7:hou_tui();break; /* * 程序结束,经测试程序符合硬件,功能达到预期目标。* */功能扩展1:本车人机交互性不强,车体速度无显示、障碍物有无显示不明显,无转向灯提示 预期可以增加速度测量以及液晶或数码管显示模块,显示模块可以附在车体本身,也可以单独成模块,利用无线传输将数据从车体发送到终端显示。2:增加自动循迹功能实现自动循迹3:增加自动刹车功能增加路径识别或特定障碍物识别,实现自动刹车功能。4:遥控功能增加红外遥控功能,控制车体前进、后退、左转、右转、加速、减速等功能。注:附录1:1. 红外遥控2.无线遥控3.自动循迹4.速度采集模块5.温度多路采集6.光电使用电路(如:断电警报,依据外界光照自动调节亮度等)7.各种数据的显示(如:1602,诺基亚5110显示器等)8.数字温度计9.移动闹钟

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1