FREE SHIPPING ON ALL ORDERS OVER £20

60 DAY HASSLE-FREE RETURNS

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 at magaan na servo na karaniwang ginagamit sa robotics, automation, at mga proyektong DIY. Pinapayagan nito ang tumpak na pagkontrol sa anggulo ng posisyon gamit ang Pulse Width Modulation (PWM). Ipakikita ng gabay na ito kung paano kontrolin ang isang SG90 servo motor gamit ang Raspberry Pi sa pamamagitan ng Python.


Mga Kakailanganin

  1. Raspberry Pi (anumang model na may suporta sa GPIO, hal. Pi 3, Pi 4)
  2. SG90 Servo Motor
  3. External Power Source (5V, opsyonal para sa maraming servo)
  4. Breadboard at Jumper Wires
  5. Python na naka-install sa Raspberry Pi

Hakbang 1: Pag-wire ng SG90 Servo sa Raspberry Pi

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) Ground
Signal (Orange) GPIO18 (Pin 12) PWM Signal Control

Paalala: Kung gumagamit ng maraming servo, gumamit ng external 5V power supply upang maiwasan ang overloading sa 5V pin ng Raspberry Pi.


Hakbang 2: I-enable ang PWM sa Raspberry Pi

Ang Raspberry Pi ay bumubuo ng mga PWM signal upang kontrolin 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. Magbukas ng Python script editor:
    nano servo_control.py
    
  3. I-copy ang sumusunod na Python script para kontrolin ang SG90 servo motor:

Hakbang 3: Python Code para Kontrolin ang Servo

import RPi.GPIO as GPIO
import time

# I-set up ang GPIO pin para sa PWM
SERVO_PIN = 18  # Gamitin ang GPIO18 (Pin 12)
GPIO.setmode(GPIO.BCM)
GPIO.setup(SERVO_PIN, GPIO.OUT)

# Simulan ang PWM na may 50Hz frequency
pwm = GPIO.PWM(SERVO_PIN, 50)
pwm.start(0)

def set_angle(angle):
    duty_cycle = (angle / 18) + 2.5  # I-convert ang anggulo sa duty cycle
    GPIO.output(SERVO_PIN, True)
    pwm.ChangeDutyCycle(duty_cycle)
    time.sleep(0.5)  # Maghintay para gumalaw ang servo
    GPIO.output(SERVO_PIN, False)
    pwm.ChangeDutyCycle(0)

try:
    while True:
        angle = int(input("Ilagay ang anggulo (0-180): "))
        if 0 <= angle <= 180:
            set_angle(angle)
        else:
            print("Maling anggulo! Maglagay ng value sa pagitan ng 0 at 180.")

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

Hakbang 4: Pagpapatakbo ng Servo Control Script

  1. I-save ang script at lumabas:

    • Pindutin ang CTRL+X, pagkatapos ay Y, at pagkatapos ay ENTER.
  2. Patakbuhin ang script:

    python3 servo_control.py
    
  3. Maglagay ng mga anggulo sa pagitan ng 0 at 180 para igalaw ang servo.


Hakbang 5: Pag-unawa sa PWM para sa Servo Control

  • PWM Frequency: Ang SG90 ay gumagana sa 50Hz.
  • Duty Cycle Calculation:
    • 0° → 2.5% Duty Cycle
    • 90° → 7.5% Duty Cycle
    • 180° → 12.5% Duty Cycle
  • Formula: duty_cycle = (angle / 18) + 2.5

Hakbang 6: Mga Aplikasyon ng SG90 Servo kasama ang Raspberry Pi

  1. Robotic Arms – Kontrolin ang mga joint para sa paggalaw.
  2. Automated Doors & Locks – Mga mekanismo ng pagbukas/pagsara gamit ang servo.
  3. Pan-Tilt Camera Systems – Igalaw ang mga camera para sa surveillance o photography.
  4. Smart Home Automation – Kontrolin ang mga lever, lock, at switch nang malayuan.

Troubleshooting

  1. Hindi gumagalaw ang servo?

    • Siguraduhin ang tamang wiring (VCC, GND, at GPIO18 para sa signal).
    • Kung gumagamit ng maraming servo, gumamit ng external 5V power source.
  2. Maling paggalaw?

    • Siguraduhin ang stable na power; gumamit ng capacitors (100µF) kung kinakailangan.
    • Gumamit ng higher precision PWM control, gaya ng PCA9685 PWM module para sa maraming servo.
  3. Permission Denied Error?

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

Konklusyon

Ang SG90 servo motor ay isang mahusay na paraan upang magdagdag ng motion control sa mga proyekto sa Raspberry Pi. Sa paggamit ng PWM signals, maaari mong tumpak na kontrolin ang posisyon ng servo para sa robotics, automation, at mga aplikasyon sa IoT. Mag-eksperimento sa iba't ibang anggulo at aplikasyon upang mailabas ang buong potensyal nito! 🚀

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.

1 Komento

Hi,
I’m considering buying some servos for a robotics and I keep seeing “analogue” and “digital” servos. If I’m using analogue servos do I need an ADC for each one, or can I plug them straight into the pi? is there even any difference? I assume this guide is for digital servos, but the pictures don’t have the “digital” label some do online

Fozzy,

Mag -iwan ng komento