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

转载请注明出处

2019全国电赛交流群(内有板球系统基础题代码):597962412

  今天我们来讲一讲舵机的控制。电赛在给出赛题说明与采购清单的一刹那,我就想好了赛题最可能使用的两种输出元器件。一种是滚珠丝杠/皮带滑台,另一种是舵机。前一种是严格意义上的行程为直线的电机,后一种是专门为猜题中最火热的板球系统而准备的。对于板球系统来说,舵机是短时间内能最快完成电赛任务的执行器,具有控制方法和机械结构简单的优点。我在2017国赛上看见过用推杆电机的,也有用电机卷绳子吊着板子的,甚至也有使用步进电机加上滚珠丝杠的,但是很遗憾,这些队伍很少能有争取到国一的队伍。推杆电机控制速度缓慢,绳吊式的板球系统具有相当大的不稳定性,绳子弹性大一点都可以打乒乓去了。步进电机倒是控制起来很精确,但是机械结构的安装和设计极其复杂,供电也很麻烦。

舵机需要考虑的问题很多,但是并不复杂,都是一些经验之谈。

当你确定使用舵机以后,脑子里应该有几个问题需要考虑:

1.舵机中值的确定
2.舵机pid输出值的改变频率(舵机控制频率)
3.舵机pwm的频率和细分度(注意第三问题的频率和第二个的区别)
4.舵机的信号屏蔽处理
5.舵机的安装以及输出机械结构该如何设计


  首先来看第一个问题。舵机中值,其来自于飞思卡尔智能车比赛的舵机控制,原意指智能车转向机构舵机在绝对中位时候舵机的pwm输出值。什么是绝对中位呢?就是车子转向机构完全向前,能够直线行走时候舵机的位置。在我们的板球系统中,就是通过智能手机陀螺仪水平计/机械气泡水平计测的保持板面绝对水平时候舵机控制的pwm值。每一个舵机由于安装机械位置以及输出头安装角度问题,舵机中值都是不一样的,需要我们一个个去整定测量。舵机中值测好了以后,我们才可以为后续算法提供便利。

  第二个问题。舵机的pid 输出频率问题。舵机是一种执行器件,也需要相关的反应时间,如果你pid每1ms都给舵机一个命令,完全不等待,那么舵机就会喘振,失力,达不到精确的控制效果。因为此时舵机并不能在1ms以内光速移动到指定位置。根据飞思卡尔智能车的控制经验,我们舵机输出的周期应该在20ms左右最为合适。此时舵机既有良好的响应速度,又有充足的时间和扭力来执行位置任务。

  第三个问题。以mg996r舵机为例,其最佳pwm控制周期在50hz。stm32可以把pwm波细分10000份,其最终落实到舵机有效输出区间能有1000左右,完全够用。不明白pwm细分度的建议详细查看正点家的pwm程序。不明白舵机控制原理的也可以详细查一查百度,里面有大把的文章教你舵机怎么驱动。

  第四个问题。这个问题纯属经验之谈。众所周知,在单片机进行调试debug模式或者是下载程序的时候,会在管脚产生随机电平或者是产生悬空状态,这时候舵机很有可能会抽风,我强烈建议为了各位板球系统安全找想,在焊接舵机信号线的时候尽量加一个开关,在不使用或者调试的时候通过开关控制舵机起停,可以达到紧急时刻停机的效果,保护板球机械结构。

  第五个问题。舵机会控制了,马上就是如何安装的问题。如果你仅仅用热熔胶,木头块,来固定安装你的舵机,那么再高明的算法也拯救不了你。如果你仔细设计了舵机的输入输出结构,完善了摩擦和润滑以及机械配合,完全去除了缝隙,保证每一份力的传递到位,那么得很简单的pid就可以拿到全国一等奖。在我看来,机械结构是和pid同等重要的。两者相辅相成,缺一不可。关于机械结构部分会是一篇大文章,会有很多细节到位,这些我们下一期在讲解。文章会不定期更新,谢谢大家的阅读!

关于电赛qq群,我建立了一个可以让大家交流问题互相学习的环境,并且在后续博客完结以后会公布板球系统部分源代码以供大家学习,参考。有兴趣的同学可以加群交流。qq群:597962412




猜你喜欢

转载自blog.csdn.net/u013963960/article/details/80330933