基于dragonboard 410c的机械手臂(四)
来源:互联网 发布:软件著作权申报要求 编辑:程序博客网 时间:2024/04/28 00:20
之前是在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.超出控制范围也会出现抖动,所以确认在阈值内进行控制。
当然还有很多我没有碰到过的问题,像炸机、烧机、烧板、各种怪声等,这里就不一一分析了。
- 基于dragonboard 410c的机械手臂(四)
- 基于dragonboard 410c的机械手臂(一)
- 基于dragonboard 410c的机械手臂(二)
- 基于dragonboard 410c的机械手臂(三)
- 基于Dragonboard 410c的燃气烟雾检测器(四)
- 基于Dragonboard 410c的智能小车(四)
- 基于Dragonboard 410c的指纹锁(四)
- [OpenGL]计算机图形学:基于Articulated Models的机械手臂实例
- 机器手臂(3):机械手臂底座
- 基于Dragonboard 410c的音乐储钱罐(一)
- 基于Dragonboard 410c的燃气烟雾检测器(一)
- 基于Dragonboard 410c的燃气烟雾检测器(二)
- 基于Dragonboard 410c的燃气烟雾检测器(三)
- 基于Dragonboard 410c的智能照明系统(一)
- 基于Dragonboard 410c的智能遥控器(一)
- 基于Dragonboard 410c的音乐储钱罐(二)
- 基于Dragonboard 410c的音乐储钱罐(三)
- 基于Dragonboard 410c的燃气烟雾检测器(五)
- 15算法课程 217. Contains Duplicate
- IO设计模式:Reactor和Proactor对比
- 简单的ajax前端与node.js后台交互
- #研究JAVAAPI系列--ArrayList列表#
- js判断是否为整数类型(5种方式)
- 基于dragonboard 410c的机械手臂(四)
- UE4蓝图节点翻译---Add Documentation Node...
- #研究JAVAAPI系列--LinkList列表#
- Activiti
- 69. Sqrt(x)
- 乐视老员工股权清零,贾跃亭最后一点情怀也烟消云散了
- 查看mysql数据库字符集校对规则的多种方式
- Spring Boot 第一个应用
- #算法与编程01--冒泡算法代码解析#