PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Allgemeine Frage zum Thema Servosteuerung



XBert
24.06.2008, 18:40
Hi Leute,
Ich wollte einfach mal fragen was eurer meinung nach schlauer ist.
Ich möchte 20 Servos + verschiedene Sensoren ansteuern und würde gerne wissen wie ihr das machen würdet.
Vorschläge meinerseits sind:
1) SSC-32 (http://www.lynxmotion.com/Product.aspx?productID=395) für die Servos + Atmega Controller für die verarbeitung der Sensordaten
2) Parallax Propeller (http://www.parallax.com/Default.aspx?tabid=407) mit acht Kernen für die Servos und Sensoren

Hab fast vergessen zu sagen das die Controller fast keine Berechnungen machen müssen (außer bei den Sensoren), da die Befehle von einem PC geliefert werden, der dies übernimmt.

MFG XBert

cool-robotix
25.06.2008, 09:19
Für PWM über 20 Kanäle wäre die erste Möglichkeit (SCC-32 mit ATmega) einfacher (und schneller) zu realisieren, mit der zweiten kann die Aufgabe jedoch viel eleganter gelöst werden. Der Prop hat ja 8 Kerne, die jeweils mit 20 MHz laufen. Im Gegensatz zu den ATmegas (8-Bit) hast du ausserdem pro Takt 32-Bit zur Verfügung, was vieles vereinfacht.

Da die Befehle direkt von einem PC kommen sollen, kann ja ein FT232 angeschlossen werden. Damit erschlägt man mit nur 2 Pins die Kommunikation über USB und Programmierung des Prop.

Bei d. Entwurf nicht vergessen: der Prop läuft mit 3,3V, die Servos brauchen jedoch 5V-PWM. Pro Kanal muss also ein Pegelshifter vorgesehen werden. Normalerweise nehme ich dafür einen kleinen MOSFET (BSN20) mit 2 Widerständen, siehe Appnote I2C-Pegelwandler von Philips. Ist zwar etwas oversized, da bidirektional aber dafür sehr zuverlässig.

Gruss:

cool-robotix

XBert
25.06.2008, 12:25
Danke erstmal,

aber ich hab noch ne frage:
wäre ein SD21 (http://www.roboter-teile.de/Shop/themes/kategorie/detail.php?artikelid=23&kategorieid=17&source=1) besser.

BZW. bei welcher steuerung wären 9 Servos gleichzeitig am synchronsten??
Oder besser gefragt: Merkt man von der Synchronität einen großen unterschied zwischen SSC-32 und Propeller

EDIT: Ich werde mich vermutlich für den SSC-32 Controller entscheiden,
da es erstens weniger Aufwand ist und zweitens synchron genug zu sein scheint.
Youtube (http://www.youtube.com/results?search_query=phoenix+hexapod&search_type=)


MFG XBert

cool-robotix
26.06.2008, 07:58
Meinst du mit Synchronität, dass alle Servos exakt gleich in der Endlage stehen (1) oder das sie sich exakt zur selben Zeit bewegen (2)?

Bei (1) musst du sowieso alle Servos auf eine Nullstellung "eichen", das ist vom verwendeten uC unabhängig.

Bei (2) hast du beim Prop leichte Vorteile, da es über jede Menge interne 32-bit Timer verfügt (2 pro Cog, 8 Cogs insgesamt), d.h. eine größere Anzahl an PWM-Signalen exakt zur selben Zeit ausgeben kann. Ob eine solch genaue PWM-Erzeugung überhaupt nötig ist, hängt von der konkreten Anwendung ab.

HannoHupmann
26.06.2008, 08:47
@Xbert erst mal vorweg ich hab in meinem neuen Hexabot nen Propeller verbaut und der übernimmt auch noch die ganze Berechnung. Die Aussage von cool-robotix stimmt nur Teilweise, der Propeller läuft mit 3,3V die Servos lassen sich damit aber ebenfalls direkt steuern (klappt bei HS-475 Problemlos, d.h. kein Pegelshifter). Lediglich die Stromversorgung der Servos ist mit 7,4V deutlich über den 3,3V des Propellers.

Jetzt zum SSC-32 Borad. Da bei diesem die Firmware nicht geändert werden kann (oder nur sehr umständlich) sind die Möglichkeiten des Boards stark begrenzt. Vorteil ist nur, dass man es sehr einfach mit einem PC ansteuern kann. Ich hatte auch erste ein SSC-32 Board geplant gehabt, dann aber aufgrund des Propellerchips wieder verworfen. Was auch daran liegt, dass ich meine Roboter immer vollautonom baue.

Zur Synchronität muss man wohl sagen, dass die Propeller Chips besser geeignet sind, aber bei 50Hz es eigentlich nicht mehr so stark darauf ankommt.

Fazit: ich bin mit meinem Propeller Chip mehr als zufrieden die Einarbeitung und Programmierung hat gerade mal 10 Stunden gedauert. Vermutlich wird man für ein SSC-32 Board ähnlich lange brauchen bis alles soweit funktioniert.

XBert
26.06.2008, 13:56
Danke,
Da werd ich mir das ganze wohl doch noch mal genauer überlegen müssen.
@HannoHupmann:
Was meinst du mit begrenzten Möglichkeiten??

MFG

HannoHupmann
26.06.2008, 14:01
Wie schon geschrieben, die Firmware des SSC-32 ist fest programmiert und mit hausmitteln nicht veränderbar. D.h. außer einen Servo ansteuern kann man mit übrigen Kanälen nichts machen. Zudem können die Befehle nur in einer bestimmten Form an das Board geschickt werden. Es fehlen ausserdem die Möglichkeiten Servos bei verschiedenen Zeitpunkten loslaufen zu lassen. Bei dem Propellerboard nutz ich die ganzen 20ms aus:
:_|||||_______: Servo 1
:__|||||______: Servo 2
:_______|||||_: Servo 3
:______|||||__: Servo 4
Damit starten nicht alle Servos gleichzeitig und die Strombelastung hat ein weniger starkes extremum gegenüber der Klassischen Version wo alle Servos zum gleich Zeitpunkt loslaufen.
Übrige Ports kann ich bei einem Propeller für andere Aufgaben verwenden. Die Programmierung und Ansteuerung jederzeit verändern.
Nachteil ist natürlich wie immer, je mehr Möglichkeiten umso mehr muss man wissen und sich einarbeiten.

XBert
26.06.2008, 14:21
Nachteil ist natürlich wie immer, je mehr Möglichkeiten umso mehr muss man wissen und sich einarbeiten.

Leider ist genau das ist mein Problem!
Kennst du Tutorials o.Ä für den Chip??

EDIT: Hat sich erledigt hab selbst was gefunden (trotzdem danke)

MFG

HannoHupmann
27.06.2008, 15:43
Tutorials o.ä. sind für den Propeller leider selten und meisten auf englisch. Es gibt ein Forum aber der beste Kontakt ist wohl deSilva der kennt sich recht gut aus bei den Propeller Chips.