Doman S2000MD

Artikelnummer: doman-s2000md

Position Feedback Servomotor

Die neuen S2000MD verfügen über digitales Positionsfeedback mit dessen Hilfe die aktuelle Stellung des Abtriebschafts ausgelesen werden kann. Somit kann die Startposition beim Einschalten ermittelt werden, oder der Servo durch manuelles Bewegen des Schafts in die Zielpositionen verfahren werden und diese digital ausgelesen werden. Die Positionsrückmeldung erfolgt ohne zusätzliches Kabel direkt über die Steuerleitung. Durch Senden eines 50µs-Puls kann die aktuelle Position abgefragt werden (siehe "Informationen" unten auf dieser Seite).

Die DOMAN Servomotoren zeichnen sich besonders duch ein hohes Drehmoment bei geringem Totbereich (2µs) aus. Durch seinen verhältnismäßig großen Drehbereich von 180° (für Rad-Freunde: π) eignet er sich besonders für Anwendungen in der Robotik. Angesteuert wird der Servo über den Pulsweitenbereich von 500-2500µs. Das Getriebe ist zweifach kugelgelagert und aus Metall. Die interne 12 Bit digital Positionssteuerung sorgt für präzise Ansteuerung.

micropede

Technische Daten

Technische Zeichnung Doman S2000MD
Eingangsspannung

4,8 - 6,0 V

Modulation

Digital

Drehmoment

1,7Nm (4.8V); 2,1Nm (6V)

Rotationsbereich

180°

Taktung

20 ms

Pulsweite

500 - 2500 µs

Totbereich

~2µs

Connector Typ

JR

Masse

56g

Abmessung

40,6mm x 19,8mm x 47mm

Kabellänge

30cm

Winkelgeschwindigkeit

0.18 sec/60° (4.8v); 0.16sec/60° (6v)

Positionsfeedback

Ja

Inhalt

1 Servo DOMAN S2000MD

Kunststoff Flanschteile, Servohorn

Befestigungsschrauben

Die Videos zeigen Anwendungsbeispiele, die unter Umständen weitere Soft- und Hardwarekomponenten erfordern.

Doman S2000MD

für 18 € inkl. MwSt.*

Informationen

Position Feedback

Winkel auslesen

Um den aktuellen Winkel des Servos auszulesen muss ein 50μs Puls erzeugt und an den Motor gesendet werden. Der Servo schaltet die Steuerleitung anschließend nach einigen μs auf HIGH. Die verstrichene Zeit korreliert mit der Position des Servohorns. Diese befindet sich dabei, analog zu den Steuersignalen, im Bereich 500-2500μs. Mit dem Arduino kann die Abfrage folgendermaßen erreicht werden:

int pin = 9; // servo pin
pinMode(pin, OUTPUT);
digitalWrite(pin, HIGH);
delayMicroseconds(50); // send a 50 us pulse to get the current position
digitalWrite(pin, LOW);
pinMode(pin, INPUT);
int position = pulseIn(pin, HIGH); //e.g. 500-2500

pulseIn gibt die Zeit in Microsenkunden zurück, bis die Leitung auf HIGH steht. Weitere Beispiele können dem GitHub Rpository entnommen werden.


Servomotoren

Anschluss und Leistungsaufnahme

Ein Motor wird über die drei Leitungen V+ (rot), GND (braun), PWM (orange) mittels weiblichem Graupner-Stecker angeschlossen. Die Stromversorgung darf dabei nicht über den Microkontroller, sonder über ein dediziertes Netzteil geschehen.

Roboter Kinematik

Als Richtwert können 1-2A Strombedarf pro Servo angenommen werden. Für einen 6-Achs Roboter wird folglich ein 6-12A Netzteil benötigt.

Ansteuerung

Angesteuert werden die Servos mit Hilfe von Pulsweitenmodulation (PWM). Dabei werden Pulse, definierter Länge, mit 50Hz (Periode: 20ms) an die im Servo eingebaute Elektronik gesendet und von dieser in Achswinkel umgesetzt. Die Servos nehmen meist Pulse im Bereich von 500μs-2000μs an und setzten diese in Winkel um. Der genaue Arbeitsbereich kann dem jeweiligen Servo-Datenblatt entnommen werden. Die Winkelgenauigkeit kann mit Hilfe der Angabe zum Totbereich (deadband) berechnet werden. Bei 2μs Totbereich, 180° Drehbereich und 500-1500μs PWM-Bereich ergeben sich 180/(1500-500)*2 = 0.36° Winkelgenauigkeit. Pulseänderungen unter 2μs können also vom Servotreiber nicht in Winkeländerungen umgesetzt werden. Zu beachten ist außerdem, dass es sich hierbei um einen theoretischen Wert handelt, der unter Last größer ausfallen kann. Die Pulse können beispielsweise mit einem Mikrocontoller, Arduino, Teensy oder RaspberryPi erzeugt werden.

Die Abbildung von Steuerpulsen auf Achswinkel ist nicht bei allen Servotypen deterministisch. Das heisst, dass verschiedene Servos bei der selben Pulslänge nicht unbedingt die selben Winkelstellung einnehmen. Es empfielt sich daher, eine einfache Konfiguration vorzunehmen, in welcher der Motor mit bestimmten Pulsweiten angesteuert und der wahre Achswinkel mit Hilfe eines messenden Verfahrens bestimmt wird. Mit der Funktion pw = map(targetAngle, minAngle, maxAngle, minPW, maxPW) kann dann die Pulsweite unter Verwendung der gemessenen Winkel und Pulsweiten bestimmt werden.

Servos zittern, brummen

Ein Servozittern ist meist auf Störungen im PWM Signal bzw. Schwankungen in der Spannungsversorgung zurückzuführen. Es können sog. Ferritkerne/ringe zur Entstörung eingesetzt werden. Das Servokabel wird dazu um den hochinduktiven Kern gewickelt. Das System wirkt als Spule und entstört so das Steuersignal. Sollten die Servos zittern, sobald sie oder andere Servos in Bewegung sind, ist dies meist auf ein unterdimensioniertes Netzteil zurückzuführen. Hier können Kondensatoren zum Abfangen von Strombedarfsspitzen eingesetzt werden.

Ein Servobrummen unter Last ist üblich, da die interne Servosteuerung versucht gegen die Last zu arbeiten und dadurch diesen stetig ansteuert. Da die Motoren nicht über ein selbsthemmendes Getriebe verfügen, muss auch bei Stillstand geregelt werden. Auch das Eigengewicht des Roboterarms kann ein Brummen auslösen.


Warenkorb