大学生电子大赛 最新天津TI杯.docx
- 文档编号:3458221
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:19
- 大小:349.09KB
大学生电子大赛 最新天津TI杯.docx
《大学生电子大赛 最新天津TI杯.docx》由会员分享,可在线阅读,更多相关《大学生电子大赛 最新天津TI杯.docx(19页珍藏版)》请在冰豆网上搜索。
大学生电子大赛最新天津TI杯
此处贴密封纸,注明【组】,然后掀起并折向报告背面,最后用胶水在后面粘牢。
2012“TI”杯
天津市大学生电子设计竞赛
激光枪自动射击装置(E题)
是否使用TI器件:
是
具体使用情况详见报告
2012年8月7日
摘要
为了实现一个能够控制激光枪击发,自动报靶及自动瞄准等功能的电子系统。
本系统以STC89S52单片机为控制核心,以此来控制激光枪、云台、摄像头、LCD等外围模块,并从键盘上读取命令。
其工作原理为激光枪发出的激光束,射到接收靶上,经摄像头将光信号转变为电信号,送入单片机系统,来完成报靶和环数显示,。
激光枪安装在由两个步进电机组成的云台上,控制器从键盘上得到指令并计算后再发送指令给电机控制器来控制云台,以此使激光枪在胸环靶上精确击中。
然后通过摄像头来拍摄胸环靶并分析弹着点光斑的位置,把位置传回给控制器。
控制器再通过LCD显示出弹着点光斑环数与方位信息。
本系统电源模块采用两节6V和9.6V的充电镍电池进行稳压供电,充电电池可循环使用,环保节能。
关键词:
STC89C52、云台、摄像头、自动识别、镍电池、LCD、节能
Abstract:
Inordertoachieveelectronicsystemwhichcancontrollaserguntoshoot,automaticBaoBa,automaticaimingandsoon.
ThissystemmicrocontrollertoSTC89S52asthecontrolcore,inordertocontrolthelasergun,PTZ,camera,LCDandotherperipheralmodules,andreadcommandsfromthekeyboard.Theworkingprincipleofalaserbeamforlasergun,shottoreceivetarget,thecamerawilllightsignalsintoelectricalsignals,intotheSCMsystem,tocompleteBaoBaandringcountdisplay,.Lasergunsmountedintheheadbytwosteppermotors,thecontrollerfromthekeyboardcommands,andthensendcommandstothemotorcontrollertocontrolthePTZcontrollercalculates,inordertomakealaserguninthechestringtargetaccuratetohitthecorresponding.Camerastofilmthechestringtargetandanalyzethepointofimpactspotposition,thepositionreturnedtothecontroller.ControllerthroughtheLCDdisplaytothepointofimpactspotringnumberandlocationinformation.Thepowersupplymoduleofthesystemusestwo6Vand9.6Vrechargeablenickelbatteriesforpoweringrechargeablebatteriescanberecycled,environmentallyfriendlyenergy.
Keyword:
STC89C52、PTZ、camera、Automaticidentification、nickelbattery、LCD、theenergyconservation
目录
1系统方案1
1.1主控器的论证与选择1
1.2电机的论证与选择1
1.3电机驱动的论证与选择1
1.4摄像头的论证与选择2
1.5显示模块选择2
2系统理论分析与计算2
2.1电机角度的分析2
2.1.1每半步移动距离计算2
2.1.2与每环距离比较3
2.2时间的计算3
2.2.1按键扫描时间3
3电路与程序设计3
3.1电路的设计3
3.1.1系统总体框图3
3.1.2电路原理图3
3.1.3显示子系统框图与电路原理图4
3.1.4电源5
3.2程序的设计5
3.2.1程序功能描述与设计思路5
3.2.2程序流程图6
4测试方案与测试结果7
4.1测试方案7
4.2测试条件与仪器8
4.3测试结果及分析8
4.3.1测试结果(数据)8
4.3.2测试分析与结论8
附录1:
电路原理图10
附录2:
源程序13
激光枪自动射击装置(E题)
【控制组】
1系统方案
本系统主要由电源模块、驱动模块、摄像头模块、键盘模块、显示模块组成,下面分别论证这几个模块的选择。
1.1主控器的论证与选择
方案一:
STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
具有以下标准功能:
8k字节Flash,512字节RAM,32位I/O口线,看门狗定时器,内置4KBEEPROM,MAX810复位电路,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口。
另外STC89X52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
最高运作频率35Mhz,6T/12T可选。
方案二:
AVR单片机是高速嵌入式单片机。
多累加器型,数据处理速度快。
AVR单片机具有32个通用工作寄存器,相当于有32条立交桥,可以快速通行。
中断响应速度快。
AVR单片机有多个固定中断向量入口地址,可快速响应中断
虽然相对STC89C52而言,AVR速度快,功能强大,种类多。
但是价格比较昂贵,而且就指令系统而言,不如STC89C52精简,位操作不如STC89C52方便。
而且STC89C52完全能胜任本题目的要求而且性价比很高,所以STC89C52更适合选为本题目控制器。
故选方案一。
1.2电机的论证与选择
方案一:
选用直流电机,直流电机控制简单、价格低廉、速度快,但是精度不高、转矩小。
方案二:
选用步进电机,步进电机通过脉冲控制,步进角可达1.8度,通过细分可更加精确,平稳,控制简单,可控制正反转,连续转动。
通过比较,根据设计要求,直流电机达不到题目要求,而步进电机可以完成设计要求,故选方案二。
1.3电机驱动的论证与选择
方案一:
使用L298N制作的驱动电路,可按八拍书写程序控制电机,优点控制简单,缺点,容易发热,功耗大,慢速控制易颤动。
方案二:
使用步进电机驱动器,通过时钟信号,控制转速,可以有128细分,转动平稳,控制精度高,占用单片机输出资源少。
步进电机驱动器虽然控制精度高,但是L298完全能达到本设计的要求,故选方案一。
1.4摄像头的论证与选择
方案一:
OV7670CAMERACHIPTM图像传感器,体积小、工作电压低,提供单片VGA摄像头和影像处理器的所有功能。
通过SCCB总线控制,可以输出整帧、子采样、取窗口等方式的各种分辨率8位影响数据。
该产品VGA图像最高达到30帧/秒。
用户可以完全控制图像质量、数据格式和传输方式。
所有图像处理功能过程包括伽玛曲线、白平衡、饱和度、色度等都可以通过SCCB接口编程。
OmmiVision图像传感器应用独有的传感器技术,通过减少或消除光学或电子缺陷如固定图案噪声、托尾、浮散等,提高图像质量,得到清晰的稳定的彩色图像。
方案二:
OV7620摄像头独具特色地增加了5V稳压管,有效得防止了电压波动对图像传感器的损害,稳定。
采用5V供电,可以很好地和单片机系统板供电电源兼容,无须升压,功耗低。
每秒产生30帧图像,每帧两场,1秒钟采集60帧图像,效率高。
有效分辨率可达640x480,极大满足了智能车的设计需要,高清晰。
有效地解决了中心对称的问题,在PCB版设计已经做了较真,中心对称有图有真相。
通过以上两种方案,OV7670更佳适合本系统的要求。
故选择方案一。
1.5显示模块选择
方案一:
LCD12864可串行传输节省I/O的使用,可以显示数字、字符、汉字、图片,每页可写入四行显示,实现功能多。
方案二:
LCD12232并行传输,可以显示数字、字符、汉字、图片,但屏幕窄每页写入两行,同时占用I/O口较多。
为了节省单片机资源,同时实现多种功能,使用LCD12864显示,故选方案一
2系统理论分析与计算
2.1电机角度的分析
2.1.1每半步移动距离计算
采用2相四线异步电机每步所转角度=1.8°八拍控制
Tan0.9°*300cm=4.7cm
2.1.2与每环距离比较
4.7cm<5cm满足要求可以达到制定环
2.2时间的计算
2.2.1按键扫描时间
每2ms扫描一次键盘有无按键按下延时5ms去抖确认
满足电机转动所需要的反应时间
3电路与程序设计
3.1电路的设计
3.1.1系统总体框图
系统总体框图如图3.11所示,
图3.11系统总体框图
控制过程:
本系统以STC89S52单片机为控制核心,以此来控制激光枪、云台、摄像头、LCD等外围模块,并从键盘上读取命令。
激光枪安装在由两个步进电机组成的云台上,控制器从键盘上得到指令,通过控制器计算后再发送指令给电机控制器来控制云台,以此使激光枪在胸环靶上精确的打到相应的。
然后通过摄像头来拍摄胸环靶并分析弹着点光斑的位置,把位置传回给控制器。
控制器再通过LCD显示出弹着点光斑环数与方位信息。
3.1.2电路原理图
1、按键子系统框图与电路原理图
图3.12按键子系统框图与电路原理图
3.1.3显示子系统框图与电路原理图
1、显示子系统框图
图3.13显示子系统框图
2、步进电机子系统电路
图3.1..31步进电机子系统电路
3.1.4电源
电源由变压部分、滤波部分、稳压部分组成。
为整个系统提供
6V或者
9.6V电压,确保电路的正常稳定工作。
这部分电路比较简单,都采用三端稳压管实现,故不作详述。
3.2程序的设计
3.2.1程序功能描述与设计思路
1、程序功能描述
根据题目要求软件部分主要实现键盘的设置和显示。
1)键盘实现功能:
电机的两维控制,以实现迅速瞄准。
2)摄像头功能:
通过扫描每个光源的具体点数意确定具体环数和位置。
2)显示部分:
显示环数、位置。
2、程序设计思路
本设计以实现信号的良好检测和数据转换、传输为主要目的;以信号检测,信号编码和数据传输为主要设计内容。
在信号检测方面设计单脉冲小信号的放大电路和信号整形电路;在信号编码方面,要解决多路信号的编码问题,还要考虑到编码的优先选择问题;在脱靶问题的处理方法上,对打靶和信号采集传送进行同步化处理,把脱靶的情况与中靶的情况归为一类处理;数据传输采用UART串口通信。
3.2.2程序流程图
1、主程序流程图
2、显示子程序流程图
3、步进电机子程序流程图
,
4测试方案与测试结果
4.1测试方案
硬件软件联调
(1)、由于光电池的响应信号经放大、编码,到达单片机P1口时有一定的延时,为使单片机准确地通过外部中断进行有效数据的采集,应知道延时的大概范围。
编写单片机程序时,编写了一个延时2ms的子程序,可以调用进行一定的延时,通过延时时间不同的程序进行多次烧录并进行调试,然后比较所得的不同结果,这样便可以大概知道要采集正确的数所需的延时时间(最后程序采用的延时时间为2ms)
(2)、电路中同时控制激光发射和单片机外部中断的开关为普通的按钮开关,因此在按下和弹起都有颤动,这样会引起单片机外部中断的多次响应,使一次“射击动作”引起多次响应,单片机输出多个值。
通常的消颤方法有两种:
硬消颤和软消颤。
硬消颤指通过硬件上的消颤电路使开关的一次动作只能产生一个脉冲跳变;而软消颤主要通过延时或对响应的屏蔽来实现。
4.2测试条件与仪器
测试条件:
检查多次,仿真电路和硬件电路必须与系统原理图完全相同,并且检查无误,硬件电路保证无虚焊。
测试仪器:
高精度的数字毫伏表,模拟示波器,数字示波器,数字万用表,指针式万用表。
4.3测试结果及分析
4.3.1测试结果(数据)
表4-3靶位编码(距靶心距离(cm))
上
右上
右
右下
下
左下
左
左上
10环
0
9环
5
5
7
6
8
6
6
7
8环
11
12
12
10
13
12
11
13
7环
17
16
15
18
16
17
15
16
6环
20
21
22
20
22
23
20
21
5环
26
25
28
28
27
26
27
28
脱靶
31
30
32
32
33
33
34
31
4.3.2测试分析与结论
根据上述测试数据,信号经编码后发送到计算机,由计算机进行译码,在计算机上模拟显示出射击位置,对一组结果进行统计(包括环数和方向偏移),并进行储存,由此可以得出以下结论:
(1)步进电机基本精确,所转角度基本符合要求。
(2)经过调试,能够通过矩阵键盘控制激光所打位置;
(3)在测试过程中,多次出现打靶偏离靶心的情况,最大偏移量为5cm,通过调试电机,使得射击的准确度得到了很大的提高。
(4)由串行摄像头进行数据采集和串行传送给单片机调试(通过与计算机的串口相连,用“串口调试小助手”调试);
(5)经过单片机处理数据,LCD12864进行显示环数与位置信息。
综上所述,本设计达到设计要求。
附录1:
电路原理图
单片机最小系统
系统连接图
LCD12864使用串口通讯
键盘输入4X416键扫描
附录2:
源程序
避免繁琐与泄露,只写main函数即可
(1)主程序:
#include
#include"Motor.h"
#include"Time_Delay.h"
#include"12864.h"
#defineKeyPortP1
charflag_a=7;//横向右加左减
charflag_b=7;//纵向上加下减
ucharabc=10;//环数
uchardef=9;//位置
bitqwe=1;
ucharcodea[15][15]={{16,16,16,16,15,15,15,15,15,15,14,14,14,14,14},
{16,16,16,16,16,55,55,55,55,55,14,14,14,14,14},
{16,16,16,56,56,65,65,65,65,54,54,54,14,14,14},
{16,16,56,56,66,66,75,75,75,64,64,54,54,14,14},
{16,16,56,66,76,76,85,85,85,74,74,64,54,14,14},
{17,57,57,66,76,86,86,95,84,84,74,64,53,53,13},
{17,57,67,77,87,96,96,109,94,84,73,63,63,53,13},
{17,57,67,77,87,97,109,109,109,93,83,73,63,53,13},
{17,57,67,77,87,98,98,109,92,82,73,63,63,53,13},
{17,57,67,68,78,88,88,91,82,82,72,62,53,53,13},
{17,18,58,68,78,78,81,81,81,72,62,62,52,12,12},
{18,18,58,58,68,68,71,71,71,62,62,52,12,12,12},
{18,18,58,58,51,61,61,61,51,52,12,12,12,12,12},
{18,18,18,18,51,51,51,51,51,12,12,12,12,12,12},
{18,18,18,18,18,11,11,11,11,11,12,12,12,12,12},
};
voidshow();
voiddata_analyse();
unsignedcharKeyScan(void)//键盘扫描函数,使用行列反转扫描法
{
unsignedcharcord_h,cord_l;//行列值中间变量
KeyPort=0x0f;//行线输出全为0
cord_h=KeyPort&0x0f;//读入列线值
if(cord_h!
=0x0f)//先检测有无按键按下
{
delay2(10);//去抖
if((KeyPort&0x0f)!
=0x0f)
{
cord_h=KeyPort&0x0f;//读入列线值
KeyPort=cord_h|0xf0;//输出当前列线值
cord_l=KeyPort&0xf0;//读入行线值
while((KeyPort&0xf0)!
=0xf0);//等待松开并输出
return(cord_h+cord_l);//键盘最后组合码值
}
}return(0xff);//返回该值
}
voidmain()
{
inti_12864();
while
(1)
{
switch(KeyScan())
{
case0x7e:
{
qwe=1;
flag_a--;
Down_Motor_Left();
while(KeyScan()==0x7e);
break;
}
case0x7d:
{
qwe=1;
flag_a++;
Down_Motor_Right();
while(KeyScan()==0x7d);
break;
}
case0x7b:
{
qwe=1;
flag_b++;
Up_Motor_Up();
while(KeyScan()==0x7b);
break;
}
case0x77:
{
qwe=1;
flag_b--;
Up_Motor_Down();
while(KeyScan()==0x77);
break;
}
case0xff:
{
if(qwe)
{
data_analyse();
show();
qwe=0;
}
break;
}
case0x17:
{
qwe=1;
flag_a=7;
flag_b=7;
}
default:
break;
}
}
}
voiddata_analyse()
{
uchark;
k=a[flag_b][flag_a];
abc=k/10;
def=k%10;
}
voidshow()
{
wr_i_lcd(0x90);
if(abc>=5&&abc<10)
{
wr_d_lcd(abc+48);
print("");
}
if(abc<5)
print("脱靶");
if(abc==10)
print("10");
mdelay(200);
gotoxy(4,0);
switch(def)
{
case1:
print("正上");break;
case2:
print("右上");break;
case3:
print("正右");break;
case4:
print("右下");break;
case5:
print("正下");break;
case6:
print("左下");break;
case7:
print("正左");break;
case8:
print("左上");break;
case9:
print("中心");break;
default:
break;
}
mdelay(200);
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大学生电子大赛 最新天津TI杯 大学生 电子 大赛 最新 天津 TI