19. [Micropython]TPYBoard v202 PWM控制舵机

版权声明:翻译整理属于TPYBoard,转载时请以超链接形式标明文章原始出处和作者信息及本声明

19.1. 实验目的

  • 学习舵机的工作原理和使用方法(舵机型号:SG90)
  • 学习TPYBoard v202中PWM控制舵机

19.2. 准备工作

  • TPYBoard v202 1块
  • micro USB数据线 1条
  • SG90舵机 1个
  • 所需软件 MicroPython File Uploader 点击下载

19.3. 舵机的基本介绍

  • 舵机的组成与参数

    舵机,又称伺服马达,是一种具有闭环控制系统的机电结构。舵机主要是由外壳、电路板、无核心马达、齿轮与位置检测器所构成。 其工作原理是由控制器发出PWM(脉冲宽度调制)信号给舵机,经电路板上的IC处理后计算出转动方向,再驱动无核心马达转动, 透过减速齿轮将动力传至摆臂,同时由位置检测器(电位器)返回位置信号,判断是否已经到达设定位置,一般舵机只能旋转180度。

    ../../../../_images/test_311.png
  • 舵机的接线

    舵机有3根线,棕色为地,红色为电源正,橙色为信号线,但不同牌子的舵机,线的颜色可能不同。

  • 舵机的控制原理

    舵机的转动的角度是通过调节PWM(脉冲宽度调制)信号的占空比来实现的。

    占空比:

    1.指高电平在一个周期之内所占的时间比率。

    2.正脉冲的持续时间与脉冲总周期的比值。例如:正脉冲宽度1μs,信号周期10μs的脉冲序列占空比为0.1。即:脉冲的宽度除以脉冲的周期称为占空比。标准PWM(脉冲宽度调制)信号的周期固定为20ms(50Hz),理论上脉宽分布应在1ms到2ms之间,但是,事实上脉宽可由0.5ms到2.5ms之间,脉宽和舵机的转角0°~180°相对应。

19.4. 硬件的连接

  • 示意图

    TPYBoard V202 SG90舵机
    +5V 正极(红色线)
    GND 负极(棕色线)
    G5 信号(橙色线)
  • 实物图

    ../../../../_images/sg90.jpg

19.5. 源代码

温馨提示:TPYBoard v202开发板上的引脚G9、G10、G16 不支持PWM功能。

main.py程序代码

import machine
import time

#设置PWM 引脚G5,频率50Hz
servo = machine.PWM(machine.Pin(5), freq=50)

servo.duty(40)#舵机角度的设定
time.sleep(2)#延时2秒
servo.duty(115)
time.sleep(2)
servo.duty(180)