大家好,又见面了,我是你们的朋友全栈君。
目录
1 简介
舵机控制的机器人
● 我猜你肯定在机器人和电动玩具中见到过这个小东西,至少也听到过它转起来时那与众不同的“吱吱吱”的叫声。对,它就是遥控舵机,常用在机器人技术、电影效果制作和木偶控制当中,不过让人大跌眼镜的是,它竟是为控制玩具汽车和飞机才设计的。
● 舵机的旋转不像普通电机那样只是古板的转圈圈,它可以根据你的指令旋转到0至180度之间的任意角度然后精准的停下来。如果你想让某个东西按你的想法运动,舵机可是个不错的选择,它控制方便、最易实现,而且种类繁多,总能有一款适合你呦。
2 构造
舵机主要是由外壳、电路板、驱动马达、减速器与位置检测元件所构成。其工作原理是由接收机发出讯号给舵机,经由电路板上的 IC驱动无核心马达开始转动,透过减速齿轮将动
力传至摆臂,同时由位置检测器送回讯号,判断是否已经到达定位。位置检测器其实就是可变电阻,当舵机转动时电阻值也会随之改变,藉由检测电阻值便可知转动的角度。一般的伺服马达是将细铜线缠绕在三极转子上,当电流流经线圈时便会产生磁场,与转子外围的磁铁产生排斥作用,进而产生转动的作用力。依据物理学原理,物体的转动惯量与质量成正比,因此要转动质量愈大的物体,所需的作用力也愈大。舵机为求转速快、耗电小,于是将细铜线缠绕成极薄的中空圆柱体,形成一个重量极轻的无极中空转子,并将磁铁置於圆柱体内,这就是空心杯马达。
舵机是一种位置(角度)伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统。目前,在高档遥控玩具,如飞机、潜艇模型,遥控机器人中已经得到了普遍应用。 [2]
舵机是船舶上的一种大甲板机械。舵机的大小由外舾装按照船级社的规范决定,选型时主要考虑扭矩大小。
在航天方面,舵机应用广泛。航天方面,导弹姿态变换的俯仰、偏航、滚转运动都是靠舵机相互配合完成的。舵机在许多工程上都有应用,不仅限于船舶。
3 舵机和伺服电机有什么区别
伺服主要靠脉冲来定位,基本上可以这样理解,伺服电机接收到1个脉冲,就会旋转1个脉冲对应的角度,从而实现位移,因为,伺服电机本身具备发出脉冲的功能,所以伺服电机每旋转一个角度,都会发出对应数量的脉冲,这样,和伺服电机接受的脉冲形成了呼应,或者叫闭环,如此一来,系统就会知道发了多少脉冲给伺服电机,同时又收了多少脉冲回来,这样,就能够很精确的控制电机的转动,从而实现精确的定位,可以达到0.001mm。
那么舵机是什么呢?舵机是个俗称,是玩航模、船模的人起的。因为这种电机比较常用于舵面操纵。所谓舵机,其实就是个低端的伺服电机系统,它也是最常见的伺服电机系统,因此英文叫做Servo,就是Servomotor的简称。它将PWM信号与滑动变阻器的电压相比对,通过硬件电路实现固定控制增益的位置控制。也就是说,它包含了电机、传感器和控制器,是一个完整的伺服电机(系统)。价格低廉、结构紧凑,但精度很低,位置镇定能力较差,能够满足很多低端需求。
4 舵机类型
船用舵机目前多用电液式,即液压设备由电动设备进行遥控操作。有两种类型: 一种是往复柱塞式舵机,其原理是通过高低压油的转换而做功产生直线运动,并通过舵柄转换成旋转运动。另一种是转叶式舵机,其原理是高低压油直接作用于转子,体积小而高效,但成本较高。
5 舵机构造
舵机主要是由外壳、电路板、驱动马达、减速器与位置检测元件所构成。其工作原理是由接收机发出讯号给舵机,经由电路板上的 IC驱动无核心马达开始转动,透过减速齿轮将动力传至摆臂,同时由位置检测器送回讯号,判断是否已经到达定位。位置检测器其实就是可变电阻,当舵机转动时电阻值也会随之改变,藉由检测电阻值便可知转动的角度。一般的伺服马达是将细铜线缠绕在三极转子上,当电流流经线圈时便会产生磁场,与转子外围的磁铁产生排斥作用,进而产生转动的作用力。依据物理学原理,物体的转动惯量与质量成正比,因此要转动质量愈大的物体,所需的作用力也愈大。舵机为求转速快、耗电小,于是将细铜线缠绕成极薄的中空圆柱体,形成一个重量极轻的无极中空转子,并将磁铁置於圆柱体内,这就是空心杯马达。
为了适合不同的工作环境,有防水及防尘设计的舵机;并且因应不同的负载需求,舵机的齿轮有塑胶及金属之区分,金属齿轮的舵机一般皆为大扭力及高速型,具有齿轮不会因负载过大而崩牙的优点。较高级的舵机会装置滚珠轴承,使得转动时能更轻快精准。滚珠轴承有一颗及二颗的区别,当然是二颗的比较好。目前新推出的 FET 舵机,主要是采用 FET(Field Effect Transistor)场效电晶体。FET 具有内阻低的优点,因此电流损耗比一般电晶体少。
6 伺服电机工作原理
1、伺服系统(servo mechanism)是使物体的位置、方位、状态等输出被控量能够跟随输入目标(或给定值)的任意变化的自动控制系统。伺服主要靠脉冲来定位,基本上可以这样理解,伺服电机接收到1个脉冲,就会旋转1个脉冲对应的角度,从而实现位移,因为,伺服电机本身具备发出脉冲的功能,所以伺服电机每旋转一个角度,都会发出对应数量的脉冲,这样,和伺服电机接受的脉冲形成了呼应,或者叫闭环,如此一来,系统就会知道发了多少脉冲给伺服电机,同时又收了多少脉冲回来,这样,就能够很精确的控制电机的转动,从而实现精确的定位,可以达到0.001mm。直流伺服电机分为有刷和无刷电机。有刷电机成本低,结构简单,启动转矩大,调速范围宽,控制容易,需要维护,但维护不方便(换碳刷),产生电磁干扰,对环境有要求。因此它可以用于对成本敏感的普通工业和民用场合。
无刷电机体积小,重量轻,出力大,响应快,速度高,惯量小,转动平滑,力矩稳定。控制复杂,容易实现智能化,其电子换相方式灵活,可以方波换相或正弦波换相。电机免维护,效率很高,运行温度低,电磁辐射很小,长寿命,可用于各种环境。
2、交流伺服电机也是无刷电机,分为同步和异步电机,目前运动控制中一般都用同步电机,它的功率范围大,可以做到很大的功率。大惯量,最高转动速度低,且随着功率增大而快速降低。因而适合做低速平稳运行的应用。
3、伺服电机内部的转子是永磁铁,驱动器控制的U/V/W三相电形成电磁场,转子在此磁场的作用下转动,同时电机自带的编码器反馈信号给驱动器,驱动器根据反馈值与目标值进行比较,调整转子转动的角度。伺服电机的精度决定于编码器的精度(线数)。
交流伺服电机和无刷直流伺服电机在功能上的区别:交流伺服要好一些,因为是正弦波控制,转矩脉动小。直流伺服是梯形波。但直流伺服比较简单,便宜。
7 伺服电机作用
伺服电机的主要作用是随着电压的变化控制转速均匀稳定,伺服电机主要是靠脉冲来定位,当接受到一个脉冲电流,就会相应的旋转一个脉冲的对应角度,从而实现唯一,因为伺服电机本身也具有发出脉冲电流的功能,每当旋转一个角度都会发出对应数量的脉冲,和伺服电机接受的脉冲形成了呼应,或者叫闭环,如此一来,系统就会知道发了多少脉冲给伺服电机,同时又收了多少脉冲回来,这样就能够精确的控制电机的转动,精确的定位可以达到0.001mm。
8 舵机是什么?
伺服电机通常被称为舵机,它是一种带有输出轴的小装置。当我们向伺服器发送一个控制信号时,输出轴就可以转到特定的位置。只要控制信号持续不变,伺服机构就会保持轴的角度位置不改变。如果控制信号发生变化,输出轴的位置也会相应发生变化。日常生活中,舵机常被用于遥控飞机、遥控汽车、机器人等领域。
舵机在机器人领域非常有用。因为舵机有内置的控制电路,它们的尺寸虽然很小,但输出力够大。像Futaba S-148这样的标准舵机能提供 0.3牛/米的扭矩,相对于它的外形大小来说这已经足够强大了。同时,舵机消耗的能量与机械负荷成正比。因此,一个轻载的舵机系统不会消耗太多的能量。
9 舵机的内部结构
舵机的内部结构如上图所示。你可以看到控制电路,马达,一组齿轮和外壳。
当然还包括电源线(+5V,红色),地线(GND黑色)和PWM控制线(黄色或白色)。
10 舵机的工作原理
舵机内部的控制电路,电位计(可变电阻器)和电机均被连接到电路板上,如内部结构图的右边部分。控制电路通过电位计可监控舵机的当前角度。
如果轴的位置与控制信号相符,那么电机就会关闭。如果控制电路发现这个角度不正确,它就会控制马达转动,直到它达到指定的角度。舵机角度根据制造商的不同而有所不同。比如,一个180度的舵机,它可以在0度至180度之间运动。由于限位装置被安装在主输出装置上,超出这个范围机械结构就不能再转动了。
舵机的输出功率与它所需要转动的距离成正比。如果输出轴需要转动很长的距离,马达就会全速运转,如果它只需要短距离转动,马达就会以较慢的速度运行,这叫做速度比例控制。
11 如何让舵机转到指定角度?
控制线用于传输角度控制信号。这个角度是由控制信号脉冲的持续时间决定的,这叫做脉冲编码调制(PCM)。舵机的控制一般需要一个20ms左右的时基脉冲,该脉冲的高电平部分一般为0.5ms-2.5ms范围,总间隔为2ms。脉冲的宽度将决定马达转动的距离。例如:1.5毫秒的脉冲,电机将转向90度的位置(通常称为中立位置,对于180°舵机来说,就是90°位置)。如果脉冲宽度小于1.5毫秒,那么电机轴向朝向0度方向。如果脉冲宽度大于1.5毫秒,轴向就朝向180度方向。以180度舵机为例,对应的控制关系是这样的:
0.5ms————-0度;
1.0ms————45度;
1.5ms————90度;
2.0ms———–135度;
2.5ms———–180度;
12 用Arduino UNO 控制舵机
测试的硬件条件:
• 1 × Arduino UNO.
• 1 × 舵机.
• 1 × ULN2003 驱动IC(用于防止直接通过Arduino驱动舵机造成问题.)
• 1 × 10 KΩ 电阻.
按照下图所示进行连接,如图所示:
打开Arduino IDE,新建一个文件。
/* 使用可变电位计控制舵机转动 */
#include
Servo myservo; // 创建一个 servo object
int potpin = 0; // analog pin 用来连接电位计
int val; // val存储analog pin的值
void setup() {
myservo.attach(9); // 连接舵机控制信号(黄或白)至 pin 9
}
void loop() {
val = analogRead(potpin);
// 读出可变电位计的值 (范围 0 - 1023)
val = map(val, 0, 1023, 0, 180);
// 按舵机角度进行设置 (范围 0 - 180)
myservo.write(val); //根据val值设置舵机位置
delay(15);
}
连线注意:舵机有三个引脚(电源、GND和信号)。电源线通常是红色的,应该连接到Arduino控制板上的5V针脚;GND地线通常是黑色或棕色的,应该连接到ULN2003 IC上10-16针的任意一个;信号线通常是黄色或白色的,应该连接到Arduino 9号引脚。
13 可变电位计
可变电位计是一个分压器,它可以根据可变电阻的值来调整电路的输出电压,电阻是通过旋钮来控制的。它有三个引脚:GND,信号, +5 V,如下图所示
以上工作就绪并上传代码后,正常情况下当我们旋转可变电位计,舵机将对应改变其角度位置。
Refs
1,http://www.elecfans.com/d/675858.html
2, https://baike.baidu.com/item/舵机/2382414?fr=aladdin
3 https://blog.csdn.net/weixin_39901416/article/details/79926745
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/131337.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...