基于STM32的模拟电磁曲射炮设计

2020-06-09 12:20宫瑶李玉衡徐夏怡姚磊
软件 2020年2期
关键词:STM32单片机

宫瑶 李玉衡 徐夏怡 姚磊

摘  要: 本文基于对电磁线圈的理论分析及工作过程的解析,设计了以STM32F407单片机为核心,采用OpenMV视觉检测技术的模拟电磁炮系统,包括硬件电路及软件设计。介绍了通过二自由度云台的旋转对电磁炮弹丸发射距离及发射偏转角的控制以及利用OpenMV进行图像处理获得引导标识位置的方法。实验及测试结果表明,该装置实现了确定距离和偏转角后电磁炮的准确瞄准和发射,以及自动搜索瞄准发射功能。

关键词: 电磁炮设计;STM32单片机;舵机云台;OpenMV

中图分类号: TP273    文献标识码: A    DOI:10.3969/j.issn.1003-6970.2020.02.004

本文著录格式:宫瑶,李玉衡,徐夏怡,等. 基于STM32的模拟电磁曲射炮设计[J]. 软件,2020,41(02):18-22+32

【Abstract】: Based on the theoretical analysis of the electromagnetic coil and the analysis of its working process, this paper designs an analog electromagnetic gun system with STM32F407 as the core and OpenMV vision detection technology, including hardware circuit and software design. This paper introduces the control of projectile launching distance and deflection angle of electromagnetic gun by rotation of two-degree-of-freedom platform, and the method of obtaining the position of guidance mark by image processing with OpenMV. Experiments and test results show that the device realizes the accurate aiming and launching of the electromagnetic gun after determining the distance and deflection angle, as well as the automatic searching aiming and launching function.

【Key words】: Electromagnetic gun design; STM32 microcontroller; Steering gear holder; OpenMV

0  引言

电磁炮是利用电磁发射技术制成的一种杀伤力极强的新型武器,它利用电磁场产生的洛伦兹力对弹丸进行加速,从而使弹丸获得击中目标所需的动能。在识别锁定目标以后,弹丸可以比传统火药推动的发射器更大的速度发射,使弹丸射程大大增加。将电磁炮小型化,最终成为单兵武器的想法逐渐成熟[1]。

本文从模拟电磁炮发射原理切入,对实现模拟电磁炮准确发射,瞄准和自动搜索瞄准发射等功能进行了硬件电路和软件系统的研究。

1  模拟电磁曲射炮理论分析及计算

1.1  线圈电磁炮理论分析及参数计算

广义上讲,所有驱动部分由线圈构成的电磁发射器都可成为线圈炮。所谓线圈炮,一般是指使用脉冲或交变电流产生磁行波来驱动带有线圈的弹丸或磁性材料弹丸的发射装置[2]。加速线圈固定在炮管中,当它通入交变电流时,产生的交变磁场就会在弹丸线圈中,产生感应电流。感应电流的磁场与加速线圈电流的磁场相互作用,使弹丸线圈加速运动并发射。

如果线圈中只有持续的恒定电流通过,弹丸受洛伦兹力会在磁场中做往复运动,为了弹丸可以成功发射出去,需要选择合适电容量的电容,在弹丸减速前切断或减弱对线圈的供电。当弹丸接近运动到炮管的中点时[3],电容放电基本完成,根据惯性弹丸继续运动发射出去。则电磁炮設计成功。

可得充电电压越高,电容值越高,存储能量越高。而电容值也决定充电时间的长短,电容值越高充电时间越长[5]。基于电容充电时间和储能能量的综合考虑,选取电容值为4500 uF耐压值为470 V的电容。采用100 V直流电源对其充电,根据上式得电容最大储能为497 J。

经检测,当对电容值为4500 uF的电容充电时,电压达到100 V时,弹丸的水平发射距离可达300 cm。

2  模拟电磁曲射炮系统硬件设计

硬件设计的思路为:弹丸从固定长度的弹道中发射,弹丸的垂直发射角度由舵机一控制,OpenMV的水平偏转角度由舵机二控制,两个舵机及固定装置组成二自由度舵机云台。

3  模拟电磁曲射炮系统电路设计

3.1  系统方案

模拟电磁炮系统中硬件结构主要由控制电路和电磁炮电路两部分组成。控制电路由[7]光耦模块,辅助电源模块,MOSFET管驱动模块组成,通过STM32主控直接控制。电磁炮部分由继电器模块,MOSFET管开关模块,电解电容及线圈组成。系统原理:开始工作前,继电器和MOSFET管均断开,在电容两端加高压,接受到STM32的控制信号后,MOSFET管闭合,电容开始充电,在电容充电完成之后,MOSFET管断开,继电器闭合,电解电容开始放电,在放电完成后,弹丸发射出去,并且继电器断开,回到初始状态。

3.2  光耦控制功率继电器模块

本系统选用光耦来控制功率继电器,由于光耦能够有效隔绝输入输出的电信号,使电信号单向传输,因而具有良好的电绝缘能力和抗干扰能力。工作原理为:当光耦接受到单片机的信号时,光耦内三极管导通。继电器两端加24 V电压,继电器闭合,电解电容开始放电。

功率继电器光耦驱动电路如图5所示。

3.3  MOS管驱动及开关模块

本系统中MOSFET管用来控制电解电容的充电,其驱动电路的选择尤为重要。

对MOSFET管驱动电路需满足以下几个条件:1.当开关管开通时,驱动电路应可以保证提供足够大的充电电流,使MOSFET管栅极间电压迅速上升到所需值。2.开关导通时驱动电路应保证MOSFET管栅极间电压保持稳定。3.关断瞬间驱动电路应能提供低阻抗通路使MOSFET管栅极间电容电压能快速释放,保证迅速关断。4.关断期间驱动电路能防止MOSFET管误导通。综上选择适合此硬件电路的MOSFET管驱动。驱动电路图如图6所示。

4  模拟电磁炮系统的软件设计

系统软件采用模块化设计,整个软件设计分为若干模块,主要有主程序模块,其次为电源模块,键盘模块,LCD显示模块,OpenMV摄像头捕捉模块,舵机模块。

4.1  主程序模块

本软件设计是以STM32单片机为核心,采用视觉检测技术的模拟电磁曲射炮系统,通过二自由度云台的旋转,实现电磁炮弹丸发射距离及发射偏转角的控制。

该系统有两种发射方式:手动发射及自动发射。手动发射通过按键输入弹丸发射的距离及偏转角,确认发射后,STM32F407VG控制器传递控制信号给驱动电路,从而完成发射。自动发射通过摄像头捕捉引导标识所在图像,然后用OpenMV进行相应的图像处理算法处理图像,获得引导标识在捕捉图像中的位置,将位置传送给STM32F407VG系统控制器,控制舵机水平转动,直到引导標识处于图像正中心时,测量摄像头与引导标识之间距离,将距离传送给STM32F407VG系统控制器,控制舵机垂直转动。在舵机上进行控制算法,控制两个舵机在云台转动从而来控制电磁炮完成各项任务的要求。系统框图如图7所示。

4.2  按键及显示模块

首先判断按键是否被按下,如果按键被按下后,进行延时消抖并判断按下键号。当按键一被按下时,进行任务模式选择;当按键二被按下时,根据任务模式选择,设置距离和偏移角度(改变十位);当按键三被按下时,根据任务模式选择,设置距离和偏移角度(改变个位);当按键四被按下时,对当前的任务模式进行确认;当按键五被按下时,执行扫描发射功能。LCD显示屏实时显示当前任务模式,更改后的距离和角度及OpenMV摄像头返回的像素距离值。按键流程如图8所示。

4.3  OpenMV摄像头模块

本设计利用OpenMV单颜色彩色识别技术及测距技术。工作流程为:OpenMV随舵机在水平方向上转动,在采集范围内,进行图像预处理[8],识别红色引导标识的位置,自动返回红色标识的像素点及距红色标识的距离,通过距离控制舵机旋转而使电磁炮实现自动扫描发射追踪等功能。

4.3.1  单颜色彩色识别技术

以识别红色引导标识为例,首先进行程序初始化,设置thresholds(颜色阈值)={30, 100,15, 127, 15,127},重置感光元件及摄像机,设置颜色格式及图像大小,并关闭白平衡和自动增益;然后在while中调用find_blobs(),并设置其重要参数。利用find_blobs(),,返回识别像素点坐标,显示在STM32单片机LCD显示屏上,可作为调整并固定电磁炮放置角度的参考依据。

4.3.2  测距技术

OpenMV中有两种测距方法:第一种为利用Apriltag标签进行测距,第二种为利用OpenMV捕捉到物体的像素数进行测距。Apriltag标签法较为简单,将标签贴到需测距物体上,摄像头识别到标签后,即可返回距离位置及坐标。但不是所有物体都可以贴上标签后再进行测距,所以我们采用第二种更为普遍的方法。

利用像素数进行测距,需要得到实际距离和像素数的关系来计算比例系数K值,K=实际距离/像素数。在具体实践中,需要通过大量测试得到多组像素数和实际距离的数据,去掉不合理的值,通过MATLAB中polyfit()函数,拟合得到函数关系,得到最符合准确的K值。但是本技术受物体大小和形状的影响,如更换了物体,则需重新测量K值。

在编程时,首先进行程序初始化,调用色块识别函数find_blobs()。blob[0]设置为识别到的第一个色块,b[2]和b[3]为检测物体的长和宽,因为引导标识为红色圆形,所以取像素数为(b[2]+b[3])/2。然后代入得到的K值,计算距离即可。将得到的距离返回STM32单片机,用于控制弹丸的发射角度。

4.4  舵机控制模块

能够实现炮管及摄像头旋转的电机有三种选择方案。方案一:采用步进电机。电机旋转角度正比于脉冲数,具有良好的位置精度和运动的重复性。但容易产生共振,难以运转到较高的转速。方案二:采用直流电机。直流电机具有良好的启动特性和调速特性,转矩比较大。结构复杂,维护不方便。方案三:采用舵机。比例控制,转动角度是以脉冲占空比决定的,使用舵机带动连接轴即可控制平台的倾角,响应速度较快,力矩大,使用方便。综上所述选择MG996舵机。

在编程时,首先自定义函数initServoPWM()初始化定时器,开启TIM时钟并设置分频数;然后初始化PWM输出通道;最后通过setServoAngle()函  数改变占空比控制舵机的旋转角度,利用已知角度与占空比的关系servo_temp=angle*200/180+ 50,计算出占空比控制舵机旋转。舵机控制流程图如图9所示。

5  实验验证

(1)验证模拟电磁曲射炮在不同距离条件下的瞄准准确度。

将环形靶放置在靶心距离定标点 200~300 cm 间,且在中心轴线上的位置处。多次改变模拟电磁炮与环形靶之间的距离,记录不同距离时,弹丸发射后击中的环数。

(2)验证模拟电磁曲射炮在不同距离及不同水平发射角条件下的瞄准准确度。

将环形靶放置在靶心距离定标点 200~300 cm 间,且在中心轴线上的位置处,多次改变模拟电磁炮与环形靶之间的距离及水平发射角度,记录不同距离及不同水平发射角时,弹丸击中环形靶环数。

(3)验证模拟电磁曲射炮在自动瞄准发射条件下的瞄准准确度。

在一定角度内(–30°至30°)任意位置放置环形靶(有引导标识),一键启动后,电磁炮自动搜寻目标并发射弹丸,记录不同位置处,弹丸发射击中环形靶环数。

验证结果:在不同发射距离,不同水平发射角以及自动搜索引导标识的发射条件下,弹丸发射击中的环数与理论计算环数偏差均小于等于2环(20cm),且无脱靶及识别失败的现象,实验结果较为理想,验证了弹丸发射距离曲线拟合的准确性和控制二自由度舵机云台偏转角度的精确性。

6  结论

本文主要从硬件和软件两个方面,介绍了以STM32F407单片机为核心,采用OpenMV视觉检测技术的模拟电磁炮系统。设计中基于OpenMV的图像处理技术和基于STM32F407的二自由度舵机控制技术,使模拟电磁炮具有自动跟踪扫描,发射瞄准的功能。同时通过MATLAB拟合弹丸发射曲线,使电磁炮的瞄准率大大提高。對提高模拟电磁曲射炮瞄准率和识别的准确度,未来有待进一步研究。本文研究的模拟电磁炮系统,适应时代发展的潮流,具有广阔的发展前景。

参考文献

李如年, 王敬, 王海. 新概念动能武器: 电磁炮[J]. 中国电子科学研究院学报, 2011, 10(2): 25-27.

蔡冬如, 毛桂平, 曹靖伟, 等. 微型电磁线圈炮的设计与实现[J]. 价值工程, 2018, 37(29): 156-158.

黄强, 郭东桥, 卞光荣. 电磁炮的原理与技术发展[J]. 现代物理知识, 2007, 19(1): 43-45.

电磁学[M]. 高等教育出版社, 赵凯华, 1985.

王伟祥. 基于STM32控制的便携式模拟电磁炮设计[J/OL].武汉交通职业学院学报: 1-4[2019-1007]. http://kns.cnki. net/kcms/detail/42.1746.U.20190929.1721.012.html.

刘尚昊. 斜抛运动最大射程问题分析[J]. 科技资讯, 2018, 16(25): 233-234.

徐万彬, 万华. 触发开关电路的设计与应用[J]. 电子世界, 2019(03): 150+152.

何玉. 基于Python语言图像边缘检测及其算法分析[J]. 计算机产品与流通, 2018(6): 147.

猜你喜欢
STM32单片机
基于STM32单片机的脉冲信号参数高精度测试仪
基于STM32的智能电风扇设计