灭火机器人报告Word文件下载.docx
《灭火机器人报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《灭火机器人报告Word文件下载.docx(30页珍藏版)》请在冰豆网上搜索。
表3-1稳压芯片7805参数
LM7812CV的技术指标如下表:
表3-2稳压芯片7812参数
3.1.2电源模块电路原理图
由于单片机及所有的传感器系统供电采纳的是5V的电源,而车体要良好的运行电机的供电电压应该达到12V,因此在电源的处理上采纳了稳压芯片7805CV和7812CV。
图3.1电源部分电路图
3.2电机驱动芯片L298N
L298N是SGS公司的产品,内部包含4通道逻辑驱动电路。
是一种二相和四相电机的专用驱动器,即内含二个H桥的高电压大电流双全桥式驱动器,接收标准TTL逻辑电平信号,可驱动46V、2A以下的电机。
其引脚排列如图1中U4所示,1脚和15脚可单独引出连接电流采样电阻器,形成电流传感信号。
L298可驱动2个电机,OUT1、OUT2和OUT3、OUT4之间分别接2个电动机。
5、7、10、12脚接输入操纵电平,操纵电机的正反转,ENA,ENB接操纵使能端,操纵电机的停转。
也利用单片机产生PWM信号接到ENA,ENB端子,对电机的转速进行调剂。
3.2.1L298N的逻辑功能:
表3-3SHARPGP2D12实物图
3.2.2外形及封装:
图3.2L298N实物图
3.2.3L298N电路原理图:
由于一片L298N能够直截了当驱动两个电机,然而为了加大驱动力,我们采纳两路并联的方式来驱动电机。
图3.3L298N电路图
3.3避障检测传感器HS0038
3.3.1HS0038简介:
HS0038B-系列微型接收机红外遥控器操纵系统。
PIN二极管和前置上组装引线框架,环氧包被设计成红外过滤器。
该解调输出信号可直截了当解码的微处理器。
HS0038B是标准的红外遥控接收器系列,支持所有要紧传输代码。
3.3.2HS0038特点:
1、光检测器和放大器一体封装
2、内部可集成PCM频率过滤器
3、与TTL和CMOS电平兼容
4、改进的屏蔽电场,抗干扰能力强
3.3.3检测原理:
红外发射管发射出通过调制过的38KHZ的红外光,当前方没有障碍物时,接收器收不到红外光,相反当前方有障碍物时,同意器能够收到红外光。
依照此原理,机器人能够感知前方的路况从而决定是否前行。
3.3.4HS0038与单片机连接原理图:
图3.4H0038电路图
HS0038内部集成了红外接收——运放——验波电路——带通滤波〔中心频率〕——整形电路——驱动电路,通过加入38k的调制信号可使该电路抗干扰能力增强,减少了自然光的阻碍。
事实上在红外发射和VCC之间有一变位器,阻值为2~5欧左右此图没标上.
3.4地面灰度检测传感器ST188
3.4.1ST188特点:
1、采纳高发射功率红外二极管和高灵敏度光电晶体管组成。
2、检测距离可调整范畴大,4--13mm可用。
3、采纳非接触方式。
3.4.2检测原理:
ST188是红外收发一体的器件,发射管发射出红外光线,接收管就能够依照接收的红外光线的强弱,感知地面的灰度。
由于此模拟房间的地面被处理成为黑白两种颜色,通过比较器设置灰度的门限值,能够专门方便的感知地面的颜色,从而做出相应的决策。
3.4.3应用范畴:
1、IC卡电度表脉冲数据采样。
2、集中抄表系统数据采集。
3、机纸张检测。
4、地面灰度检测,正反转速测量、行程测量等。
3.4.4外形尺寸〔单位mm〕:
图3.5ST188实物图
3.4.5ST188原理图:
图3-6ST188电路图
图3-7L324图
LM324是四运放集成电路,它采纳14脚双列直插塑料封装,外形如下图。
它的内部包含四组形式完全相同的运算放大器,除电源共用外,四组运放相互独立。
3.5火焰传感器
此传感器本品可广泛应用于灭火机器人竞赛中测量火焰值、足球竞赛时,用于确定足球的方向。
以下图为火焰传感器实物图。
图3.8火焰传感器实物图
3.5.1火焰传感器使用
此传感器具有优良的火焰探测性能,可依照可见光、红外光强弱变化输出电平的大小。
其输出端口是一个四针的插头,其中黑色线为地线、红色线为电源线〔+5V〕、黄色线为信号线,用于输出测量的红外光强度电平、棕色线为信号线,用于输出可见光强度电平。
第四章软件设计
4.1灭火机器人行进路线分析
当小车处于起点,小车要开始搜索房间有两种路径能够选择,一是只是台阶,绕着4号房间向外搜索。
二是直截了当过台阶,然后开始搜索。
明显直截了当过台阶能够节约专门多的时刻,路径更短,因为我们制作的小车为履带结构,结合我们小车的特点和前面分析,我们选择过台阶。
过台阶后,小车处于3号和4号房间中间,由图可知,沿着右走的方案比较好,因此我们采纳是右手规那么,第一搜索的是3号房间,如图中的红色箭头。
当在3号房间发觉火源时,小车进入房间并灭火,灭火后按原路返回;
如没有发觉火源,小车连续按右手规那么搜索房间,直到搜索4号房间,不管有没有搜索到火源,从4号房间出来都绕着4号房间返回起点,因为回家过程中的时刻不记入总时刻,而绕行比较安全,小车比较好操纵。
图4.1灭火机器人行进路线
4.2软件流程图
图4.2灭火小车软件设计流程图
第五章调试记录及实验心得
5.1调试记录
⏹前方传感器检测最正确距离12cm,500R的电位器逆时钟旋转可加大发射管的发射功率,检测距离可变远。
⏹地面灰度传感器:
测试距离2.5cm,黑地面输出电压1.3-1.5V;
白纸输出3.8-4.5V;
⏹前方火焰传感器最远测试距离2.5m,此次使用有效距离0.8m,输出电压0.6V,探测角度+30°
。
⏹转弯:
动作
延经常数
原地右转90
18
原地左转90
19
右后转180
37
左后转180
⏹电池电压:
5V供电的电压不得低于7.2V。
⏹5.2实验心得
伊超:
本次的灭火机器人小车设计要紧涉及驱动模块壁障模块,灰度模块,灭火模块,单片机开发,程序设计等等。
在这次试验中硬件部分和软件部分差不多是我一个人完成的。
在硬件焊接时,我遇到了专门多问题,比如两个电机不能同时驱动,H0038不能检测,没有A/D转换,单片机引脚不够用等等,通过我解决这些问题,我也学会了实验室的许多仪器的使用,我也体会到一个人的力量是有限的,在软件设计当中,我也遇到了许多问题,比如不能产生38KHZ方波,还有在调车时,不知如何确实是车跑的不稳固,原先是在整个系统当中没有反馈的设计,因此我又令设计了一下传感器位置,加了一个反馈调剂,如此系统才能运行的稳固,这时我才明白系统反馈是多么的重要,在程序编程方面,我体会到硬件设计假如比较好的话,软件编程是比较容易的,因此这才启发我假如想搞好硬件,软件必须要明白,要想编出一个比较漂亮的程序,硬件设计也要必须明白,只有软硬兼顾,这才能开发出一个比较好的系统。
在智能车的设计中,电源部分能够说是核心的核心,电源设计显得尤为重要,专门是使用电池供电的系统。
电池在充电后,电压会变的专门高,额定7.2V电压冲完电电压会达到8.5V,但在使用初,电压降的会专门快,对系统的稳固性造成专门大威逼,因此必须使用稳压芯片,而稳压芯片的压差在2V左右;
另外,电源部分的滤波电容也是专门重要的,一样采纳10uF的电解电容和104瓷片电容构成滤波电路。
稳压芯片的采纳尽管能减小电压的波动,然而并不能排除。
因此,电压的变化依旧对机器人的运动有一定的阻碍。
此外,由于地面的摩擦、机器人惯性、机器人电机的转数差、齿轮箱与轮子的摩擦等因素,操纵机器人直行和转90度有一定的难度,要通过反复的调试、降低机器人的速度、通过传感器矫正等才能达到比较精确的操纵。
因此在做的过程中,选择一个好的、稳固的车模是必须的。
通过这次竞赛,我不仅学到的好多知识,而且锤炼了我分析问题和处理问题的能力及组织策划能力,我编程能力大大的提到了,同时焊接电路我也进一步提高了专门多。
同时,一个人的能力及思想是有限的,团结确实是力量,通过这次合作,进一步加强了我们的团队合
刘少龙:
这次弄灭火机器人,收成确实不小,学到了许多东西,学会了如何去摸索问题,如何设计一个比较简洁的方法,去实现机器人的动作,同时兼顾可能显现的一些专门情形,还有程序执行的复杂度,与小车动作的流畅。
写一个比较完整的程序确实专门锤炼思维。
关于硬件电路的设计,我没有从一开始接触,但差不多上确实是数字电路,51单片机的一个小系统,运行专门稳固,倒是红外传感器让人还学了点东西,三极管与滑动变阻器的接法红外接收管与单片机的连接。
这次用的是HS38B20,直截了当输出数字量。
调试过程中发觉灵敏度不行调,可能是提早没有运算好滑动变阻器的阻值吧。
最终采纳了专门方法调试好了。
接继电器时也遇到了一些实际问题,单片机的I/O口电流太小不能驱动NPN三极管。
最终加到了带上拉电阻的P0口上问题解决,事实上在其他口上接上适当的上拉电阻问题也应该解决。
关于火焰传感器也是同灰度一样加在了四路集成运放上,做的电压比较器,因此数模转化问题简化了。
调试过程中发觉太阳光对火焰传感器的阻碍专门大,因此白天要在传感器上加一个罩子或者通过调剂滑动变阻器调剂LM324输入引脚的比较电压。
第一次写出一个真正有用程序
梁瑞华:
通过灭火机器人的制作,我对机器人的组成和原理,传感器有了全新的认识。
本次的灭火机器人小车设计要紧涉及到单片机开发、机器人组成和原理、电机与驱动、传感器知识及程序算法设计等。
使用最多的是传感器,传感器是机器人的眼睛,只有传感器正确的识别道路,机器人才能正确搜寻房间。
因此传感器的设置专门重要,须多次调试得出最正确参数值,如电压值、测试距离、探测角度等。
在整个实验过程中是最关键、最苦恼的确实是系统的整体调试,我们要调剂各个参数,保证车子能正常完成各个功能。
同时还要考虑显现的各种不良因素,这要求制作的机器人的适应能力好,到达现场时需要调整的参数越少越好。
在操纵机器人小车精确转弯时一定要使用相关硬件器件进行操纵,比如指南针或者采纳好的算法不需要进行精确转弯。
还要考虑机器人的行走路径的选择,因为我们制作的小车为履带结构,结合我们小车的特点和前面分析,我们选择过台阶直截了当过台阶,然后开始搜索。
明显直截了当过台阶能够节约专门多的时刻,路径更短。
需要注意的是在平常调试时尽量在自己的竞赛场地调试,尽管在现场竞赛时,所有的竞赛场地采纳的差不多上相同的材料,各个部分看起来差不多上一样的,实际中却会有专门大差异。
通过本次设计,将我把所学的理论知识真正应用到实际当中,不仅加深了对理论知识的明白得,同时还进行了拓展、发散。
在整个过程中,我还体会到团队合作的无穷力量。
参考文献
[1]«
国际赛制机器人灭火竞赛规那么»
.PDF
[2]李全利、迟荣强.单片机原理及接口技术.北京:
高等教育出版社,2004.1
[3]谭浩强.C程序设计(第二版).北京:
清华大学出版社,1999.12
[4]童诗白、华成英.模拟电子技术基础(第三版).北京:
高等教育出版社,2003.12
[5]康华光.电子技术基础数字部分(第四版).北京:
高等教育出版社,1900.1
[6]黄智伟.全国大学生电子设计竞赛电路设计.北京:
北京航空航天大学出版社,2006.12
[7]黄智伟.全国大学生电子设计竞赛系统设计.北京:
北京航空航天大学出版社,2006.12
[8]文艳、谭鸿.Protel99SE电子电路设计.北京:
机械工业出版社,2006.8
程序请单附录1:
#include<
reg51.h>
math.h>
#defineucharunsignedchar
#defineuintunsignedint
sbitled1=P1^5;
//红外发射管
sbitled2=P1^6;
//
sbitled3=P3^7;
sbits1=P1^1;
//红外接收管用于壁障检测
sbits2=P1^2;
sbits3=P1^4;
sbitstyou=P0^0;
//灰度
sbitstzuo=P0^1;
sbithuo=P2^0;
//火
sbitfeng=P0^7;
//风
sbiten1=P2^2;
//电机1/*L298的EnableA*/
sbiten2=P2^5;
//电机2
sbitin1_1=P2^3;
/*L298_1的Input1*左**/
sbitin1_2=P2^4;
/*L298_1的Input2*/
sbitin2_1=P2^6;
/*L298_2的Input1*右**/
sbitin2_2=P2^7;
/*L298_2的Input2*/
uchart=0;
/*pwm调速中断计数器*/
ucharsuozuo=100;
/*电机速度值参数:
0~100*/
ucharsuoyou=57;
uchari=0;
uchark=0;
//房间标志变量
ucharh=0;
//火焰标志
ucharm=0;
//查找灰度标志
ucharz=0;
//回家灰度标志
voidstop();
//停止函数
voidtiaoyou();
//
voidtiaozuo();
//微调右
voidqian()/前进函数
voiddelay(uint);
voidzuo();
//左90
voidyou();
voidsi();
//左60
voidtiaohuo();
//调火
voidpao();
//跑函数
voidinit();
//定时器
voiddus(uchar);
//小延时
voidtiaohui();
//灰度调剂
voidxun1();
//房间里寻函数
voidhui1();
//回家函数
voidhui2();
voidhui3();
voidhui4();
voidzhao();
//在房间里找函数
voidqian()//
{
in1_1=1;
in1_2=0;
in2_1=1;
in2_2=0;
}
voidxun1()
in1_1=0;
in1_2=1;
delay(15);
while((m==0)||(m==1)||(m==2)||(m==3))
if((styou==1)||(stzuo==1))
{
if(huo==1)
stop();
delay
(1);
feng=1;
delay(20);
feng=0;
h=1;
si();
}
else
{
m++;
break;
else
if((s1==1)&
&
(s2==1))
qian();
}
elseif((s1==0)&
(s2==1))
tiaozuo();
elseif((s1==1)&
(s2==0))
tiaoyou();
else
voidzhao()
if(((k==2)&
(m==0))||((k==4)&
(m==1))||((k==5)&
(m==2))||((k==7)&
(m==3)))
xun1();
else
pao();
voidsi()
in1_1=1;
in2_1=0;
in2_2=1;
delay(12);
voidtiaohuo()
in1_1=0;
delay
(1);
voidzuo()//90
delay(18);
//更换参数可调剂角度
voidyou()//90
delay(19);
voidhui1()
if(stzuo==1)
z++;
delay(5);
if((s1==1)&
(s2==1)&
(s3==0))
{
delay
(2);
elseif((s1==1)&
(s3==1))
delay(7);
you();
delay(50);
tiaoyou();
elseif((s1==0)&
tiaozuo();
voidhui2()
suozuo=100;
suoyou=70;
if((s1==0)&
elseif((s1==1)&
voidhui3()
if(stzuo==1)
delay();
zuo();
delay(45);
}
voidhui4()
(s3==0))
delay(40);
voidstop()
in1_2=0;
in2_1=0;
in2_2=0;
voidtiaozuo()//微调
in1_2=1;
in2_1=1;
dus(50);
voidtiaoyou()
in2_2=1;
voidinit()
TMOD=0x22;
//设定T0和T1的工作模式为2
IP=0x02;
TH0=243;
//装入定时器的初值
TL0=243;
TH1=0x9b;
TL1=0x9b;
EA=1;
//开中断
ET0=1;
//定时器0承诺中断
ET1=1;
TR0=1;
//启动定时器0
TR1=1;
voiddelay(uinti)//大延时
uintiii;
for(;
i>
0;
i--)
for(iii=0;
iii<
100;
iii++);
voiddus(uchars)
for(;
10<
s;
s--)
;
voidtimer0()interrupt3/*T0中断服务程序*/
if(t<
suoyou)
en1=1;
en1=0;
/*产生电机1