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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

单片机应用设计报告.docx

1、单片机应用设计报告单片机应用设计报告设计题目:智能灭火机器人班 级:08机械电子工程(3)班姓 名:余见旦 林士晓 黄悦城学 号:B B B指导教师:张建义2011年6月概 述智能机器人灭火的课程设计过程是:首先了解关于广茂达机器人的一些性能和相关的硬件,选择自己要用到的有关灭火的套件。然后就要看机器人产品附带的材料书,了解各个传感器的功能,使用情况,动手检测一下各个器件是否可用。根据题目想象一下自己要实现的各个过程,大体的包括开始行进、进门、寻找火源、灭火这几个过程,然后就按照这几个过程一步一步的实现,最后达到灭火的目标。总体运动图:灭火机器人行走路线火源黑纸黑纸*对于这个问题分析如下:首先

2、要确定机器人的开始行走路径。假设机器人在房门外,那么我们可以让机器人沿直线走下去,这样就可以节省一定的时间。其次就是要找到门口,然后拐进去。对于这个问题,可以用灰度传感器感知门口的灰度变化。我闷可以在门口放置一条黑线,当机器人到达这个位置高应到灰度变化时就会拐进去。再次就是寻找火源。可以用远红外火焰传感器检测火源,然后通过改变左右轮的速度调整到达火源的路线,假如火源在房屋深处,可以让机器人进屋后做避障运动前行,当感知到火源是在寻找过去。最后就是灭火过程。当然这是最后的关键一步,可以用灰度传感器感知地面的变化,然后停下前进的步伐,打开灭火风扇灭火,为了使灭火的效果更佳,使用在原位旋转机器人风扇灭

3、火的方法,因为这样可以扩大灭火的范围,提高灭火的效率。当灭火过程持续一段时间后,灭火风扇就可以自动停止,机器人也停止旋转运动。当拿到灭火配件后,按照自己的构想把所需的器件安装到智能风暴机器人上,主要是灭火套件(包括远红外传感器、红外传感器、地面灰度传感器扩展套件、风扇套件)。安装中先将红外传感器、光敏传感器的插线拔下,将机器人的上盖拿下来,然后把把光敏传感器换成远红外传感器,固定好套圈和传感器以免脱落。接下来把风扇电机托架和灰度传感器安装托架固定到机器前方,再把灰度扩展卡插到主板上,注意方向不能插反。再把风扇及电机安装到托架上,最后把上盖重装。安装后还要编写一些自测的程序检测各个传感器的使用范

4、围等一些参数,如灰度传感器在地面和在黑纸上的灰度值,远红外火焰传感器的火焰感应值和无火时屋内的值,红外传感器的感应距离,当然材料上会有一些程序提供给你,但是有些程序是错误的,因此自己要看过后适当的修改一下。记录下相关参留待以后编程用。编写最后的程序时可以分段完成,每一段写好可以烧录到机器人中检测是否可行,最后把这些程序连在一起就可以实现目标。在这一过程中要进行反复的修改,因此不要烦躁。设计实现的结果是机器人在门外直走,当检测到门口的黑纸时就拐进去,然后寻找火源,当没有检测到是就做避障运动,同时远红外火焰传感器一直在检测,当感知到火源时就会寻着火源走过去,在到达火源前的黑纸,灰度传感器检测到灰度

5、的变化,机器人就会旋转并打开风扇灭火,然后停止运动关闭风扇。一、设计的目标和实现的主要功能.1二、硬件电路设计及描述11.硬件组成.12.装配图片.23.整体功能模块.34.各功能模块.44.1地面灰度传感器.44.2远红外火焰传感器.64.3红外传感器.74.4碰撞传感器.84.5灭火风扇装置10三、软件设计流程及描述.12四、源代码18五、调试结果22六、课程设计总结.23七、参考文献.24一、设计的目标和实现的主要功能“智能机器人灭火”这一课题设计的目标主要是用机器人通过传感器的控制来寻找火源进而实现灭火。设计实现的主要功能分为:灰度传感器控制拐弯和旋转碰撞传感器和红外传感器实现躲避障碍

6、远红外火焰传感器寻找火源风扇灭火二、硬件电路设计及描述(整体功能模块图,各功能模块的详细介绍)1、硬件组成名称型号图片能力风暴智能机器人大学版AS-U511器件名称主要参数型 号灭火比赛扩展套件1个灭火风扇及风扇支架,1个直流电机,1个地面灰度检测卡,1个地面灰度传感器及支架,2个远红外火焰传感器。工作电压:5VAS-FireSuite红外发射传感器工作电压:5V,检测距离:1080cm,工作角度:60AS-IREmitter红外接收器工作电压:5V,检测距离:1080cm。含红外接受管,前置放大器,限幅放大器,带通滤波器,峰值检波器。AS-IR远红外火焰传感器2个远红外火焰探头,火源波长:7

7、00nm1000nm ,工作温度为-2585, 探测角度为60,工作电压:5VAS-FireCard地面灰度检测套件1个地面灰度传感器探头,1个地面灰度接口卡,1个机械固定支架AS-FloorSensor2、装配图片23、整体功能模块图34.各功能模块4.1地面灰度传感器地面灰度检测卡利用光敏电阻的阻值会随着光照强弱的变化而变化的这一特性。地面灰度检测传感器通过发光二极管照亮地面,地面的反射光线被光敏电阻接收,电阻值根据反射光线强弱而改变。地面灰度深,光敏电阻值大;地面灰度浅,光敏电阻值小。然后,阻值的变转变成电信号,通过模拟口PE5 输入到机器人主板上的微控制器,再由微控制器中的A/D 转换

8、器将电信号进行转换后供程序使用。地面灰度传感器原理图: 4BUS总线上:PE5连接AD9,引用返回值的时候用AI(9);所以AI(9)的返回值便是灰度传感器的返回值。灰度传感器扩展卡:注意扩展卡插在主板上时要使ASBUSA,ASBUSB分别对应主板上的A,B面灰度传感器测试程序:#include M51Robot.H /*头文件定义,请勿删除*/#include reg51.h#include extern char xdata showbuf33; unsigned int igray;void main() InitRobot(); while(1) igray=AI(9); /*地面灰度

9、检测*/5 sprintf(showbuf,%d/n,igray); PutString(showbuf); 运行程序,将机器人放在地面上和黑带上,分别读取LED上的显示值就可以完成对传感器的测试。4.2远红外火焰传感器远红外火焰探头可以用来探测火源或其它一些波长在700nm1000nm 范围内的热源。利用远红外火焰探头可以制作灭火机器人、足球机器人、火警机器人等。将远红外探头插在原光敏传感器插针上,位置如图。注意方向不要插反,一般情况,插头上带金属的一面朝外。运行下载的程序,让机器人远红外探头面向热源(如点燃的蜡烛、点亮的灯泡),慢慢靠近热源,观察机器人显示屏上的读数变化。远红外火焰探头将外

10、界红外光的变化转化为电流的变化,通过A/D 转换器反映为0255 范围内的数值。外界红外光越强,数值越小。因此越靠近热源,机器人显示读数越小。根据函数返回值的变化能判断红外光线的强弱,从而能大致判别出火源的远近。如果机器人读数不变化,一直为255,可能远红外探头插反了,将插针方向反过来即可。注意,由于远红外火焰探头工作温度为-2585,存放温度为30100,超过以上温度范围,远红外火焰探头可能会出现工作失常甚至损坏,所以在使用过程中应注意火焰探头离热源的距离不能太近,以免造成损坏。此外,远红外火焰探头探测角度为60,测试时最好让热源处于探头的探测范围内。6测试程序:#include M51Ro

11、bot.H /*头文件定义,请勿删除*/#include reg51.h#include extern char xdata showbuf33;void main()unsigned int photo_1=0;unsigned int photo_2=0; InitRobot(); while(1) photo_1=AI(6); photo_2=AI(7); sprintf(showbuf,L=%d ,R=%d n,photo_1,photo_2); PutString(showbuf); wait(0.2); 运行程序,测定有火源时和无火源时LED的显示值4.3红外传感器红外接收传感器通

12、常由红外接收二极管与放大电路组成。我们使用的红外接收传感器将红外接收管与放大电路集成在一体,封装在一个金属屏蔽盒里,体积小(大小与一只中功率三极管相当),密封性好,灵敏度和抗干扰性都非常好。它仅有三条管脚,分别是电源正极、电源负极以及信号输出端,其工作电压在5V 左右。只要给它接上电源即是一个完整的红外接收放大器,使用十分方便。可以说是一个接收红外信号的理想装置。红外接收器: 接收电路:7测试程序:#include M51Robot.H /*头文件定义,请勿删除*/#include reg51.h#include unsigned char ir;extern char xdata showb

13、uf33;void main()InitRobot();while(1)ir=ir_detector();sprintf(showbuf,%d/n,ir);PutString(showbuf);wait(0.2); 运行程序,LED上会显示出0/1/2/3,0代表前方无障碍物,1代表左前方有障碍物,2代表右前方有障碍物,3代表前方有障碍物4.4碰撞传感器碰撞传感器是使能力风暴智能机器人有感知碰撞环上的碰撞信息能力的传感器。在能力风暴智能机器人的左前、右前、左后、右后设置有四个碰撞开关(常开),它们与碰撞环共同构成了碰撞传感器。碰撞环与底盘柔性连接,在受力后与底盘产生相对位移,触发固连在底盘上相

14、应的碰撞开关,使之闭合。我们把来自四周的碰撞分为八个方向8碰撞传感器原理图:测试程序:#include M51Robot.H /*头文件定义,请勿删除*/#include reg51.h9#include extern char xdata showbuf33;void main()unsigned int bumpvalue;InitRobot();while(1)bumpvalue=AI(8);sprintf(showbuf,bump=%d/n,bumpvalue);PutString(showbuf);wait(0.2); 运行程序,碰撞不同位置的传感器LED上显示不同的值。这些值就代表

15、了不同的方位。4.5灭火风扇装置灭火风扇装置为能力风暴专用灭火装置,在灭火比赛时扇叶旋转可以用来吹灭烛火。风扇电机驱动选择DO6:10风扇套件:测试程序:#include M51Robot.H /*头文件定义,请勿删除*/#include reg51.h#include #include sbit OUT6=P32;void main() InitRobot(); while(1) OUT6=0; wait(3); OUT6=1; wait(3); 运行程序,电机会先停3s后转3s反复进行。11三、软件设计流程及描述主程序流程图:主程序初始化避开障碍前进结束寻光灭火避障运动拐弯进门继续走永远循

16、环灰度检测有无黑纸远红外检测火源NYNY永远循环12寻光灭火分函数:void find( ) /*循光灭火函数*/ while(a!=1) photo_1 =AI(6); photo_2 =AI(7); igray=AI(9); /*地面灰度检测*/ if(igray700) /*如果检测到蜡烛前的黑线,就高速旋转,并启动扩展电机灭火*/ SetMoto(0,90); SetMoto(1,-90); OUT6=1; wait(10.0); OUT6=0; a = 1 ; while(1) stop(); if(photo_1 (photo_2+50)/*如果左眼对着火焰,则划左弧线前进*/ S

17、etMoto( 0 , 20 ); SetMoto( 1 , 40 ); wait( 0.05 ); else if(photo_2 右灰度检测值700永远循环NYYN14避障分函数:void avoid() /*自动避障函数*/ while(1) photo_1=AI(6); photo_2=AI(7); igray=AI(9); bmp=Bumper(); ir=ir_detector(); SetMoto (0,80); SetMoto (1,88); if(bmp=1 & (ir!=2 | ir!=3) /*如果左前方有碰撞,右前方或者前方没有障碍*/ SetMoto (0,0); /

18、*停止运动*/ SetMoto (1,0); SetMoto (0,-80); /*后退*/ SetMoto (1,-80); wait(0.3); SetMoto (0,80); /* 右转*/ SetMoto (1,0); wait(0.134); continue; else if(bmp=2 & (ir!=1 | ir!=3) /*如果右前方有碰撞,左方或前方没有障碍*/ SetMoto (0,0); /*停止运动*/ SetMoto (1,0); SetMoto (0,-80); /*后退*/ SetMoto (1,-80); wait(0.3); SetMoto (0,0); Se

19、tMoto (1,80); wait(0.134); continue; else if(bmp=3) /*如果前方有碰撞*/ SetMoto (0,0); /*停止运动*/ SetMoto (1,0); SetMoto (0,-80); /*后退*/15SetMoto (1,-80); wait(0.2); if(ir=1) /*左边有障碍*/ SetMoto (0,80); /*右转*/ SetMoto (1,0); wait(0.134); continue; else if(ir=2) SetMoto (0,0); SetMoto (1,80); wait(0.134); else i

20、f(bmp)/*三面有碰撞*/ SetMoto (0,0); SetMoto (1,0); SetMoto (0,-80); /*后退*/ SetMoto (1,-80); wait(0.3); SetMoto (0,80); SetMoto (1,0); wait(0.9); SetMoto (0,80); SetMoto (1,88); if(photo_1900|photo_2900) find (); /*循光灭火*/ 流程图:16主程序初始化永远循环左前方有碰撞,右前方或者前方没有障碍远红外检测火源NYYNYN前方有碰撞右前方有障碍前方有碰撞左前方有障碍三面碰撞右前方有碰撞,左前方或

21、者前方没有障碍后退右转35度后退左转35度后退右转35度后退左转35度NNYY结束后退右转90度NY寻火灭火17四、源程序代码#include M51Robot.H /*头文件定义,请勿删除*/#include reg51.h#include extern char xdata ShowBuf33;unsigned char Bumper(); /*碰撞函数*/sbit OUT6=P32; /*风扇电机开关*/int photo_1=0; /*左远红外变量*/int photo_2=0; /*右远红外变量*/unsigned char bmp=0; /*碰撞检测变量*/ unsigned ch

22、ar ir=0; /*红外检测信号*/ int igray=0; /*灰度变量*/int a=0;int i;extern char xdata showbuf33;void stop();void go(int x);void find();void avoid();/*?3D*/void main() InitRobot(); OUT6=0; /*关闭电机*/ go(30); while(1) photo_1=AI(6); /*远红外火焰检测*/ photo_2=AI(7); find(); void avoid() /*避障函数*/ for(i=0;i=110 & bmpr=240 &

23、bmpr=370) return 3; /*前方 */ return 0; void stop() /*停止函数*/ SetMoto(0,0); SetMoto(1,0);void go(int x) /*前进函数*/ SetMoto (0,x); SetMoto (1,x); void find( ) /*寻光灭火函数*/ while(a!=1) photo_1 =AI(6); photo_2 =AI(7); igray=AI(9); /*地面灰度检测*/ sprintf(showbuf,L=%d ,R=%d n,photo_1,photo_2); PutString(showbuf); wait(0.02); if(photo_1920)/* 如果左传感对着火焰,则向左偏转相应角度再前进*/ SetMoto( 0 ,0 ); SetMoto( 1 , 0 ); wait(0.1); SetMoto( 0 ,-10 ); SetMoto( 1 , 30 ); wait( 0.3); go(10); wait(0.2); else if(photo_2 700) /*如果检测到蜡烛前的黑线,调整角度,启动电机灭火*/

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

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