PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Servo Speed einstellen?



robots4-ever
28.03.2013, 20:49
Hallo,

ich habe das Problem ,dass sich meine Servos zu schnell drehen.
Jetzt ist meine Frage, kann ich das einstellen, also die Geschwindigkeit mit der sich die Servos drehen. Oder gibt es irgend welche Tricks mit denn man diese bewirken kann?

JoeM1978
28.03.2013, 21:07
Mhm...
also der Serwo wird per PWM-signal auf einen bestimmten Stellwert/winkel gebracht.
Was mir dazu einfällt, wäre, das du den wert nicht direkt anfährst sondern das Signal
langsam Stufenweise erhöhst mit kleinen "pausen" dazwischen.

HeXPloreR
28.03.2013, 22:10
Hallo,

die SD-21 und SSC-32 ServoController Boards können das. Dort schreibt man in ein register die Speed. Das PDF (Users Manual SSC-32 Ver 2.0) zur SSC-32 veranschauligt das glaube ich ganz gut, vielleicht kann man das Prinzip erkennen und abgucken. Aber ich garantiere natürlicht für nichts ;)

PsiQ
23.05.2013, 21:53
Ohne jetzt programmieren zu können:
Der Servo vergleicht intern Standort (Poti) mit Vorgabe. Je weiter da der Unterschied ist umso schneller dreht er.
Wenn du nun deine Endposition in 2 bis 10 Schritten angibts / steigerst ist jeweils der Unterschied niedriger und somit der Speed.
Da der Servo ja eh nach dem PWM signal fährt kannst du das ja langsam zum gewünschten Endwert hin steigern/verringern.

Alternativ ist im Servo natürlich ein DC Motor, der dreht langsamer je weniger Spannung ankommt.
Irgendwann unter 4,8V ist halt die Logik nicht mehr versorgt.

oberallgeier
23.05.2013, 22:32
... Problem ,dass ... Servos zu schnell drehen ... Frage, kann ich das einstellen ...Kannst Du. Die Aufteilung in ein paar Schritte wurde schon erwähnt. Je nach der Trägheit der angelenkten Lasten kann das ganz schön eckig gehen, denn der Servo fährt im Prinzip mit derselben Geschwindigkeit wie vorher, nur eben ruckweise - Abschnitt für Abschnitt.

Ich habe das so gelöst, dass ich eine hochaufgelöste Rampe erzeuge, runde viertausend Ticks für 150°, dasd ist im Prinzip viel höher als die technisch machbare Positioniergenauigkeit des Servos. In JEDER Servoperiode - sprich: etwa im 50-Hz-Takt, der üblichen Periode von Analogservos - wird eine bestimmbare Anzahl Ticks weitergezählt. Damit wird der Servo mit der wirklich geringsten Fahrt weiterbewegt. Langsamer gehts dann mit Ticks deutlich hörerer Auflösung und Servos, die auch eine höhere Taktrate vertragen.

Ein Bewegungsbeispiel zeigt das Video (alle Bewegungen durch Billigservos der 4-Euro-Klasse) und im dazugehörigen Thread (klick) (https://www.roboternetz.de/community/threads/61379-Kopfsache-und-ein-m1284-etliche-Servos-viel-Alu?p=577672&viewfull=1#post577672) gibts Anregungen für den Code - ist aber C, nicht arduinomässig.


......
http://www.youtube.com/watch?feature=player_embedded&v=Kt4UiEaTicc