0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

STM32驱动舵机的工作原理、规格和选型分析

硬件攻城狮 来源:硬件攻城狮 作者:硬件攻城狮 2022-11-25 14:19 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

最近几年,国内机器人开始起步发展,很多高校及中小学都开始进行机器人技术教学。小型的机器人、模块化的机器人、组件式的机器人是教学机器人的首选。在这些机器人产品中,舵机是十分关键,且使用较多的部件。

根据控制方式,舵机应该称为“微型伺服马达”。早期在模型上使用最多,主要用于控制模型的舵面,所以俗称“舵机”。舵机接受一个简单的控制指令,就可以自动转动到一个比较精确的角度,所以非常适合在关节型机器人产品使用。

一、舵机的结构

简单来说,舵机就是集成了直流电机电机控制器和减速器等,并封装在一个便于安装的外壳里的伺服单元;能够利用简单的输入信号比较精确的转动,给定角度的电机系统。

舵机安装了一个电位器(或其它角度传感器)检测输出轴转动角度,控制板根据电位器的信息能比较精确的控制和保持输出轴的角度。这样的直流电机控制方式叫闭环控制,所以舵机更准确的说是伺服马达,英文:servo。

舵机的主体结构如图所示,主要有几个部分:外壳、减速齿轮组、电机、电位器、控制电路

简单的工作原理是:控制电路接收信号源的控制信号,并驱动电机转动;齿轮组将电机的速度成大倍数缩小,并将电机的输出扭矩放大响应倍数,然后输出;电位器和齿轮组的末级一起转动,测量舵机轴转动角度;电路板检测并根据电位器判断舵机转动角度,然后控制舵机转动到目标角度或保持在目标角度。

舵机的外壳一般是塑料的,特殊的舵机可能会有金属铝合金外壳。金属外壳能够提供更好的散热,可以让舵机里面的电机运行在更高功率下,以提供更高的扭矩输出。当然,金属外壳也可以提供更牢固的固定位置。

舵机的齿轮箱有塑料齿轮、混合齿轮、金属齿轮的差别。塑料齿轮成本低,噪音小,但强度较低;金属齿轮强度高,但成本高,在装配精度一般的情况下会有很大的噪音。小扭矩舵机、微舵、扭矩大但功率密度小的舵机一般都用塑料齿轮,如Futaba3003,辉盛的9g微舵。

金属齿轮一般用于功率密度较高的舵机上,比如辉盛的MG995舵机,在和3003一样体积的情况下却能提供13KG的扭矩。Hitec甚至用钛合金作为齿轮材料,其高强度能保证3003大小的舵机能提供20几公斤的扭矩。混合齿轮在金属齿轮和塑料齿轮间做了折中,在电机输出减速箱扭矩不大的部位,用塑料齿轮。

二、舵机的规格和选型

1、舵机转速

转速由舵机无负载的情况下转过60°角所需时间来衡量,常见舵机的速度一般在0.11s/60°-0.21s/60°之间。

2、舵机扭矩

舵机扭矩的单位是KG·CM,这是一个扭矩单位。可以理解为在舵盘上距舵机轴中心水平距离1CM处,舵机能够带动的物体重量。

3、工作电压

厂商提供的速度、转矩数据和测试电压有关,在4.8V和6V两种测试电压下这两个参数有比较大的差别。比如,MG995在4.8V时速度为0.17秒,在6.0V时速度为0.13秒。

舵机的工作电压对性能有重大的影响,舵机推荐的电压一般都是4.8V或6V。当然,有的舵机可以在7V以上工作,比如12V的舵机也不少。具体更加较高的电压可以提高电机的速度和扭矩。此外,选择舵机还需要看我们的控制板所能提供的电压。

4、尺寸重量和材质

舵机的功率(速度×转矩)和舵机的尺寸比值可以理解为该舵机的功率密度,一般同样品牌的舵机,功率密度大的价格高。塑料齿轮的舵机在超出极限负荷的条件下使用可能会崩齿,金属齿轮的舵机则可能会电机过热损毁或外壳变形。所以,材质的选择并没有绝对的倾向,关键是将舵机使用在设计规格之内。

用户一般都对金属制的物品比较信赖,齿轮箱期望选择全金属的,舵盘期望选择金属舵盘。但需要注意的是,金属齿轮箱在长时间过载下也不会损毁,最后却是电机过热损坏或外壳变形,而这样的损坏是致命的,不可修复的。塑料出轴的舵机如果使用金属舵盘是很危险的,舵盘和舵机轴在相互扭转过程中,金属舵盘不会磨损,舵机轴会在一段时间后变得光秃,导致舵机完全不能使用。

综上,选择舵机需要在计算自己所需扭矩和速度,并确定使用电压的条件下,选择有150%左右甚至更大扭矩富余的舵机。

三、舵机的工作原理

舵机是一个微型的伺服控制系统,具体的控制原理可以用下图表示:

其工作原理是:控制电路接收信号源的控制脉冲,并驱动电机转动;齿轮组将电机的速度成大倍数缩小,并将电机的输出扭矩放大响应倍数,然后输出;电位器和齿轮组的末级一起转动,测量舵机轴转动角度;电路板检测并根据电位器判断舵机转动角度,然后控制舵机转动到目标角度或保持在目标角度。

模拟舵机需要一个外部控制器(遥控器的接收机或者单片机)产生脉宽调制信号来告诉舵机转动角度,脉冲宽度是舵机控制器所需的编码信息。舵机的控制脉冲周期20ms,脉宽从0.5ms-2.5ms,分别对应-90度到+90度的位置(对于180°舵机)。  

舵机的控制一般需要一个20ms的时基脉冲,该脉冲的高电平部分一般为0.5ms~2.5ms范围内的角度控制脉冲部分。以180度角度舵机为例,那么对应的控制关系是这样的:


		0.5ms--------------0度; 1.0ms------------45度; 1.5ms------------90度; 2.0ms-----------135度; 2.5ms-----------180度; 
		

如下图所示:

需要解释的是,舵机原来主要用在飞机、汽车、船只模型上,作为方向舵的调节和控制装置。所以,一般的转动范围是45°、60°或者90°,这时候脉冲宽变一般只有1ms-2ms之间。比如你做一个遥控小车,用舵机控制方向,那么舵机转的角度肯定不是180度,因为你见过你开的车方向能转180度吗?

而后舵机开始在机器人上得到大幅度的运用,转动的角度也在根据机器人关节的需要增加到-90°至90°之间,甚至还有-135°至135°之间,脉冲宽度也随之有了变化。对于机器人控制而言,我们一般通过单片机产生PWM信号控制舵机。

四、STM32控制舵机代码


		0.5ms---------00.6ms---------90.7ms---------180.8ms---------270.9ms---------361.0ms---------451.1ms---------541.2ms---------631.3ms---------721.4ms---------811.5ms---------901.6ms---------991.7ms---------1081.8ms---------1171.9ms---------1262.0ms---------1352.1ms---------1442.2ms---------1532.3ms---------1622.4ms---------1712.5ms---------180度 |/ ---|---/ |/ |/ |/ -------------------------------------------------------------- 20ms的时基脉冲,如果想让舵机转63度,就应该发生一个高电平为1.2ms, 周期为20ms的方波,duty=1.2/20=6%,而定时器自动重装载寄存器arr的值 为1000,所以令duty=60,时占空比才为60/1000=6%. 20ms的时基脉冲,如果想让舵机转90度,就应该发生一个高电平为1.5ms, 周期为20ms的方波,duty=1.5/20=7.5%,而定时器自动重装载寄存器arr的值 为1000,所以令duty=75,时占空比才为75/1000=7.5%. 20ms的时基脉冲,如果想让舵机转126度,就应该发生一个高电平为1.9ms, 周期为20ms的方波,duty=1.9/20=9.5%,而定时器自动重装载寄存器arr的值 为1000,所以令duty=95,时占空比才为95/1000=9.5%. ----------------------------------------------------------------- voidSERVO_Init(void) { GPIO_InitTypeDefGPIO_InitStruct; TIM_TimeBaseInitTypeDefTIM_TimeStructure; TIM_OCInitTypeDefTIM_OCInitStructure; RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); GPIO_InitStruct.GPIO_Mode=GPIO_Mode_AF_PP;//配置为复用推挽输出 GPIO_InitStruct.GPIO_Pin=GPIO_Pin_7; GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz; GPIO_Init(GPIOA,&GPIO_InitStruct); TIM_TimeStructure.TIM_Period=1000;//1000自动重装载寄存器的值,周期为50000Hz/1000=50Hz,即输出PWM波形的频率为20ms。 TIM_TimeStructure.TIM_Prescaler=1440-1;;// 1400时钟预分频系数为3600,72 000000Hz/1400=50000Hz =50KHZ。 TIM_TimeStructure.TIM_ClockDivision=TIM_CKD_DIV1; TIM_TimeStructure.TIM_CounterMode=TIM_CounterMode_Up; TIM_TimeStructure.TIM_RepetitionCounter=0; TIM_TimeBaseInit(TIM3,&TIM_TimeStructure); TIM_ARRPreloadConfig(TIM3,ENABLE);//使能ARR预装载寄存器(影子寄存器) TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM1; TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable; TIM_OCInitStructure.TIM_Pulse=0;//占空比大小 TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_High; TIM_OC2Init(TIM3,&TIM_OCInitStructure); TIM_OC2PreloadConfig(TIM3,TIM_OCPreload_Enable); TIM_Cmd(TIM3,ENABLE); TIM_CtrlPWMOutputs(TIM3,ENABLE); } //舵机角度控制 voidSERVO_Angle_Control(uint16_tCompare2) { TIM_SetCompare2(TIM3,Compare2);//设置通道2为可变的pwm } 
		配置号上面的程序,如果你想让舵机旋转90度,只需要在你程序的某个位置放上这句话就可以了。

		SERVO_Angle_Control(75);//舵机旋转90度

原因就是20ms的时基脉冲,如果想让舵机转90度,就应该发生一个高电平为1.5ms,周期为20ms的方波,duty=1.5/20=7.5% ,而定时器自动重装载寄存器arr的值为 1000 ,所以令duty=75,时占空比才为75/1000=7.5%。

以此类推,你想让舵机转多大的角度按照这个方法设置就行了。

审核编辑:郭婷


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 传感器
    +关注

    关注

    2573

    文章

    54368

    浏览量

    786047
  • 控制器
    +关注

    关注

    114

    文章

    17638

    浏览量

    190253
  • 机器人
    +关注

    关注

    213

    文章

    30580

    浏览量

    219568

原文标题:STM32驱动舵机原理和实现

文章出处:【微信号:mcu168,微信公众号:硬件攻城狮】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    PWM信号是如何控制舵机的?

     PWM(脉冲宽度调制)信号控制舵机的核心原理是通过固定周期内高电平的持续时间(脉宽)对应舵机的旋转角度,舵机内部电路根据检测到的脉宽驱动电机转动到目标位置并保持。以下是具体实现过程:
    的头像 发表于 09-29 10:48 644次阅读

    共聚焦显微镜的光源、工作原理选型

    获取检测材料的高细节、高分辨率三维图像方面,具备不可替代的核心价值。下文,光子湾科技将围绕共聚焦显微镜的光源、工作原理选型要点展开详细解析,为设备应用与选型提供
    的头像 发表于 09-23 18:03 1012次阅读
    共聚焦显微镜的光源、<b class='flag-5'>工作原理</b>与<b class='flag-5'>选型</b>

    RS485总线舵机工作原理

    ,解决了传统 PWM 舵机 “一对一控制、布线复杂、通信距离短” 的痛点,广泛用于机器人、自动化设备、智能家居等场景。 要理解其工作原理,需从硬件结构和工作流程两个核心维度拆解,同时明确 RS485 协议在其中的关键作用: 一、
    的头像 发表于 09-23 11:11 459次阅读

    无刷舵机与普通舵机舵机有哪些区别

    无刷舵机与普通舵机主要有以下区别: 结构原理 无刷舵机 :由电动机主体和驱动器组成,无刷电机的定子为线圈绕组,转子为永磁钢体,通过霍尔传感器检测转子位置,利用集成
    的头像 发表于 09-13 10:33 1968次阅读

    电机驱动舵机驱动

    电机驱动舵机驱动是自动化控制、机器人、智能家居等领域中两种核心的 “动力执行控制技术”,二者的核心目标都是驱动负载运动,但因针对的执行器(电机 /
    的头像 发表于 09-11 10:55 713次阅读

    舵机原理简述!

    原理、工作流程三方面简述其原理: 一、结构组成 舵机的基本结构由驱动单元、传动单元、反馈单元和控制电路四部分组成:   驱动单元:通常为直流减速电机,提供基础动力输出。 传动单元:由齿
    的头像 发表于 08-22 10:57 1100次阅读

    舵机的种类有哪些?

    舵机是一种通过控制信号实现精确角度定位的驱动装置,广泛应用于机器人、无人机、航模、智能家居等领域。根据不同的分类标准,舵机的种类可以分为以下几类: 一、按驱动方式分类 这是最常见的分类
    的头像 发表于 08-21 10:17 1227次阅读

    舵机的执行原理

    实现 360° 连续旋转),并具备一定的输出扭矩以驱动负载。 一、舵机的基本结构 舵机的核心结构由以下几个关键部分组成,各部分协同工作实现精确的角度控制: 1. 直流电动机 提供基础动
    的头像 发表于 08-20 10:57 1056次阅读

    舵机怎么控制正反,舵机怎么使用?

    原理和操作方法: 1. 普通角度舵机的方向控制(核心:角度偏差驱动) 普通舵机(如 0°~180°)的旋转方向由 目标角度与当前角度的关系 决定:   当 目标角度 > 当前角度 时,舵机
    的头像 发表于 08-19 10:52 1560次阅读

    STM32项目分享:STM32智能语音分类垃圾桶

    01—项目简介1.功能详解STM32智能语音分类垃圾桶功能如下:1.STM32F103C8T6单片机系统板作为主控单元2.舵机驱动
    的头像 发表于 03-15 10:02 2398次阅读
    <b class='flag-5'>STM32</b>项目分享:<b class='flag-5'>STM32</b>智能语音分类垃圾桶

    热重分析仪的工作原理是什么

    热重分析仪是一种用于研究材料在受控温度程序下重量变化的检测仪器。其工作原理主要基于准确控制样品的温度,并同时连续监测样品的质量变化,从而揭示材料的组成、稳定性以及热分解特性等重要信息。热重分析仪被
    的头像 发表于 01-21 16:05 1107次阅读
    热重<b class='flag-5'>分析</b>仪的<b class='flag-5'>工作原理</b>是什么

    舵机与电动机的比较分析

    能够将电信号转换为精确角度控制的电机。它通常由一个直流电机、一个减速齿轮组和一个位置反馈装置(如电位计)组成。舵机工作原理是通过接收控制信号(如PWM信号),驱动电机旋转,并通过减速齿轮组放大扭矩,最终实现对输出轴的精确
    的头像 发表于 01-09 09:12 3234次阅读

    舵机与伺服电机的区别

    它们的性能和适用性。 1. 定义和工作原理 1.1 舵机 舵机是一种带有反馈机制的电机,它能够将输入信号转换为精确的角位移。舵机通常包含一个电机、一个减速齿轮、一个位置传感器(如电位计
    的头像 发表于 01-08 17:39 2279次阅读

    舵机工作原理和应用

    舵机是一种在自动控制系统中广泛应用的执行元件,它能够将电信号转换为机械运动,从而实现对物体位置的精确控制。 1. 舵机工作原理 舵机主要由以下几个部分组成:电机、减速齿轮组、位置反馈
    的头像 发表于 01-08 17:37 4488次阅读

    驱动器的工作原理 驱动器与电机的区别

    驱动器的工作原理 驱动器是一种电子设备,用于控制电机的速度、方向和扭矩。它的主要功能是将输入信号(通常是模拟或数字信号)转换为电机可以理解的控制信号。以下是驱动器的基本
    的头像 发表于 12-19 16:20 5567次阅读