Verwenden des SG90 -Servomotors mit dem Raspberry Pi

Using the SG90 Servo Motor with the Raspberry Pi

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

  1. Raspberry Pi (Jedes Modell mit GPIO -Unterstützung, z. B. PI 3, PI 4)
  2. SG90 Servomotor
  3. Externe Stromquelle (5 V, optional für mehrere Servos)
  4. Breadboard- und Jumper -Drähte
  5. 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.

  1. Installieren Sie die Raspberry Pi GPIO -Bibliothek (Wenn nicht bereits installiert):
    sudo apt update && sudo apt install python3-rpi.gpio
    
  2. Öffnen Sie einen Python -Skript -Editor:
    nano servo_control.py
    
  3. 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

  1. Speichern Sie das Skript und beenden Sie:

    • Drücken Strg+x, Dann Y, Dann EINGEBEN.
  2. Führen Sie das Skript aus:

    python3 servo_control.py
    
  3. 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

  1. Roboterarme - Kontrollgelenke für die Bewegung.
  2. Automatische Türen & Schlösser - Öffnen/Schließen Mechanismen mit einem Servo.
  3. Pan-Tilt-Kamerasysteme - Kameras für Überwachung oder Fotografie bewegen.
  4. Smart Home Automation - Steuerhebel, Schlösser und Schalter aus der Ferne.

Fehlerbehebung

  1. 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.
  2. 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.
  3. Erlaubnis verweigert Fehler?

    • Führen Sie das Skript mit sudo:
      sudo python3 servo_control.py
      

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! 🚀

Hinterlasse einen 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.