哈尔滨理工大学第五届电子设计大赛技术报告(小车).doc_第1页
哈尔滨理工大学第五届电子设计大赛技术报告(小车).doc_第2页
哈尔滨理工大学第五届电子设计大赛技术报告(小车).doc_第3页
哈尔滨理工大学第五届电子设计大赛技术报告(小车).doc_第4页
哈尔滨理工大学第五届电子设计大赛技术报告(小车).doc_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

小组名称(智能车组)组长张延聪组员李晖组员马力指导人 万泉三英卓越电子协会比赛论文哈尔滨理工大学第五届“电子设计大赛”技术报告版本修改日期原因作者目 录1. 摘要12. 系统设计要求13. 系统方案的选择与论证24. 算法设计与分析35. 系统设计46. 系统调试57. 系统测试结果分析68. 参考文献.79. 附录.8摘要 随着计算机和信息技术的飞速发展,智能技术的开发受到越来越广泛的重视,其开发速度也在快速增加。由于智能化的程度越来越高,使得其应用范围也在不断的扩展。与此同时,机器人技术的发展势头迅猛,其应用领域众多,智能循迹小车就是机器人技术与智能控制技术相结合的一个应用典范。通俗来讲,智能循迹小车就是智能机器人的另一种形式,它用轮子代替了机器人的双腿,因而在机械设计和电路方面都要比智能机器人简单,另外,其控制系统和智能机器人相比也较为简单,可是其对行车速度和行驶方向的配合则要求较严格,它首先通过传感器获取目标道路信息,然后结合智能车当前的行驶状态智能地做出决策,对其行驶方向与行车速度进行调整,从而达到准确快速跟踪道路的目的。下面将介绍了基于STC12c5a60s2单片机为控制核心的智能循迹小车的设计,该智能循迹小车是一种在控制系统的作用下,可以准确沿既定路线自动行驶的系统。本设计中,采用STC12c5a60s2单片机为主控制芯片,结合步进电机、传感器、电源电路及其他外围电路,设计实现了小车沿黑色轨迹行走的智能循迹小车,其中小车循迹功能由红外式光电传感器完成,小车的驱动功能由L298n驱动电路完成。一、 系统设计要求本设计中,循迹指的是小车在白色纸板上沿着2cm宽的黑线行走。红外传感器的发射管发出红外线,由接收管接收。同时,接收的物理量被转化成电信号,经过信号放大电路处理,将信息传递给单片机,进行一定的算法处理,最后根据处理过的信息通过驱动L298n芯片,来对小车的状态进行控制,从而达到驱动小车行走和循迹的目的。循迹时,由于红外线在白色地板和黑线上的反射系数不同,所以可以根据三极管接收红外线的强弱来决定小车的走向,以下是循迹小车可以实现的具体功能:1、 在白色纸板上沿着2cm宽的黑线行走 2、 能排除中途十字线的干扰,并在终点停车3、 可以识别并通过锐角弯、钝角弯、直角弯等4、 可以圆滑的走过弧线形跑道二、系统方案的选择与论证1、方案选择本设计采用五对红外传感器,采用“一字型”分布。中间传感器接收不到反射回来的红外线,而左右各两个传感器能接收到反射回来的红外线,则小车直线前进;当左边和中间(或只有左边)的传感器接收不到反射回来的红外线,只有右边传感器能接收到时,说明小车向右偏离黑色轨道,则小车向左转动;同理,当中间和右边(或只有右边)的传感器接收不到反射回来的红外线,只有左边传感器能接收到时,说明小车向左偏离黑色轨道,则小车向右转动,从而实现自动循迹。本设计中红外传感器离地面垂直距离为2cm,能在没有强烈日光干扰或在有日光灯的房间里,完全能满足探测要求,具有很好的可靠性与抗干扰能力。2、模块选择(1)单片机最小系统:STC12C5A60S2/AD/PWM系列单片机是宏晶科技生产的单时钟/机器周期(1T)的单片机,是高速/低功耗/超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12倍。内部集成MAX810专用复位电路,2路PWM,8路高速10位A/D转换(250K/S),针对电机控制,强干扰场合。(2)红外探测模块本模块使用五个红外对管,成一字型排列,能够很好地对黑线进行检测并对小车的状态进行引导。(3)电源模块 输入12V直流电,输出为5V、6V和12V。为单片机、红外探测模块、电机驱动模块和步进电机供电。(4) 电机驱动模块 采用L298N芯片对步进电机进行控制,L298N有四个输入口IN1、IN2、IN3、IN4与单片机IO口相连,和四个输出口OUT1、OUT2、OUT3、OUT4分别于步进电机四线进行控制。三、算法设计与分析1.通过前置的一字型排列的5个红外传感器把小车此时的可能状态探测出来(探测到黑线返回低电平,否则为高电平)。定义最左边的红外对管为左1,左边第二个为左2,同理,右1,右2,中间的红外对管定义为中。情况如下:(低低电平,高高电平)(1)小左转的情况:左1(高)左2(低)中(低)右2(高)右1(高) 左1(高)左2(低)中(高)右2(高)右1(高)(2) 小右转的情况:左1(高)左2(高)中(低)右2(低)右1(高) 左1(高)左2(高)中(高)右2(低)右1(高)(3) 直线行走: 左1(高)左2(高)中(低)右2(高)右1(高) 左1(高)左2(低)中(低)右2(低)右1(高) 左1(低)左2(低)中(低)右2(低)右1(低) 左1(高)左2(高)中(高)右2(高)右1(高) (4)大右转的情况:左1(高)左2(高)中(低)右2(低)右1(低) 左1(高)左2(高)中(高)右2(低)右1(低) 左1(高)左2(低)中(低)右2(低)右1(低) 左1(高)左2(低)中(低)右2(高)右1(低) 左1(高)左2(低)中(高)右2(高)右1(低) 左1(高)左2(低)中(高)右2(低)右1(低) 左1(高)左2(高)中(高)右2(高)右1(低) (5)大右转的情况:左1(低)左2(低)中(低)右2(高)右1(高) 左1(低)左2(低)中(高)右2(高)右1(高)左1(低)左2(高)中(高)右2(高)右1(高)左1(低)左2(低)中(低)右2(低)右1(高)左1(低)左2(高)中(低)右2(低)右1(高)左1(低)左2(高)中(高)右2(低)右1(高)左1(低)左2(低)中(高)右2(低)右1(高)采用if语句对上述情况进行检测。(1)(2)(3)情况下小车大致在沿直线行走或在过钝角弯,所以只对小车进行小幅度控制。采用一个轮前转,一个轮不转的方式。(4)(5)情况下小车大致在过直角弯,锐角弯。所以需要对小车进行大幅度的调整。采用一个轮前转,一个轮后转的方式。2.采用8拍控制2相4线步进电机,且采用总线的控制方式。这样电机在运转时相对比较稳定。总线型8拍(双电机):0x11,0x33,0x22,0x66,0x44,0xcc,0x88,0x99采用FOR循环驱动电机,例如:前进函数:Char bit=0x11,0x33,0x22,0x66,0x44,0xcc,0x88,0x99;For(i=0;i8;i+)8_biti;Delay();这样通过不断地给电机送8拍信号就使电机前转了,而且可以通过控制给电机的8拍的数量来控制电机转动的角度。4、 系统设计(一)、硬件设计原理:本系统采用STC12C5A60S2单片机为控制核心控制循迹模块及电机驱动模块。循迹模块采用五个红外线发射管LTH-1550-01,当检测到黑线时,红外对管的接收端接收到黑白线返回来的红外光,其输出经LM358运放后传给单片机进行分析处理,然后将处理结果发送到电机驱动模块。电机驱动模块采用L298N驱动芯片,由于单片机输出信号电压偏低,且负载能力不够,故不能用来直接驱动电机。L298N驱动芯片是性能优越的小型直流电机驱动芯片之一。它可以被用来驱动两个直流电机,或一个四线二相步进电机,在4V6V电压下,可以提供2A驱动电流。供电模块采用LM2596稳压。LM2596是3A电流输出降压开关型集成稳压芯片,它内含固定频率振荡器(150KHZ),和基准稳压器(1.23v),并具有完善的保护电路:电流限制、热关断电路等。利用该器件只需极少的外围器件便可构成高效稳压电路。可以实现对输出电压的调节。(二)、硬件原理图:1、红外探测模块原理图:元件清单:LTH1550 5个、LM358 3个、滑动变阻器 5个、电阻若干2、供电模块:元件清单:LM2596 3个、LM1117 1个、滑动变阻器 3个、电感 3个、贴片led 1个、电阻若干、电容若干、二极管若干3、电机驱动模块:元件清单:L298N 2个、电阻若干4、 控制核心单片机(三)、程序原理图:(四)、程序设计原理:*以下为最终程序*#include#define uint unsigned int#define uchar unsigned char/*sbit zuo_a=P20;sbit zuo_b=P21;sbit zuo_c=P22;sbit zuo_d=P23;/左右电机4线位声明sbit you_a=P24;sbit you_b=P25;sbit you_c=P26;sbit you_d=P27;/*sbit zuo_1=P17;sbit zuo_2=P16;sbit zhong=P15;/5个红外对管位声明sbit you_2=P14;sbit you_1=P13;/*sbit zuo_qian=P10;sbit you_qian=P11;/*函数声明*void delay(uint z);void go();void turn_zuo(uint a);void turn_you(uint b);void init();void jiance();void turn_big_zuo(uint big_zuo);void go_(uint go);void turn_big_you(uint big_you);void time0_init();/*uchar code date=0x11,0x33,0x22,0x66,0x44,0xcc,0x88,0x99;/前进码uchar code date_zuo=0x10,0x30,0x20,0x60,0x40,0xc0,0x80,0x90;/小左转码uchar code date_big_zuo=0x19,0x38,0x2c,0x64,0x46,0xc2,0x83,0x91;/大左转码uchar code date_big_you=0x91,0x83,0xc2,0x46,0x64,0x2c,0x38,0x19;/大右转码uchar code date_you=0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09;/小右转码/*uint c,turn_you_delay,turn_zuo_delay,small_zuo,small_you,shizi,num,shizi_float,shizi1,o,black;void main()delay(6000);delay(6000);/延时大约3秒delay(6000);init();/初始化函数while(1)jiance();/检测函数void init()shizi1=0;shizi_float=0;shizi=0;time0_init();turn_zuo_delay=20;turn_you_delay=20;c=40;small_zuo=20;small_you=20;num=0;o=14;black=2;/*定时器0初始化50ms*void time0_init()TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;TR0=1; /*中断函数*void time0() interrupt 1TH0=(65536-50000)/256;TL0=(65536-50000)%256;/*终点停止函数*shizi+;if(shizi=4)shizi=0;if(zuo_1=0&zuo_2=0&zhong=0&you_1=0&you_2=0)go_(10);num+;if(num=2)TR0=0;num=0;go_(20);while(1);/*/*延时函数*void delay(uint z)uint i ;uchar j;for(i=0; iz; i+)for(j=0; j110; j+);/*前进函数*void go()uint i;for(i=0;i8;i+)P2=datei;delay(c);/*可控前进函数*void go_(uint go)while(-go)uint i;for(i=0;i8;i+)P2=datei;delay(c);/*小左转函数*void turn_zuo(uint a)uint i;while(-a)for(i=0;i8;i+)P2=date_zuoi;delay(small_zuo);/*大左转函数*void turn_big_zuo(uint big_zuo)uint i;while(-big_zuo)for(i=0;i8;i+)P2=date_big_zuoi;delay(turn_zuo_delay);/*小右转函数*void turn_you(uint b)uint i;while(-b)for(i=0;i8;i+)P2=date_youi;delay(small_you);/*大右转函数*void turn_big_you(uint big_you)uint i;while(-big_you)for(i=0;i8;i+)P2=date_big_youi;delay(turn_you_delay);/*检测函数*void jiance()if(zhong=0&zuo_1=0&zuo_2=0&you_1=0&you_2=0)go();if(zhong=0&zuo_1=1&zuo_2=1&you_1=1&you_2=1)go();if(zhong=0&zuo_1=1&zuo_2=0&you_1=1&you_2=0)go();if(zhong=1&zuo_1=1&zuo_2=1&you_1=1&you_2=1)go();if(zhong=0&zuo_2=0&zuo_1=1&you_1=1&you_2=1)turn_you(4);if(zhong=1&zuo_2=0&zuo_1=1&you_1=1&you_2=1)turn_zuo(4);if(zhong=0&zuo_2=1&zuo_1=1&you_1=1&you_2=0)turn_you(4);if(zhong=1&zuo_2=1&zuo_1=1&you_1=1&you_2=0)turn_you(4);/.大左转.if(zhong=0&zuo_2=0&zuo_1=0&you_1=1&you_2=1)go_(black);if(zhong=0&zuo_2=0&zuo_1=0&you_1=1&you_2=1)go_(o);while(zhong)turn_big_zuo(2);if(zuo_1=0&zuo_2=0&zhong=0&you_1=1&you_2=0)if(zuo_1=0&zuo_2=0&zhong=0&you_1=1&you_2=0)go_(black);go_(o);while(zhong)turn_big_zuo(2);if(zhong=0&zuo_2=1&zuo_1=0&you_1=1&you_2=1)go_(black);if(zhong=0&zuo_2=1&zuo_1=0&you_1=1&you_2=1)go_(o);while(zhong)turn_big_zuo(2); if(zhong=1&zuo_2=1&zuo_1=0&you_1=1&you_2=1)go_(black);if(zhong=1&zuo_2=1&zuo_1=0&you_1=1&you_2=1)go_(o);while(zhong)turn_big_zuo(2);if(zhong=1&zuo_2=0&zuo_1=0&you_1=1&you_2=1)go_(black);if(zhong=1&zuo_2=0&zuo_1=0&you_1=1&you_2=1)go_(o);while(zhong)turn_big_zuo(2);if(zuo_1=0&zuo_2=1&zhong=0&you_2=0&you_1=1)go_(black);if(zuo_1=0&zuo_2=1&zhong=0&you_2=0&you_1=1)go_(o);while(zhong)turn_big_zuo(2);/.大右转.if(zuo_1=1&zuo_2=0&zhong=0&you_1=0&you_2=0)go_(black);if(zuo_1=1&zuo_2=0&zhong=0&you_1=0&you_2=0)go_(o);while(zhong)turn_big_you(2); if(zhong=0&zuo_2=1&zuo_1=1&you_1=0&you_2=0)go_(black);if(zhong=0&zuo_2=1&zuo_1=1&you_1=0&you_2=0)go_(o);while(zhong)turn_big_you(2); if(zhong=0&zuo_2=1&zuo_1=1&you_1=0&you_2=1)go_(black);if(zhong=0&zuo_2=1&zuo_1=1&you_1=0&you_2=1)go_(o);while(zhong)turn_big_you(2);if(zuo_1=1&zuo_2=0&zhong=0&you_2=1&you_1=0)go_(black);if(zuo_1=1&zuo_2=0&zhong=0&you_2=1&you_1=0)go_(o);while(zhong)turn_big_you(2);if(zhong=1&zuo_2=1&zuo_1=1&you_1=0&you_2=1)go_(black);if(zhong=1&zuo_2=1&zuo_1=1&you_1=0&you_2=1)go_(o);while(zhong)turn_big_you(2);if(zhong=1&zuo_2=1&zuo_1=1&you_1=0&you_2=0)go_(black);if(zhong=1&zuo_2=1&zuo_1=1&you_1=0&you_2=0)go_(o);while(zhong)turn_big_you(2);5、 系统调试(一)、硬件调试:1、红外探测模块的调试:检测红外检测模块能否有效的探测到黑条,并返回有效的高低电平。2、 单片机模块的调试:检测打片机模块是否能输出有效的高低电平,并能实现相应的功能。3、 电机驱动模块的调试:检测L298N能否被单片机有效控制,并输出电机所需要的有效电压。4、 电源模块:检测电源模块能否在输入12V的情况下输出6V,12V的稳定电压。(二)、软件调试:初级调试:1. 首先在LEIL上进行初步的程序编译,检查是否存在最基本的语法错误。2. 检测程序能否对单片机进行有效的控制。3. 检测电机驱动部分能否对步进电

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论