-         

Ergebnis 1 bis 9 von 9

Thema: Servo Steuerung...

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    28.07.2008
    Beiträge
    56

    Servo Steuerung...

    Anzeige

    Hi,

    ich hab mal mein alten Servos an den RP6 angeschlossen und links rechts bewegen geht soweit (mit langer / kurzer impuls) nur frag ich mich wie kann ich die Servos langsamer bewegen.
    dazu müsste ich dich die spannung runtersetzen oder?
    nur wie mach ich das?

    danke!

    Mfg
    Philipp

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.791
    Hallo Philipp,

    nein, mit der Spannung hat das wenig zu tun, wie langsam sich das Servo in eine neue Stellung bewegt.

    Das Servo bewegt sich in eine neue Stellung, wenn du ihm einen neuen Wert (= andere Impulsdauer) gibst.
    Also: Je schneller du eine andere Impulslänge an das Servo anlegst, umso schneller bewegt sich der Hebel.

    Wenn es langsamer gehen soll, must du z.B. eine Pause in dein Programm einbauen, bevor die nächste (geänderte) Impulsdauer angelegt wird.

    Gruß Dirk

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    28.07.2008
    Beiträge
    56
    Hi Dirk,

    das hab ich jetzt nicht ganz verstanden.
    warum soll ich die impulsdauer ändern, ich dachte der Impuls ist nur dazu da
    dem servo überhaupt zu sagen in welche richtung es sich bewegen soll.

    Hab mal versucht statt 20ms zwischewn den impulsen 50 bzw. 100 ms zu warten aber das stockt dann eben...

    Danke!

    Mfg
    Philipp

  4. #4
    Hallo,

    Servoansteuerung funktionniert so: alle 20 ms benötigt das Servo einen Impuls, die Länge dieses Impulses muss zwischen 1.25 und 1.75 ms liegen. Die Anzahl von 50 Impulsen pro Sekunde (1 Sekunde = 1000 ms, 1000 / 20 ms = 50 Impulse) ist als konstant anzusehen, es ist die Länge dieser Impulse, die die Position angibt.

    Das Servo wird nun die gewünschte Position so schnell es kann ansteuern: wenn man also die Lange von 1.25 auf 1.75 änders, wird der Servomotor so schnell wie moglich drehen, um die gewünschte Position (von einem extrem zum anderen) zu erreichen. Im allgemeinen macht das ja auch Sinn, Servos werden ja hauptsächlich im Modellbau angewendet, und man will zum Beispiel, dass sich ein Ruder im Idealfall 'sofort' in der richtigen Stellung befindet.

    Will ich nun eine Zwischenposition ansteuern, muss ich die Länge (!) des Impulses andern (Beispiel: Mittelstellung: impulsdauer 1.5 ms), diesen Impuls aber noch immer alle 20 ms wiederholen.

    Will man die Stellung langsam verändern (also die Drehgeschwindigkeit beeinflussen), muss man die Position schrittweise veränders. Also, von einem Extrem zum andern, in 1 Sekunde, alte Stellung 1.25 ms = 0°: 25 Impulse zu 1.5 ms, dann 25 Impulse zu 1.75: das Servo fährt zuerst zur 90°-Stellung, dann eine halbe Sekunde später zur 180°-Endstellung.

    Dies ist näturlich noch immer sehr grob, eine weitere Verfeinerung (innerhalb einer Schleife) führt dann zum gewünschten Erfolg: man beginnt mit einem kurzen (langen) Impuls, wartet (20 ms - Länge des Impulses), vergrössert (verkleinert) den Impuls ( um den Wert Gesamtänderung geteilt durch Anzahl der 20msSschritte), und wiederholt, bis die Endpositin erreicht ist.

    Ich hoffe dies hilft etwas weiter. Das ganze klingt kompliziert, ist es aber auch

    René
    .

  5. #5
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    09.04.2008
    Beiträge
    376
    Es gibt noch eine aendere Lösung für das Problem, aber deutlich kostlicher : du kauft eine Digital Servo und Programmer dazu. Diese Servos haben die moglichkeit um die Geschwindigkeit in Servo selbst einzu programmieren. Wird auch mal genutzt in Modellbau um eine Fahrgestell langsam ein oder aus zu fahren. Aber wie gesagt, kostet auch deutlich mehr....

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    28.07.2008
    Beiträge
    56
    Hi,

    danke René so weit verstehe ich das jetzt...
    werd das mal ausprobieren
    aber ne kleine frage noch gitb die impulslänge die position
    des Servos an?

    Danke!

    mfg
    Philipp

  7. #7
    Hallo,

    genau, 1,5 ms ist normalerweise Mittelposition, kleinere und grössere Werte bewegen das Servo in die eine und andere Richtung. Welche Richtung, resp. den Minimal- und Maximalwert findet man am besten durch Probieren heraus, da insbesondere letztere vom Servomodell/hersteller abhängen. Werte kleiner als 1ms resp grösser 3ms sind aber unwahrscheinlich

    René

  8. #8
    Benutzer Stammmitglied
    Registriert seit
    28.07.2008
    Beiträge
    56
    Herzlichen Danke René!

  9. #9
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.791
    Hallo Philipp,

    übrigens:
    In diesem Thread ...
    http://www.roboternetz.de/phpBB2/viewtopic.php?t=34407
    ... gibt es einige Demo-Progs zur Servo-Ansteuerung mit der RP6 Base und mit der Control M32 Zusatzkarte.

    Gruß Dirk

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •