首页 > 其他分享 >学习舵机

学习舵机

时间:2024-05-30 22:13:35浏览次数:11  
标签:舵机 180 学习 角度 ms PWM 2.5

一、舵机的“自白”

我(舵机)是一种位置(角度)伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统。

那么问题来了?我们用舵机来干嘛呢,当然是控制方向了,如今,基本上飞机或者智能车又或是机器人等等都会用到舵机这个东西,所以说,认识舵机,并且运用舵机就成为我们必不可少的知识学习了,下面附图:


图 舵机

舵机一般有三条线,一条接电源(5V即可),一条接地,最后一条接控制(即单片机输出的PWM控制),下面会给上具体实现代码,总的来说跟上一讲区别不大,主要就是PWM周期输出控制,利用 TIM_SetComparex()  函数来设置占空比实现,但是多出的是计算问题,因为舵机有对应角度的时间计算,下面具体讲解:

舵机的控制一般需要一个20ms左右的时基脉冲,该脉冲的高电平部分一般为0.5ms-2.5ms范围内的角度控制脉冲部分,总间隔为2ms。以180度角度为例,的其控制关系是这样的:

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

基本上,我们学生党所需要的舵机的控制角度对应就是上述关系了,至于360度舵机这里简单提一下,主要是我这个舵机做不到(哈哈哈,这舵机180°的)

这里讲一下360°舵机的 

  •    0.5ms--------------0度;正向持续转(最大速度)
  •    1.5ms------------90度;停止转动,速度无
  •    2.5ms-----------180度;逆向持续转(最大速度)

调整PWM周期即可改变转动速度和方向。 

二、舵机如何控制?

舵机的信号线是做为输入线就是接收PWM信号(定时器产生)。

一般PWM的周期是20ms,那么对应的频率是50hz。那么改变不同的占空比就可以控制转动的角度。其中占空比从0.5-2.5ms(如果占空比大于2.5ms也只会在最大角度。),相对应的舵盘位置为0-180度,呈线性变化。

给它提供一定的脉宽,它的输出轴就会保持一定对应角度上,无论外界转矩怎么改变(只要目标不变就维持在这个角度类似PID自动控制算法),直到给它提供一个另外宽度的脉冲信号,它才会改变输出角度到新的对应位置上如所求。

舵机内部有一个基准电路,产生周期为20ms,宽度1.5ms的基准信号,有一个比较器,将外加信号与基准信号相比较,判断出方向和大小,从而生产电机的转动信号。由此可见,舵机是一种位置伺服驱动器,转动范围不能超过180度,适用于那些需要不断变化并可以保持的驱动器中,比如说机器人的关节、飞机的舵面等。

注:建议先写一个0度的程序,方便确定舵机转动的方向和角度

 

 

二、常见的舵机

SG90s

参考文章:

1. <STM32f1之舵机驱动+转动角度调整(含主代码和计算)>:https://blog.csdn.net/weixin_45930808/article/details/119117499

2. <舵机的控制>:https://blog.csdn.net/qq_44125275/article/details/128521102

标签:舵机,180,学习,角度,ms,PWM,2.5
From: https://www.cnblogs.com/FBsharl/p/18223325

相关文章

  • DC-1靶机渗透测试过程(个人学习)
    ​DC-1靶场下载地址:DC:1~VulnHub攻击机kali的IP地址:192.168.37.129注意靶机和攻击机的环境配置要一致一、信息收集方法一:nmap扫描方法二:arp-scan-l使用 arp-scan-l 扫描该网段内其他的IP地址效率相对快一些扫描后得到靶机的IP地址为:192.168.37.133使用nmap......
  • 深度学习(二)
    深度学习(二)4.前馈全连接神经网络(Sequential模型)importtensorflowastffromtensorflowimportkerasmodel=keras.models.Sequential([    keras.layers.Flatten(input_shape=[784]),    keras.layers.Dense(300,activation="relu"),    keras.laye......
  • JVM学习-字节码指令集(二)
    对象的创建与访问指令创建指令虽然类实例和数组都是对象,但Java虚拟机对类实例和数组的创建和操作使用了不同的字节码指令创建类实例指令:new它接收一个操作数,指向常量池的索引,表示要创建的类型,执行完成后,将对象的引用压入操作数栈创建数组的指令创建数组的指令:newarray,......
  • 模型节点操作学习笔记(Appendix)实验1 -- Tflite int8 删除最后的Round节点 (持续更新)
    背景如下:我要删除Round节点,同时看了一下,Dequantize和Quantize也是没有必要的。所以最好一起删除。原始项目地址:PINTO0309/hand-gesture-recognition-using-onnx:ThisisahandgesturerecognitionprogramthatreplacestheentireMediaPipeprocesswithONNX.Simultane......
  • 基于深度学习的鸟类声音识别系统
    鸟叫声识别在鸟类保护中具有重要意义。通过适当的声音分类,研究可以自动预测该地区的生活质量。如今,深度学习模型被用于对鸟类声音数据进行高精度的分类。然而,现有的大多数鸟类声音识别模型的泛化能力较差,并且采用复杂的算法来提取鸟类声音特征。为了解决这些问题,本文构建了一个包......
  • 数据结构学习笔记-快速排序
    快速排序的算法设计与分析问题描述:设计并分析快速排序【算法设计思想】选择基准值:从待排序数组中选择一个元素作为基准值(pivot)。在这个示例中,选择了数组中的最后一个元素作为基准值。分割数组:将数组分割为两部分,小于等于基准值的元素放在基准值的左边,大于基准值的元素放在右......
  • uoj项目部署的学习实践和基于JUnit进行的项目测试
    基于JUnit进行的项目测试对不同功能点进行测试:检测忘记密码功能、注册功能能否正常使用脚本文件:registerTest.java1.检测忘记密码功能。事先注册好一个账号用于测试测试步骤:输入账号输入电子邮箱输入验证码1)用例标题:验证码错误情况测试数据:账号2021127电子邮箱2848250......
  • uoj项目部署中题目管理的相关学习与应用
    一.概述1.新建题目和管理界面只有超级管理员有权限新建题目,每次新建题目都必须由超级管理员完成。在题目页面,超级管理员或该题目的管理员可以通过管理按钮进入题目管理界面。题目管理界面分为三个选项卡:编辑:题面编辑页面管理者:题目管理员管理页面数据:题目数据管理页面以及......
  • 模型节点操作学习笔记(1)--SavedModel详解
    参考:使用SavedModel格式 | TensorFlowCore(google.cn) (持续更新)   SavedModel是一个包含序列化签名和运行这些签名所需的状态的目录,其中包含变量值和词汇表。$ls{mobilenet_save_path}assetsfingerprint.pbsaved_model.pbvariablesassets目......
  • USP技术提升大语言模型的零样本学习能力
     大语言模型(LLMs)在零样本和少样本学习能力上取得了显著进展,这通常通过上下文学习(in-contextlearning,ICL)和提示(prompting)来实现。然而,零样本性能通常较弱,因为缺乏指导和难以应用现有的自动提示设计方法。论文提出了一种名为UniversalSelf-AdaptivePrompting(USP)的自动提示......