-         
+ Antworten
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 12

Thema: Servos modifizieren mit digitalem Potentiometer

  1. #1
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    01.03.2004
    Ort
    Bielefeld (JA, das gibt es!)
    Alter
    28
    Beiträge
    1.614

    Servos modifizieren mit digitalem Potentiometer

    Hi

    Ich habe zwei Servos modifiziert und das Potentiometer mit zwei Widerständen ersetzt.
    Funktioniert alles ganz gut aber das Problem ist, das die Widerstände ne Toleranz von 10% haben...
    Nun kann man sich vorstellen was passiert: in der einen Richtung dreht der Motor schneller als in der anderen.
    Nun will ich die Widerstände durch ein digitales 3-Draht Potentiometer CAT522P ersetzen und mit einer Lichtschranke und einer Lochscheibe abgleichen.

    Nun bitte ich euch um eure Meinung dazu.
    Denkt ihr das könnte funktionieren?

    Martin

  2. #2
    Erfahrener Benutzer Roboter Genie Avatar von Michael
    Registriert seit
    17.01.2004
    Ort
    Karlstadt
    Alter
    47
    Beiträge
    1.244
    Och nööö, x-ryder,
    willst du jetzt Fliegen mit Elefanten erschlagen?
    was kann hier ein digitales Poti besser als ein analoges? Verlänger das alte Poti mit 3 Leitungen und kleb es aussen auf das Servo. Damit kannst du die Mitte einstellen. Dass das Servo in einer Richtung schneller läuft ist normal, das musst du mit Software ausgleichen.
    Gruss, Michael

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    01.03.2004
    Ort
    Bielefeld (JA, das gibt es!)
    Alter
    28
    Beiträge
    1.614
    Jaja iss schon richtig die Mwethode kenn ich auch aber mit nem digitalen und ner Lichtschranke mit Lochscheibe kann ich das auch noch automatisch abgleichen wenn der Motor schon ne Weile gelaufen ist.

    Martin

  4. #4
    Erfahrener Benutzer Roboter Genie Avatar von Michael
    Registriert seit
    17.01.2004
    Ort
    Karlstadt
    Alter
    47
    Beiträge
    1.244
    Hallo x-ryder,
    ich glaube, du verstehst da was falsch. Mit dem Poti kannst du nicht die unterschiedlichen Geschwindigkeiten für den rechts/links-Lauf beeinflussen, sondern nur die Mittelstellung. Im (Bascom-)Programm also auf servo(1) = 150 und mit dem Poti dann auf Ruhepunkt stellen. Die unterschiedlichen Drehzahlen haben was mit der Mechanik zu tun, da musst du mit Software nachregeln.
    Gruss, Michael

  5. #5
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    01.03.2004
    Ort
    Bielefeld (JA, das gibt es!)
    Alter
    28
    Beiträge
    1.614
    Mann du kennst dich echt aus...
    Nochmal Danke!

  6. #6
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    01.03.2004
    Ort
    Bielefeld (JA, das gibt es!)
    Alter
    28
    Beiträge
    1.614
    Tach nochmal!

    Das mit der Mittelstellung iss ne gute Idee aber wenn ich das so eingestellt habe, das der Motor sich kein bisschen bewegt und ich ihn dann wieder laufen lasse, dann hat sich das Poti durch die Vibration schon wieder verstellt...
    Hast du vielleicht dafür auch eine Idee?

    Martin

  7. #7
    Erfahrener Benutzer Roboter Genie Avatar von Michael
    Registriert seit
    17.01.2004
    Ort
    Karlstadt
    Alter
    47
    Beiträge
    1.244
    Hallo x-ryder,
    Hast du vielleicht dafür auch eine Idee?
    Version1: Du stellst das Poti ein, lötest es aus und ersetzt es durch entsprechende Festwiderstände. Mit Widerstandsberechnungen kennst du dich doch aus?
    Version2: Du ersetzt das Poti durch Festwiderstände von je halben Potiwert und machst den Rest in Software. Das ist dann eine einfache Dreisatz-Geschichte.
    Version3: Du stellst das Poti ein und klebst es danach z.B. mit Sekundenkleber fest.
    Selber find ich die 2. Version am elegantesten.
    Gruss, Michael

  8. #8
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    01.03.2004
    Ort
    Bielefeld (JA, das gibt es!)
    Alter
    28
    Beiträge
    1.614
    Hi

    Kannst du die zweite Methode mal etwas näher erklären?


    Denn das die Software den Rest macht iss nen bisschen kompliziert.
    Ich möchte den Servo auch anhalten können und deswegen nicht gleich zwei Pins (Transistoren zum Trennen der Betriebsspannung zum Servo) verschwenden.
    Und die Software kann das nicht so genau Regeln, das der Servo wirklich stehen bleibt sondern er bewegt sich dann noch etwas.

    Martin

  9. #9
    Erfahrener Benutzer Roboter Genie Avatar von Michael
    Registriert seit
    17.01.2004
    Ort
    Karlstadt
    Alter
    47
    Beiträge
    1.244
    Hallo x-ryder,
    Kannst du die zweite Methode mal etwas näher erklären?
    ich versuchs:
    Durch Probieren stellst du fest, dass dein Servo bei 145* stillsteht.
    Weiterhin stellst du fest, dass bei 100 das Servo voll rückwärts und bei 210 dein Servo vorwärts dreht.
    Du willst 40%rückwärts:
    145-100 = 45(100%) 45*0,4 = 18 -> 145-18 = Wert 127 für 40%rückwärts.
    Du willst 80% vorwärts:
    210-145 = 65(100%) 65*0,8 = 52 -> 145+52 = Wert 197 für 80% vorwärts.
    Durch Probieren musst du halt rausfinden, wie gross der Unterschied zwischen rechts und links ist und den jeweiligen Höchstwert anpassen.

    Gruss, Michael

    *hier ist die Pulszeit des Servos im Bascom-Programm gemeint, sie wird noch mit der Reloadzeit von 10 multipliziert und das ergibt die Zeit in µS.

  10. #10
    Gast
    @x-ryder

    Die Rechnerei die Michael dir vergerechnet hat, kannst du auch sparen, indem du einfach ausprobierst bei welchem Wert die Servos stehen bleiben.
    Als ich mit zwei Servos als Antrieb rumgespielt habe, habe ich die Werte einfach in einer Schleife alle paar Sekunden erhöht und den Wert jeweils über die serielle Schnittstelle ausgegeben.
    Dann konnte ich einfach ablesen, bei welchem Wert sie stehen bleiben.

    Damit es nicht so lange dauert, würde ich die Schleife allerdings nicht über den kompletten Bereich laufen lassen.
    Statt die Werte auszugeben, könntest du de Schleife auch mit einem Taster kombinieren. Wenn die Servos stillstehen drückst du den Taster und der Controller speichert den Wert als Nullstellung.

    Wenn du das fest in deinen Robby integrierst, kannst du ihn so jeder Zeit wieder abgleichen. Bei Widerständen mit 10% Toleranz könnte ich mir nämlich vorstellen, dass der Wert bei dem die Servos stillstehen sich von Zeit zu Zeit etwas verlagert.

    Bei meinen Servos habe ich allerdings gar keinen Wert gefunden, bei dem sie 100% stillstanden. Ein ganz bischen ruckeln hörte man sie immer.
    Ich habe allerdings auch nicht sehr intensiv probiert das wegzubekommen, weil ich das Gefühl hatte, dass das Problem bei meinem Controller liegt und der die Impulsdauer gar nicht genau genug schaltet.
    Mit einer Servoansteuerung hat so ein Controller ja ganz ordentlich zu tun.

    Eine völlig andere Möglichkeit wäre, die Servo-Elektronik komplett auszuräumen und die Servos wie normale Getriebemotoren anzusteuern. Das Problem, dass sie immer ein bischen vorwärts oder rückwärts ruckeln und nicht ganz stoppen, bist du dann auf jeden Fall los.

    Du brauchst dann allerdings irgendeinen Motortreiber, z.B. eine H-Brücke oder einen L293D und für 2 Servos mindestens 4 Pins + 2 Inverter.
    Dafür ist der Controller dann aber auch weniger ausgelastet und kann sich noch um ein paar andere Sachen als die Servos kümmern.

+ Antworten
Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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