PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wie steuere ich Servos an?



02.11.2003, 15:41
Wie steuere ich mit Digitalports Servos an?

Frank
02.11.2003, 15:47
Servos kann man über PLM-Ports ansteuern! Die C-Control hat zum Beispiel zwei solche Ports.
Ne andere Möglichkeit wäre der I2C-Bus. Hier gibt es ein tollen Baustein mit dem man bis zu 20 Servos ansteuern kann.

http://www.the-starbearer.de/Roboterelektronik/servo/Bilder/SD20%20an%20CC1.JPG

Hier guter Link http://www.the-starbearer.de/Roboterelektronik/servo/SD20.htm

wizzard
02.11.2003, 16:23
Wenn der Microcontroller es zulässt (z.B. AVR) kannste die Steuerleitung einfach an einen Ausgang hängen und mittels Timer steuern.
Ein Servo erwartet alle 20ms ein Signal von 1ms (links) bis 2ms (rechts) länge.

16.12.2003, 19:35
http://www.electronicsplanet.ch/Schaltun/Servo/Servo.html

JanPeter
16.12.2003, 21:46
Hallo wizzard!
Sie erwarten nur alle 20ms ein Signal bei einer Fernsteuerung von Modellen.
Man braucht nur kurzzeitig ein Signal vom Controller ausgeben, und das Servo bewegt sich auf die entsprechende Position .
Interessanter ist die länge des Signales. Es hat eine Impulslänge von
1,5ms auf Mittelstellung +-0,5ms in den Endstellungen.
(Standart bei Graupner)

16.12.2003, 22:02
Bleibt das Servo dann auch auf der Position oder muß das Signal öfters/länger gegeben werden?

JanPeter
17.12.2003, 07:11
Es braucht nur so lange gegeben werden, bis das Servo sein Ziel erreicht hat, ist abhänging von der Servostellgeschwindigkeit. Es sind so Zeiten um die 0,2 Sekunden.
Das Servo Vergleich die ankommende Impulslänge mit der Position im Servo (Poti) und regelt den Stellweg nach.

Joerg
17.12.2003, 07:41
Es braucht nur so lange gegeben werden, bis das Servo sein Ziel erreicht hat .

Hallo Jan-Peter,

das ist so nicht ganz richtig. Der Impuls (1-2ms) muss ca. alle 20ms wiederholt werden, ein bissl länger ist auch nicht tragisch.

Die Servo-Elektronik nimmt den von außen kommenden Impuls als Trigger für die internen Abläufe. Kommt von außen nichts mehr, wird der Motor auch nicht mehr nachgeregelt, wenn irgendwelche Kräfte den Servo inzwischen wieder verstellt haben.
Schlimmstenfalls (fabrikatabhängig) tänzelt der Servo hilflos in der Gegend herum.

Viele Grüße
Jörg

JanPeter
17.12.2003, 20:37
Hallo Joerg!
Das ist klar, aber Man sollte das Servo nicht so Belasten (mechanisch)
, dass das Poti rückwärts übers Getriebe verstellt wird.
Denn dann braucht man viele Ersatzgetriebe.

JanPeter
18.12.2003, 04:40
Hallo joerg!
Hier noch mal eine Klärung.
Es besteht kein muss von 20 ms, Impulsausgabezeit.
Die Zeit kann auch länger sein.
Der Wert von 20 ms kommt aus der Modellfernsteuertechnik, und ist deshalb dort notwendig,
weil der Sender maximal 8 Kanäle ansteuern kann.
Bei eiener Impulszeit von max. 2 ms mal 8 = 16 ms.
Zwischen den einzelnen Impulsen ist eine Pause von 0,25ms mal 8 =2 ms.
Gesamt = 18ms, die Restlichen 2ms werden zur Synchronisation benötigt.
Das Servo macht nicht anderes, als die eintreffenden Impulse , mit dem internen Oszillator zu vergleichen und bei Abweichungen , den Motor in die entsprechende Richtung drehen zu lassen . Die Frequenz des Oszillators wird durch das Potentiometer , das mit dem Getriebe gekoppelt ist ,erzeugt. Der Motor dreht so lange bis der eintreffender Impuls mit dem Internen Oszillatorimpuls übereinstimmt.

Joerg
18.12.2003, 09:43
Hallo Jan-Peter,


Das ist klar, aber Man sollte das Servo nicht so Belasten (mechanisch)
, dass das Poti rückwärts übers Getriebe verstellt wird.
Denn dann braucht man viele Ersatzgetriebe.

naja diese Situation wirst du in jedem Hexapoden oder anderem Gefährt antreffen, wo Hebel auf die Servos einwirken und der Motor permanent die Kraft aufbringen muss, um das ganze zu halten.


Es besteht kein muss von 20 ms, Impulsausgabezeit.
Die Zeit kann auch länger sein.


habe ich ja auch geschrieben, es stört nicht, wenns etwas länger dauert.
Man muss halt nur bedenken, je länger die Pause, desto kleiner ist die Ansteuerzeit (im Verhältnis zur Gesamtzeit) des Motors.
Denn die Servoelektronik triggert den internen Monoflop erst mit eintreffen des externen Servoimpulses.
Wenn kein externer Impuls, dann kein Positionsvergleich und damit keine Nachführung des Motors.


Der Wert von 20 ms kommt aus der Modellfernsteuertechnik, und ist deshalb dort notwendig,
weil der Sender maximal 8 Kanäle ansteuern kann.
Bei eiener Impulszeit von max. 2 ms mal 8 = 16 ms.
Zwischen den einzelnen Impulsen ist eine Pause von 0,25ms mal 8 =2 ms.
Gesamt = 18ms, die Restlichen 2ms werden zur Synchronisation benötigt.

Ja so ist das damals mal entstanden. Da dachte man 8 Kanäle wäre genug Platz für solch ein Protokoll. Erinnert mich irgendwie an das 640K Problem beim PC ;)


Das Servo macht nicht anderes, als die eintreffenden Impulse , mit dem internen Oszillator zu vergleichen und bei Abweichungen , den Motor in die entsprechende Richtung drehen zu lassen . Die Frequenz des Oszillators wird durch das Potentiometer , das mit dem Getriebe gekoppelt ist ,erzeugt. Der Motor dreht so lange bis der eintreffender Impuls mit dem Internen Oszillatorimpuls übereinstimmt.

Ja genau, der externe Impuls triggert wie oben geschrieben einen internen Monoflop, dessen Haltezeit über das Postionspoti bestimmt wird. Sind beide Impulse gleich lang, passiert nichts, ansonsten wird, je nachdem welcher Impuls länger ist, ein Zweig der H-Brücke aktiviert, bis wieder alles stimmt.

Wenn jetzt sagen wir mal das Servo z.B. aus der Mittelstellung in die rechte Endstellung gefahren werden soll, wird der erste externe Impuls von 2ms den Motor einschalten. Ja und was passiert dann? Im Normalfall kommt nach 20ms ein weiterer Impuls und ein neuer Vergleich startet. Wenn dieser Impuls nicht kommt, gibts einen Sicherheitsmechanismus, der irgendwann (abhängig von der externen Beschaltung des Servo-ICs) den Motor wieder abschaltet (unabhängig von der Position).

Allein aus dieser Funktion erkennt man, dass erst mal mehrere externe Impulse notwendig sind, bis der Servo seine korrekte Zielposition erreicht hat.

Eine gute Beschreibung der Servoelektronik ist
hier (http://www.seattlerobotics.org/encoder/200009/Servos.html)
zu finden.

Viele Grüße
Jörg

JanPeter
21.12.2003, 20:16
Hallo Joeg!
Du hast geschrieben:
Hallo Jan-Peter,

das ist so nicht ganz richtig. Der Impuls (1-2ms) muss ca. alle 20ms wiederholt werden, ein bissl länger ist auch nicht tragisch

Das ein bissl länger hast Du später Editiert! , Nach dem Du den Beitrag von mir erhalten hast!

Joerg
21.12.2003, 21:48
Hallo Jan-Peter,

warum so böse?

Ich habe den Beitrag nicht editiert, wäre ja auch vom Forensystem vermerkt.

Aber letztendlich ist es doch egal, oder?

Schönes Weihnachten und
Viele Grüße
Jörg