壁障循迹智能小车_第1页
壁障循迹智能小车_第2页
壁障循迹智能小车_第3页
壁障循迹智能小车_第4页
壁障循迹智能小车_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

1、湖北理工学院电赛预选赛论文题目;智能壁障循迹小车参赛人员:许金利 陈雄班级:10电气本一智能壁障循迹小车摘要:本系统是以msp430单片机为控制核心,利用TRCT5000红外对管检测黑线,控制小车实现自动循迹功能,利用E18D80NKN红外壁障传感器实现壁障功能。小车驱动采用L293D驱动电路,速度由单片机控制,通过L293D芯片驱动直流电机,结合光电开关,可有效控制小车在特定位置转弯角度;另利用红外解码原理,通过遥控器实现小车的功能转换。由以上各种功能的结合,使小车更加智能化,自动化,该系统在结构和技术上都显得更加科学化。关键字:msp430单片机;TRCT5000红外对管;E18D80NK

2、N红外壁障传感器;L293D芯片。2 方案设计2.1 主控系统 采用msp430F149单片机加8MHZ的晶振为整个系统的核心,TI公司的msp430系列16位单片机具有超低功耗性能,用其控制智能小车,实现既定的功能。2.2 电机驱动模块(L293D) 采用功率三极管作为功率放大器的输出控制直流电机,线性型驱动的电路结构和原理简单,这种调速方式有调速特性优良、调整平滑、调速范围广、过载能力大,能承受频繁的负载冲击,还可以实现频繁的无级快速启动、制动和反转等优点。因此决定采用使用功率三极管作为功率放大器的输出控制直流电机。2.3 循迹模块 采用4只红外对管并排至于小车后,中央黑线的两侧分别有两只

3、,红外对管的红外发射管不断发射红外线,光敏三极管会不断接受反射的红外线,通过对黑线的检测,光电对管会向单片机发送脉冲信号,单片机则会控制电机的转速来实现转弯,继而实现循迹功能。红外对管的电路实物图如下: 图2 TRCT5000传感器模块布局图 2.4 壁障模块E18-D80NK-N 这是一种集发射与接收于一体的光电传感器,发射光经过调制后发出,接收头对反射光进行解调输出。有效的避免了可见光的干扰。透镜的使用,也使得这款传感器最远可以检测80厘米距离的问题。如遇障碍物,光电开关向单片机发去信号继而控制小车转弯以实现壁障功能。 E18-D80NK-N光电传感器的实物图与原理图2.5 机械系统 本题

4、目要求小车的机械系统稳定、灵活、简单,而运动系统具备以上特点。 驱动部分:由于玩具汽车的直流电机功率较小,而小车上装有电池、电机、电子器件等,使得电机负担较重。电池的安装:将电池放置在车体的电机前后位置,降低车体重心,提高稳定性,同时可增加驱动轮的抓地力,减小轮子空转所引起的误差。2.6 电源模块 电源采用12V电源转5V,通过7805的稳压片及滤波电容。 电源电路3 硬件设计3.1 总体设计 智能小车采用前轮驱动,前轮左右两边各用一个电机驱动,调制前面两个轮子的转速起停从而达到控制转向的目的,将循迹光电对管并排安装在车体后。当车身下左边的传感器检测到黑线时,主控芯片控制左轮电机停止,车向左修

5、正,当车身下右边传感器检测到黑线时,主控芯片控制右轮电机停止,车向右修正。红外光电开关装在车上中间部分,当检测到障碍物时,主控芯片控制小车转弯。 Msp430 单片机 主板设计框图红外对管模块电机驱动模块光电开关模块液晶显示模块红外遥控模块3.2 驱动电路电机驱动一般采用H桥式驱动电路,L293D内部集成了H桥式驱动电路,从而可以采用L293D电路来驱动电机。通过单片机给予L293D电路PWM信号来控制小车的速度,起停。 电机驱动电路3.3 信号检测模块小车循迹原理是小车在画有黑线的白纸 “路面”上行驶,由于黑线和白纸对光线的反射系数不同,可根据接收到的反射光的强弱来判断“道路”黑线。笔者在该

6、模块中利用了简单、应用也比较普遍的检测方法红外探测法。红外探测法,即利用红外线在不同颜色的物理表面具有不同的反射性质的特点。在小车行驶过程中不断地向地面发射红外光,当红外光遇到白色地面时发生漫发射,反射光被装在小车上的接收管接收;如果遇到黑线则红外光被吸收,则小车上的接收管接收不到信号,再通过LM324作比较器来采集高低电平,从而实现信号的检测。市面上有很多红外传感器,在这里我选用TCRT5000型光电对管。 光电对管传感器原理图3.4 主控电路 本模块主要是对采集信号进行分析,同时给出PWM波控制电机速度,起停,以及驱动液晶显示等作用。 主控电路4 软件设计启动 4.1 主程序框图壁障NN循

7、迹Y是否检测到障碍是否检测停止Y停止 主程序图框 4.2 C程序#include<msp430x14x.h>#include<intrinsics.h> /延时函数头文件#define uint unsigned int#define uchar unsigned char#define mcu_xtal 8 /对8M的晶振#define delay_us(x) _delay_cycles (x * mcu_xtal) /延时1us#define delay_ms(x) _delay_cycles (unsigned long)x * mcu_xtal*1000)/延m

8、s#define delay_s(x) _delay_cycles (unsigned long)x * mcu_xtal*1000000)/延stypedef unsigned char UCHAR;typedef unsigned int UINT;#define CPU_F (double)8000000) /8000000为当前的晶振频率#define DelayUs(x) _delay_cycles(long)(CPU_F*(double)x/1000000.0) #define DelayMs(x) _delay_cycles(long)(CPU_F*(double)x/1000.

9、0) UCHAR table = " Xu Jin Li "UCHAR FLAG = " Chen Xiong"#define ComDir P3DIR /控制端输入输出定义#define RS_L P3OUT &=BIT0 /液晶的RS端低电平#define RS_H P3OUT |= BIT0 /液晶的RS端高电平#define RW_L P3OUT &=BIT1 /液晶的RW端低电平#define RW_H P3OUT |= BIT1 /液晶的RW端高电平#define EN_L P3OUT &=BIT2 /液晶的EN端低电

10、平#define EN_H P3OUT |= BIT2 /液晶的RW端高电平#define DatDir P4DIR /数据端输入输出定义#define DatBus P4OUT /数据端输出#define WriDat P4IN /数据端输入void CheBusy(); /读忙函数/*/void WriteCom(UCHAR com) CheBusy(); /读忙 DatDir = 0XFF; /数据口为输入 RW_L; /RW端拉低 RS_L; /RS端拉低 DatBus = com; /将指令写入 EN_H; /EN端拉高 DelayMs(1); /延时发送数据 EN_L; /EN端拉

11、低/*/void WriteData(UCHAR dat) CheBusy(); /读忙 DatDir = 0XFF; /数据端输入 RW_L; /RW端拉低 RS_H; /RS端拉高 DatBus = dat; /将数据写入 EN_H; /EN端拉高 DelayMs(1); /延时发送数据 EN_L; /EN端拉低 /*/void Init1602() EN_L; WriteCom(0x38); /设置16*2显示,5*7点阵,8为数据口 WriteCom(0x0c); /开显示,不显示光标 WriteCom(0x06); /读写一个字符后,指针自动加1,整不移动 WriteCom(0x01

12、); /清屏/*/void CheBusy() RS_L; RW_H; EN_H; DatDir = 0X00; while(WriDat & 0x80) /判断数据第八位 EN_L; DelayUs(1); EN_H; DelayUs(1); /*/void DispChar(UCHAR x,UCHAR y,UCHAR data) if(y = 2) WriteCom(0x80 + 0x40 + x); else WriteCom(0x80 + x); WriteData(data); /*/void DispString(UCHAR x,UCHAR y,UCHAR n,UCHAR

13、*pstr) UCHAR i; for (i=0;i<n;i+) DispChar(x+,y,pstri); if (x = 0x0f) x = 0; y = 1; uchar Flag_1 = 0,Flag_2 = 0,Flag_3 = 0;uchar Num = 0;uint Table_dat33;uchar Table_inf4;uchar xunji=0,bizhang=0;/*/int xunji_turn_flag;void I0_Init() /端口定义 定义P10 P11 P12 P13为红外接口 P1DIR = 0XF0; P1OUT = 0X00; void xun

14、ji_hanshu() /寻迹函数if(P1IN = 0X0B)xunji_turn_flag=1; /左转标志 if(P1IN = 0X07) xunji_turn_flag=1; if(P1IN = 0X0D)xunji_turn_flag=2; /右转标志 if(P1IN = 0X0E) xunji_turn_flag=2;if(P1IN = 0X0F)xunji_turn_flag=0; /直走标志/*/int BIZHANG_turn_flag; /遇到障碍物显示低电平0void xu_Init() /端口定义 定义P60 为光电开关接口 P6DIR |= 0x00;void BIZ

15、HANG() /避障函数if(P6IN&0X01) = 0x01)BIZHANG_turn_flag=1; /左转标志 if(P6IN&0X01) = 0x00 )BIZHANG_turn_flag=0; /直走标志/*/void Init(void) uint i; BCSCTL1 &= XT2OFF; do IFG1 &= OFIFG; for(i=0XFF;i>0;i-); while(IFG1 & OFIFG) != 0); BCSCTL2 |=SELM_2 + SELS + DIVS_3; /MCLK和SMCLK选的是XT2(8M晶振)

16、/+SMCLK时钟8分频/*/void deal_inf(void) uchar i,j,k,value; uint Temp = 0; k = 1; for(i=0;i<4;i+) for(j=0;j<8;j+) Temp = Table_datk; if(Temp > 2000) value = value | 0x80; else value = value; if(j < 7) value = value >> 1; k +; Table_infi = value; value = 0; Flag_3 = 1;/*/void main() WDTCT

17、L = WDTPW + WDTHOLD; /关狗 P1IE |= BIT6; /P1.6开中断 P1IES |= BIT6; /P1.6下降沿产生中断 P1IFG |= BIT6; Init(); TACTL |= TASSEL_2 + MC_2 + TACLR;/时钟SMCLK+连续计数+TAR清零 _EINT(); P3DIR = 0XFF; P4DIR = 0XFF; Init1602(); DispString(1,1,14,table); DispString(1,2,12,FLAG); while(1) if(Flag_2 = 1) /说明将波形的客户码,客户反码,数据码数据反码装

18、入了Table_dat33 Flag_2 = 0; deal_inf(); /进行波形处理 if(Flag_3 = 1) /说明波形处理完毕 Flag_3 = 0; if(Table_inf2=0x00) /1 bizhang=1; if(Table_inf2=0x21) /2 bizhang=0; if(Table_inf2=0x04) /3 xunji=1; if(Table_inf2=0x06) /4 xunji=0; P2DIR=0XFF; P2OUT=0XF0; while(bizhang) xu_Init(); /初始化端口 BIZHANG(); /初始化蔽障 if(BIZHANG_turn_flag = 1) /左转处理 P2DIR = 0XFF; P2OUT = 0XF3; delay_ms(1); P2OUT =0XFa; delay_ms(280); if(BIZHANG_turn_flag = 0) /直走处理 P2DIR = 0XFF; P2OUT = 0XFC; delay_ms(100); P2OUT = 0XF0; delay_ms(10); while(xunji) I0_Init(); /初始化端口

温馨提示

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

评论

0/150

提交评论