Mit einem Servo mit kontinuierlicher Drehung kann ich die Richtung und die Geschwindigkeit des Servos steuern, aber ich muss auch die Position steuern. Ich weiß, dass dies aufgrund fehlender Feedback-Steuerung in einem kontinuierlichen Servo nicht direkt möglich ist, aber ich habe einige Hinweise zum Hinzufügen eines Encoders gefunden, mit dem Sie die Position steuern können.
Ist es möglich, einem kontinuierlichen Servo einen Encoder hinzuzufügen, um seine Position zu steuern, und wenn ja, wie?
Kann ich auch etwas hinzufügen, um die Bewegung des Servos wie im Bild unten zu blockieren, oder würde ein solcher Stoppeffekt das Servo beschädigen?
Ja, ein Drehgeber kann jedem Motor hinzugefügt werden, einschließlich eines Servos, der für kontinuierliche Drehung modifiziert wurde und zur Positionssteuerung verwendet wird.
Dies ist jedoch etwas kontraintuitiv, da die interne Schaltung des Servos bereits die Positionskontrolle bereitstellt und das integrierte Potentiometer als Drehsensor verwendet. Es erscheint unnötig, diesen Positionierungsmechanismus zu trennen und dann einen externen Positionsbestimmungssensor oder -codierer hinzuzufügen, um das gleiche Ergebnis zu erzielen.
Wie dem auch sei, das übliche Verfahren, um eine solche Positionssteuerung mit einem Drehgeber zu erhalten, besteht darin , den Drehgeber an die Welle des Motors zu kleben und dann die codierten Werte in einen Mikrocontroller zu übernehmen, wobei ein PID-Algorithmus im Mikrocontroller verwendet wird, der als a Funktion dieser Positionsinformationen, Spannung und Polarität des Motors zu steuern, um den Motor an der gewünschten Position zum Stillstand zu bringen.
Sehr vereinfacht ausgedrückt, wenn die vom Drehgeber erkannte Position des Servos im Uhrzeigersinn zur gewünschten Position ist, würde der PID-Algorithmus den Motor gegen den Uhrzeigersinn drehen, bis die beiden Positionen identisch sind. Umgekehrt, wenn die erkannte Position gegen den Uhrzeigersinn zur gewünschten Position ist. Wenn anschließend ein externes Drehmoment die Welle aus der Ruheposition bewegt, speist der Drehgeber neue Winkeldaten in den PID-Code ein, der dann die oben beschriebene Logik anwendet.
Hinsichtlich des Hinzufügens eines mechanischen Anschlags zu einem Servomotor ist dies im Allgemeinen ein praktikabler Ansatz – der Motor zieht seinen Blockierstrom, der höher ist als der normale Betriebsstrom. Sie müssen jedoch das Datenblatt des betreffenden Motors überprüfen, um festzustellen, wie lange er dem Stillstandsstrom standhalten kann. Nicht alle Motoren können mit Dauerstillstand fertig werden.
Die Lösung in einem solchen Fall kann eine der folgenden sein:
Die einzigen Servos, denen Bewegungs- oder Positionserkennung "fehlt", sind billige Hobby-Servos. Das ist die schlechteste Art, die für ein robustes System verwendet werden kann. Sie lesen nicht nur Feedback über einen Teilbogen (nicht 360 Grad), sondern geben auch überhaupt kein Feedback an den Kommandanten zurück.
Sie können hochwertigere Servos mit echten Positionsgebern, echten Stromsensoren, PID-Reglern für die Bewegungssteuerung, serieller RS-485-Kommunikation in beide Richtungen und vielem mehr kaufen. Diese Servos können "zu einem Punkt gehen" oder "mit einer Geschwindigkeit drehen" oder jede andere Art von Bewegung ausführen, die Sie möchten.
Zum Beispiel füge ich diesen Typen in mein aktuelles Projekt ein:
http://support.robotis.com/en/product/dynamixel/mx_series/mx-64.htm
Es ist immer noch ein Servo im "Hobby"-Stil, aber ziemlich leistungsfähig und bisher echt
Jimmy Unordnung
David Tweed
Anindo Ghosh
Jimmy Unordnung
David Tweed