自动入库小车设计方案Word文档下载推荐.docx
- 文档编号:17418736
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:14
- 大小:78.63KB
自动入库小车设计方案Word文档下载推荐.docx
《自动入库小车设计方案Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《自动入库小车设计方案Word文档下载推荐.docx(14页珍藏版)》请在冰豆网上搜索。
1)启动部分
遥控器原理:
利用发射芯片产生一个32位数据,经高频载波通过红外线发射LED发射出去。
接收部分由一个红外线接收模块接收数据,经电容滤掉高频载波后,送单片机,与单片机中预存的数据进行比较,如相同则启动主程序运行。
运行原理如图2、3所示。
图2红外线发射器工作方块图
红外线
接收模块
单片机
控制
红外线信号
接收
图3红外线接收工作流程图
前进代码:
voidrun_init()
{
IN1=1;
IN2=0;
IN3=1;
IN4=0;
}
2)寻迹传感部分
利用光的反射原理:
光线照在黑色物体上,由于黑色对光的吸收,反射回去的量比较少。
这样就可以判断黑带轨道的走向,并且进行相应的转向和前进。
采用红外线发射,外面可见光对接收信号的影响较小,利用红外发射二极管对黑线边界进行检测,再用LM324对检测信号进行比较,取反后输送至单片机进行处理。
电路原理如图4所示
图4寻迹原理图
转向代码:
voidzhuanx(ucharzx)
{
switch(zx){
case1:
l=4;
r=0;
//高速左转
break;
case2:
r=4;
l=0;
//高速右转
break;
case3:
l=2;
r=0;
//低速左转
break;
case4:
r=2;
l=0;
//低速右转
case5:
l=r=2;
//低速前进
case6:
l=r=0;
//高速前进
case7:
l=r=4;
//刹车
}
判断黑带及随后的运动的代码
voidpanduan()
{
if((S0==0)&
&
(S1==0)&
(S2==1)&
(S3==0)&
(S4==0))
zhuanx(6);
}//1号传感器检测到信号,其余没有检测到信号
if((S0==0)&
(S1==1)&
(S2==0)&
(S4==0))
zhuanx(3);
}//0号传感器检测到信号,其余没有检测到信号
if((S0==1)&
zhuanx
(1);
}//3号传感器检测到信号,其余没有检测到信号
(S3==1)&
zhuanx(4);
}//4号传感器检测到信号,其余没有检测到信号
(S4==1))
zhuanx
(2);
}//1,2号传感器检测到信号,其余没有检测到信号
}//0,1号传感器检测到信号,其余没有检测到信号
}//2,3号传感器检测到信号,其余没有检测到信号
zhuanx(4);
}//3,4号传感器检测到信号,其余没有检测到信号
}//0,1,2号传感器检测到信号,其余没有检测到信号
}//2,3,4号传感器检测到信号,其余没有检测到信号
}//1,2,3号传感器检测到信号,其余没有检测到信号
}//0,4号传感器检测到信号,其余没有检测到信号
{
lukou++;
if(lukou==1)
{
TR1=1;
}
if(lukou==2)
TR0=0;
zhuanx(7);
//刹车
if(lukou==3)
lukou=0;
}
3)铁片检测部分
根据霍尔元件检测金属的原理,可以制作一种简易可靠的金属检测传感器对车库内的铁片进行检测,并以此作为停车的信号。
金属传感器的结构原理如图5所示.
图5金属传感器结构原理图
4)单片机控制部分
可采用一般的单片机系统控制电路,主要由:
电源电路、晶振电路、复位电路,及外部中断输入电路组成。
电路结构简单,性能稳定,是单片机系统控制普遍采用的硬件电路。
#include<
c8051f020.h>
#defineucharunsignedchar
#defineuintunsignedint
#defineSYSCLK22118400
sbitIN1=P3^0;
sbitIN2=P3^1;
sbitIN3=P3^2;
sbitIN4=P3^3;
sbitS0=P2^0;
sbitS1=P2^1;
sbitS2=P2^2;
sbitS3=P2^3;
sbitS4=P2^4;
ucharcodetable[]={0xff,0xd0,0xb0,0x80,0x00};
//PWM输出控制数组
ucharcode
table1[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
//数码管输出数组
uchari,r,l,temp,lukou=1,num;
voidSYSCLK_init()//时钟初始化
inti;
OSCXCN=0x67;
for(i=0;
i<
256;
i++);
while(!
(OSCXCN&
0x80));
OSCICN=0x88;
voidIO_init()//IO口初始化
XBR0=0x50;
//交叉开关配置寄存器XBR0、XBR1、XBR2
XBR1=0x00;
XBR2=0x40;
P0MDOUT=0xff;
P3MDOUT=0xff;
voidtimer_init()
CKCON=0x78;
//时钟控制寄存器
TMOD=0x11;
//计数器定时器方式寄存器
TH0=(65536-18432)/256;
//tf0/tf1中断请求标志位可用于关中断
TL0=(65536-18432)%256;
EA=1;
ET0=1;
ET1=1;
voidPCA_int_init()//PCA0初始化
IE=0x85;
IP=0x00;
EIP1=0x08;
EIE1=0x08;
PCA0MD=0x09;
PCA0CPM0=0x42;
PCA0CPM1=0x42;
PCA0CPH0=table[4];
PCA0CPH1=table[4];
CR=0;
IT0=1;
IT1=1;
voiddelay(uintz)
uintx,y;
for(y=z;
y>
0;
y--)
for(x=0;
x<
220;
x++);
voiddisplay()
ucharqian,bai,shi,ge;
qian=temp/1000;
bai=temp%1000/100;
shi=temp%1000%100/10;
ge=temp%10;
P4=0x7f;
P7=table1[ge];
delay
(2);
P4=0xbf;
P7=table1[shi];
P4=0xdf;
P7=table1[bai];
P4=0xef;
P7=table1[qian];
voidmain()
WDTCN=0xde;
//关闭看门狗
WDTCN=0xad;
SYSCLK_init();
IO_init();
PCA_int_init();
run_init();
timer_init();
CR=1;
while
(1)
panduan();
display();
voidPCA_ISR(void)interrupt9//PCA中断服务程序
CF=0;
//PCA0CPL0=0x00;
PCA0CPH0=table[r];
//PCA0CPL1=0x00;
PCA0CPH1=table[l];
CCF0=1;
CCF1=1;
voidtimer0()interrupt1//定时器0中断
{uchartt;
tt++;
if(tt==115)
{
temp++;
tt=0;
voidtimer1()interrupt3//定时器1中断
TH1=(65536-18432)/256;
TL1=(65536-18432)%256;
TR0=1;
5)电机驱动部分
L298双通道直流电机驱动芯片是性能优秀的小型直流电机驱动芯片之一。
它可以被用来驱动两个直流电机或双极性步进电机。
在6~46V的电压下,可以提供2A的额定电流,并且具有过热自动关断和电流反馈检测功能,安全可靠。
利用单片机调整出PWM脉冲和高低电平对直流电机进行驱动和控制。
8)电源部分
为防止系统运行时电机对单片机执行程序产生干扰,采用8.4伏和12.6伏锂电池组分别对单片机控制部分和电机驱动部分进行独立供电。
12.6伏锂电池组直接驱动电机,经7805稳压后给L298芯片供电,8.4伏锂电池组经7805稳压后给单片机和其他传感器和芯片供电。
。
3.系统程序设计
中断
进入寻迹子程序
左黑带(N)
左拐标志
右黑线(N)
右拐标志
返回
图6寻迹子程序流程图
三、性能总结
通过循迹完成入库是小车的主要完成功能,采用前万向轮,后双电机驱动的自制小车,用红外进行循迹,通过单片机的控制,从而完成入库。
同时增加遥控发车以及自动返航功能,以实现远程操控。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 自动 入库 小车 设计方案
![提示](https://static.bdocx.com/images/bang_tan.gif)