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


von Robert (Gast)


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

von aha (Gast)


Lesenswert?

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

von Matrix (Gast)


Lesenswert?

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

Gruß

von Olaf (Gast)


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

von -_-_-_-_-_ (Gast)


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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.