上海工信部网站,html网页生成工具,wordpress底部添加工信部链接,电商是干什么的目录 概述
1 认识舵机
1.1 舵机分类
1.2 舵机结构
1.3 舵机工作原理
1.4 舵机控制原理
1.5 舵机工作参数介绍
1.5.1 基本参数
1.5.2 舵机扭矩
2 系统硬件
2.1 硬件模块介绍
2.1.1 SG90 9G 360舵机
2.1.2 SG90 9G 180舵机
2.1.3 Arduino UNO 主板
2.2 整体结构…目录 概述
1 认识舵机
1.1 舵机分类
1.2 舵机结构
1.3 舵机工作原理
1.4 舵机控制原理
1.5 舵机工作参数介绍
1.5.1 基本参数
1.5.2 舵机扭矩
2 系统硬件
2.1 硬件模块介绍
2.1.1 SG90 9G 360°舵机
2.1.2 SG90 9G 180°舵机
2.1.3 Arduino UNO 主板
2.2 整体结构
3 软件设计
3.1 功能介绍
3.1.1 舵机控制分析
3.1.2 实现要求
3.2 代码实现
3.2.1 开发环境编写代码
3.2.2 详细代码
4 测试 概述 本文主要介绍舵机的实现原理控制方法并使用Arduino UNO板卡设计一个案例控制舵机按照预定的规则工作。
1 认识舵机 舵机可以在程序的控制下在一定范围内连续改变输出轴角度并且可以保持住。 其最早被用在航模和船模等遥控模型中控制各种舵面的转动。现在这种电机大量的运用在各种机器人、机械臂的关节以及智能小车的转向机构中。 1.1 舵机分类
1按照舵机的控制电路可以分为模拟舵机和数字舵机。模拟舵机和数字舵机的机械结构可以说是完全相同的 模拟舵机的控制电路为纯模拟电路需要一直发送目标信号才能转到指定的位置响应速度较慢无反应区较大 数字舵机内部控制电路则加上了微控制器只需要发送一次目标信号即可到达指定位置速度比模拟舵机更快无反应区也更小。
2按照使用对象的不同可以分为航模舵机、车模舵机、船模舵机和机器人舵机。航模舵机一般要求速度快、精度高 而车模和船模用的舵机一般要求具有大扭矩和防水性好。
3按照内部机械材质又可分成塑料齿舵机和金属齿舵机。塑料齿舵机内部的传动齿轮是塑料的重量轻价格便宜 但是扭矩一般较小无法做大金属齿舵机的扭矩更大舵机更结实耐用但是相比塑料齿更重也更贵。
4按照外部接口和舵机的控制方式又可分为PWM舵机和串行总线舵机。
1.2 舵机结构 舵机主要由以下几个部分组成外壳、舵盘、直流电机、减速齿轮组、角度传感器、控制驱动电路和接口线缆等。常见的舵机内部结构如下图所示。 角度传感器负责舵机的位置反馈直接装在舵机的主输出轴上将轴旋转后产生的角度变化变成电压信号发回控制电路当前轴角度 控制驱动电路用来接收外部接口传来的信号和角度传感器反馈的电压值以及驱动直流电机旋转 减速齿轮组则是降低直流电机的转速并且放大扭矩。
1.3 舵机工作原理 以模拟舵机为例介绍舵机工作原理模拟舵机内部的控制驱动电路板从外界接收控制信号 经过处理后变为一个直流偏置电压在控制板内部有一个基准电压这个基准电压由电位器产生并反馈到控制板。将外部获得的直流偏置电压与电位器的电压进行比较获得电压差 并输出到电机驱动芯片驱动电机电压差的正负决定电机的正反转大小决定旋转的角度电压差为0时电机停止转动。大致原理框图如下图所示。 1.4 舵机控制原理
舵机pin引脚介绍
中间的红色线电源正极
咖啡色线 电源负极
橙色线 控制线号线 舵机的控制通常采用PWM信号例如需要一个周期为20ms的脉冲宽度调制PWM 脉冲宽度部分一般为0.5ms-2.5ms范围内的角度控制脉冲部分总间隔为2ms。 当脉冲宽度为1.5ms时舵机旋转至中间角度大于1.5ms时 舵机旋转角度增大小于1.5ms时舵机旋转角度减小。舵机分90°、180°、270°和360°舵机。 以180°的舵机为例来看看脉冲宽度与角度的关系 舵机是一种位置伺服的驱动器适用于那些需要角度不断变化并可以保持的控制系统。其工作原理是控制信号由接收机的通道进入信号调制芯片获得直流偏置电压。它内部有一个基准电路产生周期为20ms宽度为1.5ms的基准信号将获得的直流偏置电压与电位器的电压比较获得电压差输出。最后电压差的正负输出到电机驱动芯片决定电机的正反转。当电机转速一定时通过级联减速齿轮带动电位器旋转使得电压差为0电机停止转动。 1.5 舵机工作参数介绍
1.5.1 基本参数 1舵机速度的单位sec/60°就是舵机转过60°需要的时间。 2和控制脉冲关系变化宽度大变化速度快 舵机就有可能在一次脉冲的变化过程中还没有转到目标 角度时而脉冲就再次发生了变化 舵机的转动速度一般有0.16sec/60°、0.12sec/60°等0.16sec/60°就是舵机转动60°需要0.16秒的时间。
3和工作电压关系在允许的电压范围内电压越大速度越快反之亦然。
1.5.2 舵机扭矩 舵机扭矩的单位是KG*CM这是一个扭矩的单位可以理解为在舵盘上距离舵机轴中心水平距离1CM处 舵机能够带动的物体重量如下图所示。 2 系统硬件
2.1 硬件模块介绍
2.1.1 SG90 9G 360°舵机
本系统使用的舵机型号为SG90,其具体参数如下 注意
1 360°舵机只能控制正转、停止、反转不能控制其转到具体角度
20~90° 顺时针旋转 90° 停止转动 90~180 逆时针旋转
2.1.2 SG90 9G 180°舵机
180°舵机可以自由控制角度角度范围 0~180°具体操作方法如下 2.1.3 Arduino UNO 主板
系统使用Arduino UNO作为主控板舵机信号引脚和有PWM功能的引脚相连。 2.2 整体结构 舵机和Arduino UNO 主板关系图
模块引脚Arduino UNO引脚注释舵机-信号引脚-IOpin-3控制舵机转角
3 软件设计
3.1 功能介绍
3.1.1 舵机控制分析 舵机的控制一般需要一个20ms左右的时基脉冲该脉冲的高电平部分一般为0.5ms~2.5ms在该该电平范围角度控制脉冲部分。以180度角度伺服为例其对应的控制关系如下 0.5ms--------------0度 1.0ms------------45度 1.5ms------------90度 2.0ms-----------135度 2.5ms-----------180度
3.1.2 实现要求
应用舵机使其旋转的角度分别为 45°90°135°180°225°270°360°。
3.2 代码实现
3.2.1 开发环境编写代码 3.2.2 详细代码
#include Servo.h //调用舵机库
Servo myservo; // 定义舵机对象void setup()
{myservo.attach(3); // 设置舵机控制针脚接数字7引脚
}void loop()
{myservo.write(45); delay(3000); //占空比为1.0ms的PWM信号旋转约3秒时间myservo.write(90); delay(1000); //占空比为1.5ms的PWM信号停止1秒myservo.write(0); delay(3000); //占空比为0.5ms的PWM信号旋转约3秒时间myservo.write(90); delay(1000); //占空比为1.5ms的PWM信号停止1秒myservo.write(135);delay(3000); //占空比为2.0ms的PWM信号旋转约3秒时间myservo.write(90); delay(1000); //占空比为1.5ms的PWM信号停止1秒myservo.write(180); delay(3000); //占空比为2.5ms的PWM信号旋转约3秒时间myservo.write(90); delay(1000); //占空比为1.5ms的PWM信号停止1秒}
4 测试
旋转90° 旋转18° 旋转45°