完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本系统采用STM32F103作为主控模块,外接触摸屏实现人机交互。以舵机云台搭载电磁炮和标靶测量模块,实现两自由度转动。电磁炮模块采用斩波升压和大电容作为驱动,通过激光测距模块识别和测量标靶距离。
前言 听到举办立创搞电赛征集令,我赶紧报了名,但是由于中途接到立创要搞课程设计,本将在清明就是开始做的项目,就暂时落下了,好在课程设计比较顺利,在4月13的时候实物已经调试完毕,紧接着开设搞这个项目,虽然时间比较赶,但是在制作方面也没有含糊了事,认认真真开始搞这个项目,这个题目是2019本科组国赛题,赛题中有某些指标好多人采用摄像头方案,当时我的第一反应也是加上视觉来完成各项指标,但是后面想用上摄像头如果开源之后有人想跟则一起做岂不是也要会摄像头,让很多想做的小伙伴望而却步,这里我给我写程序的队友提了一个要求,这个题目全部用stm32写完,希望做到大部分人都可以跟着一起做,但是又要完美的完成各项指标,当时我队友有点不愿意,但是还是被我说服了,本作品只要有兴趣的都可以跟着一起做,我把技术细节和源代码全部开源,第一次开源没有什么经验,有不足的希望大家多多指教,互相学习。这里还要感谢一下嘉立创打样,前一天下午下单,第二天晚上准时达到,才让我作品顺利快速完成。 我本人主要专业方向是通信和嵌入式还有FPGA,但是我其实最喜欢的就是做电源,一直在自学开关电源,逆变器,恰巧这个题目差不多是一个标准的程控电源题,所有我选择做这个题。 项目分析 1.1基本要求 (1) 电磁炮能够将弹丸射出炮口。 (2) 环形靶放置在靶心距离定标点 200~300cm 间,且在中心轴线上的位置处,键盘输入距离 d 值,电磁炮将弹丸发射至该位置,距离偏差的绝对值不大于 50cm。 (3) 用键盘给电磁炮输入环形靶中心与定标点的距离 d 及与中心轴线的偏离角度a,一键启动后,电磁炮自动瞄准射击,按击中环形靶环数计分;若脱靶则不计分。 2.发挥部分 (1) 在指定范围内任意位置放置环形靶(有引导标识,参见说明 2),一键启动后,电磁炮自动搜寻目标并炮击环形靶,按击中环形靶环数计分,完成时间≤30s。 (2) 环形靶与引导标识一同放置在距离定标点 d=250cm 的弧线上(以靶心定位),引导标识处于最远位置。电磁炮放置在定标点,炮管水平方H - 3 / 4向与中轴线夹角a =-30°、仰角 0°。一键启动电磁炮,炮管在水平方向与中轴线夹角a从-30°至 30°、再返回-30°做往复转动,在转动过程中(中途不得停顿)电磁炮自动搜寻目标并炮击环形靶,按击中环形靶环数计分,启动至击发完成时间≤10s。 根据题目要求我们来分析一下这个题目各项指标该如何完成,电磁炮击发时的电磁转换需要极大能量,因此需要专门的充能-储能单元作为电磁炮的驱动单元。本系统选择采用UC3843构成的斩波升压充电电路和大电容组合而成的充能-储能单元,UC3843 是高性能固定频率电流模式控制器专为离线和直流至直流变换器应用而设置,为设计人员提供只需最少外部元件就能获得成本效益高的解决方案。这些集成电路具有可微调的振荡器、能进行精确的占空比控制、温度补偿的参考、高增益误差放大器、电流取样比较器和大电流图腾柱式输出,是驱动功率MOSFET的理想器件,用pwm然后通过阻容器件接如3843的电压反馈脚来达到控制电压大小从而控制发射距离,综合考虑采用3843作为升压电路的主控芯片,下面我们来看一下3843的芯片引脚图,就八个角,非常适合本次设计需要。 题目要求中需要找到标靶并且测量标靶与炮台的距离,本来想着用摄像头,但是由于摄像头操作调试过与繁琐,占用主控系统计算比较大,并且开源的话,不一定会stm32的同学也会摄像头的算法思前想后,我还是舍弃了这个方案,最终我还是采用了TW10S, TW10S激光测距模块根据对反射激光相位差的检测感知标靶距离,可以实现毫米级分辨率。同时,该模块激光收发部分具有较高的信噪比,目标颜色、表面粗糙度和材质等因素对检测结果影响很小。扫描速度快,具有较高的数据速率,检测速度快。本系统对标靶检测速度和距离测量要求较高,识别目标单一,与外部环境差别较大。选用激光测距模块实现标靶测量,功能易于实现,对主控模块计算资源占用少,在精度上远远超于普通摄像头,并且是用串口与单片机通信,朝左比较方便,所以采用TW10S,下面看实物展示。 人机交互方面采用串口屏,具有可操控灵活性高,页面制作简便,对系统占用也比较少,电路板上引脚预留了WiFi模块接口,后续ota之后采用手机控制,无奈我会安卓的队友这段时间比较忙,没时间搞,后阶段等他项目搞完之后会讲此功能跟进, 在发射的时候瞬间电流比较大,我本来采用mos管,继电器等方案,但是由于在射击的时候电容高达上百伏特,电流经过测试达到20A,mos就被舍弃了,后面采用继电器方案,发现 发射几次继电器就烧坏,故这两种方法都不行,后面想到用可控硅,型号为70tps16,开启状态电压: 1.4 V @ 100 A最大转折电流 IBO: 1400 A额定重复关闭状态电压 VDRM: 1600 V,完全符合设计需求,经过后续测试也是如此。芯片参数展示如下。 这块电路板我打算采用两块pcb来完成,分别是主控板和升压板,为什么这样设计,升压板电压有几百伏特,如果隔离处理不当,容易高压触电,并且烧坏主控,现在stm32比较珍贵,故分两块pcb来完成,升压电路展示。 理论分析与计算 电磁炮工作原理类似于圆筒形直线异步感应电动机,驱动电源为储能电容。通电瞬间电容对线圈放点产生圆环电流id,变化电流产生磁场,使得金属弹丸产生了与驱动线圈同轴的环形电流ip,圆环电流id和ip产生的磁场相互作用,实现弹丸击发。 线圈加速过程比较复杂,电、磁、机械联系紧密,为了方便分析,忽略弹丸空气阻力、回路电感等因素进行简化分析,可得电磁炮等效模型如图: U0为电容初始电压,Rd为线圈电路总电阻,Ld为线圈电路总电感,Lp为金属弹丸总电感,Rp为金属弹丸等效电阻,M为线圈和金属弹丸之前的互感系数。 分别对线圈和弹丸分析,可得方程组: 金属弹丸在磁场内运动时方程为: 式中:vp、m分别为弹丸速度和重量,up、ud分别为弹药和线圈电压。 弹道展示 各原理图电路分析 1.结构框架 电路总体模块如图所示。电磁炮和激光测距头均搭载于舵机云台上同步运动。触控屏实现人机交互和参数设定。STM32通过PWM控制充电电容电压,实现对击发距离的控制。STM32F103主控电路、舵机云台控制电路、激光测距电路原理较为简单,不做详细阐述。下面重点阐述电磁炮充能及击发控制模块,相关部分电路如图 充能电路 充能模块通过一个UC3843芯片控制BOOST升压电路实现。由于电磁炮的发射能量与电容上储存的能量存在正相关,电容上储存的能量由于电容的容值正相关,因此本系统需要选择较大的电解电容,在实际的过程中选择了2个470uF/450V的电容进行并联。考虑到电感电流纹波等因素,BOOST电路选择了1.5mA的电感。开关管选择的是IERP460,这是一款500V/20A的MOSFET。在正常工作过程中,C6和C7的电压比较高,因此D1选择的是快恢复二极管MUR460,它的反向耐压值为600V。在充能电路中,可以通过在P5端口加入PWM控制,调节UC3843芯片的VFB引脚的电压,从而调节UC3843的控制信号,控制BOOST升压电路的输出。 3.击发电路 电磁炮击发时的电容电压大约为150-200V左右,经过测量线圈电阻在15欧姆左右,电磁炮击发时电容对线圈电感进行放电,放电电流大约在10多安培左右,根据电流大小本系统选择可控硅70TPS16作为放电开关。70TPS16额定电压1600V,额定电流70A,完全满足本系统的需求。在驱动电路上,选择了专用的驱动光耦TLP250。 4.充电电源控制 由于在电磁炮发射瞬间时电容对电感放电,工作电流比较大,因此此时充能模块不能够继续工作,否则就会产生持续的大电流,有可能对电路元件进行损坏,因此加入了继电器控制充电电源的通断,使充电电源在电磁炮发射瞬间处于断开状态。 电路pcb设计分析 电源电路pcb布线非常关键,要关注emi和大功率下正常运转和做好电源与控制器的隔离,我在设计pcb的时候特别注意这些问题 首先是电源电路的大电流回路必须要粗并且互相不会感染这里我用立创的时候用到描绘形状的功能,并且让大电流回路导线开窗处理,为后续覆铜。 大功率电源电路一般不覆铜,但是为了防止EMI干扰,在信号控制区域采用覆铜处理并且做好隔离采用边框裁切来隔离高压和信号,反馈导线经过mos管哪里我思考好久,这样走会产生干扰,但是走顶层又怕出现触电危险,走飞线电路板不美感,最后还是走在mos管附近。 实物展示 升压板实物展示 mos管记得加散热片,电容如果有1000uf的一个就可以了,如果只有500uf可以选择装两个。 整体展示 程序设计 程序流程图 充电阶段,STM32控制充电电源开关电路接通直流电源与升压充能模块,对电容充电储能;单片机通过P5端子输入PWM信号调控UC3843芯片2号引脚参考电位,控制储能电容电压。充电完成后,电源开关电路断开,结束充电,电磁炮进入待发状态。STM32控制电磁炮击发部分导通晶闸管,储能电容对电感线圈放电,形成磁场驱动金属弹丸发射,发射完成后关闭晶闸管。 本系统设置了三种工作模式:手动、半自动、自动。手动模式下,手动、半自动模式通过触摸屏设定标靶距离,系统根据公式计算充电电压。点击发射后自动调整至35°仰角,开始充电,电压稳定后提示击发。自动模式下,云台在-35°~35°范围进行自动测距扫描,确定环形靶偏转角和距离,控制云台定位于偏转角,计算充电电压后自动进入击发环节。 主要程序展示 串口屏界面展示 总结 我在测试的过程中遇到了各种各样的问题,但是通过思考和积极修改,克服了难关,我本人学的专业是电子信息工程,在专业课程里面也没有电源知识,但是通过自学也可以做基础的电源了,可能也是因为热爱吧,希望小伙伴在制作的过程中遇到困难也不要灰心,细心排查问题,我在这次也有做的不当的地方,在采购的时候少买了一个元器件,好在实验室板子上找到这个芯片,在后面的工作中一定要细致认知,学到的不仅仅学到理论,也锻炼了团队协作能力,只有团队协作顺利才能让我这么快质量这么高的完成任务,另外这是我第一次开源,要是有不当的地方希望小伙伴们指正,互相学习。 |
|
|
|
只有小组成员才能发言,加入小组>>
3316 浏览 9 评论
2995 浏览 16 评论
3494 浏览 1 评论
9060 浏览 16 评论
4088 浏览 18 评论
1180浏览 3评论
605浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
599浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2335浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1896浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-24 03:42 , Processed in 1.012846 second(s), Total 82, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号