LBotics.at

An ein KeplerBRAIN V4 Mainboard können bis zu 4 Servomotoren (kurz Servos) an die Ports IOS 1 bis IOS 4 angeschlossen werden.

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°.

ACHTUNG: Bei manchen Servos kann die Pulsbreite aber auch abweichende Längen haben. Hierzu sind die Angaben des jeweiligen Herstellers zu beachten. Ein Miuzel MF90 Micro Servo wird z. B. mit Pulsbreiten von 500 uS bis zu 2500 uS angesteuert.

Anschluss eines Servos an ein KeplerBRAIN V4 Mainboard

Die Steckkontakte der meisen Servos verfügen bereits über die richtige Reihenfolge der Anordnung der Leitungen im Stecker, die genau den Anschlüssen IOS1, IOS2, IOS3, IOS4 entspricht.

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

Beim Anstecken eines Servos an ein KeplerBRAIN V4 Mainboard immer beachten:

  1. Kontolle, ob die Reihenfolge der Anschlussleitungen des Servos denen der Anschlüsse der IOS - Ports entspricht: Datenleitung (gelb, außen) - Plusleitung (rot, Mitte) - Minusleitung (braun, außen)
  2. Die drei Leitungen des Servos müssen wie folgt angeschlossen werden:
    Servo braun <--> IOSx GND
    Servo rot <--> IOSx +5V
    Servo gelb <--> IOSx SIG

Programmbeispiel - Bewegen der Servoachse zu bestimmten Positionen

Mit dem folgenden Code wird die Motorwelle eines Servos, der an den Port IOS1 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 der Vorgang wiederholt sich wieder beginnend mit der Mittelposition (90°).

#include "KeplerBRAIN_V4.h"

void setup()
{
// Initialisierung der Hardwarekomponenten des Controllers
KEPLERBRAIN_INIT();

// Initialisierung des Ports IOS1 zur Generierung eines Servo-PWM-Signal
WRITE_SERVO_INIT(IOS1);

// Löschen der beiden Zeilen des Displays
WRITE_LCD_TEXT(1,1," ");
WRITE_LCD_TEXT(1,2," ");
}

void loop()
{
WRITE_LCD_TEXT(1,1,"Servo: MITTE ");
WRITE_SERVO_PWM(IOS1,1500);
delay(4000);

WRITE_LCD_TEXT(1,1,"Servo: LINKS ");
WRITE_SERVO_PWM(IOS1,500);
delay(4000);

WRITE_LCD_TEXT(1,1,"Servo: RECHTS ");
WRITE_SERVO_PWM(IOS1,2500);
delay(4000);
}
Erklärungen zu diesem Programmbeispiel

Zeile 9: WRITE_SERVO_INIT(IOS1);

Bevor am einem IOS-Port ein PWM-Signal für einen Servo ausgegeben werden kann, muss dieser dafür konfiguriert werden. Dies geschieht mit der Funktion WRITE_SERVO_INIT(port).

port: IOS1, IOS2, IOS3, IOS4

Zeile 19, 23, 27: WRITE_SERVO_PWM(IOS1,1500);

Mit der Funktion WRITE_SERVO_PWM(port, pulslength) wir die Breite eines Pulses des PWM-Signals festgelegt. Üblicher Weise liegt diese zwischen 1ms und 2ms. Die Angabe dieser Pulslänge erfolgt in Mikrosekunden. Je nach Herstellerangabe können hier Werte zwischen 500 und 2500 uS übergeben werden.

port: IOS1, IOS2, IOS3, IOS4

pulslength: ganzzahlige Werte in uS zwischen 500 und 2500

Zusammenfassung - Was wurde in diesem Abschnitt gelernt?
  • An einen KeplerBRAIN V4 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.
Konstruktion von mechanischen Bauteilen für Servos

Jedem Servo ist ein sogenanntes Servo-Horn beigelegt. Dieses wird auf den Zahnkranz der Drehachse gesteckt und dient grundsätzlich dazu, um durch Drähte oder Seilzüge mechanische Komponenten in Modellflugzeugen, Modellautos, ... anzusteuern. Die Montage komplexerer Teile direkt auf den Servo gestaltet sich damit schwierig.

DIY - Adapter für Servos

Mit dem hier vorgstellten 3D Druck - Adapter können sehr einfach Bauteile auf den Servo montiert werden. Dieser ist so konstruiert, dass er genau das Servohorn eines MF90 Micro Servos in sich aufnimmt. Damit kann der Adapter dann genau auf den Zahnkranz des Servos gesteckt und dort mit der Originalschraube fixiert werden.

Der Adapter besteht aus einem unteren und einem oberen Teil. Der untere Teil wird meist so bleiben wie vorgegeben, den oberen Teil kann man sehr einfach zu eigenen Bauteilen mit einem CAD-Programm erweitern. Dazu sind auch die beiden 3D Konstruktionsdateien für Design Spark Mechanical, wie auch als STL-Datei zur Verfügung gestellt.

Zusammenbau des Adapters und Montage auf einem MF90 Micro Servo

Zuerst wird das Servo-Horn in den unteren Teil gelegt und dann der obere Teil des Adapters mit den 4 Schrauben fixiert. Im Anschluss daran wird der gesamte Adapter auf die Servoachse gesteckt und mit der Originalschraube an der Servoachse fixiert.

Erweiterung des oberen Adapterteil

In der folgenden Abbildung ist zu sehen, wie der obere Teil zum Beispiel zu einem Greifarm erweitert werden kann.

Dateien zum Download

MF90_Servo_Horn_Adapter_oben.rsdocx

MF90_Servo_Horn_Adapter_oben.stl

MF90_Servo_Horn_Adapter_unten.rsdocx

MF90_Servo_Horn_Adapter_unten.stl

MF90_Servo_Horn_Adapter_Greifarm.rsdocx

MF90_Servo_Horn_Adapter_Greifarm.stl