自动入库小车设计方案.docx

上传人:b****5 文档编号:4486653 上传时间:2022-12-01 格式:DOCX 页数:14 大小:78.63KB
下载 相关 举报
自动入库小车设计方案.docx_第1页
第1页 / 共14页
自动入库小车设计方案.docx_第2页
第2页 / 共14页
自动入库小车设计方案.docx_第3页
第3页 / 共14页
自动入库小车设计方案.docx_第4页
第4页 / 共14页
自动入库小车设计方案.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

自动入库小车设计方案.docx

《自动入库小车设计方案.docx》由会员分享,可在线阅读,更多相关《自动入库小车设计方案.docx(14页珍藏版)》请在冰豆网上搜索。

自动入库小车设计方案.docx

自动入库小车设计方案

自动入库小车设计方案

 

学生姓名:

洪涛

学号:

16061913

专业:

电气类

班级:

16060419

 

2017年06月07日

一、功能描述

一个小型车库,车库中心地面上有一个铁片。

小车的出发区与车库间的地面上有黑色的边界线组成的过道,中心有黑色引导线。

小车能够正确按黑色引导线间的过道行驶到车库,停止于铁片处并可以自动返回(期间会有灯光提示,并且小车可以远程遥控启动)。

二、设计方案

1.总体方案

为使小车运行更加灵活可靠,采用后轮用两个直流电机分别驱动,前轮采用万向轮的驱动方式,采用L298双通道直流电机驱动芯片作为主控电路,将红外传感器采集的信号,经单片机处理后,控制驱动电机的PWM的占空比和方向,从而实现了一系列功能。

另外可以使用自制的霍尔金属传感器,以减轻整车的重量,增加小车的灵活性。

采用ATM89S52单片机作为整机的控制单元;启车采用红外线遥控控制;寻迹采用反射式红外对管;铁片检测采用霍尔元件制作的金属传感器;将以上信号送入单片机进行处理,调制出PWM脉冲和电平对直流电机进行驱动。

此系统比较灵活,采用软件方法来解决复杂的硬件电路部分,使系统硬件简洁化,各类功能易于实现,并且可扩展性好,基本原理如图1所示。

图1简易自动小车基本原理框图

2.硬件模块电路设计

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;//低速右转

break;

case5:

l=r=2;//低速前进

break;

case6:

l=r=0;//高速前进

break;

case7:

l=r=4;//刹车

break;

}

}

判断黑带及随后的运动的代码

voidpanduan()

{

if((S0==0)&&(S1==0)&&(S2==1)&&(S3==0)&&(S4==0))

{

zhuanx(6);

}//1号传感器检测到信号,其余没有检测到信号

if((S0==0)&&(S1==1)&&(S2==0)&&(S3==0)&&(S4==0))

{

zhuanx(3);

}//0号传感器检测到信号,其余没有检测到信号

if((S0==1)&&(S1==0)&&(S2==0)&&(S3==0)&&(S4==0))

{

zhuanx

(1);

}//3号传感器检测到信号,其余没有检测到信号

if((S0==0)&&(S1==0)&&(S2==0)&&(S3==1)&&(S4==0))

{

zhuanx(4);

}//4号传感器检测到信号,其余没有检测到信号

if((S0==0)&&(S1==0)&&(S2==0)&&(S3==0)&&(S4==1))

{

zhuanx

(2);

}//1,2号传感器检测到信号,其余没有检测到信号

if((S0==0)&&(S1==1)&&(S2==1)&&(S3==0)&&(S4==0))

{

zhuanx(3);

}//0,1号传感器检测到信号,其余没有检测到信号

if((S0==1)&&(S1==1)&&(S2==0)&&(S3==0)&&(S4==0))

{

zhuanx

(1);

}//2,3号传感器检测到信号,其余没有检测到信号

if((S0==0)&&(S1==0)&&(S2==1)&&(S3==1)&&(S4==0))

{

zhuanx(4);

}//3,4号传感器检测到信号,其余没有检测到信号

if((S0==0)&&(S1==0)&&(S2==0)&&(S3==1)&&(S4==1))

{

zhuanx

(2);

}//0,1,2号传感器检测到信号,其余没有检测到信号

if((S0==1)&&(S1==1)&&(S2==1)&&(S3==0)&&(S4==0))

{

zhuanx

(1);

}//2,3,4号传感器检测到信号,其余没有检测到信号

if((S0==0)&&(S1==0)&&(S2==1)&&(S3==1)&&(S4==1))

{

zhuanx

(2);

}//1,2,3号传感器检测到信号,其余没有检测到信号

if((S0==0)&&(S1==1)&&(S2==1)&&(S3==1)&&(S4==0))

{

zhuanx(6);

}//0,4号传感器检测到信号,其余没有检测到信号

if((S0==1)&&(S4==1))

{

lukou++;

if(lukou==1)

{

TR1=1;

}

if(lukou==2)

{

TR0=0;

zhuanx(7);//刹车

}

if(lukou==3)

lukou=0;

}

}

3)铁片检测部分

根据霍尔元件检测金属的原理,可以制作一种简易可靠的金属检测传感器对车库内的铁片进行检测,并以此作为停车的信号。

金属传感器的结构原理如图5所示.

图5金属传感器结构原理图       

4)单片机控制部分

可采用一般的单片机系统控制电路,主要由:

电源电路、晶振电路、复位电路,及外部中断输入电路组成。

电路结构简单,性能稳定,是单片机系统控制普遍采用的硬件电路。

#include

#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++);

}

voidzhuanx(ucharzx)

voidpanduan()

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];

delay

(2);

P4=0xdf;

P7=table1[bai];

delay

(2);

P4=0xef;

P7=table1[qian];

delay

(2);

}

voidrun_init()

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;

TH0=(65536-18432)/256;

TL0=(65536-18432)%256;

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寻迹子程序流程图

  三、性能总结

通过循迹完成入库是小车的主要完成功能,采用前万向轮,后双电机驱动的自制小车,用红外进行循迹,通过单片机的控制,从而完成入库。

同时增加遥控发车以及自动返航功能,以实现远程操控。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 高中教育

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

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