Gamit ang SG90 Servo Motor na may Raspberry Pi

Using the SG90 Servo Motor with the Raspberry Pi

Ang SG90 Servo Motor ay isang maliit, magaan na servo na karaniwang ginagamit sa mga robotics, automation, at mga proyekto ng DIY. Pinapayagan nito ang tumpak na kontrol ng anggular na posisyon gamit ang Pulse Width Modulation (PWM). Ang gabay na ito ay magpapakita sa iyo kung paano makontrol ang isang SG90 Servo Motor na may Raspberry Pi Gamit ang Python.


Ano ang kakailanganin mo

  1. Raspberry Pi (Anumang modelo na may suporta sa GPIO, hal., PI 3, PI 4)
  2. SG90 Servo Motor
  3. Panlabas na Pinagmulan ng Power (5V, Opsyonal para sa Maramihang Servos)
  4. Mga wire ng tinapay at jumper
  5. Naka -install ang Python Sa Raspberry Pi

Hakbang 1: Ang mga kable ng SG90 Servo sa Raspberry Pi

Ang Ang SG90 Servo Motor ay may tatlong pin:

SG90 PIN Raspberry Pi Pin Function
VCC (pula) 5v (pin 2) Power Supply
Gnd (kayumanggi) GND (pin 6) Lupa
Signal (orange) Gpio18 (pin 12) Control ng signal ng PWM

Tandaan: Kung gumagamit ng maraming servos, gumamit ng isang Panlabas na 5V Power Supply Upang maiwasan ang labis na pag -load ng 5V pin ng Raspberry Pi.


Hakbang 2: Paganahin ang PWM sa Raspberry Pi

Ang Raspberry Pi Bumubuo ng mga signal ng PWM Upang makontrol ang posisyon ng servo.

  1. I -install ang Raspberry Pi Gpio Library (kung hindi pa naka -install):
    sudo apt update && sudo apt install python3-rpi.gpio
    
  2. Buksan ang isang editor ng script ng Python:
    nano servo_control.py
    
  3. Kopyahin ang sumusunod na script ng Python sa Kontrolin ang motor ng SG90 Servo:

Hakbang 3: Python code upang makontrol ang servo

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()

Hakbang 4: Pagpapatakbo ng Servo Control Script

  1. I -save ang script at exit:

    • Pindutin Ctrl+x, pagkatapos Y, pagkatapos Pumasok.
  2. Patakbuhin ang script:

    python3 servo_control.py
    
  3. Ipasok ang mga anggulo sa pagitan ng 0 at 180 upang ilipat ang servo.


Hakbang 5: Pag -unawa sa PWM para sa control ng servo

  • Dalas ng PWM: Ang SG90 ay nagpapatakbo sa 50Hz.
  • Pagkalkula ng Duty Cycle:
    • 0 ° → 2.5% cycle ng tungkulin
    • 90 ° → 7.5% cycle ng tungkulin
    • 180 ° → 12.5% ​​cycle ng tungkulin
  • Formula: duty_cycle = (angle / 18) + 2.5

Hakbang 6: Mga Aplikasyon ng SG90 Servo na may Raspberry Pi

  1. Robotic arm - Kontrolin ang mga kasukasuan para sa paggalaw.
  2. Mga awtomatikong pintuan at kandado - Buksan/isara ang mga mekanismo gamit ang isang servo.
  3. Pan-Tilt Camera Systems - Ilipat ang mga camera para sa pagsubaybay o pagkuha ng litrato.
  4. Smart Home Automation - Mga control levers, kandado, at lumipat nang malayuan.

Pag -aayos

  1. Servo hindi gumagalaw?

    • Matiyak Tamang mga kable (VCC, GND, at GPIO18 para sa signal).
    • Kung gumagamit ng maraming servos, gumamit ng isang Panlabas na mapagkukunan ng kapangyarihan ng 5V.
  2. Mga maling paggalaw?

    • Tiyakin ang matatag na kapangyarihan; Gumamit mga capacitor (100µF) Kung kinakailangan.
    • Gumamit mas mataas na kontrol ng PWM control, tulad ng a PCA9685 Module ng PWM Para sa maramihang mga servos.
  3. Ang pahintulot ay tinanggihan ang error?

    • Patakbuhin ang script kasama sudo:
      sudo python3 servo_control.py
      

Konklusyon

Ang SG90 Servo Motor ay isang mahusay na paraan upang idagdag kontrol ng paggalaw sa mga proyekto ng Raspberry Pi. Sa pamamagitan ng paggamit Mga signal ng PWM, maaari mong tumpak na kontrolin ang posisyon ng servo Robotics, automation, at IoT application. Eksperimento sa iba't ibang mga anggulo at aplikasyon upang i -unlock ang buong potensyal nito! 🚀

Mag -iwan ng komento

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.