-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 18

Thema: Servo Drehgeschwindigkeit einstellen

  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    17.03.2004
    Ort
    Aachen
    Beiträge
    478

    Servo Drehgeschwindigkeit einstellen

    Anzeige

    Hallo,
    ich wollte mal fragen ob man in Basocm die Drehgescheindigkeit eines Servos
    ändern kann?
    Danke und Gruß aus Düren bei Aachen,

    Involut

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.09.2004
    Ort
    Düsseldorf
    Beiträge
    3.948
    sofern der Servo nicht extra eine Möglichkeit dafür hat läuft der kleine Motor des Servos immer so schnell wie er kann.

    Ohne zusätzliche Hardware kannst du die Geschwindigkeit aber Pseudo herabsetzen indem du die zu fahrende Strecke in möglichst kleine Teile zerlegst und diese Zeitlich abfährst.
    Überspitzt gesagt ruckelt er dann mit der gewünschten mittleren Geschwindigkeit vor sich hin.

    Als Eingriff wäre da die Möglichkeit den Motorkreis des Servos mit einer PWM zu erweitern aber das erfordert einen zusätzlichen Kanal.
    Gruß
    Ratber

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    17.03.2004
    Ort
    Aachen
    Beiträge
    478
    Hi und Dnake für die Info.

    Ich habe das schon probiert mit dem Schritt für Schrit annäheren aber dann rucklet der Servo noch mehr. Das Problem ist dass wenn der Serve einen Roboterarm steuern soll dann hat dieser eine Relativ grußes Trägheitsmoment und der Servo Schwingt über ohne sich zu beruhigen. D.h. er wacklet die ganze Zeit und wenn dann noch ein Roboteram dran ist dann wackelt dieser je nach länge um eineige cm hin und her wobe iman daa eine positionering vergessen kann (ausserdem siehts schlimm aus und das Wackeln kann den ganzen Roboarm umschmeissen)
    Danke und Gruß aus Düren bei Aachen,

    Involut

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.09.2004
    Ort
    Düsseldorf
    Beiträge
    3.948
    Wenn es schon "schwingt" dann ist das ein Zeichen dafür das die Servos zu schwach sind oder zuviel spiel besitzen.

    Im Modellbau sieht man es ab und an wenn jemand seinem Flitzer einen zu schwachen Lenkservo gegönnt hat.
    Die Mimik fängt an zu schwingen bis sich die Mechanik irgendwo auflöst.


    Du könntest bessere ,stärkere Modelle nehmen oder auch Digitale und überlegen den Arm softwaremässig zu dämpfen.

    Es wäre auch ein Gedanke daran zu verschwenden statt Servos Stepper oder AC/DC-Motoren nebst passenden Getrieben und Gebern (Positionserkennung) zu nutzen.
    So hättest du auch volle Kontrolle über die Geschwindigkeit.

    Modellbauservos sind eben nicht für sowas gedacht.
    Gruß
    Ratber

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    17.03.2004
    Ort
    Aachen
    Beiträge
    478
    Hi,
    die Servos sind die stärksten die ich finden konnte(bezahlbar), sie ham 2,5 nm.
    Die Alternative einen Getriebemotor zu einzusetzten und dann auf der Welle das Poti anzubringen und sich so kwasi seinen Eigenen Servo zu Bauen.

    Könnten den Digiservos (falls ich mir die leisten) kann das Problem mit dem Schiwngen/zittern eliminieren?
    Danke und Gruß aus Düren bei Aachen,

    Involut

  6. #6
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.781
    Blog-Einträge
    8
    Hallo

    Das Zittern kommt wohl eher von der Ansteuerung. Vielleicht mal eine Lösung ohne die Bascom-Servo-Funktion versuchen. Wie ist denn die Ansteuerung im Programm gelöst?

    Gruß

    mic

    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  7. #7
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    17.03.2004
    Ort
    Aachen
    Beiträge
    478
    Hier der Code:

    Config Servos = 1 , Servo1 = Portd.2 , Reload = 10
    Enable Interrupts
    Servo(1) = 50

    usw.

    Kann man da was tunen?

    Das Problem ist ja dass der Roboteram der am Servo dran ist ein Trägheist moment hat, dadurch der Servo etwas überschingt, zurückregelt und dabei wieder überschingt.....usw....Zitter Zitter.
    Danke und Gruß aus Düren bei Aachen,

    Involut

  8. #8
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    05.08.2007
    Ort
    Oberhofen im Inntal (Tirol)
    Alter
    43
    Beiträge
    377
    Hallo Involut!

    Nur um das mal auszuschließen. Für die Servoansteuerung mit Bascom muss der AVR schnell (8 Mhz und mehr) getaktet werden. Sonst werden die Servos zu langsam angesteuert.

    Ansonsten fällt mir nur ein Schrittmotor mit Getriebe ein. Bei einem Schrittmotor kannst du die größte Strecke schnell anfahren lassen und zum Schluss langsam abbremsen. Das dürfte das Problem des Schwingens beseitigen. Da der Schrittmotor unter Last auch Schritte verlieren kann, lässt du dir von einem Sensor die Position des Armes geben und regelst dann noch ein wenig nach. Wenn du viele solcher Gelenke hast, dann würde ich diese Arbeit sogar direkt vor Ort von einem kleinen µC erledigen lassen.

    mfg
    Gerold
    :-)

  9. #9
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.09.2004
    Ort
    Düsseldorf
    Beiträge
    3.948
    Die Alternative einen Getriebemotor zu einzusetzten und dann auf der Welle das Poti anzubringen und sich so kwasi seinen Eigenen Servo zu Bauen.
    Ja,selber was zu bauen macht immer spass aber dann kann man auch gleich eine sinvollere Methode wie angesprochene Getriebemotore nebst Gebern oder Stepper nehmen.
    Servos sind zwar bequem aber im Grunde ungeeignet weil man bei Handelsüblichen Modellen nicht in den Regelkreis eingreifen kann.

    Könnten den Digiservos (falls ich mir die leisten) kann das Problem mit dem Schiwngen/zittern eliminieren?
    Eine konkrete aussage kann ich dir da nicht liefern da ich nicht weiß ob das Zitern bei dir qualitative Gründe hat (Mech. Spiel.Billiger Regelkreis/Poti usw.) oder wie vermutet aus einer überlastung resultiert.
    Digitale Servos sind aber in der Regel präziser als die Herkömmmlichen und weisen meist eine feinere Auflösung auf.


    @Radbruch

    Ja,hatte ich auch erst gedacht und einfach mal mein einfaches Testprogramm mit einem alten Conrad S20 (Stammt noch von ca. 1985) probiert.

    Code:
    'Einfacher Servosteuerung über 2 Taster.
    '
    'Minimum,Maximum und Schrittweite sind Servospezifisch und müssen auf das
    'jeweilige Modell angeglichen werden.
    'Verzögerung ist Geschmackssache sowie der Startwert
    'Das Programm ist absichtlich einfach gehalten um die Funktion zu verdeutlichen.
    'also keine ausgefeilte Tastenabfrage oder sonstige Optimierung.
    '
    'Ratber 2005
    '===============================================================================
    
    $regfile = "M8def.dat"
    $crystal = 8000000
    $baud = 19200
    
    Config Servos = 1 , Servo1 = Portb.1 , Reload = 10
    
    Enable Interrupts                                           'Ist nötig
    Config Portb.1 = Output                                     'Servoausgang
    Config Pind.6 = Input                                       'Taster 1
    Config Pind.7 = Input                                       'Taster 2
    Portd.6 = 1                                                 'Pullup aktiviert
    Portd.7 = 1                                                 'Pullup aktiviert
    
    Dim Ist As Byte
    Dim Minimum As Byte
    Dim Maximum As Byte
    Dim Schrittweite As Byte
    Dim Pause1 As Byte
    Dim Pause2 As Byte
    Dim Z As Word
    
    Minimum = 35                                                'Rechter Anschlag
    Maximum = 155                                               'Linker Anschlag
    Schrittweite = 1                                            'Schrittweite beim erhöhen
    Pause1 = 10                                                 'Verzögerungszeit in ms damits steuerbar bleibt
    Pause2 = 50
    Ist = Minimum                                               'Einfach nur Definierter Startwert
    
    Do
     If Pind.6 = 0 Then
     Ist = Ist + Schrittweite
     If Ist > Maximum Then Ist = Maximum
     Waitms Pause1
     End If
    
     If Pind.7 = 0 Then
     Ist = Ist - Schrittweite
     If Ist < Minimum Then Ist = Minimum
     Waitms Pause2
     End If
    
     Servo(1) = Ist
    Loop
    
    End
    Der Servo lief ohne Last zitterfrei,mit leichter Last ebenfalls.
    Nur wenn ich ihn überlaste dann gibts die bekannte Schwingneigung weil der Servo aufgrund der zu bewegenden Masse nicht mehr schnell genug gegenhalten kann.


    @Phyton_Rocks

    Ja,guter Hinweis.
    Wenn der Controller zu langsam läuft stimmts Timing nicht mehr und der Servo läuft nicht richtig.
    Allerdings würde er dann meist gar nicht laufen oder schon ohne Last wild tanzen.
    Gruß
    Ratber

  10. #10
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    05.08.2007
    Ort
    Oberhofen im Inntal (Tirol)
    Alter
    43
    Beiträge
    377
    Zitat Zitat von Ratber
    @Phyton_Rocks
    Wenn der Controller zu langsam läuft stimmts Timing nicht mehr und der Servo läuft nicht richtig.
    Allerdings würde er dann meist gar nicht laufen oder schon ohne Last wild tanzen.
    Hallo Ratgeber!

    Bei mir war der Servo bei ca. 3,6 Mhz einfach nur sehr schwach.

    mfg
    Gerold
    :-)

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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