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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(超声波避障小车结题报告Word下载.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

超声波避障小车结题报告Word下载.docx

1、 学号:实验部分考核考核内容分值得分基本设计任务的完成情况40附加设计任务的完成情况10对教师提问的回答情况总结报告评分评分内容内容完整、字数达标20层次清晰、重点突出、分析透彻书写规范、文字流畅5有独特见解、有一定的创新总成绩: 指导教师签字:结题报告1课题完成情况本超声波避障小车的设计基于单片机原理和传感器原理,以51单片机为主控芯片,采用直流电机为驱动元件,通过软件编程制作了一整套结构完整,功能模块化,反应较为灵敏的超声波避障小车。经过对该避障小车的避障测试实验,实验结果证明该避障小车能够很好的按照预期完成避障动作,并且能够快速运动灵敏避障,效果良好,运行稳定性较好。预期的目标都能够实现

2、:(1)在车前方没有障碍物时,小车沿直线向前走。(2)在车前方有障碍物时,小车能避开障碍物,避障方法如下:先向左边转90度,如果前面没有障碍物,再沿直线向前走;如果前面仍有障碍物,则向右转180度,如果前面没有障碍物,则沿直线向前行走;如果前面仍有障碍物,则向右90度,然后直线行。但是该超声波避障小车还存在着许多的不足,比如说只能对正前方一定角度内进行探测,使用的是一路超声波而不是多路超声波探测,并且为了简化,默认的只是向同一个方向转弯等,这些都是有待进一步发展和提高的。2 所遇问题及解决方案首先,我们对硬件的原理不够明白,在此之前超声波传感器并没有接触使用过,课程设计指导书上介绍的并不详细,

3、我们利用课后时间查了更加详细的资料,对其做了近一步的了解。其次,在烧写完程序,通电之后,小车不停地旋转,旋转次序与设计的避障旋转次序一致,说明子函数“getx()”返回的Dis 的值一直小于10. 出现这个结果的问题是子函数“getx()”里面的子函数delay_nus(1),因为delay_nus(1)的实现的延时时间实际上不是1us,因为delay_nus()函数里面有这样的语句“i=i/10”,这样实际上i就等于0;为了解决这个问题我们重新编写了一个延时函数delay_nus1(1),结果小车正常运行。小车再次通电之后,小车在避障功能上完全满足要求,但是前进时,小车却每行进两三厘米就停顿

4、一下,然后再行进两三厘米就停顿。出现这个问题的原因是程序每循环一次时都应该初始化Sig,我们在程序中加上了“delay_nus(20000);Sig=0;” 结果小车正常运行3 心得体会通过这次的项目实训,我学习到了很多的电子知识,提高了我对于陌生硬件的学习能力。超声波传感器在此之前我没有接触过,对我来说非常的陌生,从一无所知慢慢查资料到能够熟练应用,让我知道了面对新的硬件应该怎么学习,在以后的工作学习中,我一定会遇到非常多的不熟悉的硬件,我相信,通过不断地锻炼积累,学习能力会进一步提高。 这次实训同时还加强了我实践动手能力,特别培养了出现问题、分析问题、解决问题的能力,我相信这些能力的提高对

5、我以后在从事任何工作都将会有极大的帮助。这次的项目实训让我感触最深的是:作为电子爱好者,电子制作中不管遇到什么问题和困境都要有一颗平静的心和坚持不懈的精神,一颗浮躁的心是不会到达成功的彼岸。这次课程设计,给我更多的是一种模块化的思想,将系统按我们所需的功能和系统所能提供的功能进行模块化的分类,将会使我们的工作变得一目了然,非常清晰。比如说这次我选的避障小车,可以分成超声波测速模块,电机驱动模块,单片机核心模块三个,三个部分各司其职,无论从硬件上还是软件上,都能够比较清晰地将他们的功能区分开,从而有利于硬件的连接和程序的编写。对于这次程序的编写,我就是分块编写,按模块调试,从而避免了许多错误。从

6、以后工作来看,这种模块化处理问题的方式将会更加的有用,在公司和以后得科研项目中,系统一定是越来越复杂,不可能一个人完成所有的任务,一定是一个团队来做这些系统的设计,所以模块化之后,能够将任务分配给每个人,最后大家还能够很好的综合到一起,大大的缩短了开发周期。最后,感谢胡老师这么多天对我们的帮助,每次遇到问题时,老师都耐性的帮我解答问题,正是老师一次有一次的讲解才让我坚持下来。老师耐心细致的讲解也让我学到了很多课堂上没有学到的知识在此,感谢指导老师尽心的指导。4 参考文献1 袁新娜,与红英编著.超声波传感器在智能小车避障系统中的应用.A中北大学 (2009)08-0085-042 邵贝贝. 单片

7、机嵌入式应用的在线开发方法M北京清华大学出社20043 王晓明. 电动机的单片机控制M北京. 北京航空航天大学出版社2002 4 臧杰,阎岩. 汽车构造M. 北京. 机械工业出版社2005 5 安鹏,马伟S12单片机模块应用及程序调试J. 电子产品世界. 2006第211期 162-1636 童诗白,华成英模拟电子技术基础M北京. 高等教育出版社2000 7 沈长生常用电子元器件使用一读通M北京. 人民邮电出版社2004 8 宗光华机器人的创意设计与实践M北京. 北京航空航天大学出社2004 9 张伟等Protel DXP高级应用M北京. 人民邮电出版社2002 10 张文春. 汽车理论M北京

8、机械工业出版社2005 11 江海波,王卓然,耿德根编著.深入浅出AVR单片机.中国电力出版社,2008.12邵贝贝. 嵌入式实时操作系统LCOS-(第2版)M. 北京清华大学出版社2004附录:#includeintrins.hsbit Sin=P15; /超声波模块控制端口sbit right=P10; /右轮控制信号sbit left=P11; /左轮控制信号unsigned int Dis,Time;unsigned char LTime,HTime;void IO_init(void) EA=1; ET0=1; TMOD=0x11;/将T0定时器/计数器设置为16位计数模式 TH0=

9、0x00; /初始值为0 TL0=0x00; TR0=0; /不开始计数void delay_nus(unsigned int i) /延时函数 i=i/10; while(-i);void delay_5us() /短时间延时函数,为SIN高电平准备 _nop_();void getx(unsigned char a) /测距函数 TH0=TL0=0; /初始值设置为0 if(a) Sin=0; /Sin置0 Sin=1; /Sin置1,并且延时一段时间,提供一个测距的触发脉冲 delay_5us(); /Sin重新置0 while(Sin); while(!Sin);/SIN信号从低电平变

10、为高电平,此时跳出该循环TR0置1,开始计数 TR0=1; /SIN信号从高电平变为低电平,此时跳出该循环TR0置0,停止计数 LTime=TL0; HTime=TH0; Time=HTime*256+LTime; /将高8位乘以256加上低8位得到总值 Dis=Time/(2*29); /计算出所差距离 void Forward_fast(void) /快速前进 left=1; delay_nus(1700); left=0; delay_nus(20000); right=1; delay_nus(1300); right=0; void Forward_slow(void) /慢速前进

11、delay_nus(1580); /减小左电机的高电平时间,增加右电机的高电平时间,减小速度 delay_nus(1420);void Left_90(void) /左转90度 unsigned int i=0; while(i=50) /如果距离大于50 Forward_fast(); /快速前进 else if(Dis=10&Dis=10) /如果距离大于10 Forward_slow(); else /如果距离依旧小于10 Right_180(); /右转180 getx(1); if(Dis=10) /如果此时距离小于10 Forward_slow(); else /否则,继续调试 Right_90(); /右转90度

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2