Der SG90 Servomotor ist ein kleines, leichtes Servo, das üblicherweise in Robotik-, Automatisierungs- und DIY -Projekten verwendet wird. Es ermöglicht eine präzise Kontrolle der Winkelposition mit Verwendung Impulsbreitenmodulation (PWM). Diese Anleitung zeigt Ihnen, wie Sie eine kontrollieren SG90 -Servomotor mit einem Himbeer -Pi mit Python.
Was Sie brauchen werden
- Raspberry Pi (Jedes Modell mit GPIO -Unterstützung, z. B. PI 3, PI 4)
- SG90 Servomotor
- Externe Stromquelle (5 V, optional für mehrere Servos)
- Breadboard- und Jumper -Drähte
- Python installiert Auf dem Raspberry Pi
Schritt 1: Verkabelung des SG90 -Servos mit dem Raspberry Pi
Der SG90 Servo Motor hat drei Stifte:
SG90 Pin | Raspberry Pi Pin | Funktion |
---|---|---|
VCC (rot) | 5 V (Pin 2) | Stromversorgung |
GND (braun) | GND (Pin 6) | Boden |
Signal (Orange) | GPIO 18 (Pin 12) | PWM -Signalsteuerung |
Notiz: Wenn Sie mehrere Servos verwenden, verwenden Sie eine externe 5 -V -Stromversorgung Um zu vermeiden, dass das 5 -V -Pin des Raspberry Pi überlastet wird.
Schritt 2: Aktivieren Sie PWM auf dem Raspberry Pi
Der Raspberry Pi generiert PWM -Signale die Servoposition zu kontrollieren.
- Installieren Sie die Raspberry Pi GPIO -Bibliothek (Wenn nicht bereits installiert):
sudo apt update && sudo apt install python3-rpi.gpio
- Öffnen Sie einen Python -Skript -Editor:
nano servo_control.py
- Kopieren Sie das folgende Python -Skript nach Steuern Sie den SG90 -Servomotor:
Schritt 3: Python -Code zur Steuerung des Servos
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()
Schritt 4: Ausführen des Servo -Kontrollskripts ausführen
-
Speichern Sie das Skript und beenden Sie:
- Drücken Strg+x, Dann Y, Dann EINGEBEN.
-
Führen Sie das Skript aus:
python3 servo_control.py
-
Geben Sie Winkel zwischen 0 und 180 ein den Servo bewegen.
Schritt 5: PWM für die Servokontrolle verstehen
- PWM -Frequenz: Der SG90 arbeitet bei 50 Hz.
-
Dienstzyklusberechnung:
- 0 ° → 2,5% Arbeitszyklus
- 90 ° → 7,5% Arbeitszyklus
- 180 ° → 12,5% Dienstzyklus
-
Formel:
duty_cycle = (angle / 18) + 2.5
Schritt 6: Anwendungen des SG90 -Servos mit Raspberry Pi
- Roboterarme - Kontrollgelenke für die Bewegung.
- Automatische Türen & Schlösser - Öffnen/Schließen Mechanismen mit einem Servo.
- Pan-Tilt-Kamerasysteme - Kameras für Überwachung oder Fotografie bewegen.
- Smart Home Automation - Steuerhebel, Schlösser und Schalter aus der Ferne.
Fehlerbehebung
-
Servo nicht bewegt?
- Sicherstellen Richtige Verkabelung (VCC, GND und GPIO 18 für Signal).
- Wenn Sie mehrere Servos verwenden, verwenden Sie eine externe 5 -V -Stromquelle.
-
Unregelmäßige Bewegungen?
- Stabile Kraft sorgen; verwenden Kondensatoren (100 uF) bei Bedarf.
- Verwenden höhere Präzision PWM -Kontrollewie a PCA9685 PWM -Modul Für mehrere Servos.
-
Erlaubnis verweigert Fehler?
- Führen Sie das Skript mit
sudo
:sudo python3 servo_control.py
- Führen Sie das Skript mit
Abschluss
Der SG90 Servomotor ist eine großartige Möglichkeit, hinzuzufügen Bewegungskontrolle Raspberry PI -Projekte. Durch Verwendung PWM -SignaleSie können die Position des Servos für genau steuern Robotik, Automatisierung und IoT -Anwendungen. Experimentieren Sie mit unterschiedlichen Blickwinkeln und Anwendungen, um sein volles Potenzial auszuschalten! 🚀