TI杯重庆市电子设计大赛论文的写作.docx

上传人:b****9 文档编号:25057903 上传时间:2023-06-04 格式:DOCX 页数:19 大小:240.69KB
下载 相关 举报
TI杯重庆市电子设计大赛论文的写作.docx_第1页
第1页 / 共19页
TI杯重庆市电子设计大赛论文的写作.docx_第2页
第2页 / 共19页
TI杯重庆市电子设计大赛论文的写作.docx_第3页
第3页 / 共19页
TI杯重庆市电子设计大赛论文的写作.docx_第4页
第4页 / 共19页
TI杯重庆市电子设计大赛论文的写作.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

TI杯重庆市电子设计大赛论文的写作.docx

《TI杯重庆市电子设计大赛论文的写作.docx》由会员分享,可在线阅读,更多相关《TI杯重庆市电子设计大赛论文的写作.docx(19页珍藏版)》请在冰豆网上搜索。

TI杯重庆市电子设计大赛论文的写作.docx

TI杯重庆市电子设计大赛论文的写作

 

2012年“TI杯”重庆市大学生电子设计竞赛

 

激光枪自动射击装置(E题)

 

参赛学校:

XXXXXX

参赛队员:

XXXXXXXX

指导教师:

XXX

时间:

2012.8.7

激光枪自动射击装置(E题)

摘要:

本系统是以TI公司生产的MSP430G2553为主控芯片,以单片机控制中心为核心,设计并制作的激光枪自动射击装置。

系统包括单片机控制中心、遥控键盘模块、舵机驱动电路模块、液晶显示模块、语音播报模块等五个模块。

系统首先通过遥控键盘控制激光枪进行射靶,再经弹着点检测电路产生对应的数据信息。

该数据信息信号通过MSP430G2553主控单片机,并由单片机对其进行处理,输出对应的处理信息并将其反映在液晶显示屏上。

最后,对击中环数语音播报。

经分析,本系统可以有效利用MSP430系列单片机的低功耗特性及强大的运算处理能力,最大程度地利用MSP430G2553单片机各个部分的功能,实现资源的优化配置,一定程度上节约作业成本。

关键词:

键盘遥控、电机驱动、弹着点检测、液晶显示

 

Abstract:

ThissystemisbasedontheMSP430G2553producedbyTIcompanyasthecontrollerchip,withthesingle-chipprocessorasthecoretodesignandproducethelasergunfiringautomaticdevice.Thesystemincludesthesingle-chipmicrocomputercontrolcenter,long-rangekeyboardmodule,steeringgeardrivecircuitmodule,liquidcrystaldisplaymodule,speechbroadcastmodule.Firstofall,thesystemcancontrolthelaserguntoshotontargetbypressingkeyboard,thentheimpactareadetectioncircuitwillproducecorrespondingdataandinformation.Further,thisinformationsignalwilloutputprocessinginformationandreflectitontheLCDscreenthroughtheMSP430G2553singlechipmicrocomputercontrol,andtheprocessingofmicrocomputer.Finally,tobroadcasttheringshotted.Accordingtotheanalysis,thesystemcaneffectivelyuselow-powerconsumptioncharacteristicsandstrongabilitytohandleoperationonMSP430MCU,maximumuseMSP430G2553eachfunctionofsinglechipmicrocomputerandoptimizetheallocationofresources,tosomeextent,thissystemcouldsavetheworkcost.

Keywords:

Keyboardremotecontrol、Motordrive、Impactareadetection、Liquidcrystaldisplay

 

目录

 

一、系统方案论证

1.驱动电机方案论证和选择

方案一:

采用舵机(伺服机)驱动电路。

由于MSP430G2553仅有20各引脚,可用的I/O端口有限,采用舵机可以一定程度上省去使用某些I/O口,节约系统资源。

同时,舵机较其他类型的电机(如五相步进电机)价格相对低廉,便于节约成本。

该方案电路连接简单,容易进行调试。

方案二:

采用步进电机带动激光枪。

该方案主要利用步进电机的工作特性,用户可以利用其步幅角,对步进电机运作的每一步进行控制。

但低端的步进电机步幅角一般为7°/步,不满足本题目的要求,同时也不便于用户通过键盘对激光枪的方向进行控制。

因此鉴于如上所述,最终确定使用方案一驱动激光枪。

2.物理键盘方案论证和选择

方案一:

采用矩阵键盘对激光枪进行控制,其原理图如图1.2.1所示。

矩阵键盘具有一定程度的拓展性,可一定程度上减少对I/O口的占用。

但涉及的连线较繁琐,对I/O的占用只是相对减少,对于一般需要控制电路,并不会用到全部的按键,造成了资源的一定浪费。

并且加大了单片机的负载,涉及的MSP430G2553单片机的引脚比较多,很容易对单片机其他功能的使用造成影响,不利于用户发挥单片机的功能特性及性能优势。

图1.2.1矩阵键盘原理图

方案二:

利用无线遥控键盘远程控制激光枪射靶。

采用无线数据传输,避免了繁琐的连线,实现了用户的非近距离触控操作,很大程度地提高了操作的自由度。

由于减少了端口连线,同时也很好地避免了调试过程中各功能模块之间的相互影响。

经分析,确定使用方案二控制激光枪射靶,其原理如图1.2.2所示。

图1.2.2遥控键盘原理图

3.摄像头采集方案论证

结合题目要求,采用OV7725作摄像头采集数据,同时利用STM32芯片作为外围电路处理OV7725所采集到得数据。

OV7225是一款不带FIFO数据缓存器的摄像头,因此需要外围电路的驱动。

但其配以STM32芯片具有较佳的图像数据采集及显示性能。

该电路的优点是:

电路比较简单,芯片及摄像头价格适中,可靠性高。

缺点是:

摄像头像素有限,数据处理范围有限(针对本题目要求,其像素大小已经适用)。

二、理论分析与计算

1.弹着点检测原理

弹着点检测即对激光枪射靶的环数进行探测,转换为单片机可识别的信息。

根据题目要求,选取摄像头来采集和捕获数据。

同时,由于拍摄出来数据图像的色彩都是由RGB来构成,因此可利用各种颜色构成的RGB差异,对胸靶上激光枪的射靶情况进行处理。

激光枪射出的光点为红斑,纯红色的RGB为(255,0,0),但激光枪射出的光线受室内的明暗程度及摄像头采集情况的影响,其RGB可在砖红(156,102,31)、镉红(227,23,13)等红色类属里变化。

因此,在调试程序中需设定弹着点的RGB,利用单片机控制芯片对所采集的数据进行筛选,使得弹着点检测电路在用户射靶后能探测到正确的弹着点。

2.激光枪自动控制原理

激光枪自动控制电路的发挥,需要在弹着点检测电路的基础上完成。

对于自动控制激光枪,同时还需与舵机驱动电路的进行结合。

弹着点检测电路在探测到激光枪当前位置未能击中10环时,能再次调用舵机驱动电路带动激光枪进行射靶。

此处需要注意舵机的工作频率,由于驱动电路选用的舵机为数字舵机,其出厂工作频率为300Hz,需对应将MSP430G2553的时钟设置为SMCLK,转动角度也需作对应调整。

为使得激光枪自动控制电路能探测到并击中10环,可采取方案将靶心进行标记。

例如标记为蓝色,其RGB为(0,0,255),弹着点检测电路在探测激光枪当前位置能否击中10环时,便可直接利用舵机驱动电路通过摄像头采集到的数据,搜寻RGB为(0,0,255)的点。

三、电路与程序设计

1.无线收发电路设计

本无线收发电路,采用了TI公司制造生产的CC1101系列模块,CC1101收发部分波特率均设为9600。

要实现单片机、PC机之间的无线通信,固需2块CC1101模块,对不同单片机的发射端、接收端的信号进行处理。

该模块设计主要完成以下功能:

(1)减少整个电路的连线,避各模块电路之间的相互影响。

(2)实现单片机数据的无线传输,增加用户操作的自由度以及避免电路连线的繁琐。

2.舵机(伺服机)驱动电路设计

由于电路各个模块集成后,需实现激光枪手动、自动射靶等功能,因此在电路设计时,需要加入有效的驱动电路以便于对激光枪进行操作。

如图3.2所示,该电路需要由MSP430G2553单片机输出PWM波形,并对舵机进行控制。

同时,鉴于电路需要对激光枪的方向进行控制,故此处需要两个舵机对激光枪进行驱动。

图3.2舵机驱动电路

3.液晶显示电路设计

题目要求在图形点阵显示器上显示胸靶的相应图形,并闪烁弹着点,故需要采用必要的液晶对弹着点检测电路的检测结果予以显示。

针对该电路,我们选取了STM32外围芯片电路对采集到的图像进行输出处理。

为满足题目相应的显示要求,我们将其与摄像头OV7725相连接,信号经其他外围电路(此处略去)处理后,传入该主控芯片,使单片机控制中心的数据能够很好地反映在液晶显示界面上。

同时,该电路部分还含有LCD12864液晶显示部分,其原理图如下所示:

图3.3液晶显示原理图

4.音频播报电路设计

该音频模块电路,是针对题目发挥部分所设计的电路。

在此同样采取了TI公司生产的MSP430G2553作为主控芯片。

音频信号在经外界传入单片机后,需要采取必要的芯片对其进行转换,才能输出正确的声音。

此处,采用了WT588D-U芯片进行数据转换,信号经该芯片处理后,再由其I/O输出信号使扬声器进行发声。

其原理图,如图3.4所示。

图3.4音频播报电路原理图

5.程序设计

图3.5主程序流程图

(需要对流程进行文字说明)

四、系统测试及结果分析

1.键盘控制激光枪射靶测试

测试方法:

通过遥控键盘按下有效键,调整激光枪的方向并进行击靶。

测试条件:

单片机除接收端引脚外,其他引脚均空载。

表4.1键盘控制激光枪射靶测试记录表

序号

按键

偏转方向

备注

1

A

向左

无异常

2

B

向右

无异常

3

C

向下

无异常

4

D

向上

无异常

测试结果分析:

从数据可以看出,遥控按键基本正常,能达到题目键盘控制激光枪转向的要求。

2.弹着点检测电路测试

测试方法:

通过遥控键盘进行射靶。

测试条件:

液晶显示电路及遥控按键电路均正常。

表4.2弹着点检测电路测试记录表

次数

实际击中环数

液晶显示环数

弹着点闪烁

备注

1

10

9

存在一定误差

2

9

9

无异常

3

脱靶

无异常

4

6

6

无异常

5

7

8

无异常

测试结果分析:

弹着点检测电路液晶显示环数与弹着点闪烁基本匹配,但与实际击中环数比较存在略微误差。

误差造成原因:

系统刚接入电源进行初始化,运行状态还不太稳定。

总体而言,弹着点检测电路的精度基本符合要求。

3.语音播报测试

题目要求在发挥部分需有一定的其他模块添加,因此对电路的语音播报进行测试。

测试方法及条件同上一部分“弹着点检测电路测试”,因其与液晶显示环数同属于弹着点检测电路的拓展结果。

经测试,语音播报的结果与液晶显示环数的结果完全吻合,符合对弹着点环数语音播报的指标要求。

五、设计总结

*****

参考文献

[1]黄根春,周立青,张望先.全国大学生电子设计竞赛教程[M]——基于TI器件设计方法.北京:

电子工业出版社,2011

[2]高吉祥,王晓鹏,宋克慧.全国大学生电子设计竞赛培训系列教程[M].北京:

电子工业出版社,2011

[3]张金.电子设计与制作100例[M].北京:

电子工业出版社,2009

[4]秦龙.MSP430单片机C语言应用程序设计实例精讲[M].北京:

电子工业出版社,2006

[5]全国大学生电子设计竞赛组委会.第九届全国大学生电子设计竞赛获奖作品选编[M].北京:

北京理工大学出版社,2010

附录程序:

/*舵机驱动程序*/

#include"msp430g2553.h"

#defineD0P1IN&BIT0

#defineD1P1IN&BIT1

#defineD2P1IN&BIT2

#defineD3P1IN&BIT3

voidpwm_p(floatp)

{

//初始化TA1为两通道pwm,smclk(如果低频输出300hz可出三路pwm)

P2DIR|=BIT1;//P2.1andP2.4output

P2SEL|=BIT1;//P2.1andP2.4TA1options

TA1CCR0=3444;//PWM_DEPTH-1;//PWMPeriod

TA1CCTL1=OUTMOD_7;//CCR1reset/set

TA1CCR1=p;

TA1CTL=TASSEL_2+MC_1;//SMCLK,upmode

}

voidpwm_s(floats)

{

P2DIR|=BIT4;//P2.1andP2.4output

P2SEL|=BIT4;//P2.1andP2.4TA1options

TA1CCR0=20000;//PWM_DEPTH-1;//PWMPeriod

TA1CCTL2=OUTMOD_7;//OUTMOD_6反极性

TA1CCR2=s;

TA1CTL=TASSEL_2+MC_1;//SMCLK,upmode

}

voiddelay_1s(intm)

{

intb;

for(b=m;b>0;b--)

__delay_cycles(1000000);

}

voidjiaodu0(floatw)

{

floatn;

n=((w+45)/1800)*3444;

pwm_p(n);

__delay_cycles(700000);

}

voidjiaodu1(floatw)

{

floatn;

n=((w+45)/1800)*3444;

pwm_s(n);

__delay_cycles(700000);

}

voidzy(floatn)//控制舵机左右旋转

{

floatm,a;

if(n>0)

{

m=90-n;

jiaodu0(m);

}

else

{

if(n==0)

{

jiaodu0(90);

}

else

{

a=(-n);

m=90+a;

jiaodu0(m);

}

}

}

voidsx(floatn)//控制舵机上下旋转

{

floatm,a;

if(n>0)

{

m=90-n;

jiaodu1(m);

}

else

{

if(n==0)

{

jiaodu1(90);

}

else

{

a=(-n);

m=90+a;

jiaodu1(m);

}

}

}

voidmain(void)

{

WDTCTL=WDTPW+WDTHOLD;

P1DIR=0Xf0;

inti=848;

intj=850;

while

(1)

{

if(D0)//按键A

{

jiaodu0(i);

i=i-15;

while(D0);

}

if(D1)//按键B

{

jiaodu0(i);

i=i+15;

while(D1);

}

if(D2)//按键C

{

jiaodu1(j);

j=j-15;

while(D2);

}

if(D3)//按键D

{

jiaodu1(i);

j=j+15;

while(D3);

}

}

}

 

/************************/

/*无线接收程序*/

/************************/

#include"msp430g2553.h"

#include"hb12864.h"

#defineCPU_F((double)1000000)

#definedelay_us(x)__delay_cycles((long)(CPU_F*(double)x/1000000.0))

#definedelay_ms(x)__delay_cycles((long)(CPU_F*(double)x/1000.0))

unsignedcharstring1[]={"HelloWorld\r\n"};

unsignedchari;

unsignedchara;

/*系统时钟初始化函数MCLK(主系统时钟)=1MHZSMCLK(子系统时钟)=1MHZACLK(辅助时钟)=1MHZ*/

voidConfigClocks(void)

{

if(CALBC1_1MHZ==0xFF||CALDCO_1MHZ==0xFF)

while

(1);//异常挂起

//runFaultRoutine()

BCSCTL1=CALBC1_1MHZ;//Setrange

DCOCTL=CALDCO_1MHZ;//SetDCOstep+modulation

BCSCTL3|=LFXT1S_2;//LFXT1=VLO

IFG1&=~OFIFG;//ClearOSCFaultflag

BCSCTL2=0;//MCLK=DCO=SMCLK(MCLK=1MHZSMCLK=1MHZ)

}

voidConfigUART(void)

{

UCA0CTL1|=UCSWRST;

UCA0CTL1|=UCSSEL_2;//SMCLK时钟源选择SMCLK(子系统时钟)

UCA0BR0=109;//1MHz设置波特率9600

UCA0BR1=0;//1MHz

UCA0MCTL=UCBRS1;//ModulationUCBRSx=5调整波特率

UCA0CTL1&=~UCSWRST;//**InitializeUSCIstatemachine**

}

voidConfigPins(void)

{

P2DIR|=tx;//P2.0接液晶的RXD端

P2OUT|=tx;//clearoutputpins

P1DIR|=BIT0;

P1OUT|=BIT0;

P1SEL=BIT1+BIT2;//P1.1=RXD,P1.2=TXD

P1SEL2=BIT1+BIT2;

}

voidmain(void)

{

WDTCTL=WDTPW+WDTHOLD;//StopWDT关闭看门狗

ConfigClocks();//设置初始化时钟

ConfigPins();//引脚初始化

ConfigUART();//串行通信初始化

/*液晶显示部分*/

LCD_clear();

delay_ms(10);LCD_rst();

delay_ms(10);

dis_s(string1,0,5);

delay_ms(10);

IE2|=UCA0RXIE+UCA0TXIE;//EnableUSCI_A0RXinterrupt//RXD中断使能TXD中断使能

delay_ms(10);

__bis_SR_register(LPM0_bits);

}

//串行接受中断服务程序

#pragmavector=USCIAB0RX_VECTOR

__interruptvoidUSCI0RX_ISR(void)

{

//while(!

(IFG2&UCA0TXIFG));//USCI_A0TXbufferready?

IE2|=UCA0TXIE;//开启TXD中断使能

a=UCA0RXBUF;//将接受缓冲器送给a

//delay_ms(50);

if(a=='10')

{

LCD_clear();

dis_s("10环",2,9);//在液晶上显示pc机传送回来的数据

}

if(a=='9')

{

LCD_clear();

dis_s("9环",2,9);

}

if(a=='8')

{

LCD_clear();

dis_s("8环",2,9);//在液晶上显示pc机传送回来的数据

}

if(a=='7')

{

LCD_clear();

dis_s("7环",2,9);

}

if(a=='6')

{

LCD_clear();

dis_s("6环",2,9);//在液晶上显示pc机传送回来的数据

}

else

LCD_clear();

dis_s("脱靶",2,9);

delay_ms(10);

P1OUT^=0x01;

}

//串行发送中断服务程序

#pragmavector=USCIAB0TX_VECTOR

__interruptvoidUSCI0TX_ISR(void)

{

//UCA0TXBUF=a;//将a送给发送缓冲器

//UCA0TXBUF=string1[i++];//TXnextcharacter在PC机上显示HelloWorld

if(i==sizeofstring1-1)//TXover?

IE2&=~UCA0TXIE;//关闭TXD中断使能

}

******************************************************

设计报告内容:

1.封面:

单独1页

2.摘要、关键词:

中文、英文;

3.目录:

内容必要对应页码号

4.正文:

一、前言:

二、总体方案设计:

包括方案比较、方案论证、方案选择

(以方框图的形式给出各方案,并简要说明)

三、单元模块设计:

①各单元模块功能介绍及电路设计;

②电路参数的计算及元器件的选择;

③特殊器件的介绍;

④各单元模块的联接,以一个模块为一个框,画出框的联接图并简要说明。

四、系统调试:

说明调试方法与调试内容,软件仿真放这里。

五、系统功能、指标参数:

①说明系统能实现的功能;②系统指标参数测试,说明测试方法,要求有测试参数记录表;③系统功能及指标参数分析(与设计要求对比进行)。

六、设计总结:

包括:

①对设计的小结;②设计收获体会;③对设计的进一步完善提出意见或建议。

5.参考文献:

6.附录:

①系统原理图;关键程序等。

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

当前位置:首页 > PPT模板 > 其它模板

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

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