Använda SG90 -servomotorn med Raspberry Pi

Using the SG90 Servo Motor with the Raspberry Pi

De SG90 servomotor är en liten, lätt servo som vanligtvis används i robotik-, automatiserings- och DIY -projekt. Det möjliggör exakt kontroll av vinkelläge med hjälp av Pulsbreddmodulering (PWM). Den här guiden visar hur du kontrollerar en SG90 servomotor med en Raspberry Pi med Python.


Vad du behöver

  1. Hallon (Varje modell med GPIO -stöd, t.ex. PI 3, PI 4)
  2. SG90 servomotor
  3. Extern kraftkälla (5V, valfritt för flera servon)
  4. Breadboard och jumpertrådar
  5. Python installerad på Raspberry Pi

Steg 1: Kopplar SG90 -servo till Raspberry Pi

De SG90 Servomotor har tre stift:

SG90 -stift Hallon pi Fungera
VCC (röd) 5V (stift 2) Strömförsörjning
GND (Brun) GND (stift 6) Jord
Signal (orange) GPIO18 (stift 12) PWM -signalkontroll

Notera: Om du använder flera servon, använd en extern 5V strömförsörjning För att undvika överbelastning av Raspberry Pis 5V -stift.


Steg 2: Aktivera PWM på Raspberry Pi

Raspberry Pi genererar PWM -signaler för att styra servopositionen.

  1. Installera Raspberry Pi Gpio Library (om inte redan installerat):
    sudo apt update && sudo apt install python3-rpi.gpio
    
  2. Öppna en Python Script Editor:
    nano servo_control.py
    
  3. Kopiera följande Python -skript till Kontrollera SG90 -servomotorn:

Steg 3: Python -kod för att styra servon

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

Steg 4: Kör servokontrollskriptet

  1. Spara skriptet och avsluta:

    • Trycka Ctrl+xoch då Yoch då SKRIVA IN.
  2. Kör skriptet:

    python3 servo_control.py
    
  3. Ange vinklar mellan 0 och 180 att flytta servo.


Steg 5: Förstå PWM för servokontroll

  • PWM -frekvens: SG90 arbetar vid 50Hz.
  • Tullcykelberäkning:
    • 0 ° → 2,5% arbetscykel
    • 90 ° → 7,5% arbetscykel
    • 180 ° → 12,5% arbetscykel
  • Formel: duty_cycle = (angle / 18) + 2.5

Steg 6: Tillämpningar av SG90 -servo med Raspberry Pi

  1. Robotarmar - Kontrollfogar för rörelse.
  2. Automatiserade dörrar och lås - Öppna/stäng mekanismer med en servo.
  3. Pan-lutningskamerasystem - Flytta kameror för övervakning eller fotografering.
  4. Smart Home Automation - Kontrollspakar, lås och växlar på distans.

Felsökning

  1. Servo rör sig inte?

    • Säkerställa Korrekt ledning (VCC, GND och GPIO18 för signal).
    • Om du använder flera servon, använd en extern 5v strömkälla.
  2. Ojämna rörelser?

    • Säkerställa stabil kraft; använda Kondensatorer (100 uF) vid behov.
    • Använda Högre precision PWM -kontroll, som en PCA9685 PWM -modul för flera servon.
  3. Tillstånd nekad fel?

    • Köra manuset med sudo:
      sudo python3 servo_control.py
      

Slutsats

De SG90 servomotor är ett bra sätt att lägga till rörelsekontroll till Raspberry Pi -projekt. Genom att använda PWM -signaler, du kan exakt kontrollera servos position för Robotik, automatisering och IoT -applikationer. Experimentera med olika vinklar och applikationer för att låsa upp sin fulla potential! 🚀

Lämna en kommentar

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.