创客们的DIY必备“法宝”:舵机
2018-09-28刘宗凡邱元阳倪俊杰
刘宗凡 邱元阳 倪俊杰
杨磊:生活中经常在模型制作中看到舵机的身影,那么舵机怎么分类呢?
刘宗凡:舵机有很多种分法。
(1)按使用舵机的航模类型分为:①航空模型舵机(要求速度快、精度高)。②航海模型舵机(要求防水、扭力大)。③车模舵机(要求扭力大且有一定防水能力)。当然,这些特点都是相对的。
(2)按照舵机信号分为:①模拟舵机(速度稍慢)。②数字舵机(速度相对较快)。
(3)按使用的齿轮分为:①塑料齿舵机(强度稍差但便宜省电)。②金属齿舵机(一般扭力较大、强度高但价格偏贵且费电)。
(4)按尺寸(空模)分为:①标准舵机(相对较大)。②9g舵机和8g舵机(8g舵机比9g舵机小一圈,但都比标准舵机小得多)。
(5)按用途(油动固定翼)分为:①油门舵机(不要求过大扭力,要求齿轮的可靠以及整个舵机的可靠,因为发动机油门是整个飞机中震动最厉害的部位)。②副翼舵机(尺寸和精度上有要求,是扁的,比较容易放进薄的机翼但要比标准舵机宽)。③垂尾/平尾舵机(要求扭力大、精度高)。
杨磊:这么多种类的舵机,该如何选择呢?
邱元阳:其实,选择舵机并没那么难,尽管上述分得很细,但无非还是在了解性能的基础上,按照我们想做的物品来选择舵机。我认为可以把舵机的种类再粗略地分为大扭力、微型、标准舵机。如图1所示,最右边身材不错的是常见的标准舵机,中间两个小不点是体积最小的微型舵机,左边的魁梧的那个是体积最大的大扭力舵机。它们都是同样的三线控制,因此可以根据需求换个大个的或小个的。
除了大小和重量,舵机还有两个主要的性能指标——扭力和转速,这两个指标由齿轮组和电机所决定。扭力,通俗地讲就是舵机有多大的劲儿。在5V的电压下,标准舵机的扭力是5.5千克/厘米(75盎司/英寸)。转速很容易理解,就是指从一个位置转到另一个位置要多长时间。在5V电压下,舵机标准转度是0.2秒移动60度。总之,和我们人一样,舵机的个子越大,转得就越慢但也越有劲儿。
舵机的改装
杨磊:常用的舵机都是0~180度转动,如果我们的项目需要0~360度旋转,是否可以实现呢?
邱元阳:其实,现在市面上已经有舵机是0~360度旋转了,在很多机械臂上就有使用,如Parallax公司(BASIC Stamp微处理器的制造商)有一款即用型、标准尺寸的连续转动舵机。不过,接下来我以HTX500舵机为例,介绍一下如何将传统的舵机改装成0~360度的舵机。
如图2所示,任何舵机都能变成一个双向、可调速的降速齿轮电机。通常情况下,需要驱动芯片和其他一些零件才能控制电机的转速和方向,这些部件舵机中都会附带。
需要改动的是部分的电路模块和机械模块,电路模块中,我们要找两个阻值相同的电阻来充当电位计,机械模块中,则要去掉防止电机过速的挡板(如图3)。
首先,卸开舵机外壳,HTX500舵机的外壳由3个塑料挡板扣在一起(如图4)。你可以用一字改锥或类似的片状工具把它撬开,然后从轴上取下齿轮组,再从下面小心取出舵机的电路板。舵机上有两个机械制动挡板,用尖嘴钳卸下驱动轴基座上的金属挡板,用斜嘴钳卸下外壳顶部的塑料挡板。
然后,用两个阻值相加约5kΩ的电阻来替代5kΩ的电位计,实际制作中,选一对2.2kΩ的电阻就能满足要求了。把电位计上的3根线焊到电阻上(如上页图5),再把这个重新组装成的家伙用绝缘胶带或是绝缘管缠好(如上页图6),最后再和电路板一起重新塞进舵机外壳中,扣好外壳,一个改造好的舵机就呈现在我们面前了。手工制作阶段到此就结束了,但是现在还不能高兴得太早,因为只有找到基准点才算是大功告成。在理想条件下,如果两个电阻完全相同,舵机就能精确地停到90度的位置上。但理想和现实总是会差那么一点点,因此舵机没像理想中的那样精确。最后,为了使舵机控制更精确,我们要找到一个基准点,方法是把上面编的程序灌进电路中,通过实验来看舵机究竟停在哪个角度,这个角度每个舵机都不相同,所以得出结果后要记录下来。业余爱好者常用的舵机一般是用电位计来检测驱动轴转动到的角度,而用在工业机器人、电脑数控机床等大型系统中的舵机一般则要用旋转编码器来确定位置。光学旋转编码器的原理是把一个带有窄缝的圆盘固定在转轴上,然后用一个LED灯和一个光敏元件记录光通过窄缝照到光敏器件上的次数来计算当前旋转到的位置。生活中这种技术也很常见,如我们每天都要用的光电鼠标就是用这个原理制作成的。
创客教学中的舵机应用
杨磊:创客教育由于其特有的“做中学”“玩中学”的特点,受到了越来越多的中小学生的喜爱,优秀的作品层出不穷,很多作品中都能见到舵机的身影,能不能给初学者几个入门小案例呢?
倪俊杰:我先来说说如何控制舵机。我们都知道,舵机有一个三线的接口,黑色(或棕色)的线是接地线,红线接+5V电压,黄线(或是白色或橙色)接控制信号端(如图7)。
控制信号(如图8)是一种脉宽调制(PWM)信號,凡是微控制器都能轻松产生这种信号。这里我用的是Arduino开发环境下的微控制器。脉冲的高电平持续1到2毫秒,也就是1000到2000微秒。在1000微秒时,舵机左满舵。在2000微秒时,右满舵。当然,还可以通过调整脉宽来实现更大或者更小范围内的运动。控制脉冲的低电平每经过20毫秒(50次每秒),就要再次跳变为高电平,否则舵机就可能罢工,难以保持稳定。
如图9所示,红色和黑色的线分别接到Arduino开发板的5V电源脚和接地脚上。控制线接到Arduino开发板的数字输入/输出脚9脚上。Arduino控制舵机有两种方法,第一种是通过Arduino的普通数字传感器接口产生占空比不同的方波,模拟产生PWM信号进行舵机定位。第二种是直接利用Arduino自带的Servo函数进行舵机的控制,这种控制方法的优点在于程序编写。
我们先看看Servo函数控制方法。先不使用电位计控制,只是使用程序来控制一个舵机,将如图10所示的程序复制到Arduino IDE中。
接着,选择正确的板卡型号和端口,将程序上传到控制器中(如下页图11)。
在上传过程中,Arduino控制器板载的TX RX灯会频闪。按照图9中的电路进行实验硬件的连接时应注意,舵机线一种是红、黑、黄(红色连接Vcc、黑色连接GND、黄色连接信号S),还有一种是棕、红、橙(棕色连接GND、红色连接Vcc、橙色连接信号S)。
实验效果:舵机会自动从-90度转动到90度,再从90度转动到-90度。注意,当ArduinoUNO控制器连接到电脑供电时,舵机会自动归回中间位置。
代码回顾:
(1)#include
(2)Servo myservo:建立一个舵机对象,名称为myservo。
(3)myservo.attach(9):将引脚9上的舵机与舵机对象连接起来。
attach函数连接一个舵机对象到指定的引脚上,attch函数可以有1或3个参数。如果使用3个函数,第一个参数表示引脚,第二个参数表示最小角度(0度)的脉冲宽度,单位是微秒(默认是544),第三个参数表示最大角度(180度)的脉冲宽度,单位是微秒(默认是2400)。通常情况下,只需要设置舵机引脚,忽略第二和第三个参数。
(4)myservo.write(pos):写角度到舵机。
邱元阳:我再来介绍一个有趣的小案例——绘图小车。如图12,安装好的绘图小车包含了舵机两个、9V电池、面包板、Arduino电路板、三福记号笔各一个,外加一对塑料轮子。它的部件都可以用热胶粘到一起。关于轮子的选择,更是简单,只要是直径在1到3英寸的圆东西都能用,如塑料瓶盖之类的。为了减小摩擦,增大牵引力,可在车轮上缠上塑料胶带。这样组装阶段就完成了。接下来就是程序了,它的程序用一个包含基准点的变量来制动舵机,这个基准点我们上面已经通过实验测出。程序的控制流程为:先让一个舵机朝一个方向运动一段时间,然后换成另一个舵机转动,这样就能得到一个螺线形的图画了。如图13所示程序代码。
航模中的舵机应用
杨磊:很多学校将航模作为创客教育的一门重要科目。遥控飞机模型的制作,可以非常好地锻炼学生的动手动脑能力。固定翼飞机的制作和操控,对学生有极强的吸引力。其中,固定翼飞机模型中舵机的作用举足轻重,因为模型飞机需通过舵机来拉动副翼、升降舵、方向舵上下或者左右偏转,否则无法控制飞机升降和转弯,当然更别谈特技动作了。这些工作是需要舵机来完成的。能否详细介绍一下航模中的舵机使用及安装?
倪俊杰:我们首先要明确固定翼飞机中主要的三个功能舵:方向舵、升降舵、副翼(如图14)。
方向舵是指在垂直尾翼上用来实现飞机航向操纵的可活动的翼面部分,一般用铰链连接在垂直安定面后部。驾驶员可通过脚蹬操纵它左右偏转,从而控制飞机航向。方向舵左转,气流作用产生一个使尾部向右的力矩,使机头向左,改变了飞机航向。方向舵右转则机头向右。有时驾驶员也可以利用方向舵配合机翼的运动状态进行侧倾操纵,起到部分替代副翼的作用。在螺旋桨飞机上,如果多发动机中的一个发动机失效或单发动机飞机的螺桨扭矩异常都可通过调整方向舵的偏转,使飞机继续飞行,方向舵向两侧偏转的角度最大为20度至30度。
升降舵是飞机水平尾翼可操纵的部分,主要作用是控制飞机的俯仰运动,当需要飞机抬头向上飞行时,驾驶员就会操纵升降舵向上偏转,此时升降舵所受到的气动力向下,对飞机产生一个抬头的力矩,飞机就抬头向上了。反之,如果驾驶员操纵升降舵向下偏转,飞机就会在气动力矩的作用下低头。这种俯仰运动的强度由重心和水平尾翼面的距离(力臂的大小)和水平尾部翼面上气动力有效性决定。
副翼的翼展一般约占整个机翼翼展的六分之一到五分之一,其翼弦占整个机翼弦长的五分之一到四分之一。飞行员向左压驾驶盘,左边副翼上偏,右边副翼下偏,飞机向左滚转;反之,向右压驾驶盘右副翼上偏,左副翼下偏,飞机向右滚转。
刘宗凡:固定翼飞机通过遥控器控制舵机,调整功能舵的角度,进而控制飞机动作。舵机安装得是否合适,直接决定飞机的“安全”和超控。很多新手在连接舵机与舵面时都会遇到困难,上页图15为安装完的理想状态,下面用图解的方式介紹如何安装舵机。
图16是一个没有安装摇臂的舵机,怎么确定中立位是其中的难点。先装上摇臂,用手掰动它,摇臂处于两边最顶点,并且角度相差不大,这就是中立点(如图17、图18)。但为什么还会有角度差异呢?因为摇臂是通过齿轮安装上去的,避免不了有点角度的差异,这是可以忽略的。
打开遥控器,接上电源,这时可以看到摇臂处于中立位了。图19是连杆,要弯成这个样子,便于安装拆卸。安装好了就可以拧上螺丝了(如图20)。
航模的乐趣不仅仅是遥控飞机在天空翱翔,动手制作的过程也是其乐无穷的。以上只是介绍了一个舵机安装,根据所制作模型的不同,可能是3通道或4通道甚至更多,需要控制的舵机数量也随之增加,但安装过程都是一样的。