将SG90伺服电机与Raspberry Pi一起使用

Using the SG90 Servo Motor with the Raspberry Pi

这 SG90伺服电机 是一款在机器人技术,自动化和DIY项目中常用的小型,轻巧的伺服器。它允许精确控制角位置 脉冲宽度调制(PWM)。本指南将向您展示如何控制 SG90伺服电机带有覆盆子Pi 使用Python。


你需要什么

  1. 覆盆子pi (任何具有GPIO支持的模型,例如PI 3,PI 4)
  2. SG90伺服电机
  3. 外部电源(5V,多个伺服器的可选)
  4. 面包板和跳线电线
  5. 安装了Python 在覆盆子pi上

步骤1:将SG90伺服器接线到Raspberry Pi

SG90伺服电机有三个销钉:

SG90针 覆盆子Pi Pin 功能
VCC(红色) 5V(引脚2) 电源
GND(棕色) GND(引脚6) 地面
信号(橙色) GPIO18(引脚12) PWM信号控制

笔记: 如果使用多个伺服器,请使用 外部5V电源 为了避免超载Raspberry Pi的5V针。


步骤2:在Raspberry Pi上启用PWM

覆盆子pi 生成PWM信号 控制伺服位置。

  1. 安装 覆盆子PI GPIO库 (如果尚未安装):
    sudo apt update && sudo apt install python3-rpi.gpio
    
  2. 打开Python脚本编辑器:
    nano servo_control.py
    
  3. 将以下python脚本复制到 控制SG90伺服电机:

步骤3:控制伺服器的Python代码

import RPi.GPIO as GPIO
import time

# Set up the GPIO pin for PWM
SERVO_PIN = 18  # Use GPIO18 (Pin 12)
GPIO.setmode(GPIO.BCM)
GPIO.setup(SERVO_PIN, GPIO.OUT)

# Start PWM with 50Hz frequency
pwm = GPIO.PWM(SERVO_PIN, 50)
pwm.start(0)

def set_angle(angle):
    duty_cycle = (angle / 18) + 2.5  # Convert angle to duty cycle
    GPIO.output(SERVO_PIN, True)
    pwm.ChangeDutyCycle(duty_cycle)
    time.sleep(0.5)  # Wait for servo to move
    GPIO.output(SERVO_PIN, False)
    pwm.ChangeDutyCycle(0)

try:
    while True:
        angle = int(input("Enter angle (0-180): "))
        if 0 <= angle <= 180:
            set_angle(angle)
        else:
            print("Invalid angle! Enter a value between 0 and 180.")

except KeyboardInterrupt:
    print("Exiting...")
    pwm.stop()
    GPIO.cleanup()

步骤4:运行伺服控制脚本

  1. 保存脚本并退出:

    • Ctrl+X, 然后 y, 然后 进入.
  2. 运行脚本:

    python3 servo_control.py
    
  3. 输入0到180之间的角度 移动伺服器。


步骤5:了解PWM用于伺服控制

  • PWM频率: SG90在 50Hz.
  • 占空比计算:
    • 0°→2.5%占空比
    • 90°→7.5%占空比
    • 180°→12.5%占空比
  • 公式: duty_cycle = (angle / 18) + 2.5

步骤6:SG90伺服器与Raspberry Pi的应用

  1. 机器人的武器 - 移动控制接头。
  2. 自动门和锁 - 使用伺服器打开/关闭机制。
  3. 板倾斜摄像头系统 - 移动相机进行监视或摄影。
  4. 智能家庭自动化 - 远程控制杆,锁和开关。

故障排除

  1. 伺服器不动?

    • 确保 正确接线 (信号的VCC,GND和GPIO18)。
    • 如果使用多个伺服器,请使用 外部5V电源.
  2. 不稳定的动作?

    • 确保稳定的力量;使用 电容器(100µF) 如果需要。
    • 使用 更高的精度PWM控制,例如 PCA9685 PWM模块 用于多个伺服器。
  3. 允许拒绝错误?

    • 运行脚本 sudo:
      sudo python3 servo_control.py
      

结论

SG90伺服电机 是添加的好方法 运动控制 覆盆子PI项目。通过使用 PWM信号,您可以精确控制伺服器的位置 机器人技术,自动化和物联网应用程序。尝试不同的角度和应用,以解锁其全部潜力! 🚀

发表评论

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.