1、哈尔滨工业大学课程设计说明书(论文)Harbin Institute of Technology课程设计说明书(论文)课程设计说明书(论文)设计题目: 超声波避障小车 院 系:电气学院自动化测试与控制系 班 级: 设 计 者: 学 号: 指导教师: 周庆东 设计时间: 9.29.13 哈尔滨工业大学哈尔滨工业大学课程设计说明书(论文)课程设计考核表题目:超声波避障小车学生姓名: 班级: 学号:实验部分考核考核内容 分值 得分基本设计任务的完成情况 40附加设计任务的完成情况 10对教师提问的回答情况 10总结报告评分评分内容 分值 得分内容完整、字数达标 20层次清晰、重点突出、分析透彻 10
2、书写规范、文字流畅 5有独特见解、有一定的创新 5总成绩: 指导教师签字:哈尔滨工业大学课程设计说明书(论文)结题报告1 课题完成情况本超声波避障小车的设计基于单片机原理和传感器原理,以 51 单片机为主控芯片,采用直流电机为驱动元件,通过软件编程制作了一整套结构完整,功能模块化,反应较为灵敏的超声波避障小车。经过对该避障小车的避障测试实验,实验结果证明该避障小车能够很好的按照预期完成避障动作,并且能够快速运动灵敏避障,效果良好,运行稳定性较好。预期的目标都能够实现:(1)在车前方没有障碍物时,小车沿直线向前走。(2)在车前方有障碍物时,小车能避开障碍物,避障方法如下:先向左边转 90 度,如
3、果前面没有障碍物,再沿直线向前走;如果前面仍有障碍物,则向右转 180 度,如果前面没有障碍物,则沿直线向前行走;如果前面仍有障碍物,则向右 90 度,然后直线行。但是该超声波避障小车还存在着许多的不足,比如说只能对正前方一定角度内进行探测,使用的是一路超声波而不是多路超声波探测,并且为了简化,默认的只是向同一个方向转弯等,这些都是有待进一步发展和提高的。2 所遇问题及解决方案首先,我们对硬件的原理不够明白,在此之前超声波传感器并没有接触使用过,课程设计指导书上介绍的并不详细,我们利用课后时间查了更加详细的资料,对其做了近一步的了解。其次,在烧写完程序,通电之后,小车不停地旋转,旋转次序与设计
4、的避障旋转次序一致,说明子函数“getx() ”返回的 Dis 的值一直小于 10. 出现这个结果的问题是子函数“getx() ”里面的子函数 delay_nus(1),因为 delay_nus(1)的实现的延时时间实际上不是 1us,因为 delay_nus()函数里面有这样的语句“i=i/10” ,这样实际上 i 就等于 0;为了解决这个问题我们重新编写了一个延时函数 delay_nus1(1),结果小车正常运行。小车再次通电之后,小车在避障功能上完全满足要求,但是前进时,小车却每行进两三厘米就停顿一下,然后再行进两三厘米就停顿。出现这个问题的原因是程序每循环一次时都应该初始化 Sig,我
5、们在程序中加上了“delay_nus(20000);Sig=0;” 结果小车正常运行哈尔滨工业大学课程设计说明书(论文)3 心得体会通过这次的项目实训,我学习到了很多的电子知识,提高了我对于陌生硬件的学习能力。超声波传感器在此之前我没有接触过,对我来说非常的陌生,从一无所知慢慢查资料到能够熟练应用,让我知道了面对新的硬件应该怎么学习,在以后的工作学习中,我一定会遇到非常多的不熟悉的硬件,我相信,通过不断地锻炼积累,学习能力会进一步提高。 这次实训同时还加强了我实践动手能力,特别培养了出现问题、分析问题、解决问题的能力,我相信这些能力的提高对我以后在从事任何工作都将会有极大的帮助。这次的项目实训
6、让我感触最深的是:作为电子爱好者,电子制作中不管遇到什么问题和困境都要有一颗平静的心和坚持不懈的精神,一颗浮躁的心是不会到达成功的彼岸。这次课程设计,给我更多的是一种模块化的思想,将系统按我们所需的功能和系统所能提供的功能进行模块化的分类,将会使我们的工作变得一目了然,非常清晰。比如说这次我选的避障小车,可以分成超声波测速模块,电机驱动模块,单片机核心模块三个,三个部分各司其职,无论从硬件上还是软件上,都能够比较清晰地将他们的功能区分开,从而有利于硬件的连接和程序的编写。对于这次程序的编写,我就是分块编写,按模块调试,从而避免了许多错误。从以后工作来看,这种模块化处理问题的方式将会更加的有用,
7、在公司和以后得科研项目中,系统一定是越来越复杂,不可能一个人完成所有的任务,一定是一个团队来做这些系统的设计,所以模块化之后,能够将任务分配给每个人,最后大家还能够很好的综合到一起,大大的缩短了开发周期。最后,感谢胡老师这么多天对我们的帮助,每次遇到问题时,老师都耐性的帮我解答问题,正是老师一次有一次的讲解才让我坚持下来。老师耐心细致的讲解也让我学到了很多课堂上没有学到的知识在此,感谢指导老师尽心的指导。4 参考文献1 袁新娜,与红英编著.超声波传感器在智能小车避障系统中的应用.A中北大学 (2009)08-0085-042 邵贝贝. 单片机嵌入式应用的在线开发方法M北京清华大学出社20043
8、 王晓明. 电动机的单片机控制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北京机械工业出版
9、社2005 11 江海波,王卓然,耿德根编著.深入浅出 AVR 单片机.中国电力出版社,2008.12邵贝贝. 嵌入式实时操作系统LCOS-(第 2 版)M. 北京清华大学出版社2004哈尔滨工业大学课程设计说明书(论文)附录:#include#includesbit 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 定时器/计数器设
10、置为 16 位计数模式TH0=0x00; /初始值为 0TL0=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; /初始值设置为 0if(a)Sin=0; /Sin 置 0Sin=1; /Sin 置 1,并且延时一段时间,提供一个测距的触发脉冲delay_5us();Sin=0; /Sin 重
11、新置 0while(Sin);while(!Sin);/SIN 信号从低电平变为高电平,此时跳出该循环 TR0 置 1,开始计数TR0=1;while(Sin); /SIN 信号从高电平变为低电平,此时跳出该循环 TR0 置 0,停止计数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
12、=1; delay_nus(1300);哈尔滨工业大学课程设计说明书(论文)right=0;delay_nus(20000); void Forward_slow(void) /慢速前进left=1;delay_nus(1580); /减小左电机的高电平时间,增加右电机的高电平时间,减小速度left=0;delay_nus(20000); right=1; delay_nus(1420);right=0;delay_nus(20000);void Left_90(void) /左转 90 度 unsigned int i=0;while(i=50) /如果距离大于 50Forward_fast(); /快速前进else if(Dis=10 /慢速前进else /如果距离依旧小于 10Right_180(); /右转 180哈尔滨工业大学课程设计说明书(论文)getx(1); /测距if(Dis=10) /如果此时距离小于 10Forward_slow(); /慢速前进else /否则,继续调试Right_90(); /右转 90 度