2019全国大学生电子设计大赛H题 模拟电磁炮系统全国一等奖

作者 xxx
队友 阿华 狗子
(想要比赛指导的可以xian鱼搜索 电子设计竞赛国一竞赛指导(发布人为晨星))
(想要源码和我比赛时候准备各种传感器的程序的 xian鱼搜索电子设计大赛电磁跑源码(发布人为晨星))
划重点:如果是博客真的哪里写的不明白或者真的有什么关于大赛的问题欢迎大家和我讨论交流,因为博客里面写了怎么做,自己一定要动手试试,否则我代码里面光四元数融合的一部分很多人就看懵了。。。希望大家还是多动手吧

2019.14更
赛后也和很多人交流了很多,其实就像我前面写的那样,电磁炮就是一个斜抛运动(炮台高度可忽略不计的情况下),那么公式其实就是我上面写的那个。。。博主改变的是倾斜角,但是为了减少硬件上的误差带来的影响,所以加入了一个可变的参数V(实测还是很有效)。有的队伍改变的是放电时间,其实就是初速度V。他们测的还是很准的,但是博主没时间测试了,不过不管是哪个方法吧,一定一定要稳住自己的机械结构还有电磁炮每次充电电压。保证这两个没问题的情况下,那么不管你用博主的方法还是控制其他变量,都会有很好的效果的。

经过了紧张的八月份,电子设计大赛终于落下了帷幕,这其中有太多的心酸只有电赛人才懂!而博主也即将升入大三,但是想给未来的电赛人留下点东西,于是2019.9.3开始写这篇文章
我们做的电磁炮系统,MPU6050做反馈,PID控制,俯仰角和航向角,openmv测距(博主手里的激光测距在比赛前半个月不知道被谁拿走了!!!!!!!!!mmp比赛前两天我还念叨不会测距吧,openmv确实测距会受光照影响很大,但是程序里可以补偿回来,具体怎么补偿,可以直接跳到下面的软件部分了),openmv的反馈回来的位置也是PID控制(为了让靶子在中心位置)。
整体装置如图

界面:

由于今年赛题和往年有一些不太一样,博主开始准备的是控制类题目,所以肯定是做了往年的控制类赛题,
具体的有17年板球控制系统
如图

15年的风力摆系统
如图
13年的倒立摆没做,但是博主和队友分析了倒立摆的原理。也看了很多倒立摆的所谓‘源码’,出于手头元件有限且时间紧所以没做实物。

我看赛题出来时和比赛结束后很多人在喷出题,说今年没有控制题和电源题,这里博主不做评论,但是博主觉得今年的题完全在第一次专家会议里面体现了出来,我记得当时直播说“大部分学生‘软’化,要提升学生全面能力”,别的题我没做不清楚,但是电磁炮这个我觉得还是和控制一样的(具体哪里一样在下面我会给出详细分析),而且非常考验参赛人的机械结构、基本的硬件基础、还有软件能力。当然如果有人非要喷,我也没办法。题目就是这样,我做好我自己的就行。
话不多说
先来带大家分析一下这个赛题


赛题出来的时候,估计会有很多人来选这道题还有F题(测纸,具体原因参考18年省赛题),因为这道题看似很容易,毕竟题目第一个基础是发射炮弹哈哈哈哈,

那么其实这个赛题出来的时候,可能有一些人被题目中的直流稳压电源供电干扰了,一般实验室里的直流稳压电源最多好像也就30多V吧(因为博主的实验室比较贫困。。见识的可能比较少),那么好多人用升压模块来给电压升到100V+。。博主采用的是降压整流,220V变160V然后整流桥变直流。瞬间就能给电容充满,然后用F4控制继电器来放电。
还有就是左右摆动的角度能不能和要求一样准,上下摆动的角度能不能打的准,最后就是发挥二,发炮弹的时间。。玩过游戏的都知道,甩狙不能当目标在中间才打出去,毕竟人是有反应时间的,然后开枪也有反应时间~所以看你怎么处理。

硬件部分

1.

电磁炮的炮弹和炮管选取。
我们一开始居然和傻子一样选取的塑料做炮弹哈哈哈哈哈哈哈,后来补了一下知识。。。我们最终选取强磁珠,然后炮管选取的是鱼竿(因为博主附近有一家渔具店),截取的炮管不要太长,太长摩擦力会影响很大,太短发射的不准,而且我们用的磁炮弹和炮管口径差不多,这样的话也避免了炮弹在炮管里面可能乱撞的情况。炮管13cm长,内径12mm,外径14mm,炮弹11mm。
如图

2.

炮管、线圈。
大家应该都是线圈加电容,这里我就不解释原理了,但是在这里线圈的缠绕有一些讲究,不能乱缠,要按照一个方向,我们当时是一圈缠到头再往回缠。大概是350圈左右(这个圈数好像有讲究emm但是我没仔细找)。

3.

***炮弹位置。
这个就真的挺重要的,因为炮弹的位置如果合适,才能打出最远的距离!!!!**秘密就是炮弹要放在线圈后面一点点,多了打不出去,少了还是打的近。我们一点点测试的距离。这样的话,炮弹在场中受力时间最长,也就是出口速度最大。

接下来是云台部分

其实这部分没必要多说,两个舵机(可以采用步进电机,细分驱动,能控制的很精确。但是博主手头只有一个细分驱动,我记得能到0点几的一个角度),因为博主这里采用的是6050做反馈,所以舵机控制也是完全没问题的,而且也能控制精确度(我设定的精确度在0.1)
openmv放那么高只是方便我们测距,并没有其他的意义。

最关心的软件部分

博主在比赛期间写的程序真的挺工整的,每个模式,每个模式对应的PID,每个模式对应的子函数。还是定时器的switch

按键选择模式,博主用的是触摸屏,但是一开始只把它lcd初始化了,触摸在发挥三初始化的哈哈哈哈然后你们就懂了吧
给分享一下重要代码吧

这是主函数,其实就是一些初始化,还有模式的选择,工作都在定时器中断里面做的
如下

选择模式然后执行。
最主要的我都写在了key.c里面了

这真的是比赛时候写的。。。后来也没有改动。。。真不敢相信我当时写的这么清楚哈哈哈
好了好了接着说,算法呢,其实就是简单的斜抛运动啦,S=(V^2sin2x)/g,最终云台是知道的只是角度X,那么就是X=arcsin[Sg/(V*V)]/2,S是设定值或发挥中的测量值,是固定的。
那么博主呢,将初速度设为一个能更改的变量,因为如果测距测多了或测少了或者现场一些情况和实验室打的不一样了!那么你可以通过改变V,最终改变X,即俯仰角!!博主当时给的70(cm/s)还是很准的。
开机界面

模式一:上电就直接给电容充电,然后按键选择mode1,一个给继电器的管脚高低电平变换,发射。ok

模式二:选择模式设定,然后下面的是发射前角度,上面的是期望角度

模式三:和模式二大同小异,考的就是你能不能左右动~~

发挥一:这个和基础三是一样的界面。。就不再放一次了
不过是和openmv通信,然后确定红色的中心像素点在像素中心就好了,PID调节,调节好之后再测距并且发送测量距离,然后发送的时候带上自己定的暗号就好,比如0xFF,只要不是像素点能在的范围就好!!不过这时候要注意一下openmv和32通信的问题,数据处理稍微有一点麻烦。!八位变成32位而且要分辨暗号
发挥二:这个距离是定死的,但是要求在10s之内能扫一圈,所以博主定时器5s转半圈,而且在半圈之内调整好俯仰角,基本上第二次看见就发射,然后程序怎么就知道发射呢?举个例子,从左往右0-320是openmv的像素点位置,openmv发送过来位置,当从右往左扫到了,那就在165的位置要开炮!!!,这样才差不多是中心线打出去!!从左往右扫到了,同理,接收到155的位置开炮~
发挥三:触摸屏控制云台,然后有一个发射区的位置。

这道题怎么说呢,确实简单!!!很多人在自己学校做的都非常棒!但是考验大家的还有自己的东西的实用性啊。。。。你不能说以后你做一个产品,你自己测试的非常好,别人一用就炸了(举个例子),对吧,所以所有的误差都是我们要考虑的东西,那么对于我们来说,测距是不稳定因素,那么好,我去程序里面更改能直接影响它的因素就好了~。打远了,速度调大,打近了,速度调小。
还有就是继电器。。主控板。。。最好都准备两套。。。毕竟运输的路上emmm据我所知有很多死在了路上。。博主还是很幸运的~

其实电磁炮网上也很多现成的,如果大家以后做的话推荐买现成的,毕竟这个东西挺坑的。。。不过坑的地方我也都在硬件部分说明了,如果我还有没说到的欢迎大家讨论。

不过比赛就是比赛,他只是锻炼你的一个阶梯罢了,说明不了什么,自己学到东西才是真的!!
希望以后的小同学能更加努力,长江后浪推前浪,一浪更比一代强!!!
其实我不建议大家直接去找源码,因为你从别人的源码入手,比自己写要费脑子的多!!自己一定要基础好,然后有了思路写起来就没那么麻烦了!多动手!千万别嘴上功夫。包括做往年赛题,虽然要参考网上,但是记住,一定要自己想!当然博主的源码会在以后更新出来

2019.9.3

2019全国大学生电子设计大赛H题 模拟电磁炮系统全国一等奖相关推荐

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

    2019 年TI杯全国大学生电子设计竞赛H题模拟电磁曲射炮 前言 首先要肯定电子设计竞赛的含金量,而也正是电子设计竞赛给了我本科阶段最好的体验.此文章介绍的作品是我所在团队于2019年参加电赛的参赛作 ...

  2. 线路负载及故障检测装置(2019全国大学生电子设计大赛C题:国家级一等奖)

      这个东西是今年(2019年)全国大学生电子设计大赛C题,经过4天3夜得辛苦奋斗,完成得题目要求得指标,最后也取得了一个不错得成绩.   题目要求如下:   题目三个大的要求:测电容.电感.电阻值, ...

  3. 2017年全国大学生电子设计大赛A题(微电网模拟系统)

    小编参加过三届全国大学生电子设计竞赛,做的均为电源题目,故留下此电源题提详细的方案和设计思路步骤,供后来者学习取经,如有不足之处欢迎留言提问.点击此处访问小编的个人小站:www.zhiguoxin.c ...

  4. 2018年全国大学生电子设计大赛E题(变流器负载试验中的能量回馈装置)

    小编参加过三届全国大学生电子设计竞赛,做的均为电源题目,故留下此电源题提详细的方案和设计思路步骤,供后来者学习取经,如有不足之处欢迎留言提问.点击此处访问小编的个人小站:www.zhiguoxin.c ...

  5. 2017全国大学生电子设计大赛B题 | 板球控制系统(二)图像算法相关

    2017全国大学生电子设计大赛B题 | 板球控制系统(二)图像算法相关 转载请注明出处. 我翻看了很多现有教程以及相关的开源贴,发现大家对于技术的解释都很隐晦,真正的问题没解释清楚,真正的技术也没体现 ...

  6. 2020TI杯全国大学生电子设计大赛F题解决方案视觉部分

    完整代码库: https://github.com/bossConneR/K210_FACEDET star以跟进最新更新 K210_FACEDET 2020年全国大学生电子设计竞赛F题视觉部分解决方 ...

  7. 2017全国大学生电子设计竞赛H题:远程幅频特性测试仪:主控STM32F407

    2017年全国大学生电子设计竞赛 远程幅频特性测试仪(H题) [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9sPfFjy1-1618627176227)(media/ ...

  8. 2017全国大学生电子设计大赛B题 | 板球控制系统(四)机械设计相关

    转载请注明出处. 转眼2019了诶,可能有些同学又该问了,哇向阳哥,你这个鸽子放的好,转眼大半年了一年都没更新,我也知道啊,说好的源码呢,挖的机械的坑呢?咕咕咕咕我也不想啊,我这不是懒吗!过年有空了, ...

  9. 2017全国大学生电子设计大赛B题 | 板球控制系统(一)序

    距离2017年电子设计大赛已经过去将近一年时间,我也终于有空将当时比赛的具体细节整理出来,以供给大家进行详细的参考,方便后来者进行快速,细致的学习. 17年赛题出来之前,我是最快做出样题的人之一.当时 ...

最新文章

  1. 【iOS XMPP】使用XMPPFramewok(四):收发消息
  2. 苹果史诗级硬件漏洞 iOS 可永久越狱并且无法修复
  3. XDJM的情意比山高,比海深!!
  4. spring创建web项目_使用Spring WS创建合同优先的Web服务
  5. Netty writeAndFlush() 流程与异步
  6. 【C++ grammar】nullptr and Dynamic Memory Allocation (空指针和动态内存分配)
  7. Flex【原创】Xml与Object互转/读写本地Xml文件
  8. MotionVFX - mForm for Mac - 150种MG动态图形元素fcpx插件
  9. 三维点云学习(4)5-DBSCNA python 复现-3-kd-tree radius NN 三方库 scipy 与 sklearn速度比较
  10. atittit.表单验证的实现方式以及原理本质以及选型以及自定义兼容easyui dsl规则的表单验证
  11. 【代码优化】反射机制的慎用
  12. Halcon入门笔记一
  13. 如何自动申请京东试用商品、签到获取京豆
  14. Python 实现LU分解
  15. 去掉office 2010在标题前就会出现小黑点。
  16. 卸载精灵 v4.2 是什么
  17. 浏览器检测是否支持webrtc(看看你的浏览器能不能h5视频)
  18. DOTA高考全国卷A卷
  19. Python解释大数定律
  20. 互联网+来袭,消费者更挑剔,什么才是零售业的未来?

热门文章

  1. 性能测试工具tptp使用
  2. python openpyxl 操作excel xlrd.biffh.XLRDError: Excel xlsx file; not supported错误修改
  3. hdu 5062 Beautiful Palindrome Number(水题)
  4. 以下系统不属于计算机软件,微型计算机的微处理器芯片上集成了(以下不属于计算机软件系统的是...
  5. JAVA计算机毕业设计学生学籍信息管理系统计算机(附源码、数据库)
  6. 如何为Ubuntu添加中文支持
  7. CAD制图初学入门:CAD字体相关功能使用技巧
  8. GitHub图标SVG版本
  9. html table-cell用法,CSS中的table-cell属性使用实例教程
  10. 【Docke进阶篇】Docker网络模式与容器间通信