Servo-Motor mit dem Raspberry Pi Pico

Lerne, wie du den SG92R Micro-Servo mit einem Raspberry Pi Pico ansteuerst – mit verständlichem Code in MicroPython.

Was brauchst du?

  • Raspberry Pi Pico
  • Micro-Servo (z. B. SG92R)
  • Jumper-Kabel
  • Breadboard (Optional)

Schritt 1: Was ist ein Servo-Motor?

Ein Servo ist ein kleiner Motor mit eingebauter Positionsregelung. Statt sich frei zu drehen wie ein DC-Motor, kann ein Servo auf eine bestimmte Position (Winkel) gesteuert werden – typischerweise im Bereich von 0 bis 180 Grad.

Der SG92R ist ein beliebter Micro-Servo mit Kunststoff-Getriebe, ideal für kleine Projekte. Die Position wird über ein PWM-Signal (Pulsweitenmodulation) geregelt – also eine schnell getaktete Folge von Spannungsimpulsen, bei denen die Länge des Impulses die Position bestimmt..

Schritt 2: Anschluss des Servos an den Raspberry Pi Pico

Der Servo hat drei Anschlusskabel, typischerweise in Braun, Rot und Orange:

KabelfarbeFunktionAnschluss am Pico
BraunMasse (GND)GND (z. B. Pin 38)
RotVersorgung (+5 V)VBUS (Pin 40)
OrangeSignal (PWM)GPIO-Pin (z. B. GP15, Pin 20)

Warum VBUS und nicht VSYS?

  • VBUS führt genau die 5 V vom USB-Anschluss weiter – ideal für Servos.
  • VSYS kann zwischen 3.3 V und 6 V schwanken, je nachdem wie du den Pico versorgst – das kann problematisch für empfindliche Bauteile sein.
  • Deshalb: Wenn du den Pico über USB betreibst, ist VBUS (Pin 40) der richtige 5V-Ausgang für den Servo.

Schritt 3: Wie funktioniert die Ansteuerung?

Ein Servo versteht sogenannte PWM-Signale – dabei handelt es sich um schnelle Impulse mit einer festen Frequenz, meist 50 Hz. Entscheidend ist die Pulsbreite des Signals:

  • 0.5 ms: Position bei 0°
  • 1.5 ms: Mittelstellung bei 90°
  • 2.5 ms: Maximalstellung bei 180°

Je nachdem, wie lange das Signal pro Zyklus „an“ ist, fährt der Servo auf eine bestimmte Position. Mit dem Raspberry Pi Pico kannst du solche Signale ganz einfach erzeugen – mit der eingebauten PWM-Funktion der Pins.

Schritt 4: Einen festen Winkel anfahren

Zunächst zeigen wir, wie du den Servo in eine bestimmte Position bringst – z. B. auf 90°:

from machine import Pin, PWM
from time import sleep

servo = PWM(Pin(15))  # PWM an Pin GP15 aktivieren
servo.freq(50)        # 50 Hz PWM-Frequenz (Standard für Servos)

def set_angle(angle):
    # Umrechnung von 0–180° in Duty Cycle (0–65535 Skala)
    duty = int((angle / 180) * 6553 + 1638)
    servo.duty_u16(duty)

set_angle(90)  # Servo fährt auf 90°

In dieser Funktion berechnen wir den passenden Duty-Wert für den gewünschten Winkel. Dieser Wert wird dann über duty_u16() an den Servo geschickt.

Tipp: Zum programmieren kannst du zum Beispiel die kostenlose Programmierumgebung Thonny verwenden!

Schritt 5: Servo schrittweise hin- und herbewegen

Jetzt machen wir es etwas spannender: Der Servo soll sich langsam von 0° bis 180° bewegen – und dann wieder zurück. Das kann nützlich sein für wiederholte Bewegungen, z. B. bei einem Schwenkarm oder einem Wischer.

from machine import Pin, PWM
from time import sleep

servo = PWM(Pin(15))
servo.freq(50)

def set_angle(angle):
    duty = int((angle / 180) * 6553 + 1638)
    servo.duty_u16(duty)

while True:
    # Hin-Bewegung: 0° bis 180°
    for angle in range(0, 181, 10):
        set_angle(angle)
        sleep(0.05)

    # Rück-Bewegung: 180° bis 0°
    for angle in range(180, -1, -10):
        set_angle(angle)
        sleep(0.05)

Dieser Code lässt den Servo sanft und wiederholt hin- und herfahren. Du kannst die Schrittgröße (10°) und die Pause (sleep(0.05)) anpassen, um Geschwindigkeit und Feinheit zu verändern.

Schritt 6: Weiterführende Ideen

Wenn du das Grundprinzip verstanden hast, kannst du dein Projekt noch erweitern:

  • Taster einbauen, um bestimmte Winkel anzufahren
  • Potentiometer verwenden, um den Winkel stufenlos manuell einzustellen
  • Mehrere Servos gleichzeitig ansteuern (z. B. für kleine Roboterarme)
  • Positionsspeicherung und Bewegungsmuster programmieren

Fazit

Mit einem günstigen Servo wie dem SG92R und dem Raspberry Pi Pico kannst du in wenigen Minuten Bewegung in dein Projekt bringen. Die Steuerung ist mit MicroPython kinderleicht und perfekt geeignet, um grundlegende Mechanik und Elektronik zu verstehen.

Ob du nun einen Roboter bauen, eine Tür automatisch öffnen oder eine Kamera schwenken willst – mit dieser Anleitung hast du das nötige Wissen, um loszulegen! Hier findest du auf dem Blog weitere spannende Raspberry Pi Pico Projekte!