Was ist der klare Unterschied zwischen Schritt-, Gleichstrom- und Servomotoren, um sie mit Raspberry Pi zu verwenden?


Antwort 1:

Mit "Servomotor" meinen Sie DC-Servo oder AC-Servo. Der Begriff bedeutete normalerweise DC, als ich da draußen war, aber ich gehe davon aus, dass Sie AC-Servo meinten.

Zuerst Stepper. Sie möchten normalerweise, dass die Steuerung die Polarität an ihren Leitungen umkehrt, um sich um einen Schritt zu bewegen. Daher muss die Steuerung lediglich die Anzahl der Schritte berechnen, die zum Erreichen der Zielposition erforderlich sind, und so viele Impulse in der richtigen Reihenfolge für die Richtung an den Motor oder die Verstärker senden Rotation, die Sie wollen. Es gibt 4 Wicklungen und 5 Leitungen, eine gemeinsame und eine A-, B-, C-, D-Wicklung. Um vorwärts zu gehen, erhalten A und B Leistung, C und D keine, dann B und C Leistung, die anderen 2 keine. Dann C und Strom, die anderen 2 keine. Dann D und A Potenz, die anderen 2 keine. {Von Anfang an fortfahren}. Um rückwärts zu fahren, bekommen A und D Strom, die anderen 2 keine. Dann D und C, C und B, B und A usw. Die Steuerung sollte verfolgen, wo sie aufgehört hat, und ihren ersten Schritt als den logischen von dort für die erforderliche Richtung berechnen. Die Kraft des letzten Schritts aus dem vorherigen Zug sollte als eine Art Bremse bis zum nächsten Zug beibehalten werden. Die Steuerung sollte die Impulsfrequenz als Beschleunigung und Verzögerung in Abhängigkeit vom Lastimpuls erhöhen. Sie müssen auch einen System-Reset durchführen, der das System normalerweise auf eine voreingestellte Nullposition zurückführt und den Impulszähler auf Null setzt. Sie müssen auch einen digitalen Eingang bereitstellen, der die Erlaubnis zum Zurücksetzen gibt, z. B. alle Werkzeuge wurden sicher zurückgezogen usw. Und einen digitalen Ausgang, der bei Bedarf die Erlaubnis zum Zurücksetzen anfordert, und möglicherweise einige Rückmeldungen des Bedieners.

DC-Servos verfügen normalerweise über einen Präzisions-Quadraturwellencodierer, den die Steuerung auf Positionsinformationen überwacht. Der Encoder sendet Impulse auf 4 Drähten in einer Reihenfolge zurück, die der Steuersequenz eines Steppers ähnelt (siehe oben). Die Steuerung zählt Impulse in jede Richtung, um die Position zu bestimmen, und führt eine laufende + - Anzahl von Impulsen durch, um die aktuelle Position zu bestimmen. Der Motor ist normalerweise ein Nebenschlussmotor, bei dem der niedrige Feldstrom über ein Verstärkerpaar vorwärts oder rückwärts und mit einem von der Steuerung zur Versorgung des Ankerstroms betätigten Schütz und häufig einem zweiten Schütz, das eine mechanische Bremse betätigt, gesteuert wird. Wirklich ausgefeilte Systeme können auch einen analogen Verstärker (gesteuerter Generator?) Verwenden, um den Motorankerstrom zu steuern. Ihre Steuerung muss den Encoder lesen, die aktuellen Positionsdaten speichern und die erforderlichen Aktionen berechnen, die Anker- und Bremsrelais ansteuern und den Vorwärts- und Rückwärtsfeldverstärkern und möglicherweise dem Ankerverstärker des Motors nach Bedarf analoge Signale liefern Beschleunigungs- / Verzögerungsraten zulässig, eine Rücksetzlogik am Encoder usw.

AC-Servos sind DC-Servos sehr ähnlich, haben jedoch einfachere Anforderungen an die Motorsteuerung. Normalerweise teilt eine digitale Datenverbindung dem Motorantrieb mit, welche Richtung, Geschwindigkeit, Beschleunigungsrate und möglicherweise DC-Bremse / Halten erforderlich sind. Die Datenformate und Befehle finden Sie in der Dokumentation zum Motorantrieb.


Antwort 2:

Ein Gleichstrommotor hat keine Kenntnis der Position oder der genauen Steuerung, Sie schließen ihn an und er dreht sich nur.

Ein Schrittmotor hat keine Positionskenntnisse, aber Sie können ihn genau steuern, indem Sie ihn jedes Mal, wenn Sie die Wicklung mit Strom versorgen, um einen kleinen Schritt bewegen.

Ein Servomotor (nicht zu verwechseln mit einem Hobby-Servo) kennt seine Position (über einen Encoder) und kann dadurch präzise gesteuert werden.

Hier sind ein bisschen mehr Details zu jedem….

Ein normaler Gleichstrommotor dreht sich automatisch, sobald er an die Stromversorgung angeschlossen ist. Die Drehzahl und das Drehmoment hängen von der Spannung und dem Strom der zugeführten Leistung sowie vom Motor selbst ab, und nichts gibt Aufschluss über die Position des Motors. Im Allgemeinen ist es entweder eingeschaltet, sobald Sie es durch Stromversorgung anschließen (und mit einer festen Geschwindigkeit drehen, es sei denn, Sie pulsieren mit Strom), oder es ist nicht angeschlossen und daher ausgeschaltet.

Ein Schrittmotor bietet eine präzise Möglichkeit zur Steuerung der Motorposition, aber der Motor selbst kann diese Position nicht messen. Wenn Sie also eine Wicklung mit Strom versorgen und freigeben (normalerweise hat sie mehrere Drähte, die für jede Wicklung eine separate Stromversorgung ermöglichen), dreht sie sich in einem kleinen Schritt von einigen Grad. Stellen Sie sich vor, Sie schließen die Augen und sagen jemand anderem, er solle einen Schritt gehen. Im Durchschnitt wissen Sie, wie weit ein Schritt ist, aber Sie wissen nicht, dass sie tatsächlich gegangen sind, weil sie vielleicht versucht haben, einen Schritt zu machen und gestolpert sind oder gegen eine Wand gelaufen sind. Sie wissen einfach nicht, ob sie erfolgreich waren oder nicht ( Es gibt keine Rückmeldung zur Position. Sie können es als "Open Loop" -Steuerung bezeichnen, da Sie keine Rückmeldung darüber erhalten, was passiert ist. Das ist also wie bei einem Schrittmotor. Wenn Sie eine Wicklung kurzzeitig mit Strom versorgen, ist das Drehen schwierig, aber Sie sind sich nicht sicher, ob es tatsächlich passiert ist (vielleicht war die Last zu groß oder Ihr Timing war zu schnell, oder Sie haben es nicht getan). nicht genügend Strom liefern).

Der Servomotor ähnelt stark Ihrem Gleichstrommotor, verfügt jedoch über sehr genaue Informationen zu seiner Position, die eine einfache Steuerung ermöglichen. Um einen Gleichstrommotor in einen Servomotor zu verwandeln, setzen Sie einfach einen Encoder auf die Welle und haben jetzt genaue Informationen über die Wellenposition, die es einfach machen, die Geschwindigkeit und Richtung (über PWM) zu steuern. Encoder können sehr präzise sein (bis zu einem Bruchteil eines Grades). Auf diese Weise können Sie Steuersignale senden, die den Motor so positionieren und bewegen, wie Sie möchten. Dies ist eine Regelung, da Sie immer eine Rückmeldung über die Auswirkungen Ihrer Steuerung erhalten.

Jeder dieser Motoren könnte also von einem Raspberry Pi gesteuert werden. Im Allgemeinen verbraucht jede dieser drei Optionen mehr Leistung / Strom als Ihr Raspberry Pi direkt ausgibt. Stattdessen können Sie mit Ihrem Pi die Steuersignale erzeugen und dann die an Ihren Motor gesendete Leistung verstärken (normalerweise mit einer Motorsteuerung) da ist das am einfachsten). In einigen Fällen können Sie Ihren Motor jedoch steuern, indem Sie Ihre Pi-Steuerrelais oder Transistoren / Mosfets verwenden, um die erforderliche Umschaltung durchzuführen (Google „H-Brücke“) und auch die Werte eines Encoders zu überwachen, falls Sie einen haben.


Antwort 3:

Ein Gleichstrommotor hat keine Kenntnis der Position oder der genauen Steuerung, Sie schließen ihn an und er dreht sich nur.

Ein Schrittmotor hat keine Positionskenntnisse, aber Sie können ihn genau steuern, indem Sie ihn jedes Mal, wenn Sie die Wicklung mit Strom versorgen, um einen kleinen Schritt bewegen.

Ein Servomotor (nicht zu verwechseln mit einem Hobby-Servo) kennt seine Position (über einen Encoder) und kann dadurch präzise gesteuert werden.

Hier sind ein bisschen mehr Details zu jedem….

Ein normaler Gleichstrommotor dreht sich automatisch, sobald er an die Stromversorgung angeschlossen ist. Die Drehzahl und das Drehmoment hängen von der Spannung und dem Strom der zugeführten Leistung sowie vom Motor selbst ab, und nichts gibt Aufschluss über die Position des Motors. Im Allgemeinen ist es entweder eingeschaltet, sobald Sie es durch Stromversorgung anschließen (und mit einer festen Geschwindigkeit drehen, es sei denn, Sie pulsieren mit Strom), oder es ist nicht angeschlossen und daher ausgeschaltet.

Ein Schrittmotor bietet eine präzise Möglichkeit zur Steuerung der Motorposition, aber der Motor selbst kann diese Position nicht messen. Wenn Sie also eine Wicklung mit Strom versorgen und freigeben (normalerweise hat sie mehrere Drähte, die für jede Wicklung eine separate Stromversorgung ermöglichen), dreht sie sich in einem kleinen Schritt von einigen Grad. Stellen Sie sich vor, Sie schließen die Augen und sagen jemand anderem, er solle einen Schritt gehen. Im Durchschnitt wissen Sie, wie weit ein Schritt ist, aber Sie wissen nicht, dass sie tatsächlich gegangen sind, weil sie vielleicht versucht haben, einen Schritt zu machen und gestolpert sind oder gegen eine Wand gelaufen sind. Sie wissen einfach nicht, ob sie erfolgreich waren oder nicht ( Es gibt keine Rückmeldung zur Position. Sie können es als "Open Loop" -Steuerung bezeichnen, da Sie keine Rückmeldung darüber erhalten, was passiert ist. Das ist also wie bei einem Schrittmotor. Wenn Sie eine Wicklung kurzzeitig mit Strom versorgen, ist das Drehen schwierig, aber Sie sind sich nicht sicher, ob es tatsächlich passiert ist (vielleicht war die Last zu groß oder Ihr Timing war zu schnell, oder Sie haben es nicht getan). nicht genügend Strom liefern).

Der Servomotor ähnelt stark Ihrem Gleichstrommotor, verfügt jedoch über sehr genaue Informationen zu seiner Position, die eine einfache Steuerung ermöglichen. Um einen Gleichstrommotor in einen Servomotor zu verwandeln, setzen Sie einfach einen Encoder auf die Welle und haben jetzt genaue Informationen über die Wellenposition, die es einfach machen, die Geschwindigkeit und Richtung (über PWM) zu steuern. Encoder können sehr präzise sein (bis zu einem Bruchteil eines Grades). Auf diese Weise können Sie Steuersignale senden, die den Motor so positionieren und bewegen, wie Sie möchten. Dies ist eine Regelung, da Sie immer eine Rückmeldung über die Auswirkungen Ihrer Steuerung erhalten.

Jeder dieser Motoren könnte also von einem Raspberry Pi gesteuert werden. Im Allgemeinen verbraucht jede dieser drei Optionen mehr Leistung / Strom als Ihr Raspberry Pi direkt ausgibt. Stattdessen können Sie mit Ihrem Pi die Steuersignale erzeugen und dann die an Ihren Motor gesendete Leistung verstärken (normalerweise mit einer Motorsteuerung) da ist das am einfachsten). In einigen Fällen können Sie Ihren Motor jedoch steuern, indem Sie Ihre Pi-Steuerrelais oder Transistoren / Mosfets verwenden, um die erforderliche Umschaltung durchzuführen (Google „H-Brücke“) und auch die Werte eines Encoders zu überwachen, falls Sie einen haben.