- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 10 von 27

Thema: Adafruit_PWMServoDriver

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    05.11.2007
    Beiträge
    1.076
    Das die Servos sich je nach Preis auch qualitativ unterscheiden ist hier zu sehen.
    Ich hab mal 2 Servos extrem langsam laufen lassen.
    Hier sieht man deutlich das Stottern, des günstigeren rechten Servos

    https://www.dropbox.com/s/1m83yx3a4x...S306G.mp4?dl=0

    Ebenso werden sich die Servos auch verhalten beim direkten Anfahren einer festgelegten Position.
    Sie "treffen" dann nicht immer richtig- Je länger dein Hebelarm umso problematischer wird das ganze dann...

    den .ccp Code habe ich mir grad angesehen. Hätt ich mal vorher reingucken sollen, dann hätte ich mir viel Kopfzerbrechen erspart,
    ich musste ja mal wieder das Rad neu erfinden....

    Siro

  2. #2
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.699
    Zitat Zitat von Siro Beitrag anzeigen
    .. hab mal 2 Servos extrem langsam laufen lassen. Hier sieht man deutlich das Stottern, des günstigeren rechten Servos
    .. den .ccp Code habe ich mir grad angesehen. Hätt ich mal vorher reingucken sollen, dann hätte ich mir viel Kopfzerbrechen erspart ..
    Grübel - und was bedeutet das jetzt für uns? Ist der Servo am Stottern schuld oder der .ccp Code (bzw. der Mensch an der Tastatur) ?

    Bei meinem Code (ok, in "C" - das bei mir immer noch eher C-äh ist) hab ich kein Problem Servo, auch sehr billige, mit rund 2 sec von Anschlag zu Anschlag laufen zu lassen (zB hier).
    Ciao sagt der JoeamBerg

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    05.11.2007
    Beiträge
    1.076
    @oberallgeier:
    Das sieht bei deinem Video optisch sehr sauber aus.

    Das Stottern bei mir (bzw. beim Servo ) kommt tatsächlich vom Servo-
    Die PWM wurde nicht per Hand, sondern automatisiert per Software durchgefahren.
    Getestet hatte ich es mit einem PIC Controller auf dem nichts anderes lief,
    die PWM hatte eine zigmal feinere Auflösung als ein Servo es verarbeiten könnte.
    Also ein absolut gleichförmiges PWM Signal ohne Ausreißer.
    Nicht alle Billigservos sind schlecht, dieser war es aber...
    Nun haben alle Servos auch eine gewisse Hystere, sonst würden sie nie ruhig stehen sondern ständig nachlaufen.
    Das ist natürchlich auch abhängig von der gesamten Mechanik / Übersetzung / Poti usw.
    Es kommt vor, dass ein Servo kontinuierlich Geräusche von sich gibt weil er ständig nachregelt.
    Ungünstige Position, Schleiferkontakt....

    Bei den Billigstservos in meine Minihubschraubern (wobei die im Verhältnis Schweineteuer sind...) werden die Bewegungen im Laufe der Zeit immer schlechter.
    Die fangen immer mehr an zu stottern...
    Da hilft dann sie zu zerlegen und die Kohleschicht und Schleifer zu säubern und dann sind sie quasi wie neu.
    Geändert von Siro (03.05.2019 um 12:57 Uhr)

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.650
    Habe jetzt festgestellt, das die Servos nur auf alle 3 bis 4 Schritte, in der Pulslängenänderung, reagieren. Also bis sie die nächste Position anfahren. Das ist dann nat. schon ein ordentlicher Schritt.
    Jetzt ist es ja aber so, dass das der PCA9685 das Steuersignal dauernd weiter an den Servo sendet.
    Kann es möglich sein, dass das daran liegt?
    Anders herum muss ein Servo die Position halten, da kann man das Steuersignal wohl nicht einfach abschalten?

    Habe mir heute einen Servotester gebastelt:

    .....Klicke auf die Grafik für eine größere Ansicht

Name:	servotester.jpg
Hits:	7
Größe:	25,3 KB
ID:	34150


    MfG
    Geändert von Moppi (03.05.2019 um 20:53 Uhr)

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    05.11.2007
    Beiträge
    1.076
    Moin Moppi,

    Servos haben eine "endliche" Auflösung und ja, es ist so, dass bei kleinsten Änderungen er irgendwann nicht mehr darauf reagiert
    bzw. mal mehr oder mal weniger Schritte benötigt bis er sich wieder bewegt.
    Das hängt jetzt aber vom Servo selbst ab wie fein er auflösen kann.

    Der Motor bewegt ja über die Zahnräder ein Poti und das Getriebe zieht sich sozusagen auf.
    So ist es möglich dass z.B. die ersten 5 Schritte nichts passiert und dann gehts aber bei jedem 2 Schritt weiter.
    Dreht man die Richtung um, kann es gut sein, dass wieder 5 oder sogar noch mehr Schritte nicht ausgeführt werden,
    die Getriebe muss nun das Zahnflankenspiel in die andere Richtung ausrichten.
    Auch die Qualität/Linearität des verwendeten Potentiometers spielt hier sicherlich eine Rolle.

    Wenn die Signale ausbleiben ist das theoretisch nicht schlimm, dann bleibt der Servo ja stehen wo er ist, aber
    wenn er nun mechanisch bewegt wird oder eine Kraft ihn aus der Position ziehen/drehen will, kann er das nicht mehr ausgleichen
    So gesehen ist es also Anwendungsspezifisch ob man die Impulse abschalten darf. Die Haltekraft ist dann weg.

    Siro
    Geändert von Siro (04.05.2019 um 06:52 Uhr)

  6. #6
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.699
    .. Servos haben eine "endliche" Auflösung .. dass bei kleinsten Änderungen er irgendwann nicht mehr darauf reagiert ..
    Da ist ja einmal die zeitliche Auflösung des eingegebenen Stellsignals (der SignalPULS). Es ist unwahrscheinlich, dass die Servoelektronik bis herunter zu Femtosekunden und kürzer auflösen kann (kann!). Dazu sollte ne gute Stellungsregelung noch ein klitzekleines Toleranzband um den Sollwert haben in dem nicht geregelt wird - sonst schwingt der vom Regler beeinflusste Stellwert bei minimalsten Abweichungen um den "Nullpunkt" (den genauen Wert den er einhalten soll) rum. Und dabei schwingt der aus Trägheitsgründen theoretisch dauernd. Ein schmales Toleranzband verhindert dies.

    .. Servos haben eine "endliche" Auflösung .. Das hängt jetzt aber vom Servo selbst ab wie fein er auflösen kann ..
    Das sehen wir in einem zufällig herausgepickten Beispiel hier - unter "Device spezifications" .. resolution: 0.5 µs (about 0.05°). Diesen Wert um etwa 0,4 µs hatte ich selbst festgestellt. Für mich gilt daher, dass viele Servos theoretisch den Stellwert von 1 ms (also den "Standardwert", der auswertbare Unterschied von 1ms Puls bis 2 ms Puls) allenfalls in 1000µs/0,4µs = 2500 Schritten auflösen können - das ergibt knapp 11½ Bit Auflösung. Wenn ich in meiner Servoroutine den Stellwert in bis zu sechstausend Schritten auflöse (oder käufliche Servocontroller 12 Bit Auflösung nennen) dann kann der Servo erst nach ein paar Schritten reagieren. Aber erst damit kann ich die mit dem Servo erzielbare Auflösung voll ausnutzen.

    .. Wenn die Signale ausbleiben ist das theoretisch nicht schlimm, dann bleibt der Servo ja stehen wo er ist, aber ..
    Hier ist der Nachsatz extrem wichtig. Ein Servo mit Spannungsversorgung ohne Signal kann da kraftlos bis unangenehm unvorhersehbar reagieren. Ausnahmen gibts aber. So ist der Deckelantrieb meines MiniD0´s in aufgefahrener Stellung so fixiert, dass ich Signal und Spannung bei längeren Fahrten (mitunter) abschalte - der Servo hält dann trotzdem die Position.
    Ciao sagt der JoeamBerg

  7. #7
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.650
    Gut, Danke!

    Dann weiß ich jetzt, dass es nicht am PCA9685 liegt, sondern tatsächlich am Servo.


    MfG

Berechtigungen

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

12V Akku bauen