一起玩儿物联网人工智能小车(ESP32)——26. 舵机的使用方法

这篇具有很好参考价值的文章主要介绍了一起玩儿物联网人工智能小车(ESP32)——26. 舵机的使用方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

摘要:本文介绍舵机的使用方法

在前面介绍TT马达的时候,提到过舵机。舵机是一种精密控制类电动机,也是电动机的一种,它的主要作用是旋转到某一指定位置,在机器人领域使用得相当的广泛,用来实现各种机械臂和机器人关节的运动。

下面就来了解一下舵机的工作原理。在前面知道TT马达是由电动机和减速箱组成,而舵机为了精确控制电机的旋转角度,因此,在普通马达和减速箱的基础上增加了用于测量角度的角度传感器以及控制电机旋转的控制电路。这样,控制电路在电机旋转的过程中,通过角度传感器来得到当前电机已经旋转的角度,从而保证其可以在指定的位置停止。这个角度传感器最简单的就是使用一个可调电位器来实现,通过接入电路的电阻来计算出电位器滑片所在的位置。舵机的原理图如下所示:

esp266接5个舵机,硬件功能模块,基于ESP32的物联网人工智能小车,ESP32,物联网,人工智能,单片机,c语言,python

下图为目前在玩具、航模中最经常使用的小型舵机。不同的舵机之间的差别主要体现在齿轮材质、旋转扭矩和旋转角度的不同。

esp266接5个舵机,硬件功能模块,基于ESP32的物联网人工智能小车,ESP32,物联网,人工智能,单片机,c语言,python

舵机齿轮的材质通常有塑料和金属两种,很明显,金属的舵机齿轮不易磨损、精准度更高一些,成本也略高,缺点是重量略重。舵机的旋转角度是指它能旋转的最大范围,通常有90度版,180度版和360度版,其中无限位器的360度版舵机是可以连续旋转的。

下面来了解一下是如何控制舵机工作的。控制舵机旋转需要一个20毫秒的脉冲信号,该信号的高电平部分决定着舵机旋转到哪个位置。对于180度的舵机而言,要求该脉冲信号的高电平的时长为0.5ms~2.5ms之间,对应舵机度盘的角度为0~180度,两者之间呈线性关系。也就是说,当舵机收到某个范围内的脉冲信号后,会依据该脉冲的宽度,转到相应的位置。直到下一个控制脉冲来临之前,该舵机的位置均不会发生改变。

下面,将可旋转范围的中间位置设置为0度,那么180度舵机的旋转范围就是正负90度,输入的控制脉宽与舵机的角度之间的关系如下图所示:

esp266接5个舵机,硬件功能模块,基于ESP32的物联网人工智能小车,ESP32,物联网,人工智能,单片机,c语言,python

对于360度舵机而言,通常是无限位器的,那么360度舵机是可以连续旋转的,因此不能用一个脉冲来指定360度舵机运动到指定的位置。此时的舵机更像是一个具有闭环控制,速度稳定的减速电机。360度舵机的控制也是通过20ms的脉冲来进行控制(高电平宽度不大于2.5ms),只不过脉冲宽度的含义不同。当脉冲高电平宽度在1.5ms附近时,360度舵机停止运动,当脉冲高电平宽度大于1.5ms时,舵机为正转状态,高电平时长越长,电机转速越快。当脉冲高电平时长小于1.5ms时,舵机为反向转动状态,高电平时间越短,电机转速越快。

下面来看一个常见的SG90型号的舵机的电器参数:

尺寸:

21.5mmX11.8mmX22.7mm

重量:

9克

无负载速度:

0.12秒/60度(4.8V) 0.002s/度

堵转扭矩:

1.2-1.4公斤/厘米(4.8V)

使用温度:

-30~~+60摄氏度

死区设定:

7us (7MHZ)

工作电压:

4.8V-6V

转动角度:

180度(左90,右90)

结构材料:

塑料齿

位置等级:

1024级

脉冲控制精度:

2us

舵机模块有三个引脚,分别是电源+、电源GND和信号线。如下图所示:

esp266接5个舵机,硬件功能模块,基于ESP32的物联网人工智能小车,ESP32,物联网,人工智能,单片机,c语言,python

线缆的颜色也可能是:红色(正极)、棕色(地线)和橙色(信号线),不同生产厂家使用线缆的颜色不同。

下面就把舵机接到ESP32芯片的开发板上,用程序来驱动舵机转起来。舵机的供电可以使用ESP开发板上的5V输出,信号线我接到了P23引脚。打开Mixly,选择“Audrino ESP32”,舵机功能位于Mixly的“执行器”功能模块组中。第一个程序来实现将舵机转动到30度的位置。设置好后如下图所示:

esp266接5个舵机,硬件功能模块,基于ESP32的物联网人工智能小车,ESP32,物联网,人工智能,单片机,c语言,python

接下来就可以上传运行了,看看是不是可以将舵机控制到指定位置了?注意,设置一个舵机动作之后,一定要留一段时间的延时,让舵机有一个动作的时间。如果,舵机连续收到指令而来不及动作,就有可能在原地摆动,或者不动。

下面来实现一个更复杂的功能,让舵机在0~180度的范围内连续摆动。这样,如果将来把超声波测距传感器装到舵机上,就可以实现在180度的范围内,连续测量周边障碍物的距离,为实现避障小车打下了基础。

首先声明两个全局变量,一个是degree,表示需要舵机转到哪个角度,初始为90度,也就是在中间位置。另一个是step,表示每次舵机转动几度,默认step为5。

esp266接5个舵机,硬件功能模块,基于ESP32的物联网人工智能小车,ESP32,物联网,人工智能,单片机,c语言,python

然后是编写初始化功能,初始化功能的任务就是让舵机恢复到初始90度的位置。如下图所示:

esp266接5个舵机,硬件功能模块,基于ESP32的物联网人工智能小车,ESP32,物联网,人工智能,单片机,c语言,python

接下来就是主功能函数了,它要实现的功能是让舵机在0~180度内一次旋转,主要需要完成以下工作。

  1. 将舵机转到degree指定的位置。
  2. 计算下一步应该转到的位置,令degree编程degree+step。
  3. 判断是不是马上到一端终点了,如果到终点了,就让step变成其相反数,这样degree就会朝着相反的方向变动了。

实现后的程序如下所示:

esp266接5个舵机,硬件功能模块,基于ESP32的物联网人工智能小车,ESP32,物联网,人工智能,单片机,c语言,python

这样,就可以实现舵机以5度为步长,在0~180度内来回旋转了。最后看一下Mixly生成的源代码。

#include <ESP32_Servo.h>

volatile int degree;

volatile int step;

Servo servo_23;

void setup(){

  degree = 90;

  step = 5;

  servo_23.attach(23,500,2500);

  servo_23.write(90);

  delay(1000);

}

void loop(){

  servo_23.write(degree);

  delay(100);

  degree = step + degree;

  if (degree >= 180 || degree <= 0) {

    step = 0 - step;

  }

}

通过代码可以看到,Arduino将舵机的操作封装成了Servo对象。Servo对象使用attach()方法初始化输出舵机控制脉冲的引脚和0度以及180度脉冲对应的高电平时长。然后调用其write()方法就可以将舵机旋转到指定的角度了。

下面来看一下在MicroPython中是如何使用舵机的。在MicroPython中,明确将舵机分成了180度和360度两种,180度的舵机可以指定旋转的角度而360度舵机则可以指定旋转的速度。这比C语言的控件要考虑得更周全些。具体使用方法如下:

esp266接5个舵机,硬件功能模块,基于ESP32的物联网人工智能小车,ESP32,物联网,人工智能,单片机,c语言,python

生成的代码如下:

import servo

servo.servo180_angle(26,100)

只是简简单单的一行程序就实现了控制舵机转动到指定位置的功能。

在这里,再介绍一个Mixly的功能,这个功能是Python环境所特有的,就是可以随时输入Python程序并执行。这主要是因为Python是一种解释语言,不需要编译,在执行的时候,就是边执行,边解释。具体的使用方法是在COM输出窗口中的“>>>”提示符后面直接输入要执行的Python代码,回车之后,该代码就被自动的执行了。如下图所示:

esp266接5个舵机,硬件功能模块,基于ESP32的物联网人工智能小车,ESP32,物联网,人工智能,单片机,c语言,python

有了这个功能,就让我们在执行Python程序的时候,可以随时的分步执行,随时的输出各种调试信息和状态信息,是非常非常方便的一个功能。文章来源地址https://www.toymoban.com/news/detail-833822.html

到了这里,关于一起玩儿物联网人工智能小车(ESP32)——26. 舵机的使用方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 一起玩儿物联网人工智能小车(ESP32)——69 使用INMP441模块采集声音

    摘要:本文介绍如何使用INMP441模块采集声音 前边介绍了第一个基于I2S通信协议的MAX98357A模块,利用该模块可以播放各种声音文件。今天来介绍如何使用INMP441模块实现声音的采集功能,也就是如何将声音转变成数字信号。 INMP441是一款高性能,低功耗,数字输出的全向MEMS(微

    2024年03月15日
    浏览(57)
  • 一起玩儿物联网人工智能小车(ESP32)——63 SD和TF卡模块的使用

    摘要:本文介绍SD和TF卡模块的使用方法 前面介绍了非易失性存储的使用方法,由于空间和本身只支持键值对的限制,非易失性存储只适用于少量数据的记录。而不适用于各种声音、图片、大量数据等情况的使用。这时候就需要有文件系统或者更大容量存储空间的支持。SD卡(

    2024年02月22日
    浏览(44)
  • 一起玩儿物联网人工智能小车(ESP32)——71 姿态传感器MPU6050的使用方法

    摘要:本文介绍姿态传感器MPU6050的使用方法 姿态传感器是一种用于测量物体姿态的传感器,它可以检测物体的加速度和角速度,并计算出物体的方向和角度。前边介绍的RPI-1031只能定性的得到物体的倾斜情况,而姿态传感器则可以定量的得到物体倾斜的方向和角度。 MPU6050是

    2024年04月28日
    浏览(33)
  • 一起玩儿物联网人工智能小车(ESP32)——12. 组装L298N驱动马达和供电电路

    摘要:本文介绍L298N模块与TT马达以及电源模块的接线方法,并进行初始测试。 在前面完成了第一个ESP32程序。接下来要继续组装我们的智能物联网小车了。今天要完成的工作就是完成智能小车电机驱动和ESP32开发板的控制电路连接。在具体的动手之前,先要进行一些准备工作

    2024年02月02日
    浏览(33)
  • 一起玩儿物联网人工智能小车(ESP32)——59. 基于TFT_eSPI库的1.3寸SPI彩色显示屏的使用(ST7789)

    摘要:本文是TFT液晶屏的基本知识和TFT_eSPI库的简单介绍 在前边已经介绍过0.96寸OLED显示屏的使用方法,那是一个单色屏,显示效果很是一般,因此,本篇来介绍彩色TFT(Thin Film Transistor:薄膜晶体管)显示屏的使用方法。 TFT屏幕和OLED屏幕是两种不同的显示器件。TFT屏幕和

    2024年02月21日
    浏览(35)
  • 一起玩儿物联网人工智能小车(ESP32)——61 基于TFT_eSPI库的1.3寸SPI彩色显示屏的使用(ST7789)(三)

    摘要:本文介绍TFT_eSPI中文字库的制作方法 前面已经介绍了TFT_eSPI库的基本使用方法,如果你可以将英文显示到液晶屏幕上了,那么就可以尝试本文的制作中文字库,并显示中文到液晶屏幕了,否则还是要先完成上一篇文章的学习。 接下来就开始制作中文字库。TFT_eSPI自带了

    2024年02月21日
    浏览(39)
  • 一起玩儿物联网人工智能小车(ESP32)——41. 直流有刷电机驱动模块——L9110S、TB6612FNG和DRV8833简介

    摘要:本文介绍如何使用直流有刷电机驱动模块——L9110S、TB6612FNG和DRV8833 在前边很详细的介绍了直流有刷电机驱动模块L298N,该模块性能良好,输出功率大。但体积也是偏大,本篇文章介绍一下市场上另外几个常见的小型直流有刷电机驱动模块L9110S、TB6612FNG和DRV8833的使用方

    2024年02月21日
    浏览(34)
  • 一起玩儿物联网人工智能小车——04. TT马达的基本介绍

    马达和电机在英语中是两个词,但在我们汉语中感觉差别不大,大概是电机专指电能转与机械能的相互转换的装置,而马达可能包含其他形式的能量与机械能的转换装置。在本文中马达就是特指将电能转化为机械能的电动机。 日常使用的电动机在作用上通常可以分为两种,一

    2024年02月20日
    浏览(39)
  • 物联网毕设 -- 智能图像小车(ESP32+STM32+APP)

    目录 前言  小车拓展 一 连线图 1. 原理图 2. 流程图 3. 实物效果 4. 功能概括 (1)硬件端: (2)APP端: 演示视频 二 底层代码使用方式 1. 使用说明 2. 下载程序 三 APP使用方式 1.下载APP (1)操作方式: (2)使用说明 2. APP界面 🫡若需要,请咨询博主🫡 这个项目的硬件端是

    2024年02月15日
    浏览(35)
  • 走进人工智能| 智能物联网 AIoT的魅力交织

    前言: AI+IoT是指人工智能(AI)与物联网(IoT)的结合。智能物联网是一种技术体系,通过连接和集成物理设备、传感器和互联网,实现设备之间的智能交互和数据共享,为人们提供智能化、自动化和高效化的生活和工作体验。 智能物联网 (Internet of Things,IoT)是指 通过物

    2024年02月14日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包