PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Digital Servos



Schrat
16.12.2003, 21:03
Hallo,

zur Zeit verwende ich einen SSC II mit dem ich einen
Analog-Servo ansteuere. Die Auflösung von 255 Schritten
fand ich eigentlich schon immer zu wenig ;-)

Nun gibt es ja diese tollen Digital-Servos mit einer
Auflösung >4000 ! *freu*

Vermutlich brauche ich aber einen anderen Controller
für die Dinger :(

Ist dem so? Wenn ja, kennt jemand eine preisgünstige
Möglichkeit zur Ansteuerung über die RS232?

Viele Grüsse vom

Schrat

Frank
16.12.2003, 21:19
Bei welcher Anwendung braucht man denn 4000 Schritte?

Gruß Frank

JanPeter
16.12.2003, 21:51
Hallo Schrat!
Du braust keinen Neuen Controller!
Wie ich schon in einem Anderen Beitrag geschrieben habe, ist die Impulsbreite bei Servos generell 1,5ms +- 0,5ms.
Du brauchst bloss die die Zeitintervalle verkleinern.(Zwischen den einzelnen Schritten)
Wo Du vorher 255 Schritte hattest hast Du jetzt 4000!

17.12.2003, 06:12
Hallo JanPeter, hallo Frank!

für Handling-Systeme kann die Auflösung fast nicht fein genug sein!
Denk z.B. mal an Leiterplattenbestückung etc.


Du brauchst bloss die die Zeitintervalle verkleinern.(Zwischen den einzelnen Schritten)
Wo Du vorher 255 Schritte hattest hast Du jetzt 4000!

Hmm, vielleicht bin ich geistig einfach zu unflexibel. Jetzt mal
langsam:

Dem Controller gebe ich über RS232 eine Position in Form eines
Bytes im ASCII-Format (z.B. @ für Position 64). Netterweise
kümmert der Controller sich dann um die Anzahl Schritte, Länge
der Impulse, Zeitintervalle usw.

Dabei variiert er die Impulslänge von 1ms (=Position 0, 0°) bis
2ms (=Position 254, 90°) in Schritten von 1/255ms (ca. 4 Mikro-
sekunden, 0,36°).

Da ASCII keine Zwischenschritte hat, vermute ich, dass ich den
Digitalservo zwar ansteuern kann, aber immer noch nur 255 Schritte
zur Verfügung habe.

Wie kann ich denn dann den Controller überreden die Impulslänge
in kleineren Schritten (1/4000ms) zu variieren?

Viele Grüsse vom

Schrat

JanPeter
17.12.2003, 07:05
Hallo Gast!
Das hast Du richtig erkannt.
Du musst einen anderen Weg gehen.
Du musst den Timer vom Controller herranziehen,entsprechend der Taktfrequenz , einen Wert in den Timer legen , in rückwärts zählen lasssen und bei erreichen von Null einen Port aktivieren.
So mal im groben.
Über ASCII hast Du ja nur 255 Zeichen.

Schrat
17.12.2003, 07:29
Hallo JanPeter,

vielen Dank für Deine Antwort.

Das heisst, ich sollte mal den Hersteller des Controllers fragen,
ob es ein Upgrade für Digital-Servos gibt!

Oder kennt jemand einen schönen kleinen, preisgünstigen
und einfach über RS232 zu steuernden Controller ? ;-)

Viele Grüsse vom

Schrat

Joerg
17.12.2003, 07:30
Hallo Schrat,


Dabei variiert er die Impulslänge von 1ms (=Position 0, 0°) bis
2ms (=Position 254, 90°) in Schritten von 1/255ms (ca. 4 Mikro-
sekunden, 0,36°).


ganz genau. Die 8 Bit Auflösung (255 Schritte) sind eine Restriktion des verwendeten Controllers (SCC II). Im Normalfall reicht das auch, weil ein normales Servo ohnehin keine wesentlich höhere Auflösung hinbekommt. Auch andere kommerzielle Produkte, wie z.B. der SD20 oder der FT639 haben nur ein 8-Bit Interface (der SD20 arbeitet intern aber mit höherer Auflösung).
Mit Digitalservos sieht das wohl anders aus. Sofern du diese hohe Genauigkeit ausnutzen möchtest, müsstest du dir wahrscheinlich solch einen Servo-Controller selbst programmieren. Zumindest ist mir momentan kein Produkt bekannt, was das unterstützt.


Da ASCII keine Zwischenschritte hat, vermute ich, dass ich den
Digitalservo zwar ansteuern kann, aber immer noch nur 255 Schritte
zur Verfügung habe.


Hat weniger mit ASCII zu tun, als mit dem Controller. Man kann auch mit ASCII beliebige Zahlen (dann in mehreren Stellen) für eine Position übermitteln.

Viele Grüße
Jörg