微智科技网
您的当前位置:首页坦克打靶(最新)

坦克打靶(最新)

来源:微智科技网
坦克打靶

摘要:为了使坦克沿着靶场在预先预制的轨道上快速行驶并在并同时以光电方式瞄准光靶,实现激光打

靶,本系统采用了ATMEG16单片机为控制核心,辅以步进电机及驱动、舵机、红外对管、声光报警、光敏电阻、激光等电路构成了系统的硬件;最后通过软件编程实现了坦克车沿着预制的轨迹行进并在遇到炮击点的时候自动打靶,并且通过液晶进行打靶的调试,简洁实用,本系统使用的是PWM控制电机的转速,较好的实现了坦克寻迹并打靶的任务。

关键词:电机驱动,光敏电阻,红外对管,寻迹轨道,声光报警,打靶

Abstract: in order to make the tanks along the range in advance prefabricated orbit in driving fast

and and at the same time in photoelectric way aiming light target, realize laser shooting. This system USES a ATMEG16 chip as the core, with stepping motor and drive, steering gear, the

infrared pipe, sound and light alarm, photosensitive resistance, laser and so on circuit constitute the system hardware; Finally, the software programming to realize the tanks along the precast track and travel to meet a bombardment point automatic target practice, and through the LCD for target practice debugging, concise and practical, the system is using PWM control motor speed, better realize the tanks tracing and the task of shooting.

Keywords: motor drive, photosensitive resistance, infrared pipe, tracing orbit, sound and light

alarm, shooting

通过对题目的分析讨论,将原题的任务,基本要求,发挥部分重新整理如下:

根据任务,要求设计一个快速寻迹的坦克,并同时以光电方式瞄准光靶,实现激光打靶。 根据要求,该坦克应具有如下功能和主要的技术指标。 1: 坦克快速寻迹的主要技术指标有:

(1) 检测基准偏离引导轨迹边缘距离s≤2cm,若s>2cm则自动声光报警;

(2) 全程行驶时间t<60 s,若t= 60 s则立即自动停车并停止炮击的动作并给予声光报警。 2: 坦克打靶的主要技术指标:

检测到“炮击点”黑色短线立即发出声光指示信息,并停车; (1) 检测到“炮击点”标志1s内瞄准炮击。

(2) 炮击全过程以激光指示弹着点并伴随声光指示,持续时间≥2s。 3: 发挥部分(炮塔增加>=250g的转动惯量配重的基础上) (1) 全程行驶时间不能大于40 s

(2) 在行进过程中动态瞄准目标,当检测到“炮击点”黑色短线时立即炮击。

(3) 炮击过程伴随声光指示,时间持续2s。

(4) 炮击过程中不能停车,也不允许有明显降低坦克行进速度的情况发生,全程行驶时间不能大于40 s。 (5) 坦克每瞄准炮击一次,炮塔应自动复位。

(6) 当检测到“炮击点”标志时需在2s内瞄准炮击且不允许停车,全程行驶时间不能大于60 s。 (7) 复位位置为火炮指向车头正前方位置,自动复位到位应当有声光指示信息。

目录:

一:系统设计

1-1 控制原理 1-2 方案论证 二:单元电路设计 2-1 主控部分 2-2 电机驱动模块 2-3 路面轨迹检测 2-4 光源探测 2-5 声光报警 2-6 射击模块 三:软件设计

3-1 应用软件 3-2 程序流程图

3-3 实现的功能模块 3-4 不同功能的切换问题 四:系统测试

4-1 软件调试

4-2 硬件调试

4-3 调试过程遇到的问题及其解决办法 4-4 误差分析 五:结束语 六:参考文献 七:附录

一:系统设计

1、控制系统的原理

坦克打靶主要是基于自动导引小车的原理,实现小车识别路线,且在遇到炮击点时以光电方式瞄准光靶,实现激光打靶。

此系统主要由以下几部分组成:一是感知部件,这部分就如同人类视觉听觉等感觉器官,坦克通过感知部件感知外界信息。本设计中采用与地面颜色有较大差别的黑线作为导引线,红外对管作为坦克的感知

部分感知导引线与自身位置的关系,光敏电阻用于坦克循迹使用。

二是控制部分,如同人类的大脑,一方面对感知到的信息进行处理,另一方面做出决策对执行部分进行控制。本设计中用ATMEG16单片机作为控制中心,它具有体积小、集成度高、易扩展、可靠性高、

功耗低、结构简单、中断处理能力强等特点,所以我们选择使用方案3。

三是执行部分,如同人类的手脚等器官,用于执行控制中心发出的命令。本系统的执行部件是减速直流电机和舵机。减速直流电机,通过对坦克两个驱动轮的控制,可以实现前进,左右微调,刹车等动作,而另一种电机—舵机,则用于实现控制炮台的自动旋转。

坦克的系统结构结构图大体如下:

红外检测电路 M 左电机

M 右电机

电机驱动电路 控制核心AT

炮台旋转 舵机 MEG16 光强检测电路 激光发射电路 2:方案论证 a、核心部件的选择:

方案一:采用普通的ATS52作为控制元件,用它来对坦克进行控制。单片机具有控制简单、方便、价格便宜等优点。但由于本题要求的坦克的反应快,寻迹和射击的准确性也要求较高,设计的关键在于怎么实现小车进行寻路和在遇到炮击点时射击,单片机的处理速度较慢,功能较单一,接口较少,因此需

增加较多的外围电路来实现本系统的功能,这使得电路复杂、可靠性降低。 方案二:采用Atmega16单片机作为支路控制器。

AVR的I/O口是真正的I/O口,能正确反映I/O口的真实情况。I/O口有输入/输出, 三态高阻输入,也可设定内部拉高电阻作输入端的功能,便于作各种应用特性所需 (多功能I/O口) AVR单片机具有运算速度快、性价比高,单片机片内资源丰富,功能扩展强大,可靠性强等优点。这样使电路具有低成本,高运算处理能力等优点,减小了编程的难度,所以在设计和实现上更简洁。

完全可以实现坦克的快速准确寻迹,准确打靶。

所以,综合以上分析,我们采用方案二,使用Atmega16单片机作为整个系统的核心控制部件,充分利用其优点实现对坦克的控制。

b、驱动坦克的电机的选择与论证

一般来讲,常见的电机有直流电机,步进电机,舵机

直流电机一般可高速旋转;能取得大的启动转矩,且反应速度快易于控制。

步进电机适合非常精确的运动或动作,并且工作在平整的水平面上,适用于精度要求较高的场合。 舵机主要是由接收机发出信号给舵机,经由电路板上的IC判断转动方向,在驱动马达开始转动,主要用于航模系统中。

通过三种电机的比较,在控制坦克的前进和打靶的过程中,题目要求寻迹跟踪的全过程中,其检测基准偏离引导轨迹边缘距离≤2cm,,所以我们采用减速直流电机控制坦克的前进,在电机驱动电路中采用H桥的L298D芯片。在打靶的过程中,需要控制炮塔的自由旋转,所以我们采用舵机控制炮塔的旋转。

C、路面检测方案的确定

坦克跟随黑色轨迹行驶,我们首先想到的是使用红外对管传感器,所以,问题集中在如何确定传感器的位置和个数上。

方案一:如右图安放8个传感器,中间四个传感器用来检测小车是否走偏,前面两个用来判断小车是否遇到炮击线,后面两个用于转弯时,小车的位置调整。这种安装方式,考虑得比较全面,如在寻迹时用了

s3、s4、s5、s6四个传感器,可以实现粗调和细调两档转弯调击时用了s1、s2、s7、s8四个传感器,通过s1、s2可以提前信息,通过s7、s8可以准确控制小车转弯角度。但是这种方案传感器,增加了安装和程序编写的难度,也增加了系统的开销。找到一种更简单又能满足设计要求的方案。

方案二:将传感器的个数减少为5个,位置为在同一水平线,这样能使寻迹控制更及时,且大大的减小了安装和编程的难度,传感器s3在正中间,用于坦克的正常行进,当坦克偏离轨道或者转弯时通过紧挨的s2和s4这两个传感器检测其偏离的位置或转弯的方向,并通过编程控制坦克左右电机速度的不同实现坦克的自动位置调整和转弯,当5个传感器都同时检测到信号时,表明遇到炮击点,此时经过控制器的处理,进行射击。题目要求其检测基准偏离引导轨迹边缘距离应≤2cm,所以,每2个传感器之间的距离都应该为2cm。

1 2 3 4 5 后 前 节。在炮得知路口用了s8个我们试图

e、光源检测方案的确定

方案一:使用光敏三极管,但其检测范围很小,灵敏度较低。

方案一:使用光敏电阻,价格便宜,电路也较简单,多个光敏电阻组合即可基本满足设计要求,所以我们选择方案二。

f、PWM方案的分析与论证

小车行驶时,需要持续的PWM脉冲波驱动电机。产生脉冲波的软件设计方案,决定了系统的软件设计的整体规划。

方案一:用延时程序产生脉冲波。产生每个脉冲是一个顺序的过程。先将pwm控制的端口置高,使电机控制有效,延时一段固定时间,再将pwm的控制口置低,再延时一段固定时间。端口检测程序与脉冲产生程序成串连关系,嵌套在主程序中。

方案二:用定时中断产生脉冲波。程序主程序主要实现检测几个传感器并作出控制决策。定时器0、1负责定时中断产生PWM脉冲。主程序的决策影响到定时的参数(即电机的快慢)和电机的方向。通过这种方案用到单片机中断功能,在产生脉冲时把CPU出来了,提高了CPU的利用率。同时,引入中断处理,降低了编程难度。

从CPU的利用率和实现的难易程度来考虑,第二种方案优于第一种。这里选择第二种方案。

g、其他功能模块的方案设计

激光发射模块直接使用激光管,声光报警模块则采用常见的蜂鸣器代替扬声器,节约成本。

二、单元电路设计

1、主控部分:

我们采用Atmega16单片机作为总的控制元件。AVR单片机具有运算速度快、性价比高,单片机片内资源丰富,功能扩展强大,可靠性强等优点。这些功能使电路具有低成本,高运算处理能力等优点。最小系统如图2所示:

图2 Atmega16单片机最小系统框图

2:电机驱动模块:

a、步进电机的驱动: 电路图如下所示。

L298电机驱动电路

负载校验

芯片需要两个电源。5V用于芯片逻辑驱动,12V 用于输出,即用于驱动电机。从相关资料上查到L298N的峰值输出电流可达4A,持续输出电流可达到2A,电机在L298N的驱动能力以内。

b、舵机的驱动

电动机驱动自由旋转的炮塔,在此系统中采用的是舵机驱动, 舵机的控制信号为周期20ms的脉宽调制信号(PWM),其中脉宽宽度从(0.5-2.5)ms,相对应的舵盘的位置为0-180°,呈线性变化,即无论外部转矩怎样变化,直到给它一个新的脉冲,它才会改变输出角度到新的对应位置。电路如图所示:

3、路面轨迹检测模块:

路面检测模块实现小车跟随黑色轨道行驶,在行驶的途中不能超出轨道。考虑到轨道是白纸上的一条黑线,可采用红外对管辨认路面黑白2种不同的状态。由于 红外光光子直接把材料的束缚电子激发成传导电子,由此引起电信号输出,信号大小与所吸收的光子数成比例,而且在一定的波长范围内这些红外光子的能量才能激发束缚电子;同样,探测器吸收的光子也必须满足一定的波长才能被吸收,所以外界影响比较小,抗干扰性能好。小车就是通过在行驶过程中不断地向地面发射红外光,当红外光遇到白色纸质地板时发生漫反射,反射光被接收管接收;如果遇到黑线则红外光被吸收,小车上的接收管接收不到红外光。控制芯片就靠判断是否收到反射回来的红外光为依据来确定黑线的位置和小车的行走路线。在此系统中,由于题目要求坦克有较好的速度和寻迹的准确性,我们使用了5个传感器。 其工作原理如下:

红外对管可以看作一个光敏电阻。接受到红外光和没有接受到红外光时,电阻有明显的变化。当红外对管在黑线内时,接受管接受不到红外光,电阻变大,点1的电压被上拉电路拉高。在接入电压比较器比较时,1点(即比较器输入正端)电压比比较电压高,则2点(即比较器输出端)输出高电平,LED灯灭。反之,当接受管接受到红外光时,电阻变小,1点电压相应的变低,2点输出为低。电路如图2-2所示:

图2-1 图2-2

4、光源探测模块

本题要求小车在寻迹的过程中当检测到“炮击点”黑色短线时立即停车并立即发出声光指示信息,并停车,在检测到“炮击点”标志1s内瞄准炮击。炮击全过程以激光指示弹着点并伴随声光指示,持续时间≥2s,以便确切检测激光炮击点刻度位置。

由于光源会发出光线和热量,所以,我们采用光敏电阻来实现对光源的定位。

5:声光报警模块

题目要求坦克在行进的过程中当偏离原轨道时自动发出声光报警且在射击时也要自动给出光电信号。 我们采用蜂鸣器代替普通的扬声器,用一个9013三极管驱动此蜂鸣器,在放光方面,考虑到电路的简易程度,功耗和电源的因素,系统采用发光二极管显示。电路如图所示

声光报警电路

6、射击模块

当检测到“炮击点”黑色短线时,坦克应自动炮击光靶,在此系统中,采用的是激光管发出激光用于打靶,

也用了一个8550三极管驱动此激光管,电路如图所示

且由单片机一引脚控制此模块,当检测到炮击点时,引脚输出高电平,三极管导通,驱动激光管工作,激光管发出激光,进行射击。

三:软件设计

1: 开发软件及编程语言简介

使用在线编程软件ICC AVR,采用主流设计语言C语言对单片机进行编程实现各项功能。C语言功能丰富,表达能力强,目标程序效率高,可移植性好,既具有高级语言的优点,又具有低级语言的许多特点,应用十分广泛。

2:程序流程图:

开始

初始化

坦克前进

否 左偏? 否 炮击点? 是<2cm 是>2cm 是<2cm 是>2cm 是 右偏? 转弯?

左微调 左大调 右大调 右微调

3:实现的功能模块

a 脉冲产生和刹车模块

脉冲产生模块是整个程序设计的重要元素,它决定了整个程序结构。本设计中用延时来产生脉冲波。

每调用一个脉冲子程序(move)就是产生一个脉冲。通过改变程序内部变量可改变电机运动的速度和方向。 b:左右微调模块

左右微调模块主要完成寻迹功能。小车在正常前进时,一旦s3传感器走出黑线,系统立即跳入微调程序。

微调程序是通过两个驱动轮的转速差对小车位置进行调节的。当小车左偏,左轮转速不变,右轮转速变小,经过一段时间小车就能回到正常位置。

声光控制 激光控制 左右电机转速不同 开始 红外检测 处理器处理

V左>V右 v左轮?左微调程序流程图

c:声光模块:用于在坦克偏离预定轨道2cm和射击时进行声光报警

主要的功能程序:

void BELL_Out(uchar BELL_MOD)

{ if(BELL_MOD == BELL_ON)

{ GPIOPinWrite(BELL_PORT , BELL_PIN , BELL_PIN); // }

else

{

发声

GPIOPinWrite(BELL_PORT , BELL_PIN , 0); // 不发声

} }

d:射击模块:在检测到炮击点时进行射击 主要的功能程序:

void JG_Out(uchar JG_MOD)

{if(JG_MOD == JG_ON)

{

GPIOPinWrite(JG_PORT , JG_PIN , JG_PIN); //发射激光

}

else

{

GPIOPinWrite(JG_PORT , JG_PIN , 0x00); // 不发射激光

} }

四、系统测试

1、软件调试

仿真调试,直接用IAR EWARM 5.11(版)软件和 LINK(USB2.0 JTAG)调试器;

2、硬件调试

器件:万用表

在硬件调试时,我们采用的是由局部到整体的方法。根据硬件原理图,先焊接部分硬件,待调试成功再继续焊接。

3、 硬件调试过程

我们把整个系统的需要调试的电路模块分成了AVR最小系统调试、L298驱动芯片调试、电动机转速控制调试、红外对管检测电路调试和小车整体性能调试几大块。对这些单个的电路,用简单的检测方法来判断工作是否正常、功能是否满足要求。

比如检测AVR最小系统电路是否正常工作,就是烧写一个简单的让2只LED交替闪烁的小程序到最小系统中,来检测该电路是否正常工作,外围电路是否正确。

检测红外对管电路是否工作正常,也是首先按设计原理图在万用板上焊好对应的电路,然后用一白色反光片和黑色不反光的纸片放到红外发射的方向,然后检测其输出信号是否有变化和变化的强弱。通过这种方式,逐个的对每个功能电路进行搭建和检测。

在确保每个电路模块都能够正常工作之后,我们再把各个电路模块按一定的布局规则逐个的焊接到实验板上,并且每焊接一个功能模块之后,都要再次检测一下这个功能模块是否正常工作。这样可以尽快的检测出电路的问题所在,降低了在整块板子都已经焊接好了之后再查错的难度。

在整个电路已经焊接完毕之后,小车的硬件部分就已经完成了。接着就是对小车要实现的基本功能进行编程调试即小车整体性能调试。小车的基本功能可以分为寻迹功能、左右调整功能,刹车功能,声光报警功能和射击功能。

在编程实现各个功能的时候,我们是按照先易后难的原则,先实现最简单的功能,那就是寻迹。在确保寻迹没有问题之后,再编程实现声光报警,激光打靶子程序并进行反复调试。在转弯性能满足要求之后,这样,把整个软件要实现的各个功能子模块一个一个的编程实现并调试到没有问题,然后把各个功能子模块综合起来,再进行总体调试。逐步解决各个子模块之间的相互兼容等细节问题,直到满足整个系统的总体性能要求。

4、调试中出现的问题及其解决办法

电机驱动芯片L298

芯片L298给我们调试过程带来了第一个最大的问题.在经过上面的硬件测试,包括红外对管信号检测,指示灯的反应(黑带灯熄,白纸灯亮),电机单独接12V电源正常运转.我们想进行一次通过芯片给L298送值驱动电机转动的测试.安装好各部件,接好5V电源外接线,准备好电源.给出一段简单驱动程序,给L298,使两电机正转,小车直行.

现在将5V,12V外接线接到电源上,结果无反映.估计程序没烧好,取下芯片,重新烧写.插上板子,接上电源,观察.小车不动,指示灯显示异常.拔掉12V电源线,指示灯正常,用黑带接近红外对管变灭(这个步骤硬件测试时已完成).排除检测部分问题.估计问题在驱动部分,将12V触碰电源,指示灯马上就显示异常.板上未接红外对管的空白指示灯,因为12V的接上而亮,这是完全不正常的.并且芯片L298发烫.拔掉12V电源线,显示恢复正常.估计电路出现问题,拿来万用表从电源开始打,然后地线打.结果发现芯片接同地线接在一起,不正常.此2脚只与L298的7脚相连.为什么会与地相连呢?经检查和经验,排除芯片2脚与地相连,再加上刚才L298的发烫,确认芯片有问题.同时,还发现12V电源与地短在了一起,难怪显

示异常.12V电源只与芯片L298有关,可以确定是此芯片内部出现了问题,应该是烧掉了.换来新的L298,烧好程序,插好单片机,检查电路无误,接好电源.小车正常运转,指示灯显示正常,L298不再发烫.问题至此解决!

调试红外检测电路出现的问题。

出现问题之一是外接收端输出电压变化太微弱,才零点 几伏的化。分析其原因,既然电压在白色纸片遮挡发射接收头的时候有微弱变化,始终保持在4点几伏,说明电路接法没问题,问题出在电阻上发射接收部分的原理图如图6.2。在发射极上的电阻R4才330欧姆,射电流已经达到15毫安了,说明发射功率已经很大了。另一电阻R5作用是分压,开始的时候我们接的R5的电阻值是10K。其原因可能CNY70的三极管接收到或者不接收到信号的时候都有一定的电阻值,电阻值比10K大得多,因为这样R5始终只能分到一点点的电压,造输出电压Output变化微弱,保持在4点几伏。于是我们就更换了一大一点的电阻,大约是40K左右,这次用电压表测得Output的变化得多了,达到2V左右了。经过了几次更换电阻的调试,发现R5为

图6.2 红外发射电路

变的面。发的是且成个大47K

时效果非常好,电压变化达到了3V多了,这个问题就得到解决了。 图

5、误差分析

经调试,该设计已经具备课题要求的基本功能指标,但系统仍有一定误差,定性分析主要有以下几个方面

误差来源: (1)

外界因素的影响。如路面的不平,黑布条的宽窄差异,外界光源的干扰等因素,可能会引起红外传感器的误判断。虽然可以通过软件去抖方式来做一些补救,但还是无法完全克服。又如我们的路面是在白纸上贴的黑胶布,由于纸和脚步的摩擦力有差异,也会产生控制误差。

(2)元器件的固有误差。如光电检测器的灵敏度有限,并且检测是肯定会有延时,注定会有误差产生;又如电机的机械特性并不理想,两个电机和其驱动电路不可能做到100%对称,这也是误差产生的根源之一。另外,采用的红外对管的接收发送指示灯是外露的,所以,会存在一定的干扰,可以考虑采用指示灯封装在里面的传感器,但综合考虑成本等各个因素,我们采用的是外露的TCRT5000,造成了一定的误差。 (3)人为测量误差。测试中当慢速时所给速度过小就会使小汽车在慢速区停止;当所给的速度过高就会使小汽车很快驶过路口,而达不到检测路口和转弯的要求。因此要反复调整程序产生的脉冲的占空比,以达到要求的指标。

五、结束语

本设计采用AVR单片机作为控制核心,用步进电机和舵机做驱动装置,红外传感器检测路面信息,实现了坦克快速寻迹并打靶的功能。

设计顺利完成,虽然我们只是简单的设计了一个坦克寻迹并打靶的功能,但通过此次设计学会了解决问题的方法、技巧。在这几天中,我们遇到许许多多问题,对待问题要多方法处理,多角度处理。通过这几天的设计竞赛,我们不但增强了实践能力和协作精神,而且懂得了联系实际的重要性,这对我们以后的学习和工作不无裨益。当然,我们的设计还存在着一些缺陷,有待于在将来设计中进一步提高,在此恳请各位老师批评指正。

七、附录

1、整体电路图

六、参考文献

【1】全国大学生电子设计竞赛培训系列教程 髙吉祥主编 电子工业出版社 【2】电子设计实战攻略 刘征宇 福建科学技术出版社 【3】电子系统设计实战 全国大学生电子设计组编 华中科技大学出版社

因篇幅问题不能全部显示,请点此查看更多更全内容