基于dragonboard 410c的机械手臂(四)

    之前是在Android M上进行的pwm控制,发现pwm节点都没有,更不用说去控制了,后面终于加上了,这个功能也可以正常使用了。由于一些原因,现在又要切换到Android L上,所以,现在pwm的控制也是一个问题,不过有了前面在Android M添加的经验后,只要porting过来就可以了。

    这是pwm的配置连接,需要的话可以下载看看。链接:http://pan.baidu.com/s/1dFaXEVZ 密码:lxj5,所以这部分就不详细介绍了,pca9685的驱动代码在前面的博客中也有给出过,这里也不再赘述了。

   主要说一下在调试过程中遇到的一些问题。

   首先是舵机的校准,之前说过,舵机的周期是20ms,一般1.5ms为中值位置,即电机从最小角度转到最大角度的中间位置。

   对于180度的舵机而言,0.5ms对应0度;1ms对应45度;1.5ms对应90度;2ms对应135度;2.5ms对应180度。

   对于270度的舵机而言,原理相同,0.5ms对应0度;2.5ms对应270度。整个角度分布在0.5---2.5ms之间。

   调节精度分别为:180/(2.5-0.5ms); 270/(2.5-0.5ms)。

   这里需要注意的是,调节的时候最小值不要小于0.5ms,最大值不要大于2.5ms。

   当时并不太明白要进行中值校准,并且要在阈值范围内进行控制,后面经过一番了解有些明白了,中值校准是为了让舵机可以在一定角度内,顺时针和逆时针进行转动,因为我们知道舵机只要是用在无人机和机器人的关节上面,那为什么会有一个阈值呢,这是因为,超出这个范围会导致电位器进入“盲区”,造成整个组件不能正常运行,这对于正在飞行的无人机来说可能是毁灭性的。在调试的过程中我也遇到了这个问题,所以就采取了一个比较笨的方法就是,一个一个的从最小角度到最大角度进行测试,并将这些测试的范围记录现在,这样在控制代码里面就可以设定这些范围,也就不用担心超过阈值了。

   既然知道了舵机为什么要校准,接下来就是进行中值校准了,但是,一头雾水,不知该如何操作,和面经过一番查找,有以下几个方法。第一个是比较暴力的,大概过程就是:通电后给pwm信号,找到最小角度位置,然后再找到最大角度位置,这样就知道中间位置在哪里了,然后将pwm的高电平时间设为1.5ms,接下来用手扳动舵机到中间位置,这样就校准完成了,但是能不能校准成功,就要看你的舵机齿轮是不是在你扳动的时候扫齿了,所以说这是一个暴力的方法,容易损害舵机,不过可以在低电压,金属齿轮的舵机上试试。另一种方法就是靠遥控来进行调整,这个方法现在没有试过。目前就知道这两种方法。

   

图 舵机齿轮

    中值校准好之后可能会有部分偏差,不过影响也不是很大。其次在调试的时候发现舵机会抖动,这是怎么回事呢?

    1.电源电压不足或者电源容量过小导致的。本人就遇到了这个问题,为了防止舵机烧毁并且方便进行中值校准,所以就将供电电压调节的比较小,3.3v左右,这时就会出现抖动的现象,后来将电压调到了5v,抖动基本上就消失了,但是还存在一个问题,就是机械手臂完全倒下后,自己起不来,要用手拨动一下才可以,所以电压还是不够。

    2.电位器接触不良或者移位导致校准pwm不准确。舵机内部的电位器是固定的,可以打开确认一下,然后重新固定安装就可以了。

   3.超出控制范围也会出现抖动,所以确认在阈值内进行控制。

    当然还有很多我没有碰到过的问题,像炸机、烧机、烧板、各种怪声等,这里就不一一分析了。


    


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值