大家好,又见面了,我是你们的朋友全栈君。
随着2021年电赛的临近和清单的出炉,各参赛队伍都在紧张的备赛当中。然而在电赛清单中,我们能看到一个比较特别的器件–空心透明球。这个器件的特别之处在于它的尺寸过大,以至于让人摸不着头脑。在网上看过很多预测,关于这个球的预测大家也是众说纷纭。那么现在就根据预测的最多的一种情况–球形机器人,来进行简单的设计方案分析。
三个直流电机,一个舵机,飞轮一片,空心透明亚克力球(直径在20~30cm),TB6612电机驱动模块两片,STM32F1最小系统板一块,杜邦线若干,基本元器件等等。
1、如何保持平衡?
对于球形机器人,最关键的部分莫过于让球保持平衡,要想让球保持平衡,不仅要加装保持平衡的装置,设计的结构也要合理。
首先,对于元器件在球内的分布,尽量让这些器件沿着球的直径垂直分布,也就是让这些器件的中心都保持在球的同一条直径上。
确定好元器件的布局之后,还需要一个部分来控制球的平衡,这里使用的方法是一个舵机带动一个配重,让舵机控制这个配重来保持平衡。如下图:
在控制板那一层,我们加入了一个MPU6050模块来检测当前的倾斜状态,如果检测到向左倾斜,舵机就会控制配重摆向右边;如果向右倾斜,舵机就会控制配重摆向左方。这样便能保持小球在左右这两个方向的平衡。
前后方向的平衡同理,通过MPU6050检测出当前的俯仰角,如果前倾,那么电机就向前转;如果向后倾,电机就向后转,时刻保持小球中心不变。这里电机的平衡采用的是平衡车的代码,有兴趣的同学可以去研究一下。
2、如何让小球动起来?
要让小球动起来,首先要解决两个问题:前进和转向。
2021.8.3 10:30 继续更新
2、如何让小球动起来?
要让小球动起来,首先要解决两个问题,前进和转向。
首先是前进,这里我使用的方案是将电机直接固定在球上,跟传统的用轮子和摩擦力来前进的方案不太一样。大概的思路是,先将小球分成两个半球,然后在球面上找到球的圆心并打孔,像这样:
这个图是在网上找的,实际的孔当然不用开这么大。孔径的大小应该跟电机上固定环的孔大小相当,方便用螺丝把半球和电机之间拧紧。半球的圆心不好找,找不准可能会影响后续电机的安装,所以这里一定要多花点时间找准圆心打孔。
打完孔之后就可以把电机跟半球组装起来了,组装的时候最好找一个人帮忙扶着电机,不然电机在还没有固定好时会左右倾斜摇摆不定,可能会对小球造成破坏。组装后之后图如下:
解决完小车前进的问题,接下来的问题就是让小球转向。其实利用前面所设计的配重也可以达到转向的效果,比如说小球要向左转,那么只要让配重向左倾倒,小球的重心便会偏左,这时候再让电机控制小球前进,就可以实现小球的转向。但这样做的缺点是小球不能实现原地转向,只能“转大弯”。所以在这里,我们给小车加装一个飞轮,来让小球可以原地转向,图如下:
飞轮的设计很简单,就是一个电机搭载了一个飞轮片,利用角动量守恒原理,当飞轮顺时针转动的时候,小球就会被带动着逆时针转动,以维持角动量守恒;同理当飞轮逆时针转动的时候,小球就会被带动着顺时针转动。
在安装飞轮的时候要让其保持在小球的某条直径上,也就是要和之前排列好的器件形成一条直线,这样才能实现原地转东,不然小球会跑偏!
好了,方案设计到这里就差不多了,其实内容不算多也不算难,只是焊接调试和模型搭建的过程要用点心,后续把成品做出来后会继续更新(快了快了,快做好了【手动狗头】),大家如果有别的想法欢迎来交流!
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/126110.html原文链接:https://javaforall.cn