电赛入坑----2017年电赛国赛真题滚球控制系统

1. 滚球控制系统系统简介

1.1 题目要求

      作为一名合格的研发人员,面对系统,首先要看的当然是需求,来看看需求长什么样。

                                                                               图1-1 题目要求

      看到 65cm*65cm 我觉得当年的参赛师兄师姐都已经哭了,这个系统对比往年的倒立摆、风力摆大得多,大就会有一个问题,细节将会被放大,特别是硬件结构的细节,我后面会详细说(只针对我选得材料,其他材料还未验证)。

1.2 硬件选取

       首先当然是 65cm*65cm的板子选取 ,选的是雪弗板,当时是参考别人的方案的,有优点也有缺点吧。优点就是轻,加工比较容易,裁剪和后期想挖坑的话还是比较好操作的。同时不够硬又有一个缺点,易变形,怎么一个易变形,板子到处是坑,那种肉眼看不见,但是滚球能感受的到的坑,还有就是四周容易下垂,导致变成一个山形,雪弗板这个变形特性也是给我们带来很大的麻烦了。

       其次是传动结构的选取,万向节和轴承肯定是缺不了的了,具体的会在下面说到。

       最后是主控和识别传感器,先说识别的传感器,有人推荐用电容板,博主知识盲区,放弃了,选择了大多数人选择的摄像头,摄像头选择的是原子的OV2640,200W像素,SVGA 可达 30 帧,当初选择OV2640的原因很简单,只会32,只有原子接口的板子,还有就是没钱去买openmv啊,其实做滚球的话,也足够了,帧数也还可以,当然使用这个摄像头的话基本就告别了图像滤波,不然帧数就更低了,有经费的同学也可以上手openmv,对于识别小球这个简单物体是非常简单的,不用自己搞驱动,开窗控制也十分简单,寻找色块也就一条语句搞定,最重要的是,帧数更高,这个直接决定了你的PID参数好不好调。

2. 机械结构设计

        滚球控制系统对于机械结构搭建要求还是比较高的,博主采用的是正交的结构,所谓的正交,也就是将板球切分为XY,舵机分别控制XY,中间加个万向节保证系统可任意沿XY翻转,舵机连接板的结构可以通过舵臂加轴承实现,上图吧。

                                                                                      图2-1 结构图一

                                                                                      图2-1 结构图二

       此处有几个设计错误,首先是舵机垫高以及固定的地方,可以说是严重错误,但是当时身边没什么材料,就割了几块雪弗板作为坐垫,加上角码固定,导致系统运行时震动过大,调PID调到发吐。接着就是舵臂到平板的连接结构,使用亚克力板其实效果不好,亚克力板切成条之后刚性不足也会导致系统运行时系统震动。

      对于挖不挖坑,官方是允许挖坑的,当时我还是建议先不挖坑,这个系统不震动的话,帧数够高的话,不挖坑也可以把小球稳定在目标范围,但是挖坑有个好处就是,入坑之后放弃控制就可以把小球留在坑中,不过,有坑的话控制也不是那么好,小球下坑会失控。

3. 软件算法设计

3.1 采用两套PID

       软件算法设计,我觉得PID应该采用两套,在远离目标点和靠经目标点可以采用不同的PID参数,特别是针对挖坑的同学。

3.2 设置缓冲区

       因为我们采用的是单级的PID控制,仅仅针对目标位置进行控制,对于轨迹基本上是无法控制的,但是我们可以设置缓冲区的方式拟合方式控制轨迹。针对画圆,我当时还未想出如何设计,也是通过缓冲区拟合的,后来做了风力摆就知道怎么一回事了,大家可以看看我的风力摆分享博客,找找思路。

                                                                                        图3-1 缓冲区设置

3.3 设置不同的初始位置

        所谓的初始位置,其实就是,小球在每一个目标点静止不动是舵机的转动角度,使用这种方式可以更好的实现小球静止以解决平板变形的问题。

4. 踩坑经历

       使用OV2640很麻烦的一点是,STM32内部SRAM大小只有192KB, 储存像素点的数据大小有限制,开窗不能太大,所以架子需要架得老高,虽然说可以设置输出图像大小,但是好像找不到对应的初始化序列,原子提供的接口也不管用。

      使用STM32F4摄像头接口采集一帧数据会有帧中断,我们PID计算应该紧跟帧中断中,不能边获取图像边计算PID,会导致顺序混乱。

      我们可以设计一些GUI方便调试参数,每次参数变动都得下载效率太低,这里推荐移植emWin设计GUI。

 

 

 

  • 19
    点赞
  • 100
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
"2017 电赛 滚球控制系统源代码(pixy ds3115舵机 stm32 矩阵按键 lcd12864).zip" 是一个包含源代码的压缩文件。该文件主要用于电赛滚球控制系统的开发。在这个项目中,使用了一些特定的硬件设备,包括pixy ds3115舵机、stm32单片机、矩阵按键和lcd12864液晶屏。 根据文件名和硬件设备的记述,可以推测这个源代码项目的目的是控制一个滚球,使其按照特定的规则进行运动。pixy ds3115舵机可能用来检测滚球的位置和方向,并通过与stm32单片机的通信,控制舵机转动来改变滚球的运动路径。矩阵按键可能用来提供用户与系统的交互界面,比如调整滚球速度、选择不同的运动模式等等。lcd12864液晶屏则可能用于显示滚球的状态、系统参数等信息。 这个源代码项目的压缩文件中应该包含了相关的源代码文件,供开发者参考和使用。通过阅读源代码,开发者可以了解整个滚球控制系统的工作原理和实现方式。源代码可能包含对硬件设备的初始化和配置、算法逻辑实现、运动控制代码等。 如果您需要使用或了解这个源代码项目,可以解压缩压缩文件,并通过合适的开发工具打开源代码文件进行阅读和使用。为了更好地理解和运行源代码,建议您先了解相关的硬件设备和编程平台(如stm32)的基本知识。 总之,这个源代码项目是为了实现一个滚球控制系统而开发的,提供了相关的源代码文件供开发者使用。希望以上解释对您有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值