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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

AT89S51单片机 智能小车.docx

1、AT89S51单片机 智能小车智能小车(C题)摘要:本次设计是设计一个智能小车,采用AT89S51单片机作为控制中心,通过红外反射型对管检测边界线,关电开关检测路面标志线,并配合自制的L298来实现直流减速电机的驱动。使用NRF24L01模块实现两车之间的通信,采用单位数码管显示车牌号,明显区分两辆小车。采用自制码盘调速实现车速闭环控制。另外,本次设计我们采用手工焊制,虽然外观上不十分美观,但是性价比较高,经济适用,并且很好的锻炼了我们焊接、调试、团队协作等方面的能力。我们对小车的性能进行了实际检测,验证了各项指标,良好的实现了设计目标。关键词:AT89S52 光电传感器 红外对管 无线通信

2、1系统方案1.1 系统设计与结构框图 根据题目要求,本系统主要由电源模块,红外探测模块,电机驱动模块,光电检测模块,无线通信模块,码盘测速模块,微调模块,显示模块,计时模块等构成。系统的结构框图如下图1所示:图1 系统结构框图1.2 方案论证小车选择:本设计中小车要在规定车道上灵活行驶,购买玩具车不能很好的适应要求。又考虑到四轮车转弯受到限制,不易超车,所以我们自己设计车体结构类似为三角形,灵活性大,且尽量使小车重心降低以便于制动。控制器选择:方案一:采用Atmel公司的AT89S52单片机。方案二:采用mc9s12xs128单片机。方案三:采用凌阳公司的SPCE061板。 mc9s12xs1

3、28和SPCE061使用起来比较困难,电路复杂,焊接也相对困难,而本题使用AT89S52完全能可以满足要求,AT89S52低功耗,高性能,使用mc9s12xs128和SPCE061有些大材小用了。电源模块:方案一:铅酸电池供电。方案二:电池组供电。方案三:锂电池供电。铅酸电池供电,电流大,但是重量太沉。电池组耗费量太大。小车为活动性机器,故最好采用电池供电。电机工作需要8V电压,且要求较大的电流,其它模块需5V和3.3V供电,电流要求不高。这样,体积小,容量大,重量轻,使用寿命长的锂电池结合8V5V和5V3.3V的DCDC芯片便成为我们的最佳选择。电机选择:方案一:采用步进电机方案二:采用直流

4、减速电机步进电机可以准确定位,但输出力矩低,速度慢,且体积大,重量大,不适用于小车的快速行驶,也可能达不到时间上的要求。而直流减速电机转动力矩大,速度大,体积小,重量轻,因而成为我们的最终选择。电机驱动模块方案一:采用晶体管构建H桥驱动方案二:采用专用芯片L298H桥由4个三极管组成,可方便实现直流电机的四象限运行,分别对应正转、正转制动、反转、反转制动。专用驱动芯片L298,响应频率高,一片可控制两个直流电机,操作方便,稳定性好,性能优良。最终,我们选用L298作为电机驱动。探测模块方案一:光敏电阻+发光二极管方案二:采用光电传感器方案三:红外对管反射式光电传感器采用一体化结构,利用黑、白线

5、反射光的强弱寻迹,灵敏度高,体积小,且结构紧凑,安装方便,通过红外对管来实现,它测量距离近,信号强度低。但相比光电传感器而言,其体积较小,价格低,安装较容易.实验室旧拆卸件无需额外成本。考虑到性价比和检测要求,我们选择方案二和方案三相结合,即关电开关检测车行道上的标志线,红外反射对管检测车道边界线。微调模块:在小车走到边界处,传感器检测到边界线,软件控制电机对其进行微调。 码盘测速模块:用自制打印码盘检测小车的车轮转速,差动比较两轮速度进行调整。 计时模块:51单片机具有强大的中断功能。我们可以通过中断进行计数,然后计算出时间。这样,无需外部硬件,程序也较简单。.显示模块:数码管显示速度快,亮

6、度高,我们用其来显示车牌号以便明显区分两车。无线通信模块:通过无线来实现小车与上位机的通讯,我们采用常见的无线单片收发芯片nRF2401,它体积小、功耗少、外围元件少,有助于减轻小车重量。1.3 系统设计铝合金自制车体采用L298驱动直流减速电机实现行进,光电传感器结合红外对管完成小车自动行驶的功能。利用码盘测速实现电动车的闭环反馈控制,根据PID控制算法找出车速平衡点。同时LED显示模块和无线通信模块实现了两车之间的通信。我们确定的最终方案为:1.小车模块:采用自制类三角形车体结构2.控制模块:采用Atmel公司的AT89S52单片机。3.电源模块:采用锂电池结合DCDC芯片供电。4.电机模

7、块:采用直流减速电机,由L298来驱动。5.码盘测速模块:采用自制打印码盘。6.微调模块:软件编程实现。7.红外探测模块:采用反射式光电传感器。8.计时模块:软件编程实现。9.显示模块:采用LED显示车牌号。10.无线通信模块:采用无线单片收发芯片nRF2401。2理论分析与计算 2.1信号检测与控制:信号的检测通过使用反射型光电对管与红外对管实现。广电对管相对于红外对管看更加灵敏,更加高效,然后根据读入的对管状态值,来调节小车的行驶状态。但考虑到成本与性价比问题,我们在每辆车上只使用1个光电对管,将其放置在车头位置检测转弯线以应对高速灵敏的要求。(图见附录A图8)在其他位置我们则使用一些先有

8、的较为廉价的红外对管与三极管组成检测电路,也同样可以达到相当高的使用标准与灵敏度。同时出于测量车速构造回馈模块的考虑,我们用自制并用打印机打印车轮码盘贴于车轮内侧,同时在电机车轴附近设置红外对管检测模块,用以实现回馈车速,达到始终可以自身调节的目标。2.2两车之间的通信:通信模块我们选择了NRF24L01+模块,此模块使用高效GFSK调制,抗干扰能力强,内置硬件CRC用于检错,体积小巧15mm X29m,而且具备低功耗1.9 - 3.6V 工作的能力,待机模式下状态为22uA;掉电模式下为900nA,符合节能的基本思想。本系统中要考虑三种模式下的通讯:默认直行模式:当车启动时,在进行一系列初始

9、化的过程中开启通信模块,发送检测信号,同时进入接受模式。若检测到有另外的模块发来检测信号,则该车根据之前设定进入超车或等车模式,同样另外一辆小车也进入了相应模式。若接收模式下始终无法检测到有其他的检测信号输入,则进入默认的沿跑道行驶模式。超车模式:小车自动进入超车模式,当走出超车区完成超车时将通过无线模块发送超车完成信号给等待车,并在下一圈时根据程序设定自动进入等车模式。等车模式:小车自动进入等车模式,当检测到超车区来临时,将走到预定地点停车等待,并进入接受模式检测无线信号,直到接收到超车完成信号时重新启动电机继续行驶,并在下一圈时根据程序设定进入超车模式。2.3时间测量与计算:本系统中对于时

10、间的计量是通过中断形式实现的,不需要任何硬件设施。其具体实现方法就是每进入一次中断,则计数值加一。通过该计数值,我们就可方便的计算出时间。控制:综合分析各种常用控制算法和现有测试仪器,同时出于测量车速构造回馈模块的考虑,我们用自制并用打印机打印车轮码盘贴于车轮内侧,同时在电机车轴附近设置红外对管检测模块,用以实现回馈车速,达到始终可以自身调节的目标来实现两车之间的超车。2.4环保节能性价比体现:1,红外传感器直接采用拆卸件,节省资源、循环利用,因此型号不一混搭使用。2,车体部分采用普通合金脚料,用盛放元件的塑料管组成前瞻支架部分,轻便且易于取材而且环保。充分利用废弃物品自制小车,拒绝套件。培养

11、动手能力的同时突出小车的性价比。3,可多次循环利用的锂电池,轻便小巧,虽然单品价格相对会高一些,但其寿命长,从长远角度看既环保又节能。4,采用8050三极管分立元件电路代替比较器,大大的减少的开销,运用电路知识,合理利用资源寻找更节能,更便捷更低功耗的的代替方案。3电路与程序设计3.1 检测与驱动电路设计 电源模块:采用L7805和ASM1117稳压芯片产生5V和3.3V。如附录A图1所示。电机驱动模块:一片L298N可控制两个直流电机,我们用PWM输出来调制车速,且为了防止电机模块对前级的干扰,我们加光电耦合级,电路连接如附录A图2所示。探测模块:我们采用反射式光电对管和红外反射对管如附录A

12、图3,红外探测侧对管输出接8050三极管组成的比较器,由地面反射状况的不同而输出1,0信号予以反馈。其电路连接如附录A图4所示。显示模块:数码管显示车牌号,采用静态显示方式,其电路连接如附录A图5所示。无线模块:nRF2401业界体积最小、功耗最少、外围元件最少的无线单片收发芯片,编程很方便,实际传输距离在50-80米左右。其电路如附录A图6所示。单片机最小系统:AT89S52单片机最小系统如附图A图7所示。3.2软件设计与工作流程图因为本系统中小车要进行前进、车速调节、延时、检测边界线和转弯线等一系列活动,所以对于程序的安排结构要求严格。在此,我们采用模块化设计方法,将整个程序分为以下几个模

13、块:.主程序;电机驱动子程序;寻找转弯线子程序;无线通信子程序等。主程序代码见附录B。主程序流程图如图2示。图2 工作流程图4功能测试与结果分析4.1基本功能测试:1. 1号车 正常行驶一圈测试次数 所需时间 1 12 s 2 15 s 3 14 s 4 16 s 5 15 s 平均时间:14.4s/圈 2号车 正常行驶一圈测试次数 所需时间 1 15 s 2 16 s 3 14 s 4 15 s 5 13 s 平均时间:14.6s/圈2. 2号车追1号车,实现超车功能测试次数 所需时间 1 31 s 2 34 s 3 35 s 4 34 s 5 32 s 平均时间:32s/圈 4.2发挥功能

14、测试:1. 交替领跑第二圈测试次数 所需时间 1 60 s 2 64 s 3 63 s 4 65 s 5 67 s 平均时间:63.9s/圈4.3创新发挥在完成基本要求和发挥部分的基础上,我们又扩展了以下功能:通过无线收发芯片nRF2401在两车之间实现通讯,当领跑车冲出跑道,通过通信是另一车立即停止。4.4结果分析:我们在软件上精心调试多次,硬件上注意每一个小细节,最终使得我们的小车在多次测试中都较好地完成了题目地基本要求和发挥部分。同时我们所扩展的路程测量与显示功能,效果良好。5结束语通过良好的寻迹,二分法与微调结合等算法,我们的小车可顺利完成各段行程,并较为快速的找到转弯线;通过nRF2

15、401,顺利实现小车之间的无线通讯,从而判断领跑车和两车之间的状态控制。6参考文献1 全国大学生电子设计竞赛组委会.全国大学生电子设计竞赛获奖作品选编(2005).北京: 北京理工大学出版社.20072 王延伟.罗亚非. 大学生创新竞赛实战. 北京:北京航天航空大学出版社. 20093 曹立军. 单片机原理与应用.电子科技大学出版社.20054 杜清府. 刘海.检测原理与传感技术.山东大学出版社. 2008.95 谭浩强. C语言程序设计(第二版).北京:清华大学出版社6 王鸿明. 电工技术与电子技术. 北京:清华大学出版社附录A图1电源电路图2电机驱动电路图图3光电对管连接图图4红外对管连接

16、图图5数码管显示图6 nRF2401连接图图7单片机最小系统图8 传感器安装实物图附录B /*跑圈方案A(单车行驶)控制参数*/uchar counter_corner;/*电机控制端口*/sbit in1=P10;/*/sbit in2=P11;/*左电机*/sbit ena=P14;/*/sbit in3=P12;/*/sbit in4=P13;/*右电机*/sbit enb=P15;/*/uchar Num_1,Num_2;uchar left,right; /left控制左电机,right控制右电机/*方向传感器*/sbit L_1=P00;/*传感器1*/sbit L_2=P01;/

17、*传感器2*/sbit L_3=P02;/*传感器3*/*正反转设置*/void positive() in1=1; in2=0; in3=1; in4=0;void negative() in1=0; in2=1; in3=0; in4=1;/*跑道方向修正函数*/void direction_modify(uchar direction) negative(); delay_ms(20); positive(); if(direction=1) right=2; delay_ms(20); if(direction=2) left=2; delay_ms(20); /*边界检测函数*/vo

18、id boundary_scan() if(L_2=0) delay_ms(3); if(L_2=0) direction_modify(1); if(L_3=0) delay_ms(3); if(L_3=0) direction_modify(2); right=15; left=15; /*前方传感器测试与拐弯设置*/void turnleft_scan() if(L_1=0) delay_ms(5); if(L_1=0) counter_corner+; if(counter_corner=5) counter_corner=0; if(counter_corner!=1) delay_

19、ms(500); left=2; right=12; /while(1); delay_ms(480); left=12; right=12; while(!L_1); delay_ms(3); while(!L_1); /*定时器T0中断服务函数*/void t0(void) interrupt 1 /定时器T0用来产生左电机转动所需的PWM波TH0=(-500)/256; /定时器重装初值 TL0=(-500)%256; Num_1+; Num_2+; if(Num_1=left) /PWM波的占空比为left/21*100% ena=0; else if(Num_1=21) /PWM波的周期为21*500us ena=1; Num_1=0; if(Num_2=right) /PWM波的占空比为right/21*100% enb=0; else if(Num_2=21) /PWM波的周期为21*500us enb=1; Num_2=0;

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

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