Raketenmodellbau.org Portal > Forum > Rund um Elektronik und Programmierung > Elektronik allgemein > Aktuatoren > Interne Funktion eines Servos mit Pulsbreitenmodulation
Du kannst keine neue Antwort schreiben


Autor Thema 
Neil

99.9% harmless nerd


Administrator

Neil

Registriert seit: Aug 2000

Wohnort: Delft

Verein: SOLARIS

Beiträge: 7776

Status: Offline

Beitrag 107291 , Interne Funktion eines Servos mit Pulsbreitenmodulation [Alter Beitrag06. November 2006 um 14:10]

[Melden] Profil von Neil anzeigen    Neil eine private Nachricht schicken   Neil besitzt keine Homepage    Mehr Beiträge von Neil finden

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önntefg .
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

hybrid

Registriert seit: Mai 2005

Wohnort:

Verein:

Beiträge: 675

Status: Offline

Beitrag 107302 [Alter Beitrag06. November 2006 um 18:07]

[Melden] Profil von hybrid anzeigen    hybrid eine private Nachricht schicken   Besuche hybrid's Homepage    Mehr Beiträge von hybrid finden

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 [Alter Beitrag06. November 2006 um 19:05]

[Melden] Profil von AlexanderM anzeigen    AlexanderM eine private Nachricht schicken   Besuche AlexanderM's Homepage    Mehr Beiträge von AlexanderM finden

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. big grin

CU,
Alexander
Oliver Arend

Administrator


Administrator

Oliver Arend

Registriert seit: Aug 2000

Wohnort: Great Falls, VA, USA

Verein: RMV/Solaris/AGM/TRA L1/TCV/MDRA/NOVAAR

Beiträge: 8333

Status: Offline

Beitrag 107315 [Alter Beitrag06. November 2006 um 20:31]

[Melden] Profil von Oliver Arend anzeigen    Oliver Arend eine private Nachricht schicken   Oliver Arend besitzt keine Homepage    Mehr Beiträge von Oliver Arend finden

> 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 [Alter Beitrag06. November 2006 um 23:28]

[Melden] Profil von AlexanderM anzeigen    AlexanderM eine private Nachricht schicken   Besuche AlexanderM's Homepage    Mehr Beiträge von AlexanderM finden

Zitat:
und dann sinds auch schon keine Servos mehr


Deswegen habe ich digitaler Servo ja auch in Anführungszeichen gesetzt. wink
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

hybrid

Registriert seit: Mai 2005

Wohnort:

Verein:

Beiträge: 675

Status: Offline

Beitrag 107333 [Alter Beitrag07. November 2006 um 01:06]

[Melden] Profil von hybrid anzeigen    hybrid eine private Nachricht schicken   Besuche hybrid's Homepage    Mehr Beiträge von hybrid finden

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 big grinbig grinbig grin!

Grüße
Malte
tr0815

Raketenbauer

tr0815

Registriert seit: Jan 2005

Wohnort: Dresden

Verein: SOLARIS-RMB e.V.

Beiträge: 168

Status: Offline

Beitrag 107433 [Alter Beitrag08. November 2006 um 08:26]

[Melden] Profil von tr0815 anzeigen    tr0815 eine private Nachricht schicken   Besuche tr0815's Homepage    Mehr Beiträge von tr0815 finden

@Neil
Zitat:

Das war jetzt meine Idee dazu, wie aber sieht den nun die Wirklichkeit aus?



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

[Zurück zum Anfang]
Du kannst keine neue Antwort schreiben