收藏 分销(赏)

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

上传人:丰**** 文档编号:3937935 上传时间:2024-07-24 格式:DOC 页数:16 大小:52.04KB 下载积分:8 金币
下载 相关 举报
自动入库小车设计方案.doc_第1页
第1页 / 共16页
自动入库小车设计方案.doc_第2页
第2页 / 共16页


点击查看更多>>
资源描述
自动入库小车设计方案 学生姓名: 洪涛 学 号: 16061913 专 业: 电气类 班 级: 16060419 2017年06月07日 一、功能描述 一个小型车库,车库中心地面上有一个铁片。小车的出发区与车库间的地面上有黑色的边界线组成的过道,中心有黑色引导线.小车能够正确按黑色引导线间的过道行驶到车库,停止于铁片处并可以自动返回(期间会有灯光提示,并且小车可以远程遥控启动)。 二、设计方案 1。总体方案 为使小车运行更加灵活可靠,采用后轮用两个直流电机分别驱动,前轮采用万向轮的驱动方式,采用L298双通道直流电机驱动芯片作为主控电路,将红外传感器采集的信号,经单片机处理后 ,控制驱动电机的PWM的占空比和方向,从而实现了一系列功能。另外可以使用自制的霍尔金属传感器,以减轻整车的重量,增加小车的灵活性。 采用ATM89S52单片机作为整机的控制单元;启车采用红外线遥控控制;寻迹采用反射式红外对管;铁片检测采用霍尔元件制作的金属传感器;将以上信号送入单片机进行处理,调制出PWM脉冲和电平对直流电机进行驱动. 此系统比较灵活,采用软件方法来解决复杂的硬件电路部分,使系统硬件简洁化,各类功能易于实现,并且可扩展性好,基本原理如图1所示。 89S52 红外遥控脉冲 接收脉冲 寻迹信号 铁片检测 灯光提示 电机驱动 电源 停车信号 图1 简易自动小车基本原理框图 2.硬件模块电路设计 1)启动部分 遥控器原理:利用发射芯片产生一个32位数据,经高频载波通过红外线发射LED发射出去。接收部分由一个红外线接收模块接收数据,经电容滤掉高频载波后,送单片机,与单片机中预存的数据进行比较,如相同则启动主程序运行。 运行原理如图2、3所示。 单片机 38KHZ载波信号 AND门 信号 放大 红外线 发射 二极管 发射红外线信号 图2 红外线发射器工作方块图 红外线 接收模块 单片机 控制 红外线信号 接收 图3 红外线接收工作流程图 前进代码: void run_init() { IN1=1; IN2=0; IN3=1; IN4=0; } 2)寻迹传感部分 利用光的反射原理:光线照在黑色物体上,由于黑色对光的吸收,反射回去的量比较少.这样就可以判断黑带轨道的走向,并且进行相应的转向和前进。采用红外线发射,外面可见光对接收信号的影响较小,利用红外发射二极管对黑线边界进行检测,再用LM324对检测信号进行比较,取反后输送至单片机进行处理。 电路原理如图4所示 图4 寻迹原理图 转向代码: void zhuanx(uchar zx) { switch (zx) { case 1: l=4; r=0; //高速左转 break; case 2: r=4; l=0; //高速右转 break; case 3: l=2; r=0; //低速左转 break; case 4: r=2; l=0; //低速右转 break; case 5: l=r=2; //低速前进 break; case 6: l=r=0; //高速前进 break; case 7: l=r=4; //刹车 break; } } 判断黑带及随后的运动的代码 void panduan() { 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<c8051f020.h〉 #define uchar unsigned char #define uint unsigned int #define SYSCLK 22118400 sbit IN1=P3^0; sbit IN2=P3^1; sbit IN3=P3^2; sbit IN4=P3^3; sbit S0=P2^0; sbit S1=P2^1; sbit S2=P2^2; sbit S3=P2^3; sbit S4=P2^4; uchar code table[]={0xff,0xd0,0xb0,0x80,0x00}; //PWM输出控制数组 uchar code table1[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //数码管输出数组 uchar i,r,l,temp,lukou=1,num; void SYSCLK_init() //时钟初始化 { int i; OSCXCN=0x67; for(i=0;i〈256;i++); while(!(OSCXCN&0x80)) ; OSCICN=0x88; } void IO_init() //IO口初始化 { XBR0=0x50; //交叉开关配置寄存器XBR0、XBR1、XBR2 XBR1=0x00; XBR2=0x40; P0MDOUT=0xff; P3MDOUT=0xff; } void timer_init() { CKCON=0x78; //时钟控制寄存器 TMOD=0x11; //计数器定时器方式寄存器 TH0=(65536-18432)/256; //tf0/tf1中断请求标志位 可用于关中断 TL0=(65536—18432)%256; EA=1; ET0=1; ET1=1; } void PCA_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; } void delay(uint z) { uint x,y; for(y=z;y〉0;y-—) for(x=0;x<220;x++); } void zhuanx(uchar zx) void panduan() void display() { uchar qian,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); } void run_init() void main() { WDTCN=0xde; //关闭看门狗 WDTCN=0xad; SYSCLK_init(); IO_init(); PCA_int_init(); run_init(); timer_init(); CR=1; while(1) { panduan(); display(); } } void PCA_ISR (void) interrupt 9 //PCA中断服务程序 { CF=0; // PCA0CPL0=0x00; PCA0CPH0=table[r]; // PCA0CPL1=0x00; PCA0CPH1=table[l]; CCF0=1; CCF1=1; } void timer0() interrupt 1 //定时器0中断 { uchar tt; TH0=(65536-18432)/256; TL0=(65536-18432)%256; tt++; if(tt==115) { temp++; tt=0; } } void timer1() interrupt 3 //定时器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 寻迹子程序流程图   三、性能总结 通过循迹完成入库是小车的主要完成功能,采用前万向轮,后双电机驱动的自制小车,用红外进行循迹,通过单片机的控制,从而完成入库。同时增加遥控发车以及自动返航功能,以实现远程操控。 16
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服