物联网AI MicroPython传感器学习 之 舵机控制器

学物联网,来万物简单IoT物联网!!在这里插入图片描述

一、产品简介

舵机(英文叫Servo)是一种通过发送信号,指定输出旋转角度。舵机一般与普通直流电机的区别主要在于直流电机是一圈圈转动的,舵机只能在一定角度内转动,不能一圈圈转(舵机一般而言都有最大旋转角度,比如180度),可以反馈转动的角度信息。所以舵机主要用于控制某物体转动一定角度用的(比如机器人的关节、开关门),本驱动传感器型号是MG995.
物联网AI MicroPython传感器学习 之 舵机控制器_第1张图片

引脚定义

准备材料:

  • 一块ETT-B1开发板
  • 舵机控制器一个
  • 杜邦线3根
  • USB线一根

连接图:
物联网AI MicroPython传感器学习 之 舵机控制器_第2张图片

二、技术参数

  • 使用电压:3-7.2V
  • 反应转速:63-62r/m
  • 工作电流:100mA
  • 工作扭矩:13Kg/cm
  • 工作温度:30°C-55°C
  • 结构:金属锯齿、空心杯电机、双滚珠轴承
  • 线长:25cm

三、软件接口

SERVO(pwmObj) - 创建舵机驱动对象

  • 函数原型

servoObj = SERVO(pwmObj)

  • 参数说明
参数 类型 必选参数? 说明
pwmObj PWM 传入PWM对象
  • 返回值

SERVO对象成功,返回SERVO对象;SERVO对象创建失败,抛出Exception

  • 示例代码
from machine import PWM, Pin
import servo

pwmObj = PWM(Pin(2))
servoObj = servo.SERVO(pwmObj)
print("Testing SERVO ...")
  • 输出
Testing SERVO ...

setOptionSero(data) - 设置舵机的转动

  • 函数功能:

设置舵机的转动

  • 函数原型:

SERVO.setOptionSero(data)

  • 参数说明:
    | 参数 | 类型 | 必选参数? | 说明 |
    | — | — | — | — |
    | data | number | 是 | 范围从-90度到+90度,0为设置初始原始位置 |

  • 返回值:

  • 示例:
from machine import PWM, Pin
import servo
import utime

pwmObj = PWM(Pin(2))
servoObj = servo.SERVO(pwmObj)
print("Testing SERVO ...")

servoObj.setOptionSero(0)
print("0")
utime.sleep(10)
servoObj.setOptionSero(90)
print("90")
  • 输出
Testing SERVO ...
0
90

四、接口案例

  • 案例代码
from machine import PWM, Pin
import servo
import utime

pwmObj = PWM(Pin(2))
servoObj = servo.SERVO(pwmObj)
print("Testing SERVO ...")
servoObj.setOptionSero(0)
print("0")
utime.sleep(5)

while True:             # 无限循环
    servoObj.setOptionSero(90)
    print("90")
    utime.sleep(1)
    servoObj.setOptionSero(0)
    print("0")
    utime.sleep(1)
    servoObj.setOptionSero(-90)
    print("-90")
    utime.sleep(1)
    servoObj.setOptionSero(0)
    print("0")
    utime.sleep(1)
  • 输出
Testing SERVO ...
0
90
0
-90
0
90

五、工作原理

舵机的转动角度跟输入脉冲表

角度 脉冲周期 脉冲高电平时间 对应占空比
0 20ms 0.5ms 2.5%
45 20ms 1ms 5.0%
90 20ms 1.5ms 7.5%
135 20ms 2ms 10.0%
180 20ms 2.5ms 12.5%

从上表可以看出角度是由来自控制线的持续脉冲所产生。这种控制方法叫做脉冲调制。脉冲的长短决定舵机转动多大角度。例如:1.5毫秒脉冲会到转动到中间位置(对于180°舵机来说,就是90°位置)。当控制系统发出指令,让舵机移动到某一位置,并让他保持这个角度,这时外力的影响不会让他角度产生变化,但是这个是由上限的,上限就是他的最大扭力。除非控制系统不停的发出脉冲稳定舵机的角度,舵机的角度不会一直不变。
当舵机接收到一个小于1.5ms的脉冲,输出轴会以中间位置为标准,逆时针旋转一定角度。接收到的脉冲大于1.5ms情况相反。不同品牌,甚至同一品牌的不同舵机,都会有不同的最大值和最小值。一般而言,最小脉冲为1ms,最大脉冲为2ms。
总结:舵机角度的转动就是通过高、低脉冲的变化实现的。

参考文献及购买链接

[1] 购买链接

你可能感兴趣的:(物联网传感器,python,物联网,单片机,驱动开发,人工智能,嵌入式硬件)