- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
寻
迹
小
车
设
计
报
告
报告人:欧阳志德
邹鹏
设计目的:
随着现代工业的不断发展,自动化越来越多,寻迹小车是一种智能产品。它是按照铺在地表层的黑线行走。它轨道铺设容易适合范围广。它可以代替按铁轨铺设的轨道行走的小车。寻迹小车可以在无人控制的状态下到达指定的地点。可以利用来派送一些货物,减小人员的利用。
设计要求:
寻迹小车操作简单。
寻迹小车不能脱离轨道。
寻迹小车能够准确的到达目的地。
寻迹小车能够返回原地。
设计原理:
1、小车寻迹的原理
寻迹是指小车在白色地板上寻黑线行走,通常采用的方法是红外探测法。红外探测法,即利用红外线在不同颜色的物体表面有不同的反射性质的特点,小车在行驶的过程中不断的地面发射红外光,当红外光遇到白色地板时发生漫反射,反射光被装在小车上的接收管接收。如果遇到黑线则红外线被吸收,小车上的接收管接收不到红外光。单片机以是否接收红外线为依据来控制小车的运动。
2、小车运动原理
小车的后面两个轮分别装上直流减速电机,分别控制两个电机的转速就可以控制小车的运动方向。电机的转速由单片机控制L298N输出不同的电压占空比来控制。
系统模块:
车体设计
小车整体由三个轮支撑。后面左右两个轮分别装上电机,用来控制小车的转向,前面的轮子是万向轮,用于辅助小车的运动。
2、控制器模块
采用STC公司的STC89C51单片机作为主控制器。
3、电机驱动模块
采用L298N作为电机驱动芯片。L298N是一个具有高电压大电流的全桥驱动芯片,它可以分别控制两个直流电机,而且还带有控制全能端。容易控制电机的转速。
4、寻迹模块
采用RPR220型光电对管。RPR220是一种一体化反射光电探测器,其发射器是一个砷化镓红外发光二极管,而接收器是一个高灵敏度,硅平面光电三极管。
流程图:
开始
开始
调整车方向
调整车方向
记录转弯口
记录转弯口
到达目的地停止
到达目的地停止
按照原路返回
按照原路返回
结束
结束
程序:
#includereg51.h
sbitchoose=P1^0; /*选择*/
sbitstart=P1^1; /*启动*/
/*小车方向*/
sbitzhong=P1^7;
sbityou0=P3^1;
sbitzuo1=P3^2;
sbityou1=P3^3;
sbitzuo0=P3^0;
sbitP2_0=P2^0; /*数码管位选端*/
/*电动机转向*/
sbitP2_1=P2^1;
sbitP2_2=P2^2;
sbitP2_3=P2^3;
sbitP2_4=P2^4;
unsignedchari,k,a;
charb[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; /*数字显示*/
main()
{
/*初始化*/
EA=1;
EX1=1;
EX0=1;
IT0=1;
IT1=1;
P2=1;
a=0;
i=0;
/*选择第几个房间*/
while(start)
{
if(choose==0); /*按键识别*/
for(k=0;k100;k++);
if(choose==0)
a++;
P0=b[a];
while(!choose);
}
P2_1=0;
P2_2=1;
P2_3=0;
P2_4=1;
zuo0=0;
you0=0;
zhong=0;
while(1)
{
if(zuo0==1) /*小车左转*/
{
P2_2=0;
P2_4=1;
}
if(you0==1) /*小车右转*/
{
P2_2=1;
P2_4=0;
}
if(zuo0==0you0==0)/*小车直走*/
{
P2_2=1;
P2_4=1;
}
if(zuo0==0you0==0zhong==0) /*小车停止*/
{
P2=0x00;
while(start); /*小车返回*/
P2_2=1;
P2_3=1;
while(!zhong);
P2_1=0;
P2_2=0;
P2_3=0;
P2_4=0;
for(k=0;k100;k++);
}
}
}
zuo()interrupt0using0 /*小车到达房间*/
{
i++;
if(i==a||i==a+1||i==a+a)
{
P2_4=1;
P2_2=0;
while(!you0);
while(!you0);
P2_2=1;
P2_4=0;
for(k=0;k10;k++);
}
}
you()interrupt2using2 /*小车到达房间*/
文档评论(0)