2019 年TI杯全国大学生电子设计竞赛H题模拟电磁曲射炮

2019 年TI杯全国大学生电子设计竞赛H题模拟电磁曲射炮

前言

首先要肯定电子设计竞赛的含金量,而也正是电子设计竞赛给了我本科阶段最好的体验。此文章介绍的作品是我所在团队于2019年参加电赛的参赛作品,在队友、指导老师的共同努力下有幸获得国家级二等奖。诚然,此作品确实存在很多不足,在此只是分享一下我们当时的方案和经历,供日后参加电赛的学生朋友们参考,不足之处望大家见谅。

完整题目

来自电赛官网:H题模拟电磁曲射炮

实现方案

本系统为自行设计并制作的模拟电磁曲射炮,采用STM32F1单片机作为控制核心,通过串口与外设模块进行通信;采用OpenMV作为图像传感器、TFmini激光测距模块作为距离传感器,通过PID等控制算法实现题目炮击功能。
云台:选用带有平台大圆盘底座的二自由度舵机云台
OpenMV:星瞳科技文档及教程
TFmini:北醒
HMI串口屏:淘晶驰
电磁炮:炮弹选用磁铁,注意炮管尺寸与炮弹形状匹配;线圈使用漆包线自行绕制,注意绕线尽量工整,线圈匝数适量;选用1000uf电容,充放电电路由直流稳压电源经升压模块升压后由12V升为75V,再经过继电器1与电容相连,通过使用单片机控制继电器1常开触点的通断来给电容充电。为了防止充电电流过大损坏继电器,在回路中串联了15欧姆的限流电阻。电容通过继电器2与电磁炮线圈相连,通过使用单片机控制继电器2常开触点的通断来给电容放电实现电磁炮的发射。系统电路图
在这里插入图片描述
功能实现:硬件搭建结束后进行大量的舵机摆角和出射距离的测试,再进行线性拟合,确定部分区间的补偿偏置可近似实现给定距离的发射;发挥题目涉及自动寻靶,采用PID对舵机摆角进行调整,使靶心位于视野中央发射。

程序设计逻辑

外设逻辑:OpenMV实时处理图像确定目标靶位置,OLED实时显示由TFmini测得与目标靶的距离信息,HMI屏幕实时接收操控指令。以上OpenMV、TFmini、HMI各占用一个Usart,OLED遵循IIC协议。
开关逻辑:这里的开关指电磁炮充放电发射开关,依靠继电器实现。

/*
**********************************************************************
*函数名称:void vRelayContorl(void)
*函数功能:继电器控制电容充放电
*				
*使用说明:无
*入口参数:无
*返 回 值:无
*
*函数作者:YJ_Xar
*创建日期:2019-8-8 11:26:28
**********************************************************************
*/
void vRelayContorl(void)
{	
	/*充电*/				
	ui_Timer1ms++;
  	if(ui_Timer1ms <= 3500)
	{
		HAL_GPIO_WritePin(C_Save_GPIO_Port, C_Save_Pin, GPIO_PIN_SET);
		HAL_GPIO_WritePin(C_Release_GPIO_Port, C_Release_Pin, GPIO_PIN_RESET);
	}
	/*过渡*/
 	else if(ui_Timer1ms > 3500 && ui_Timer1ms <= 5000)
		HAL_GPIO_WritePin(C_Save_GPIO_Port, C_Save_Pin, GPIO_PIN_RESET);
	/*放电*/
    else if(ui_Timer1ms > 5000 && ui_Timer1ms <= 10000)
		HAL_GPIO_WritePin(C_Release_GPIO_Port, C_Release_Pin, GPIO_PIN_SET);
	/*防止首尾相接*/		
    else if(ui_Timer1ms > 10000 && ui_Timer1ms <= 11000)
		HAL_GPIO_WritePin(C_Release_GPIO_Port, C_Release_Pin, GPIO_PIN_RESET);			 
}

启动逻辑:先通过HMI选择题目序号,PID调整舵机角度,继电器控制电容充放电,实现题目功能。

测试方案

将系统接上电源,把完整程序下载至STM32F1单片机中,用触摸屏控制系统完成题目中的各项要求指标并记录。
在这里插入图片描述

根据上述测试数据,系统仍存在偏差,此偏差由激光测距模块长距离测量偏差造成;考虑到子弹外径与炮管内径的偏差,子弹在炮管中运动时速度发生改变,炮击精度较差。

程序源码

链接:https://pan.baidu.com/s/1gOhM6ySnaQ1uQtsrI-b76A
提取码:s1xl
复制这段内容后打开百度网盘手机App,操作更方便哦
在这里插入图片描述
在这里插入图片描述

写在最后

1.电磁炮硬件电路
此题难点就在此处,比赛时也确实花费了很长时间搭硬件结构。首先,绕线圈,原则上线圈匝数、缠绕层数都是可以计算的,但一方面是不会算而现成计算工具涉及到的参数太多又比较难获取,另一方面是手动缠线圈缠得比较烦也没办法真的一圈圈去查,所以就看心情了,反正最后炮弹打多远影响因素也不止这一个,设计控制算法的时候一起debug了就得了。第二,电磁炮发射电路大概有可控硅方案和升压模块方案两种,因为需要的电压相对较高可控硅容易炸,实验室又有现成的升压模块,也就用上了,升压方案也是纠结了好久,因为一个升压模块可以将12V升到60V,但是60V电压不足以达到目标射程想到升压模块串联,由于开始选的电容和炮弹问题,电压升到120V也没射出去多远,当时因为电压太高有点害怕了(怕死第一名),后来选用1000uF电容充电速度和电压等参数就与系统要求匹配了,碰巧实现了功能;最后,炮弹材质,备选炮弹有磁珠、磁铁,当时各种尺寸的磁珠买了好多,但是实际放入炮管里炮击距离实在是有限,当时还想继续升压尽量让磁珠打远一些,但是最远距离也不够两米;使用磁铁小圆柱是个必然的意外,淘宝买的电磁炮套件里包含磁铁,放入自己的炮管里直接就打飞了,新技能Get√(磁铁形状、尺寸要配合系统慢慢试进行选择)。
2.控制装置
此处要给指导老师点赞,在备赛期间要求各组开发一款适用于各类场景的开发平台,图里可以看出来是提前开好的PCB板,串口、PWM、IIC等各种接口和一些基础电路比如供电电路、电机驱动电路等都画在上面,用长排针把32所有引脚都引出来也就是同时保留了裸开发板的全部功能。节省比赛时间、优化硬件结构。
3.关于合作
首先,肯定指导老师的指导作用,备赛期间一定要配合老师的安排,对老师充满信心、完全信任。
最重要的是队友的配合,我的两个队友是我在本科期间遇到的最有价值的朋友,毕业后我们三个仍保持联系,互相帮助。团队分工是这样的,队友P写软件,队友W搭硬件,我软硬件都做一些,主要起软硬件相互联系的作用。这样的分工其实是因为我的两个队友是绝对硬件或绝对软件,而且实力很强,而赛题里乱七八糟的活儿,比如外设程序、通信程序等这些由我这个一瓶子不满半瓶子咣当的人来完成。互相信任是首要的,次者是本人适合团队协调,东北人儿善于发挥团队润滑剂的作用哈哈哈,团队任务冲突其实并不多见当然也不可避免,是好的团队关系才支撑大家一起攻坚克难。
4.其他
加一点运气,加一点开心,加一点热情。

  • 38
    点赞
  • 223
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值