www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Servo mal andersrum: Selbstbau / eigene Servo-Software


Autor: Robert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Entgegen dem Trend fertige Servos anzusteuern würde ich gerne selber 
eine Servosoftware schreiben. Dies ist nötig, weil die vier Servos Teil 
einer Gesamtschaltung ist deren Controller ist (bewusst) überschrieben 
habe und neu programmieren will.

Die Solldaten liegen als 10 bit Wert vor, die Servos sind als 
Linearservos (mit Gewindespindel und Vorgetriebe) ausgeführt. Die 
Position wird per direktem Schleifer auf Widerstandbahn ermittelt - 
leider scheint das recht ungenau zu sein. Eingelesen wird die Position 
über den ADC des AVR. Die Ansteuerung der Motoren erfolgt je per 
H-Brücke mit zwei diskreten Push-Pull-Stufen. Es gibt nur zwei Pins die 
sinnvoll mit low-low, low-high und high-low zu schalten sind (keine 
Enable-Eingänge etc).

Eine einfache Regelung mit "Ist > Soll -> Motor hoch" etc funktioniert 
schon, allerdings ist der Totbereich mit ca. 20 "Einheiten" recht groß. 
Verringer ich diesen fängt der Servo an "zu schwingen", wahrscheinlich 
weil ich a) zu langsam nachregel und b) den Servo nahe der Sollpostion 
zu schnell fahre.

Überlege das ganze als ISR laufen zu lassen um garantierte Intervalle zu 
haben aber auf eine Messung des ADC warten ist natürlich ineffizient. 
Oder evtl. den ADC-Interrupt aktivieren und dann immer umschalten?

Gibt es schon Projekte wo man sich Anregungen holen könnte was das 
Regelkonzept angeht? Habt ihr Vorschläge?

Gruß
Robert

Autor: aha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja, den Motor sollte man schon etwas besser abbilden als ein On/Off 
Ding.

Autor: Matrix (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Den Motor mit einer PWM anfahren und keinen 2-Punkt-Regler verwenden 
sondern einen PI-Regler

Gruß

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Die Position wird per direktem Schleifer auf Widerstandbahn
> ermittelt - leider scheint das recht ungenau zu sein.

Die Genauigkeit haengt von der Qualitaet des Potis ab, ist
aber normalerweise garnicht so schlecht. Der Nachteil solcher
Verfahren ist die Haltbarkeit. Irgendwann ist die Widerstandsbahn
nicht mehr so wie sie mal war und dann holpert der Servo.

> Verringer ich diesen fängt der Servo an "zu schwingen", wahrscheinlich
> weil ich

> a) zu langsam nachregel und
> b) den Servo nahe der Sollpostion zu schnell fahre.

  c) Es mangelt dir an Grundlagen der Regelungstechnik.

Du wirst ein PI oder PID Regler programmieren muessen. Das ist einfach.
Dann musst du die Regelparameter bestimmen. Das ist schon schwieriger.
Und dann musst du so Sachen wie Losbrechmoment, Spiel, aendernde Last
beruecksichtigen. Da wird es dann ganz schwierig.

Liess mal hier:

http://www.wescottdesign.com/articles/Friction/friction.html

Olaf

Autor: -_-_-_-_-_ (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn ich mich nicht irre hat Hannes Lux soetwas ähnliches gemacht.
Er hat mit einem Tiny15 die Servoelektronik ersetzt.
Da müsste man halt die PPM-Funktion ersetzen.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.