机器人旅游练习题设计论文Word格式文档下载.docx
《机器人旅游练习题设计论文Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《机器人旅游练习题设计论文Word格式文档下载.docx(22页珍藏版)》请在冰豆网上搜索。
而且壁障小车极易把拖在地上的电线识别为障碍物,人为增加了不必要的障碍。
故我们放弃了这一方案。
方案二:
采用蓄电池供电
蓄电池具有较强的电流驱动能力和较好的电压稳定性能,且成本低廉。
可采用蓄电池经7812芯片稳压后给电机供电,再经过降压接7805芯片给单片机及其他逻辑单元供电。
但蓄电池体积相对庞大,且重量过大,造成电机负载过大,不适合我们采用的小车车架。
故我们放弃了这一方案。
方案三:
采用干电池组进行供电
采用二节干电池降压至5V后给单片机及其他逻辑单元供电,另取四节干电池为电机供电。
这样电机启动及制动时的短暂电压干扰不会影响到逻辑单元和单片机的工作。
干电池用电池盒封装,体积和重量较小,安装二节干电池,使用7805芯片对7.8V的电池电压进行降压稳压。
正好可为单片机及其他逻辑单元供电。
还有四节专门用于电机驱动。
综合考虑,我们采用方案三
2.3主控模块
由于智能小车的要求不是很高,主要都是一些简单的控制,STC12C5A60S2是我们在《单片机应用技术》学习过的,并且具有PWM且价格便宜容易购买,所以最终我们直接选用了STC12C5A60S2.
2.4探测及循迹模块
方案一:
使用光电对管探测
光电对管价格低廉,性能稳定,感测距离过小,由于小车要越过3厘米的障碍,故底盘做的很高,光电对管不稳定。
因此我们放弃了这一方案。
方案二:
使用光敏电阻探测
光敏电阻价格低廉,性能稳定,感测效果较好。
因此我们选择了这一方案。
小车循迹的原理
这里的循迹是指小车在绿色地板上循白线行走,通常采取的方法是红外探测法。
红外探测法,即利用红外线在不同颜色的物体表面具有不同的反射性质的特点,在小车行驶过程中不断地向地面发射红外光,当红外光遇到白色纸质地板时发生漫反射,反射光被装在小车上的接收管接收;
如果遇到黑线则红外光被吸收,小车上的接收管接收不到红外光。
单片机就是否收到反射回来的红外光为依据来确定黑线的位置和小车的行走路线。
红外探测器探测距离有限,一般最大不应超过3cm。
方案1:
用红外发射管和接收管自己制作光电对管寻迹传感器。
红外发射管发出红外线,当发出的红外线照射到白色的平面后反射,若红外接收管能接收到反射回的光线则检测出白线继而输出低电平,若接收不到发射管发出的光线则检测出绿线继而输出高电平。
这样自己制作组装的寻迹传感器基本能够满足要求,但是工作不够稳定,且容易受外界光线的影响,因此我们放弃了这个方案。
方案2:
用光敏电阻组成光敏探测器。
光敏电阻的阻值可以跟随周围环境光线的变化而变化。
当光线照射到白线上面时,光线发射强烈,光线照射到绿线上面时,光线发射较弱。
因此光敏电阻在白线和绿线上方时,阻值会发生明显的变化。
将阻值的变化值经过比较器就可以输出高低电平。
这种方案能够稳定的工作。
因此我们选择这种方案。
2.5驱动模块
使用L298N芯片驱动电机
L298N是一个具有高电压大电流的全桥驱动芯片,它相应频率高,一片L298N可以分别控制两个直流电机,而且还带有控制使能端。
用该芯片作为电机驱动,操作方便,稳定性好,性能优良。
输出电压最高可达50V,可以直接通过电源来调节输出电压;
可以直接用单片机的IO口提供信号,电路简单,性能稳定,使用比较方便。
但是PWM调速,前后转时匹配的PWM参数需要调整。
给程序带来了不便。
因此不选用这种方案。
使用LMD18200T芯片驱动电机
LMD18200T是一个具有高电压大电流的全桥驱动芯片,它相应频率高,一片LMD18200T可以分别控制两个直流电机,而且还带有控制使能端。
可以直接用单片机的IO口提供信号,方便PWM调速,前后转时自动翻转PWM参数,电路简单,性能稳定,使用比较方便。
因此选用这种方案。
2.6信号调理模块
使用LM324芯片,放大传感器电路输入的信号,然后输入给单片机,从而得到小车的位置信息,进行调节,由于传感器电路在绿线和白线上
电压差很明显,应选用比较器就可解决问题,所以不采用本方案
使用LM324芯片,传感器电路输入的信号,直接经过比较器,然后输入给单片机,从而得到小车的位置信息。
因此采用这种方案。
2.7信号切换模块
小车有前后两路传感器,因为单片机的IO不够用,所以用74HC245芯片,来切换前后传感器数据信息,让小车的位置更加精确。
第三章系统的具体设计与实现
3.1电源模块
采用两节干电池,通过7805给单片机,还有逻辑单元供电。
3.2传感器检测模块
传感器,安装在车盘下,离地四厘米。
当金属传感器检测到绿线时将对单片机发送信号,单片机运行相应该程序,改变输给电机驱动信号的电压占空比差来控制小车的速度和方向。
没有光照时光敏电阻成高阻,有光照时电阻接近于零。
当有光照时UO输出低电平。
当没有光时UO输出高电平。
3.3电机驱动模块
PWM自动转换方向图
LMD18200T芯片的dir和PWM引脚分别和STC12C5A60S2的P1.2和P1.4引脚连接用来接收主控芯片输出的转向电机的动作指令,并通过OUT1和OUT2来控制转向电机的正转与反转,最终功能的实现表现在小车的左转与右转。
LMD18200T芯片的dir和PWM引脚分别与AT89C52的P1.1和P1.3引脚连接用来接收主控芯片输出的驱动电机的动作指令,并通过OUT3和OUT4来控制驱动电机的正转与反转,最终功能的实现表现在小车的前进、后退、停止.
3.4信号调理电路
比较电压为3V
信号由A1输入经比较器输出到单片机IO口。
当A1大于3V时,输出低;
当A1小于3V时,输出高
由于传感器和电阻的误差,比较电压不是一个固定值,这里只是示范一下。
3.5信号切换电路(74HC245)
利用三极管非门电路,当P20输入高时,U12使能端有效,a9—a16信号导通,输入给单片机,否则截止。
当P20输入低时,U5使能端有效,a1—a8信号导通,输入给单片机,否则截止。
3.6软件设计
我们把小车直线行进时分成三种状态,当中间二个传感器都检测到白线时,小车在跑道的正上方,这时控制两电机同速度全速运行。
当检测到有一个传感器或者同侧的三个传感器偏出白线时,小车处于微偏状态,这时将一个电机速度调慢,另一电机速度调快,完成调整。
当检测到最边上四个传感器时,小车处于较大的偏离状态,这时把一个电机的速度调至极低,另一电机全速运行,从而在较短时间内完成路线的调整。
第四章总结与展望
4.1智能小车展望
在科学探索和紧急抢险中经常会遇到对与一些危险或人类不能直接到达的地域的探测,这些就需要用机器人来完成。
而在机器人在复杂地形中行进时自动避障是一项必不可少也是最基本的功能。
因此,自动避障系统的研发就应运而生。
我们的自动避障小车就是基于这一系统开发而成的。
意义
随着科技的发展,对于未知空间和人类所不能直接到达的地域的探索逐步成为热门,这就使机器人的自动避障有了重大的意义。
我们的自动避障小车就是自动避障机器人中的一类。
自动避障小车可以作为地域探索机器人和紧急抢险机器人的运动系统,让机器人在行进中自动避过障碍物。
相关领域国内外技术、产业现状和发展趋势
在现代化运输及物流系统中,SZD智能行小车因其独特的性能优点(整个系统由于是空中运行,地面操作控制,充分地利用厂房空间,有效地减少使用面积,实现地面、空中为一体的立体化自动输送系统,同时,它与输送链相比较,该输送系统运行速度更快,负载更大,抗污染更强,安装更为方面,生产成本更低等优点),在现代汽车生产制造行业中被普遍使用,但到目前为止,SZD智能小车输送线的生产都是单工位控制,双工位智能小车控制系统在国内还是属于空白,在国外著名的日本大福公司也只是进行了部分的研制和开发,虽取得了一些进展,但造价相当昂贵,从目前国内汽车行业的现状看,单工位SZD智能小车输送线的生产已经满足不了汽车行业生产制造的要求,汽车生产厂商纷纷要求开发出具有双工位功能的智能小车系统,因此,此项技术的改进势在必行。
意义和必要性
随着中国加入WTO,汽车工业得到国内重要保护,但各汽车生产厂商彼此之间的竞争日益激烈。
各商家千方百计地降低生产成本和能源消耗,提高年生产量。
同时,各项技术指标做到独特领先,从而抢占更多的国内汽车市场,在国内汽车工业迅速发展的今天,我们负责汽车行业输送系统的设计、制造、安装的专业队伍,更不要安于现状,墨守成规,认为当前我们生产输送线有了一定的市场,够我们吃了,而是应该结合中国汽车工业发展的现状,从长远的利益出发,着眼于未来,去适应市场新的需要,努力不断地开发和完善高科技的新产品,自始至终地走在同行业的前头,使自已永远立足于不败之地,在汽车行业赢得更多的自己的市场,为创造更多的经济效益。
同时也将为中国汽车工业的发展起到一定的推动作用。
总之,汽车工业市场空间极为广阔,智能小车的前景一片光明。
4.1总结体会
经过一个多月的设计,终于完成了小车的方案设计和程序编写,在设计的过程中,我们克服了许多困难,通过参考前人的经验,完成了小车的整体方案设计,期间出现很多错误,都被及的发现并改正,从中体会到前期的准备和查资料是非常的重要,是设计的顺利完的保证。
编程是智能小车的工作的核心,是设计的重点,通过对小车设计条件的理解和推敲,编写出来了相应的程序,通过多次调试成功。
不仅使我学到了更多的知识,也使我学会了如何更好地处理遇到的问题。
同时还锻炼了今后工作遇到相类似问题时,发现问题和解决问题的能力。
另外,还提高了自身理论知识和实践相联系的能力。
附录1参考文献
1、徐江海,单片机应用技术,机械工业出版社。
2、殷庆纵,电子线路CAD,北京大学出版社。
3、陈其纯,电子线路,高等教育出版社。
附录2程序源代码
#include"
stc12c5a60s2.h"
ball_1.h"
way.h"
#include<
intrins.h>
sbitDIR_0=P1^2;
//PWM0的正反转控制位,1代表正
sbitDIR_1=P1^1;
//PWM1的正反转控制位,1代表正
//sbitstart_=P1^1;
//启动按键为
voidmain()
{
S_T();
//PWM等资源初始化
//start_=1;
//while(start_==1);
//等待按键
while
(1){
read_dat(rear);
process_dat();
xunji(rear);
}
}
/*=======================================================================
【函数原形】:
voiddelay_ms(unsignedintT)
【参数说明】:
T延时时间设定
【函数功能】:
ms级延时函数
【编写日期】:
2011年1月20日
========================================================================*/
unsignedintCON;
unsignedinti;
for(i=0;
i<
T;
i++)
for(CON=0;
CON<
2000;
CON++);
voidPWM0(unsignedcharFosc_1)
Fosc_0Fosc_0为占空比设置形参
voidPWM0(unsignedintFosc_0)//Fosc_0为占空比设置形参
CCAP0H=CCAP0L=(0xff-Fosc_0);
CCAPM0=0X42;
//8位PWM输出,无中断
//01000010,允许比较器功能和脉宽调节模式
PCA_PWM0=0x00;
//第9位数据为1
}
voidPWM1(unsignedcharFosc_1)
Fosc_1Fosc_1为占空比设置形参
voidPWM1(unsignedintFosc_1)
CCAP1H=CCAP1L=(0xff-Fosc_1);
CCAPM1=0X42;
PCA_PWM1=0x00;
voidmotor(unsignedcharm,unsignedcharz,unsignedintn)
{switch(m)
{
casel:
//左电机
if(z==forward||z==f){
CR=1;
//PCA计数阵列控制位
PWM0(n);
//以设定的占空比输出P1.3
DIR_1=0;
//控制正转P1.1
}
elseif(z==backward||z==b){
CR=1;
PWM0(n);
DIR_1=1;
//控制反转P1.1
}
break;
caser:
//右电机
if(z==forward||z==f)
{
PWM1(n);
//以设定的占空比输出
DIR_0=0;
//控制正转P1^2
}
elseif(z==backward||z==b)
//以设定的占空比输出P1.4
DIR_0=1;
//控制反转P1^2
default:
}
}
voidforword()//前进函数
motor(r,f,204);
motor(l,f,200);
voidback()//后退函数
motor(r,b,204);
motor(l,b,200);
voidpwm0_1()
CCON=0x00;
//CFCRXXXXCCF1CCF0
//中标PCA运控模块1中标模块0中标
CH=0x00;
//PCA装载值高位
CL=0x00;
//PCA装载值低位
CMOD=0x00;
//PCA工作模式寄存器,空闲模式PCA计数器工作,系统时钟,禁止CF位中断
//0XXX0000
voidS_T()
P0M1=0xc0;
//11000000
P0M0=0x3f;
//00111111
P1M1=0x00;
//00000000
P1M0=0xdb;
//11011011p1.3,p1.4,p1.6,p1.7,P1_0强推挽输出,其余准双向I/O口
P2M1=0xff;
P2M0=0x00;
//11111111输入口
P3M1=0xfc;
//11111100
P3M0=0x00;
//00000000
P4SW=0x70;
//P4.4\P4.5和P4.6口设置,都为I/O输出口
P4M1=0x00;
P4M0=0x73;
//01110011P4.0输出口
P5M1=0x00;
P5M0=0x01;
//00000001
pwm0_1();
//PWM的初始化设置
//P4_0=0;
//P4_4=0;
//P1_7=1;
//P1_6=1;
//P0=0xff;
//IT0=1;
//EX0=1;
//EA=1;
//while(start_==1)//等待按键
//{;
voidstop(unsignedcharm)
switch(m)
casel:
/*CR=0;
*/PWM0(0);
DIR_1=1;
break;
//右电机
caser:
*/PWM1(0);
DIR_0=1;
//左电机
caserl:
CR=0;
PWM0(0);
PWM1(0);
default:
}
#include"
reg52.h"
#defineucharunsignedchar
#defineuintunsignedint
bitflag=0;
/*=------------------------------
前方传感器分为两个档中间四个
两边各六个(再分为三个两个档位)
yyyzzz
、、、+++----+++、、、
oooooooooooooooo传感器
1514131211109876543210光源数量
-----------------------------*/
sbitdir_245=P1^0;
//74hc245"
1"
为2端"
0"
为1端
ucharfront_dat_z;
//前方左
ucharfront_dat_y;
//前方右
ucharrear_dat_z;
//后方左
ucharrear_dat_y;
//后方右
uintinformation_front;
charcenter=-1;
/*-----------------------------------------
temp1前方中间temp6后方中间
temp2前方左边temp7后方左边
temp3前方左左边temp8后方左左边
temp4前方右边temp9后方右端
temp5前方右右边temp10后方右右端
------------------------------------------*/
//uchartemp1=0,temp2=0,temp3=0,temp4=0;
//uchartemp5=0,temp6=0,temp7=0,temp8=0;
//uchartemp9=0,temp10=0;
voidread_dat(ucharsensor_dir)
P0=0xff;
//置为输入方式
P2=0xff;
switch(sensor_dir)
{
//--------------------前方数据处理----------------------
case1:
dir_245=1;
delay_ms
(1);
front_d