写在前面

在写这篇博客之前我们还不知道自己到底是几等奖(ps:省一推国赛,无奈在综合测评上出了岔子,无缘国一),其实做到最后奖项什么的都不重要了,重要的是我们在比赛准备期间和比赛期间所学到的东西吧,我感觉最重要的还是团队和坚持。今天已经是9月1号了,感觉有必要把电赛这几天的经历和板球控制系统的思路说出来和大家分享一下。仅代表自己观点,大神勿喷,如有错误请及时指正。

打铁还需自身硬

我们三个全是大二的毛头小子来做这个比赛其实还是挺吃力的,尽管是所有电赛题中最简单的控制题。所以,我为什么以这个为标题,就是告诫大家:对于电赛,基础最重要。(ps:有人说:对于电赛,运气是实力的全部。虽然说的有点夸张了,但不得不说,比赛中运气也是相当重要。)首先,对于最核心的电源题与信号题,电赛考核的就是你对基础知识的灵活运用,外加一点自己的创新。所以说,基础最重要。三个人对电学没有良好的基础,无奈在综合测评时出现了问题(ps:这个问题我们之后讨论),对于那些想参加2019年电赛的同学们,趁着有时间多实践多做一些项目多积累经验,只要把自己打的硬一点,什么困难都能克服。

好了,咱们步入正题吧,8月9号刚刚拿到题,我们也是一脸懵逼,如果做过的17年电赛的同学肯定很明白,比赛之前就在群里传的风风火火,预测今年的控制题就是板球系统,果然,刚出题的时候我们也是大眼瞪小眼感想今年是不是泄题了!?毕竟组委会说好的一个摆杆一群小球呢?不过还好我们在押题阶段研究过板球系统,所以对整体机械结构心里还是很清楚的(ps:做过的同学一定感悟这几天的木工生活不容易啊)

机械结构

材料:75*75木板,直径8mm木棒,木方,万向节,SD-5舵机,舵机驱动,STM32-F407(作为主控,由于做完比赛后还有别的用途,所以图片上没有显示出来),K60,OV7725摄像头,MPU6050
光科板球控制系统

其实我们看到我们的结构就是网上流传的经典结构,下面是我们的结构原理图:

题目分析

对于这个系统我们得首先明确我们的首要目的是干啥?就是让一个球从一个点精确的到达另一个点。那我们该如何实现呢?大部分人拿到这个题目,心里估计已经有个所以然了,很简单,就是用摄像头去获取小球的位置信息反馈给主控,主控对当前位置进行解析并发出指令来控制平板倾斜,进而小球滚动,摄像头再获取位置信息,从而形成一个闭环。很多人想到的通过PID来控制,确实,这是一个很简单粗暴的方法,对于电赛这种时间特别短的比赛是很适用的,而有些学有余力的同学可能在PID上加入一些控制算法(如模糊控制,遗传算法等)来提升系统的精确度。接下来我就对我们的系统进行一个简单的介绍。

上图是对小球在平板上的简单的力学分析(ps:很多论文上用拉格朗日方程来构建能量的平衡,没用!到头来还是PID调,简单力学分析已已经满足我们的题目要求)。我们以平板中心为原点做XY轴,为了简便我们只分析一个X轴,那么这就变成了杆球系统,相信大部分人对这个很了解,其实板球控制就是两个杆球控制的叠加。在这个X轴上,小球只受到自己的重力,即小球的受力状态就与这个轴的倾斜角度有关系,那我们便会想到了,力不就代表加速度嘛,即小球的加速度就与轴的倾斜角度有关系了,那我们又会想到,加速度的积分不就是速度嘛,接下来还会想到,速度的积分不就是位置嘛,而我们的目的就是从位置1到达位置2嘛,恍然大悟!三环PID控制系统!我靠,三个环调起来太费劲了,估计会调到死,而我们之前已经分析得到小球的加速度与平板的倾斜角度有关系,那我们事先把这种关系确定下来后期再查表不就完事了。至此,MPU6050上场了,把他粘在平板下方,一定要和平板平行。平板的倾斜角度(MPU6050测出)与舵机的打角一一对应,所以我们把数据记录下来通过MATLAB拟合数据,得到近似曲线和方程(图片),至此最里面的环就搞定了,剩下的就是两个了,这不就又变成了串级PID了,眼前小四轴忽悠忽悠就飞过来了,对于串级PID我不就不多说了,调参就是先调内环来调稳,后调外环来调响应。稍微不同于四轴的是,我们这套串级PID内环是调速度,外环调调位置(图片)。调内环时,先调一个轴,将期望速度设为零,给小球一个初速度,调节内环pid参数使小球速度尽快为零。调外环时就是设定一个期望位置了,和题目就很接近了。调参是个很悲惨的过程,基本整个电赛40%的时间搭机械结构,20%的时间想思路,剩下的40%就是调参了。<微笑脸>

控制系统

上面咱们也说了,如果想要做的好就必须形成闭环,既然控制结构和和执行机构完成了,那么什么作为反馈呢?比赛期间我看到大多数选手用的是摄像头,将其悬挂在平板上端,并且有的和平板独立有的固定在平板上,由于我们选用的OV7725(30万像素)摄像头,分辨率低但帧率高,所以我们直接将其直接固定在平板上,有的选用OV2640(200万像素)可以考虑独立于平板。也有的同学用的线性CCD,和激光(没仔细看,估计和对管一个性质),所以说做法非常多,大家也可以尝试一下。

既然摄像头作为反馈输出小球位置信息,那么又是如何实现的呢?其实就是简单的逐点扫描法,做过飞思卡尔摄像头组的同学一定不陌生。我们先从图像中心往两边搜索,首先向左搜索到连续三个黑点(小球是2*2像素点),那么最右边黑点的位置就是左边界,以此类推。我们可以看到摄像头的图像有一定的桶形畸变,我们对图像稍加做处理就好。在图片中我们看到最中心的位置的黑点就是小球,它在图像中的位置也被明确标出来了,如果同学想让系统有一定的抗干扰性就一定要对摄像头拍摄的图像有个自适应校正(瞎编的词),就是系统每次开机时就要自动对图像进行校正,防止在搬运过程中摄像头歪了或平板歪了,比赛时见到太多这种情况了。说完了系统中最重要的摄像头,接下来看看咱们的控制系统。

写在最后

以上就是我们的板球控制系统,写的很是简单粗暴,很多都没讲出来,但我建议想搞一下的同学们可以先自己试着去搭一下,这确实是一个考验PID的好项目。对于电赛,我建议大家在赛前一定要做一下历年的题目,摸索组委会考核的意图,确实能学到不少。就写到这吧,感谢大家。

光电科技协会板球控制系统相关推荐

  1. 2017电子设计大赛-光电科技协会板球控制系统

    写在前面 在写这篇博客之前我们还不知道自己到底是几等奖(ps:省一推国赛,无奈在综合测评上出了岔子,无缘国一),其实做到最后奖项什么的都不重要了,重要的是我们在比赛准备期间和比赛期间所学到的东西吧,我 ...

  2. 计算机科技协会知识竞赛策划书,科协活动策划书

    第1篇:科协活动科协知识竞赛策划书 资源管理系 第五届"瀚海拾贝"地理科技知识竞赛 策划书 一.活动目的 为丰富同学们的课余生活,更好的拓展同学们的视野,更深入地把科技生活化,探索 ...

  3. 一个两自由度DIY云台+OpenMV就可以实现简单云台跟踪了,以前的板球控制系统感觉也可以看作一种变相的云台跟踪啊!

    一个两自由度DIY云台+OpenMV就可以实现简单云台跟踪了,以前的板球控制系统感觉也可以看作一种变相的云台跟踪啊! 所以吊舱跟踪从本质原理上来看还好.无非是把云台控制做得更好些,变成三自由度的,把检 ...

  4. 顶控科技注塑机械手控制系统解决机加工行业自动化上下料应用方案

    项目背景   近年来,伴随着自动化行业加速转型,带动机加工领域高速发展,促使制造工艺不断升级.在机床加工过程中,应用桁架机械手辅助上下料,替代人工完成危险.重复枯燥的工作,减轻人工劳动强度,提高劳动生 ...

  5. 计算机培训会新闻稿,电子科技协会电子知识讲座新闻稿

    电子科技协会电子知识讲座新闻稿 为了向16级新生们普及基本的电子知识,拓展他们的课外科技知识.10月20日下午,由校团委主办,电子科技协协会承办的电子知识讲座在科学校区计算机与通信工程学院217室举行 ...

  6. 2017全国大学生电子设计竞赛板球控制系统摄像头寻红色小球代码

    正点原子开发板,0V7670寻红色小球反馈坐标百度云盘免费代码: 链接:https://pan.baidu.com/s/17447YQ-82zv2O5MG1WbLPA 密码:x1zu 板球控制系统开发 ...

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

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

  8. 快讯丨 2019智博会清数创基(重庆)与加中数据科技协会达成战略合作

    8月26日,清数创基(重庆)科技有限公司和加中数据科技协会在第二届中国国际智能产业博览会-加拿大馆开馆仪式举行了战略合作签约仪式.在加拿大驻重庆总领事馆总领事Jeff David(戴杰豪),加拿大驻华 ...

  9. 计算机科技协会竞选书,加入计算机协会申请书

    各位协会会员,大家中午好! 我是来自11级计算机系的 XXX,很荣幸来到计算机协会这个大家庭中,相遇既是缘.风雨同舟路,依依兄妹情.缘分,让我们在云台山脚下相遇:热情,让我遇上了青春活泼的你们.未来四 ...

最新文章

  1. Mysql存储引擎详解(MyISAM与InnoDB的区别)
  2. database disk image is malformed 问题解决
  3. 计算机办公软件技能大赛试题,第七届计算机技能大赛办公软件操作比赛顺利举行...
  4. java泛型程序设计——通配符类型+通配符的超类型限定
  5. 做形态学方法的团队_图像分割实战-分水岭分割方法和GrabCut 算法
  6. Restify Api 开发经验
  7. EF:oracle的number类型映射为C#的boolean类型
  8. 如何修改layui数据表格绑定的开关事件?
  9. 退休后多长时间能领到工资?
  10. Altium AD20如何选择重叠在下方的元件?如何对元件快速选择、选择区域内部、选择矩形接触到的对象
  11. [SQL实战]之从titles表获取按照title进行分组
  12. 如何才是真正的大牛?遇见同行博士大牛,感慨自己太渣
  13. 小程序和H5 之间的通信
  14. 英文文献中常见拉丁字母缩写
  15. 信号与系统学习笔记与代码实现3-周期信号的傅里叶级数表示
  16. 关于微信小程序下拉刷新、上拉触底方法的实现
  17. QT编写BarChart直方图
  18. 桌面上打开计算机有延迟感觉,电脑中右击操作反应慢如何解决|解决右键菜单弹出延迟的方法...
  19. 从Spring源码探究IOC初始化流程
  20. php 获取array的长度_php中获取数组长度的方法

热门文章

  1. 感知机算法学习笔记(带例题及代码)
  2. 如何基于用户洞察,设计2B产品的业务架构?
  3. 学3D建模,电脑配置最低要求和价值区间一览
  4. banner背景图的居中显示
  5. FreeRadius : rlm_files
  6. python中定义常数关键字
  7. Tushare之股票数据分析
  8. c语言用判别式求二元一次方程,二元一次方程-关于二元一次方程跟的判别式的所有情况 – 手机爱问...
  9. outlook2013升级_如何仅在Outlook 2013中查看今天的RSS源
  10. IAD+POTS用户安装