板球系统制作经历

编程入门 行业动态 更新时间:2024-10-09 22:17:50

<a href=https://www.elefans.com/category/jswz/34/1746846.html style=板球系统制作经历"/>

板球系统制作经历

序言

  • 怎么说呢,我走过的最长的路,就是板球系统的弯路,试过了很多方案,有别人成功的,也有网上的大佬的设想,我发现别人的方案不一定是适合自己的,我用Ov7725摄像头检测的小球位置,听了学长的鬼话,为了那可有可无的六帧,去掉了滤波算法,划重点,这一步是我用网上很多方案做不到的关键原因。我用的是32F4系列单片机做的主控,在有滤波算法的时候稳定18帧,去掉后稳定24帧,在这里我觉得有15帧做这个题已经够用了,滤波算法会写的最好是加上。在网上有很多人都说用最小二乘法对圆进行解析,别听他们扯淡,不搭载linux的单片机算这种东西掉帧掉到怀疑人生,不如加个滤波。我确定圆心用的就是很简单的边界两个点相加除以二,效果还是很不错的。图像算法算是这个题最难的部分,但是,我在这上面并没有浪费时间,最大的弯路都走在算法上面,这里不得不感谢我的学长,每次我想改到正路总会把我带歪。最后按照自己的想法将程序重构一波解决这个题。
  • 下面为我做的实物部分题目的演示视频

板球系统

硬件部分

  • 硬件使用的是两个舵机进行控制,用Ov7725反馈小球位置,通过PID对小球位置进行计算,输出PWM的值。也就是现在比较经典的系统,唯一要注意的就是舵机安装一定要在中轴上面,歪了的话会加长小球到达目标坐标的时间。

程序部分

  • 算法就是很简单的位置PID,这里会有人去误导你,起码要用模糊PID,加了陀螺仪用串级PID勉勉强强,这都是没做过的云玩家,用陀螺仪这种操作我也是无力反驳,不过别人毕竟是好心,误导我一个月我也不好意思说什么。我觉得这里最关键的就是PID输出你是怎么用的,(偷偷地喷一下,我问学长输出值是不是在上一次舵机PWM基础上进行叠加,学长说是,最后我没这样做学长说我做的和他的一样,mmp。),不管是怀着怎样日了狗了的心情,我最后按照自己的想法做出来了,PID输出直接在平衡的那个数据上加减,每次都是重新计算,参数更是只有PD需要调,就可以达到题目要求,要是想更快的话,可以加上
    I
    。没错你没看错,就一个位置式,哪怕你硬件误差大一些也能用。到这里就已经可以定点了,这时你会发现,只有一个题还需要写点算法,其他的题已经全部完成了。
    有一道题是输入随机的四个点,到达指定位置,这里就会用到非指定的四个点,就是“田”每个正方形框中间的那个点,这里是用作一个缓冲的点,不让他压到非指定点。这个题需要一个算法进行选路,算出两点间的最近路线。我的思路是,先看一下两个点之间的像素点,我的临近点像素差是80像素,跨一个点是160像素,那么,当检测到目标距离大于120像素的时候,我就会将下一个目标点定在缓冲点,缓冲点选择的一套逻辑就不再多说了,挺好弄得。到这里这个题基本就是结束了,发挥部分网上有追激光笔的,这个只要打开灰度模式,然后定点就行了。

结语

  • 思路正确后板球的题目并不困难,算法的参数整定可以说是近几年电赛体中最简单的。
    除去扩展题之外全部完成,为了保证每个题目的稳定和改BUG的便捷,程序有些简陋,有代码优雅强迫症的就别看了。

    板球系统源码

更多推荐

板球系统制作经历

本文发布于:2024-02-06 04:51:37,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1746815.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:板球   系统

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!