搜索
bottom↓
回复: 67

原创技术贴:舵机测试仪的设计与制作

[复制链接]

出0入0汤圆

发表于 2011-4-23 23:53:25 | 显示全部楼层 |阅读模式
舵机是玩模型常用设备之一,舵机的主要参数有扭矩,响应速度两项,当然,还有电压、信号脉宽等电气指标。通常,普通的模友都非常关注舵机的响应速度,并往往用舵机响应速度来作为判断舵机质量和档次的重要依据。

市面上常见的舵机,其空载转动60度,所需时间一般都在几十ms到几百毫秒,这项指标也是玩单桨直升机的模友特别关注的(斜盘舵机、锁尾舵机)。很早以来,我就想做一个测试设备,但由于几个原因,一直没做:1、市面有现成的设备;2、麻烦;3、吃力不讨好。 前年一时兴起,用3310液晶屏做了一个,不过也没有认真研究完善,半途而废了~

前两天,身边一个模友得到一个样品舵机需要测试,虽然他的充电器有测试舵机速度的功能(您没看错,是充电器有这个功能),但是这个舵机需要8V工作电压,超过了充电器的能力范围,于是我接过这一任务。

既然做,就做认真一点吧,为了便于使用操作,不打算随便搞。但最近一直在写四轴飞控的代码,这只能是个小插曲,不能花太多气力,略加思索,我选择了这样的方案:

1、基于AVR CDC软硬件进行修改,用AVRCDC硬件产生舵机驱动信号,并用AD采样检测舵机消耗电流(判断舵机是否在转动)
2、基于CDC串口编写上位机软件,进行操控和显示

这个经过2~3个晚上的业余时间,成功完成,可惜由于连续2天加班,晚上只有1个多小时时间,最终没能赶上朋友的测试任务。 回顾这个过程,觉得蛮有趣的,所以整理一下,和大家分享。

分几个主题慢慢写:
一、舵机信号格式
二、为什么用电流检测的方法
三、舵机工作过程分析
四、电路设计
五、下位机软件主要算法分析
六、上位机软件介绍
七、硬件资料和源码公开

这里先简单说一下,实现这个舵机测试仪,只需要在标准的AVRCDC电路上焊接导线和舵机插头即可,不需要其他额外零件,最终能实现比较理想的效果。先放出上位机界面:


(原文件名:2.jpg)


(原文件名:1.jpg)


(原文件名:3.jpg)


(原文件名:4.jpg)


(原文件名:5.jpg)

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2011-4-24 00:04:09 | 显示全部楼层
Mark

出0入0汤圆

 楼主| 发表于 2011-4-24 00:05:45 | 显示全部楼层
一、舵机信号格式

    从我了解的情况来看,比例舵机的信号格式已经有相当的历史了,至少20年吧,请专家指正。
    目前大部分舵机,信号都是从PPM多通道信号解调出来的,PPM从名字上看,是“脉冲位置调制”,但舵机信号却是“脉冲宽度调制”,即PWM。更准确来说,多路通道混合在一起的时候,是PPM的,解调出各路单独的信号时,就是PWM了。

    传统的舵机信号,是一个50Hz左右(注意,是左右,不标准的),脉宽为0.5ms~2.5ms的PWM方波。当然,实际上,占业界主要地位的扶它爹和健人系列的遥控器,脉宽一般在0.9ms~2.1ms,这些信息我并没有权威数据,只是经验,有专家请指正。 对舵机设备而言,有一个中点,然后围绕这个中点,有正负信号之说。一般来讲, 扶和健的信号中点为1.5ms(精确来说是1520us,有专家请指正),代表0%,就是中点;1.5~2.1ms之间的600个us,代表0~120%的舵量;1.5->0.9ms之间的600个us,代表0~-120%的舵量,并且是线性关系。

    如果用示波器可以看到,这个PWM波的占空比是非常低的,在20ms的周期内,只有2ms的脉宽。之所以这样设计,是由于传统的8通道~9通道模型遥控时,需要50Hz左右的传输频率,就规定死了20ms的周期,在这20ms里面,要传输8~9个通道信号,每个通道都只有2ms多的时间,用传统的74HC164移位寄存器来解调的时候,解出的各个单路信号,就只能还是20ms周期了。


(原文件名:s.JPG)

出0入0汤圆

发表于 2011-4-24 00:43:37 | 显示全部楼层
Mark

出0入0汤圆

发表于 2011-4-24 01:26:42 | 显示全部楼层
扶它爹

囧。。。

支持LZ

出75入88汤圆

发表于 2011-4-24 07:05:52 | 显示全部楼层
楼主继续啊!等着在!

出0入0汤圆

发表于 2011-4-24 07:30:53 | 显示全部楼层
专业

出0入0汤圆

发表于 2011-4-24 07:49:41 | 显示全部楼层
lz顶你哦,加油!

高手 2-3  天就能完成,  常人 做 上面的软件起码 1个月!

出0入0汤圆

发表于 2011-4-24 08:48:49 | 显示全部楼层
通过电流获知动作速度--------真是好办法

出0入0汤圆

 楼主| 发表于 2011-4-24 09:00:39 | 显示全部楼层
二、为什么用电流检测的方法
   测舵机的扭矩,需要机械装置,这是显而易见的,那么,测舵机的响应速度呢? 从道理上看,也应该有一个反馈装置,用于收集舵机摇臂的角度,来判断舵机是否到位,比如用舵机摇臂带动一个电位器,然后检测电位器的中点电压;或者用光栅,霍尔等等。其实我也一直这样想的。不过,很早就有人提出了电流检测的方法,具体多早我不知道。
   电流检测方法,是根据这样一个事实情况来设计的:目前的舵机,都是利用电动机作为动力源,当舵机需要转动角度的时候,电动机做功并消耗电能,产生电流,当舵机运动到指定角度时,电动机停止,并停止消耗电能。

   从一些商用的产品来看,比如我前面提到带舵机速度检测的充电器,这种方法已经被实用化了,应该具备一定的合理性。我经过这次小开发,也发现这种方法,有其可靠的一面,也有其局限性,但总体来说,是可用的,好用的,对模友而言,值得使用。

   要检测一个设备的工作电流,有好多方法,最简单的就是在回路上串上一个采样电阻;进一步考虑,如果将电阻串在GND回路上,对于电路的要求就更简单了。就本案而言,我们对这个电流并无精度要求,只需要判断有电流还是没有电流,电流大概多大即可。
   我通过实测发现,只需要检测舵机黑色信号线上压降即可——没错,不需要任何额外电阻,舵机线的线阻就可以了!如下图:

(原文件名:s1.JPG)

   图的右边是舵机插头,从上到下分别是信号SIGNAL,电源正VCC,电源负GND。在舵机实际工作的时候,在图中黑色粗线所示的GND上,就会产生一个微小的压降(实测大约几十mV,当然,和线的质量有关,如果你用的是磁铁能吸起来的铜线的话,这个压降会大不少)。为了减少电路的负担,我在设计时,特意选用了比较细的电线约10cm,电阻大概0.05欧~0.1欧,产生的压降在50mV上下(视舵机的不同而不同)。

出0入0汤圆

 楼主| 发表于 2011-4-24 09:23:28 | 显示全部楼层
三、舵机工作过程分析
    舵机一般采用的是P控制:它用一个电位器检测摇臂角度,用电动机带动齿轮箱来转动摇臂,驱动电动机的电压大小,就取决于电位器检测到的角度和期望角度的差值。
    舵机的具体电路就不分析了,现在的舵机一般都是专用的舵机驱动芯片,高级一些的舵机采用的是单片机(AVRM8使用也很多),从我观察的4~5种舵机来看,驱动方式还是有差异的,我这里选比较典型(常见)的驱动过程来介绍。如下图:

(原文件名:s3.JPG)

1、等待期就是舵机不工作在等待命令(等待舵机驱动脉宽信号的脉宽变化)
2、当发现脉宽变化后,舵机开始驱动电动机工作,产生较大电流,随着摇臂角度逼近期望角度,电流越来越小,这段时间就是转动期;
3、当接近期望角度的时候,会出现一段间歇期,这个应该是摇臂和期望角度的差值,超过了电位器的解析能力了(即进入电位器的死区)
4、很快由于惯性,摇臂会过冲,这样,驱动电路又开始命令舵机反转,如此震荡多次,直至稳定,这是调整期


(原文件名:舵机波形2.jpg)

   这是一个实际抓取的0~60度转动的电流波形(黄色CH1线),蓝色CH2线是我编写的软件根据这些情况将调试LED点亮/熄灭的波形,照片拍摄时,我已经完成了软件设计,所以可以看到软件能够清晰地分辨各个区间。



   从图上可以看出,这个舵机的响应速度是0.08s多一点。这里有2点要说明,见下图:

(原文件名:w.JPG)
1、舵机停止工作的时间,要以A点来计算,不能以B点来计算,B点是检测到舵机稳定了一段时间后,认为舵机已经停止工作了,但其实此时舵机已经停止工作一段时间了
2、B点之后还出现了一些电流波形,这是舵机常见的“颤抖”现象,其根源是电位器位置检测抖动以及驱动信号检测抖动所致。如果这个抖动刚好出现在B之前,就会引起误会。因此在测量时需要采取合适的测量排除这种情况。

出0入0汤圆

 楼主| 发表于 2011-4-24 09:25:06 | 显示全部楼层
再上传一些波形,可以看出,对于这类舵机,软件都能准确分隔各个区间:

(原文件名:舵机波形0.jpg)


(原文件名:舵机波形1.jpg)


(原文件名:舵机波形3.jpg)


(原文件名:舵机波形4.jpg)

出0入0汤圆

发表于 2011-4-24 09:28:56 | 显示全部楼层

出0入0汤圆

 楼主| 发表于 2011-4-24 09:57:04 | 显示全部楼层
四、电路设计
    为了简化显示以及人机UI方面的设计工作,加快进度,我选择了AVRCDC作为实现舵机测试仪的平台。电路原理参见下图,实际上我用的是几年前自己做的AVRCDC板子,和原版的差异有:
1、在D+ D-上使用3.3V稳压管,比原版这个设计兼容性更好。
2、找了两个闲置的IO口加上LED做显示,本案中LED几乎无用


(原文件名:s4.jpg)

     这是初始化代码,可以看到,做舵机测试仪,就是拉出PC2作为AD检测,沿用原来的TXD(PD1)作为信号输出,之所以选择这两个脚,是出于焊接方便考虑。

(原文件名:c1.jpg)


(原文件名:S5.jpg)

好了,这就是电路的全部。

  
(原文件名:s6.jpg)
1、CC可选,据我试验,放和不放,波形并无明显变化
2、二极管这个意味着舵机从USB取电,这个玩玩还可以,实际测试时,USB供电能力有限,舵机响应速度会慢不少
3、等效电阻这根连线要细一些,长一些

出0入0汤圆

发表于 2011-4-24 12:21:41 | 显示全部楼层
MARK

出0入0汤圆

发表于 2011-4-24 13:01:40 | 显示全部楼层
mark

出0入0汤圆

 楼主| 发表于 2011-4-26 23:19:21 | 显示全部楼层
上面的电路图是AVRCDC的,但实际上,USBASP随手可得,因此我花了一点时间,将代码改为USBASP版本。接着我就介绍,如何将USBASP做成一个舵机测试仪。


所需材料:
1、USBASP成品一个
2、导线若干
3、3PIN 舵机插针2组

这是我前年12元一个在淘宝买的USBASP,当时买了俩,就想折腾一下。。。现在如愿了

(原文件名:h1.jpg)


(原文件名:h2.jpg)

出0入0汤圆

 楼主| 发表于 2011-4-26 23:27:09 | 显示全部楼层
把USBASP的自烧录跳线短接上,烧入我提供的固件

(原文件名:h3.JPG)

烧录好以后,把ISP座焊掉,当然,你可以留着ISP座

(原文件名:h4.jpg)

焊上舵机插针,你可以用线延长出去,这样可以随意布局,我把它焊在板子上,需要费心设计一下

(原文件名:h5.jpg)

焊上几根导线,连接PC2口等,大功告成。(蓝色的导线是作为采样电阻使用的,是比较细的导线,30cm长)

(原文件名:h6.jpg)

出0入0汤圆

 楼主| 发表于 2011-4-26 23:32:32 | 显示全部楼层
为了好看一些,我找了一个0.1欧的电阻,把蓝色导线换掉了,如果你有条件,也可以这样做

(原文件名:h7.jpg)


(原文件名:h8.jpg)



(原文件名:h9.jpg)


(原文件名:h10.jpg)

出0入0汤圆

发表于 2011-4-26 23:35:20 | 显示全部楼层
顶起.

出0入0汤圆

 楼主| 发表于 2011-4-26 23:43:04 | 显示全部楼层
插上设备,安装AVRCDC.INF,为了便于区分,我改了一下PID,并改了INF,使得它显示USB-SERVO

(原文件名:IMG_20110426_233454.jpg)


(原文件名:S08.jpg)

出0入0汤圆

 楼主| 发表于 2011-4-26 23:44:50 | 显示全部楼层
连上舵机和UBEC,运行软件(软件自动搜索到这个串口),就可以检测了,我试验了好几种舵机,测出的速度参数和厂家的标称值一致性很高!

(原文件名:h11.jpg)


(原文件名:h12.jpg)


(原文件名:IMG_20110426_233406.jpg)

出0入0汤圆

 楼主| 发表于 2011-4-28 21:49:01 | 显示全部楼层
原理图和制作等,我都发博客了
http://blog.ednchina.com/galee/

出0入0汤圆

发表于 2011-4-28 22:12:47 | 显示全部楼层
再顶,顶到你出来为止,嘿.

出0入0汤圆

 楼主| 发表于 2011-5-2 20:53:47 | 显示全部楼层
回复【23楼】liang_work  
再顶,顶到你出来为止,嘿.
-----------------------------------------------------------------------

出来了!

出0入0汤圆

发表于 2011-5-3 06:11:50 | 显示全部楼层
先占位

出0入0汤圆

发表于 2011-5-3 08:19:09 | 显示全部楼层
强力顶...

出0入228汤圆

发表于 2011-5-3 08:38:32 | 显示全部楼层
好东西

出0入0汤圆

发表于 2011-5-3 09:00:05 | 显示全部楼层
这贴不顶不行

出0入0汤圆

发表于 2011-5-3 09:20:57 | 显示全部楼层
好 好 东东啊  LZ一个强也........

出0入0汤圆

发表于 2011-5-3 09:43:43 | 显示全部楼层
mark

出0入0汤圆

 楼主| 发表于 2011-5-3 10:24:09 | 显示全部楼层
实际使用中,发现了一个问题:如果测速测到一半拔掉舵机。。。呵呵,软件要改进一下。

出0入0汤圆

发表于 2011-5-3 10:49:40 | 显示全部楼层
好贴,需要至酷!

出0入0汤圆

发表于 2011-5-3 13:19:07 | 显示全部楼层
分析的好透彻,佩服!

出0入0汤圆

发表于 2011-5-6 23:22:52 | 显示全部楼层
好贴,出来了,也要顶.

出0入0汤圆

发表于 2011-5-6 23:46:21 | 显示全部楼层
mark~

出0入0汤圆

发表于 2011-5-7 00:15:35 | 显示全部楼层
:
    高手,顶一个。

出0入0汤圆

发表于 2011-5-8 23:39:25 | 显示全部楼层
第一个Mark!

出0入0汤圆

发表于 2011-5-8 23:52:58 | 显示全部楼层
高手呀,记号一样~~~

出0入0汤圆

发表于 2011-8-24 11:35:56 | 显示全部楼层
在5imx上看到,mark一下

出0入0汤圆

发表于 2011-8-24 12:09:31 | 显示全部楼层
mark ,用0欧电阻代替可否?

出0入0汤圆

发表于 2011-8-24 15:47:33 | 显示全部楼层
软件能下到吗?

出65入0汤圆

发表于 2011-8-29 00:31:44 | 显示全部楼层
mark 舵机测试

出0入0汤圆

发表于 2011-8-29 00:50:45 | 显示全部楼层
不错。

出0入0汤圆

 楼主| 发表于 2011-8-30 09:20:38 | 显示全部楼层
回复【40楼】HYZ1989  
mark ,用0欧电阻代替可否?
-----------------------------------------------------------------------

这是电流采样,需要有一点电阻。。。用0欧不太好。

出0入0汤圆

发表于 2011-8-30 21:02:01 | 显示全部楼层
mark

出0入8汤圆

发表于 2011-10-7 03:22:09 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-10-21 20:25:36 | 显示全部楼层
回复【楼主位】gale
-----------------------------------------------------------------------

从51mx找到这来的,楼主果然给力,赞一个!

出0入0汤圆

发表于 2011-10-22 12:05:14 | 显示全部楼层
回复【10楼】gale
-----------------------------------------------------------------------

a点的时间怎么确定?

出0入0汤圆

发表于 2011-11-3 08:48:49 | 显示全部楼层
大清早的发现不少好帖子,果断标记

出0入0汤圆

发表于 2011-11-6 13:14:19 | 显示全部楼层

出0入0汤圆

发表于 2011-11-8 10:30:29 | 显示全部楼层
好东西。。

出0入0汤圆

 楼主| 发表于 2011-12-14 19:58:23 | 显示全部楼层
回复【48楼】xsq53602  
回复【10楼】gale
-----------------------------------------------------------------------
a点的时间怎么确定?
-----------------------------------------------------------------------

带消抖判断可以得到b点对吧。。。然后减去消抖动时间。。。。

出0入8汤圆

发表于 2011-12-14 20:07:48 | 显示全部楼层
回复【22楼】gale
原理图和制作等,我都发博客了
http://blog.ednchina.com/galee/
-----------------------------------------------------------------------

进不去,是不是写错?

出0入0汤圆

 楼主| 发表于 2011-12-27 14:04:22 | 显示全部楼层
回复【53楼】qiufeng  秋枫
回复【22楼】gale
原理图和制作等,我都发博客了
http://blog.ednchina.com/galee/
-----------------------------------------------------------------------
进不去,是不是写错?
-----------------------------------------------------------------------


碰上EDN改版了!

http://bbs.ednchina.com/BLOG_ARTICLE_2029373.HTM

出0入0汤圆

发表于 2012-2-9 19:52:15 | 显示全部楼层
此帖不酷,天理难容!!!

出0入0汤圆

发表于 2012-2-9 21:33:10 | 显示全部楼层
回复【55楼】ledatou
此帖不酷,天理难容!!!
-----------------------------------------------------------------------

出0入0汤圆

发表于 2012-2-18 10:12:48 | 显示全部楼层
回复【2楼】gale
-----------------------------------------------------------------------

顶  顶   楼主我要你的QQ号   我要你的QQ号

出0入0汤圆

发表于 2012-2-18 10:14:53 | 显示全部楼层
回复【楼主位】gale
-----------------------------------------------------------------------

楼主快出来   不方便的话就加我   360288148  我等你  再顶  加我的时候说下  死区  谢谢

出0入0汤圆

发表于 2012-12-3 12:35:08 | 显示全部楼层
迟到的帮顶!

出0入0汤圆

发表于 2014-9-17 13:44:52 | 显示全部楼层
看了楼主的博客,好东西怎么沉了呢?帮忙把下位机代码、上位机源码和驱动程序贴上来吧

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2014-9-17 14:39:56 | 显示全部楼层
帮顶,不错。

出0入0汤圆

发表于 2014-10-18 10:12:53 | 显示全部楼层
好东西。。

出0入0汤圆

发表于 2014-10-19 12:48:48 | 显示全部楼层
哈哈,这个东西感觉不错

出0入0汤圆

发表于 2016-1-11 00:10:24 | 显示全部楼层
学习下~

出0入0汤圆

发表于 2016-1-11 09:56:15 | 显示全部楼层
不错,mk了

出0入0汤圆

发表于 2016-2-29 10:19:27 | 显示全部楼层
对于吾等菜鸟,原理讲述还是浅显易懂的,!

出0入0汤圆

发表于 2016-2-29 10:24:30 | 显示全部楼层
路过
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-6-12 10:36

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表