Autor | Thema |
---|---|
Neil
99.9% harmless nerd
Registriert seit: Aug 2000 Wohnort: Delft Verein: SOLARIS Beiträge: 7776 Status: Offline |
Beitrag 107291
, Interne Funktion eines Servos mit Pulsbreitenmodulation
[06. November 2006 um 14:10]
Hi,
ich habe mir heute etwas Gedanken zu dem Thema gemacht wie wohl ein Servo innen drin funktioniert. Ich habe solche Anfälle öfters. Kommt wohl daher das ich zuviel Sendung mit der Maus schaue und einfach wissen muss wie man was machen könnte . Wir alle wissen das ein Servo die Position übermittelt bekommt mit einer Pulsbreitenmodulation. Da wird all 20ms eine Flanke gesetzt und je nach Position zwischen 1 und 2ms wieder zurück gesetzt. Die Elektronik intern vergleicht diesen Puls mit der Servostellung mit Hilfe des eingebauten Potis. Wie kann man das aber machen, diesen Vergleich? Ich kam zu folgender Idee. Wir haben eine Elektronik die auch einen Puls erzeugen kann. Die Pulslänge kann dort über ein Poti eingestellt werden. Wenn der externe Impuls gesetzt wird, wird auch der interne Impuls gesetzt. Beide Impulse werden zu unterschiedlichen Zeiten beendet wenn der Servo nicht die richtige Position hat. Jetzt nehmen wir noch eine Treiberstufe und peppeln die beiden Signale soweit auf, das wir ein Motor damit treiben können. Jeweils ein Signal wird an einem Pol des Motors angeschlossen. Was passiert? Solange beide Signale das gleiche Potential haben, passiert garnichts. Erst am Ende des Impuls, wenn ein Signal länger anliegt, liegt am Motor eine Spannung an. Wir haben beide Signale quasi über den Motor verglichen und die Differenz in den Signalen läst den Motor in jeweils unterschiedliche Richtungen drehen. Das passiert solange bis der Motor das Poti weit genug verstellt hat und beide Impulse gleich lang sind. Dann dreht der Motor nicht mehr. Das war jetzt meine Idee dazu, wie aber sieht den nun die Wirklichkeit aus? Gruß Neil Geändert von Neil am 06. November 2006 um 14:11 Die Erde ist eine Scheibe. Egal in welche Richtung sich die Menschheit bewegt, sie geht immer auf einen Abgrund zu. |
hybrid
SP-Schnüffler Registriert seit: Mai 2005 Wohnort: Verein: Beiträge: 675 Status: Offline |
Beitrag 107302
[06. November 2006 um 18:07]
Ja, so funktioniert das in "analogen" Servos prinzipiell.
Es gibt inzwischen aber auch PWM-Servos mit digitaler Signalaufbereitung. Grüße Malte |
AlexanderM
Epoxy-Meister Registriert seit: Feb 2004 Wohnort: Düsseldorf Verein: FAR Beiträge: 238 Status: Offline |
Beitrag 107303
[06. November 2006 um 19:05]
Hi Neil,
man kann ja solche Servos fertig kaufen, sie sind aber nicht ganz billig. Aaber: Wenn wir mal groß sind und den RMB-AVR-Kurs ganz absolviert haben, dann könnten wir evtl. einen "digitalen Servo" selber konstruieren, z.B. gemäß folgender Idee: - statt des Potis wird eine Lochhschlitzscheibe + Gabellichtschranke verwendet (aus 'ner alten Computermaus ausbauen, darin sind jeweils 2 davon). Dies wird dann an einen Eingang des µC's gepfriemelt und der zählt die Impulse. Wenn der Controller den Motor in die eine Richtung dreht, wird der Zähler inkrementiert, dreht er in die andere Richtung, wird dekrementiert. Beim Einschalten läßt der µC den Motor bis in die jeweiligen Endpositionen drehen (da müssen dann natürlich Kontakte sein, die das signalisieren) und erhält so die Information, wie weit er überhaupt drehen kann/darf. - Statt einer PWM als Eingangssignal kann man dem µC auch einfach die gewünschte Position in Form eines Integers mitteilen, z.B. 0=0Grad (Anfangsposition), 127=45 Grad, 255=90Grad (Endposition). Das ist natürlich ein anderes Konzept, als das mit der PWM-Steuerung (obwohl sich diese sicher auch realisieren ließe), dafür kann man dann aber beliebige Servos bauen und die wären dann auch sehr präzise. Als Motoren böten sich am besten Schrittschaltmotoren an. Aber, wie gesagt, ist das erst einmal nur eine Idee und wir müßten dazu erst einmal lernen, hinreichend mit dem AVR umzugehen. Halt, wenn wir mal groß sind. CU, Alexander |
Oliver Arend
Administrator
Registriert seit: Aug 2000 Wohnort: Great Falls, VA, USA Verein: RMV/Solaris/AGM/TRA L1/TCV/MDRA/NOVAAR Beiträge: 8351 Status: Online |
Beitrag 107315
[06. November 2006 um 20:31]
> Als Motoren böten sich am besten Schrittschaltmotoren an.
Richtig, und dann sinds auch schon keine Servos mehr ;-) Oliver der hier noch n paar Schrittmotoren rumliegen hat und schon ne gute Idee für deren Verwendung wenn er mal beim AVR-Kurs aufholt... |
AlexanderM
Epoxy-Meister Registriert seit: Feb 2004 Wohnort: Düsseldorf Verein: FAR Beiträge: 238 Status: Offline |
Beitrag 107330
[06. November 2006 um 23:28]
Zitat: Deswegen habe ich digitaler Servo ja auch in Anführungszeichen gesetzt. Und für die meisten Zwecke ist ein fertig gekaufter Servo (keine Anführungszeichen!) auch billiger und vor allem einfacher. Gruß, Alexander |
hybrid
SP-Schnüffler Registriert seit: Mai 2005 Wohnort: Verein: Beiträge: 675 Status: Offline |
Beitrag 107333
[07. November 2006 um 01:06]
Schrittmotoren sind für mobile Geräte (Flieger/Raketen) ziemlich ungegeignet, da sie viel zu schwer pro Kraft sind.
Optischer Encoder für Servos: http://www.didel.com/microkit/encoder/Encoder.html War auch sauer, daß es sich jemand vor mit ausgedacht hat ! Grüße Malte |
tr0815
Raketenbauer Registriert seit: Jan 2005 Wohnort: Dresden Verein: SOLARIS-RMB e.V. Beiträge: 168 Status: Offline |
Beitrag 107433
[08. November 2006 um 08:26]
@Neil
Zitat: Vielleicht geht auch noch folgende Variante: Wenn am Eingang des Servos ein 0-Signal liegt: internen Integrator rücksetzen. Integration startet bei 0/1-Flanke am Eingang. Abbruch bei 1/0-Flanke, Ergebnis mit OPV vergleichen: Integrationswert - Sollwert(für Mittelstellung). Der Ausgang des OPV liefert dem Motor entweder eine positive oder negative Spannung und der dreht sich dann. Christoph |