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
- Hallon (Varje modell med GPIO -stöd, t.ex. PI 3, PI 4)
- SG90 servomotor
- Extern kraftkälla (5V, valfritt för flera servon)
- Breadboard och jumpertrådar
- 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.
- Installera Raspberry Pi Gpio Library (om inte redan installerat):
sudo apt update && sudo apt install python3-rpi.gpio
- Öppna en Python Script Editor:
nano servo_control.py
- 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
-
Spara skriptet och avsluta:
- Trycka Ctrl+xoch då Yoch då SKRIVA IN.
-
Kör skriptet:
python3 servo_control.py
-
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
- Robotarmar - Kontrollfogar för rörelse.
- Automatiserade dörrar och lås - Öppna/stäng mekanismer med en servo.
- Pan-lutningskamerasystem - Flytta kameror för övervakning eller fotografering.
- Smart Home Automation - Kontrollspakar, lås och växlar på distans.
Felsökning
-
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.
-
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.
-
Tillstånd nekad fel?
- Köra manuset med
sudo
:sudo python3 servo_control.py
- Köra manuset med
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! 🚀