Es wäre blöd wenn ich nun sage: alles kein Problem. Aber diese simultane Ansteuerung der/von
Servos hat mich etliche Zeit gekostet . Es läuft ja darauf hinaus, dass man die an sich typbedingte, maximale Servo-Stellgeschwindigkeit von rund 60°/0,15 sec zu einer langsameren und weichen Geschwindigkeit runterbremst.
Alles kein Problem ! Das läuft dann bei mir (bei archie) bis zur simultanen Gestik (
Video - leider grottenschlecht). Bei letzterer werden vom zentralen Controller =
RNControl die einzelnen Steuersequenzen für Arm links, Arm rechts und Kopf zeitlich genau ausgegeben (
mittlerweile "gute" Eigenbauplatinen); auch die Stimme (zeitlich genauer Einsatz einer bestimmten Teilsequenz) wird von der Zentrale per
I²C an den Kopf geleitet - der steuert entsprechend die Audioelektronik an.
Wie hab ich die Servosynchronisation gemacht?
1) Bekanntlich werden die
Servos nur max 10% der Ansteuerungsdauer
mit einem genau bemessenen Stellsignal bedient. Ich habe also in der Ansteuerungspause Zeit die "andern"
Servos zu bedienen. Ich hab im Archie viele Billigst-Mikroservo (aktuell insges 27 und vier "normalgrosse") verbaut aus der LxBxH 25 mm x 13 mm x 22 mm Baugröße.
2) Die
Servos werden im Standardprotokoll betrieben
siehe Link oben : alle ca. 20 ms einen Stellpuls.
3) Ich habe eine Servoroutine mit unterschiedlichen Befehlsmöglichkeiten. Der wichtigste Befehl lautet: fahre Servo i von A nach B mit x Inc/Servoperiode. A und B sind meine Pulsteilchen - rund 5000 pro Vollausschlag/>180° des Servos. Etwa 180 inc/Periode bedeutet dabei full speed und weniger als sechs bis acht inc/Periode ist das minimale Ende; ab 10 inc/Periode läufts wirklich bzw gut glatt. Also gibt die Servoroutine das entsprechende Signal aus und macht jeden einzelnen Puls um x inc länger. Der "Rest" zum genauen Ziel ist dann der letzte variable Puls. Danach neue Bewegung oder Stillstand <=> gleichbleibende Pulsdauer.
Ist das verständlich?
Lesezeichen