Ich habe einige Hobby-Servos ( Power HD 1501MGs ) und möchte sie (über ein Arduino) steuern können, damit sie entweder in den von mir eingestellten Winkel gehen oder sie in einen "Freilauf" -Modus versetzen. wohin die Ladung sie bringen wird, wohin sie geht.
Ist das überhaupt möglich, oder werde ich am Ende nur die Zahnräder ausziehen?
Mein erster Gedanke ist, einfach die Leistung des Servos zu unterbrechen, aber die Kraft, die erforderlich ist, um sie in diesem Zustand zu bewegen, ist mehr als ich möchte.
Wenn es möglich ist, schaue ich nach einer Hardwareänderung oder könnte ich dies in der Software tun?
Antworten:
Was Sie fragen, wird mit einem Standard-RC-Servo nicht ganz einfach.
Was Sie verlangen, ist ein rückwärtsfahrbares Servo. IE eine, die Sie durch Anlegen eines externen Drehmoments frei drehen können. Es ist sicherlich möglich, diese zu erstellen, und sie werden bei vielen Robotern verwendet, aber die meisten RC-Servos erfordern ein beträchtliches Drehmoment, um sie zurückzutreiben. Ich würde sie als semi-back-drive bezeichnen.
Was hindert Sie daran, sie zurückzufahren? Zwei Dinge:
Reibung: Erstens Reibung in der Getriebekette und im Motor. RC-Servos sind immer runtergeschaltet; Der Ausgang dreht sich langsamer als der Motor. Das bedeutet natürlich, dass Sie beim Rückwärtsfahren den Motor sehr schnell drehen müssen. Jegliche Reibung oder Verzahnung im Motor ist am Abtrieb über ein Dutzend Mal zu spüren.
Strom: Elektromotoren sind überraschend, wenn Sie die Klemmen kurzschließen, lassen sie sich schwerer drehen. Die Drehung des Motors erzeugt einen elektrischen Strom, der Ihrer Drehung entgegenwirkt. Die Elektronik im Servo lässt möglicherweise auch im ausgeschalteten Zustand genügend Strom fließen, so dass ein Zurückfahren spürbar verhindert wird. In der Vergangenheit ist mir aufgefallen, dass einige große Schrittmotoren, auch wenn sie nicht verzahnt sind, fast nicht rückwärts angetrieben werden können, wenn sie an nicht mit Strom versorgte Geräte angeschlossen sind. Aber wenn Sie sie abziehen, können sie frei gedreht werden.
Eine Möglichkeit, die Rückfahrbarkeit zu verbessern, besteht darin, den Stromfluss zu verhindern. Die naheliegende Möglichkeit besteht darin, den Motor vollständig von der Elektronik zu trennen. Dies ist jedoch selbst bei Verwendung von FETs schwierig, da die Dioden in den FETs möglicherweise den Stromfluss zulassen. Sie könnten jedoch ein Relais verwenden, das den Motor wirklich abschaltet. Sie müssten es nur an einem der Motorklemmen verwenden.
"Richtige" Servoregler (wie der ESCON von Maxon) enthalten tatsächlich einen Stromregler, der den Stromfluss durch Anlegen der richtigen Spannung an den Motorklemmen aktiv verhindern kann. Das Ersetzen der Elektronik im Servo durch etwas, das zur Stromregelung geeignet ist, könnte wirklich helfen.
Was Sie tun sollten: Öffnen Sie das Servo, lösen Sie den Motor und bauen Sie ihn wieder zusammen. Wie einfach ist es jetzt, zurückzufahren? Wenn es einfach ist, kann es möglich sein, das zu tun, was Sie wollen. Wenn es für Ihre Anwendung immer noch zu schwierig ist, müssen Sie ein anderes Servo auswählen oder ein eigenes herstellen. Machen Sie eine mit einer einzigen Getriebestufe, damit die Reibung des Getriebes so weit wie möglich reduziert wird, und verwenden Sie eine Antriebselektronik mit einem Stromregelkreis, um einen Nullstromfluss zu gewährleisten.
quelle
Interessante Frage.
Die erste Option, die ich untersuchen würde, wäre die von Ihnen vorgeschlagene Stromunterbrechung (möglicherweise die Steuerung eines MOSFET in der Software zum Umschalten der Stromversorgung).
Ein weiterer komplizierterer Ansatz könnte darin bestehen, den Stromverbrauch des Servos zu überwachen, um zu erkennen, wenn es unter einer hohen Last steht. Wenn Sie in den "Freilauf" -Modus wechseln möchten, lassen Sie Ihre Software versuchen, das Servo kontinuierlich in eine Position zu bewegen, die den geringsten Stromverbrauch ergibt. Dies führt nicht vollständig zu einem "freilaufenden" Servo, da das Servo einige zitternde Bewegungen ausführt, wenn die Software versucht, die "richtige" Position zu finden, dies kann jedoch je nach Ihrer Anwendung funktionieren.
Sie müssten Ihre Servos nicht modifizieren, um den Stromverbrauch zu überwachen. Ein Board wie dieses von SparkFun sitzt zwischen dem Servo und seiner Stromquelle (Sie benötigen eines pro Servo) und gibt eine analoge Spannung aus (die Sie an einem ADC-Pin eines Mikrocontrollers ablesen können), die der Stromstärke entspricht:
Bild von SparkFun
quelle
Normalerweise sind diese Arten von Hobby-Servos nicht für eine kontinuierliche Rotation ausgelegt und enthalten häufig einen mechanischen Anschlag. Beachten Sie, dass ich im Folgenden einen todsicheren Weg beschreibe, um niemals einen tatsächlichen Betrieb mit geschlossenem Regelkreis zu erreichen, sondern stattdessen den Servo nur kontinuierlich zu machen.
Meistens können Sie online schnell nach "Continuous Modification for X Servo" suchen, aber ich werde hier den allgemeinen Prozess skizzieren.
Wenn Sie nun einen "Center" -Befehl an das Servo senden, sollte sich dieses nicht mehr bewegen. Wenn Sie einen positiven oder negativen Befehl senden, sollte sich das Servo kontinuierlich in die eine oder andere Richtung drehen. Die Drehzahl sollte proportional zur "Entfernung" von der Mitte des gesendeten Befehls sein.
Wenn Sie den Servobetrieb Ihres neu modifizierten Servos wiederherstellen möchten, können Sie eine Art Encoder hinzufügen, um die Schleife wieder zu schließen.
Alternativ möchten Sie vielleicht einen Blick auf das Dynamixel- Servo werfen , das sowohl den Dauerbetrieb als auch den Servobetrieb ermöglicht und eine gewisse Arduino-Unterstützung bietet.
quelle
Tun Sie das nicht, sondern holen Sie sich ein paar anständige Motoren und fahren Sie sie über eine H-Brücke, wie Sie sie auf diesem Motorschild finden .
quelle