LBotics.at

Der mBot2 Roboter verfügt über die Möglichkeit bis zu 4 Servomotoren (kurz Servos) an die Ports S1 bis S4 anzuschließen.

Was unterscheidet einen Servo von einem kontinuierlich drehenden Motor?

Ein Servomotor ist ein Elektromotor, der über ein Getriebe und eine Regelelektronik verfügt mit der man die Winkelposition der Motorwelle kontinuierlich genau festlegen kann. Damit lassen sich z. B. mechanische Bauteile bewegen, die in unterschiedliche Positionen gebracht werden sollen. Je nach Bauart können diese underschiedliche, maximale Drehwinkel haben - üblich sind 180° oder 270°.

Der Anschluss eines solchen Servos erfolgt über drei Leitungen: eine Plus- und Minusleitung (rot und braun) zur Stromversorgung und eine Datenleitung (gelb).

Wie erfolgt die Steuerung der Winkelposition durch ein digitales Signal?

Über die Datenleitung erhält ein Servo ein gepulstes, elektrisches Signal. In diesem PWM-Signal (PulsWeitenModulation) sind Informationen enthalten, welche die Regelelektronik auswertet und darauf hin die Achse in die gewünschte Winkelposition dreht.

Das Signal enthält alle 20 ms einen Impuls, der eine Dauer zwischen 1 ms und 2 ms hat. Bei einer Pulsbreite von 1 ms befindet sich die Drehachse an der Position 0°. Bei einem Servo, der einen maximalen Drehwinkel von 180° hat, würde man die Drehachse mit einer Pulsbreite von 2 ms an die Position 180° bewegen. Mit einer genau dazwischen liegenden Pulsbreite von 1,5 ms befindet sich die Drehachse an der Position 90°.

Anschluss eines Servos an einen mBot2 Roboter

Die Steckkontakte der meisen Servos verfügen bereits über die richtige Reihenfolge der Anordnung der Leitungen im Stecker, die genau den Anschlüssen S1, S2, S3 und S4 am Roboter entspricht.

ACHTUNG: Ein Anschluss von externen Komponenten unter Nichtbeachtung der exakten Anschlussvorgaben kann zu irreparablen Schäden der Elektronik im mBot2 Roboter führen!

Beim Anstecken eines Servos an einen mBot2 Roboter immer beachten:

  1. Kontolle, ob die Reihenfolge der Anschlussleitungen des Servos denen der Anschlüsse des mBot2 Roboters entspricht: Datenleitung (gelb, außen) - Plusleitung (rot, Mitte) - Minusleitung (braun, außen)
  2. Den Stecker des Servokabels genau so in die Buchse des mBot2 Roboters stecken, dass dies mit der aufgedruckten Beschriftung der einzelnen Pins am mBot2 Roboter übereinstimmt (siehe Zeichnung)!
    Servo braun <--> mBot2 minus
    Servo rot <--> mBot2 plus
    Servo gelb <--> mBot2 S1, S2, S3, S4

Programmbeispiel - Einlesen des Zustands eines Tasters am Port S1

Mit dem folgenden Code wird die Motorwelle eines Servos, der an den Port S1 angeschlossen ist, im Abstand von 4 Sekunden zu unterschieldichen Positionen gedreht. Zunächst befindet sich die Drehachse in Mittelposition (90°). Im Anschluss daran wird diese ganz nach links gedreht (Position 0°), dann ganz nach rechts (Position 180°) und zuletzt wieder in die Mittelposition (90°).

import cyberpi, mbot2, time

while True:
mbot2.servo_set(90,1)
time.sleep(4)
mbot2.servo_set(0,1)
time.sleep(4)
mbot2.servo_set(180,1)
time.sleep(4)
mbot2.servo_set(90,1)
time.sleep(4)
Erklärungen zu diesem Programmbeispiel

Zeile 4: mbot2.servo_set(90,1):

Um die Drehachse eines Servos auf eine bestimmte Winkelposition zu stellen, übergibt man der Funktion mbot2.servo_set(angle, port) die gewünschte Winkelposition und den Port, an dem der Servo angeschlossen ist.

angle: 0, ..., 180

port: 1, 2, 3, 4  (1 für S1, 2 für S2, 3 für S3, 4 für S4)

Zusammenfassung - Was wurde in diesem Abschnitt gelernt?
  • An einen mBot2 Roboter können bis zu 4 Servos angeschlossen werden.
  • Servomotoren verfügen über eine Regelelektronik mit welcher die Winkelposition der Motorwelle genau eingestellt werden kann.
  • Mit der Funktion mbot2.servo_set(angle, port) wird die gewünschte Winkelposition der Motorwelle eines Servos festgelegt.