发新帖本帖赏金 30.00元(功能说明)我要提问
返回列表
打印

如何控制物体动起来,怎么编程?原来如此简单。

[复制链接]
985|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
#申请原创#[url=home.php?mod=space&uid=760190]@21小跑堂 @21ic小喇叭[/url]
如何让物体动起来,怎么编程?原来如此简单。
今天我们来聊聊通过开发板控制能让物体动起来的模块 ,比如汽车用的燃油发动机,工业上常用的大型交流电机,数控车床上常用的步进电机,家里净水器中水泵上的小型直流驱动电机,电动工具上常用的交流电机和直流调速电机,航模上的控制方向的舵机,等等有很多。我们先看看他们都是如何工作的,以及常见应用有哪些?
1发动机
通过燃烧油料产生动能,通过控制燃烧油料的速度来控制输出动力的多少,达到控制目的。常见的有汽车,轮船,燃油发电机等。
2交流电机
通过交流电进行驱动,大部分不需要调速只需要简单的进行供电即可工作。还有一部分根据工作的需要进行调整工作输出功率和速度大小的模块,这里就需要一个能够改变交流电机工作状态的设备,常用的有IGBT模块,变频器等。主要通过改变输入电机电源的频率及电压来改变交流电机的输出功率输出转速等参数。达到控制目的。常见的有不需要驱动的有水泵,家用排风扇,等等。需要调速的比如一些电梯的曳引驱动电机,家用变频风扇等。
 3直流电机
通过直流电进行驱动。可以通过降低电枢电压达到调速功能或者电枢电路串联调速电阻来控制直流电机的输出速度及功率。常见的有充电式电动工具,儿童玩具上的电机等。
  4. 步进电机
  所谓步进电机就是一种将电脉冲转化为角位移的执行机构;更通俗一点讲:当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度。我们可以通过控制脉冲的个数来控制电机的角位移量,从而达到精确定位的目的;同时还可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。目前,比较常用的步进电机包括反应式步进电机(VR)、永磁式步进电机(PM)、混合式步进电机(HB)和单相式步进电机等。
 步进电机和普通电机的区别主要就在于其脉冲驱动的形式,正是这个特点,步进电机可以和现代的数字控制技术相结合。但步进电机在控制精度、速度变化范围、低速性能方面都不如传统闭环控制的直流伺服电机;所以主要应用在精度要求不是特别高的场合。由于步进电机具有结构简单、可靠性高和成本低的特点,所以步进电机广泛应用在生产实践的各个领域;尤其是在数控机床制造领域,由于步进电机不需要A/D转换,能够直接将数字脉冲信号转化成为角位移,所以一直被认为是最理想的数控机床执行元件。
  除了在数控机床上的应用,步进电机也可以用在其他的机械上,比如作为自动送料机中的马达,作为通用的软盘驱动器的马达,也可以应用在打印机和绘图仪中。
  此外,步进电机也存在许多缺陷;由于步进电机存在空载启动频率,所以步进电机可以低速正常运转,但若高于一定速度时就无法启动,并伴有尖锐的啸叫声;不同厂家的细分驱动器精度可能差别很大,细分数越大精度越难控制;并且,步进电机低速转动时有较大的振动和噪声。
  5舵机
模拟舵机:需要不断的发送目的地PWM信号,才能旋转到指定位置。例如:我现在让它旋转90度,我就需要不断的发送90度的PWM信号直到到达指定位置才能停止。我们使用的SG90就是一个模拟舵机
数字舵机:只需给一个目的地PWM信号,即可旋转到指定位置。例如:我现在让它旋转90度,我只需要发送一次90度的PWM信号,它就可以旋转到90度。
PWM信号:PWM,英文名Pulse Width Modulation,是脉冲宽度调制缩写,它是通过对一系列脉冲的宽度进行调制,等效出所需要的波形(包含形状以及幅值),对模拟信号电平进行数字编码,也就是说通过调节占空比的变化来调节信号、能量等的变化,占空比就是指在一个周期内,信号处于高电平的时间占据整个信号周期的百分比,例如方波的占空比就是50%.
占空比:高电平(或者低电平)占整个周期的时间就叫作占空比。
了解了上面的基本知识我们就可以来认识我们今天的主角:sg90舵机



上图就是我们今天的主角,有三条线,接线方法:
      
棕色----------------------GND
-------------------------VCC
橙色----------------------信号线


原理:舵机内部有一个基准电压,微处理器产生的PWM信号通过信号线进入舵机产生直流偏置电压,与舵机内部的基准电压作比较,获得电压差输出。电压差的正负输出到电机驱动芯片上,从而决定正反转。当舵机开始旋转的时候,舵机内部通过级联减速齿轮带动电位器旋转,使得电压差为零,电机停止转动。


那么我们如何获取这个 舵机呢。
首先我们上某宝能够找到180°360°SG90舵机。

我们先来讲的是180度的舵机。
我们知道sg90舵机是一个模拟舵机,需要我们一直给指定的脉冲。那么这个指定的脉冲是什么?查资料可以知道180度舵机不同占空比与对应角度
关系:
高电平在一个周期(20ms)的持续时间对应的舵机角度,(在这20ms内每个周期高电平的占空比一致)
      知道了脉冲与角度关系,主要讲解一下如何写这个脉冲,这里所使用的是方法是定时器+中断,定时器每0.1ms中断一次,需要中断200次才能达到20ms。我们此时需要一个全局变量来记录中断的次数,当中断达到200次时,全局变量重新清零。当中断次数小于n时,信号线输出高电平,否则输出低电平。此时n的值对应关系如下。
n=5>>0度   n=10>>45度   n=15>>90度   n=20>>135度   n=25>>180度
   
360度舵机
顾名思义,360度舵机可以360度旋转,因此与180度舵机有相当大的区别,首先360度舵机不能够控制旋转角度,一般的舵机是给一个特定的PWM,舵机会转到相应的角度,而360度舵机是只能够控制方向和旋转转速,所以360度舵机给定一个PWM,会以特定的速度和方向转动。
PWM信号与360舵机转速的关系:

0.5ms----------------正向最大转速;
1.5ms----------------速度为0
2.5ms----------------反向最大转速;


总结:无论是18090度还是360度舵机,只要我们知道了它脉冲与角度的对应关系我们就可以利用定时器加中断的方法来产生这个相应的PWM信号,进而控制舵机旋转指定角度。


   看到这里时是不是和我一样看哪个都有点难?今天我们就玩点简单的。那就是通过米思齐编程来控制舵机,让舵机动起来。
有请我们今天要用的主角登场180度舵机,和老演员ESP32主控板登场,
我们先来连接硬件,通过上面的知识硬件搭建完成。

打开米思齐编程软件找到舵机模块,我们发现模块非常清晰,易于编程,
只需要选好输出管脚舵机变化角度和延时时间即可,我们来编程让舵机反复动起来。
舵机反复运动视频.rar (1.94 MB) 是不是非常简单。这里介绍一个舵机外接电源的方法就是将外接电源接好舵机后负极和开发板负极相连接即可。
如图。
我们今天又学会了一个新技能,通过编程让物体动起来。主要是他是我们编程来控制它运动的,是不是又信心满满的一天。


小白不会一直是小白,菜鸟努力终将飞上蓝天。让我们一起努力,加油我们是最棒的。
舵机驱动反复运动mixly.rar (470 Bytes)

使用特权

评论回复

打赏榜单

21小跑堂 打赏了 30.00 元 2022-04-21
理由:恭喜通过原创文章审核!请多多加油哦!

评论
起点116 2022-4-21 21:22 回复TA
@21小跑堂 :感谢鼓励,我会继续努力。 
21小跑堂 2022-4-21 16:30 回复TA
知识点介绍详细,模块化编程简单易上手,**诙谐风趣。 

相关帖子

发新帖 本帖赏金 30.00元(功能说明)我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

82

主题

532

帖子

10

粉丝