查看: 940|回复: 4

[基础知识] 180和360舵机的学习与分辨

[复制链接]
本帖最后由 hellonhy 于 2019-7-28 18:17 编辑

                                                       180和360舵机的学习与分辨


           在进行舵机选型的时候,我们经常会疑惑究竟180和360舵机有什么区别,是不是180舵机可以转180度而360舵机可以转360度呢?其实并不仅仅是这样的,这两款舵机还有着其他不一样的地方。下面我将为大家慢慢展示。
            介绍360舵机驱动方式前,我们先学习一般的舵机基本控制原理。下面先用180度舵机进行驱动原理的举例。
               截图201907281721105572.png
                           180和360舵机照片

一、180度舵机驱动原理:

           1.舵机的结构与控制原理

             截图201907281746174956.png
           我们可以很明显的看出,舵机和步进电机的动力是有着很大区别的,舵机的驱动力来自——直流电机,通过变速齿轮的传动和变速,将动力传输到输出轴,同时,舵机内部都设有角度传感器和控制电路板,用来参与舵机的转动角度的控制和信号的反馈检测工作。

           2.三根输入线的识别与实物连线介绍

            截图201907281747295595.png                   截图201907281748094592.png
           
           实物连线介绍,分别Vcc(红色线),Gnd(灰色线),Signal (橙色线)。若遇到有的舵机三根全是黑色的线,记得查看使用说明。

           3.舵机的工作原理

           舵机的控制信号,一般是脉宽调制(PWM)信号,如下图,直观反映了PWM信号和舵机转动角度的关系,你也可以简单的理解为,通过给舵机通电的时间控制,结合角度传感器的反馈信号检测和控制,实现了舵机的精确角度控制。
            截图201907281749087182.png

           舵机的控制信号周期为20MS的脉宽调制信号(PWM),占空比0.5~2.5ms 的正脉冲宽度和舵机的转角-90°~90°相对应,呈线型变化。也就是说,给舵机提供一定的脉宽,他的输出轴就会保持一定的对应角度,无论外接转矩怎么改变,知道给他提供另外一个脉冲信号,他才会改变输出角度到新的对应的位置上。
           舵机内部有一个基准电路,产生周期为20MS,宽度为1.5MS的脉冲信号,有一个比较器,将外加信号与基准信号相比较,判断出方向和大小,从而产生电机的转动信号。
           舵机是一种位置伺服驱动器,转动范围不能超过180度,适用于那些需要不断变化并可以保持的驱动器中,比喻说机器人的关节、飞机的多面等。

.360度舵机驱动原理:

           360舵机的驱动方式和以上介绍的180度舵机的驱动方式差不多。
           特别注意:360度舵机与一般舵机的区别是:给一般舵机一个PWM信号,舵机会转到一个特定角度,而给360度舵机一个PWM信号,舵机会以一个特定的速度转动,类似与电机。但与电机不同的是,360舵机是闭环控制,速度控制稳定。
           PWM信号与360舵机转速的关系:
           
           0.5ms----------------正向最大转速;
           1.5ms----------------速度为0;
           2.5ms----------------反向最大转速;
           180度舵机比较,需要明确的是360度舵机无法像180度舵机一样控制角度,它只能控制方向和速度。

三、360度舵机驱动程序示例:

           学习360度舵机驱动程序前,我们要做的准备工作:首先了解Servo类:

           servo类下有以下成员函数
           attach(); //连接舵机,设定舵机的接口。2~13接口可利用。
           write(); //角度控制,用于设定舵机旋转角度的语句,可设定的角度范围是0°到180°。这条语句是直接写角度,舵机的每个转动到了一个位置都有相应的角度。舵机通过控制PWM的宽度来决定转的角度。
           writeMicroseconds(); //用于设定舵机旋转角度的语句,直接用微秒作为参数。(注意。360度舵机不能进行角度控制,它只能控制方向和速度。)
           read();    //读上一次舵机转动角度,用于读取舵机角度的语句,可理解为读取最后一条write()命令中的值。
           attached(); //判断舵机参数是否已发送到舵机所在接口。
           detach();  //断开舵机连接
           准备工作做完:直接写程序:
           下面程序的功能是:通过按钮模块来控制360度舵机的运动。具体内容是按一下按钮,360度舵机正方向运动4s。
   
           程序:
            截图201907281758382632.png

           SVG连线图:
            截图201907281759208709.png

四、挑战一下:
           做一个控制180舵机运动的程序,观察180和360有些什么区别。





DFry6Vdy1Xr  见习技师

发表于 2019-7-31 20:33:37

很实用
回复 支持 反对

使用道具 举报

 见习技师

发表于 2019-9-3 16:14:26

小白问个问题,360°舵机能当作编码电机来用吗?我能通过控制360°舵机的通电时间来让小车走直线吗?
回复 支持 反对

使用道具 举报

hellonhy  见习技师
 楼主|

发表于 2019-9-4 10:06:14

陸 发表于 2019-9-3 16:14
小白问个问题,360°舵机能当作编码电机来用吗?我能通过控制360°舵机的通电时间来让小车走直线吗? ...

它可以相当于是一个自带电机驱动的电机,但又完全不是一个正常的电机,正常电机可以转很多圈。360舵机只能转360°,也就是一圈,所以,怎么去驱动小车呢。
回复 支持 反对

使用道具 举报

gada888  版主

发表于 2019-10-16 21:06:44

有用,记笔记
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
wifi气象站

硬件清单

btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2019 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail