Hallo zusammen,
ich habe mal ne etwas allgemeinere Frage zu Servos.
Ich bastle an verschiedenen Modellen, die Teilweise noch alte Servos haben.
Was verstehe ich unter „alten“ Servos? Das sind Servos, die die Regelung der Position nicht selber intern regeln, über ein PWM Signal, sondern lediglich die 3 Adern des Pots und 2 des Motors haben. Die Regelung erfolgt in meinen Fall über die Platine. Auf der auch alles andere, wie Regler, Empfänger usw usw… zusammen gelötet sind. Das Modell habe ich noch aus meiner Kindheit, also irgendwas 1990 bis 95. Von dem her kann da noch nicht allzu viel Softwareseitig erledigt worden sein.
Klar könnt ich einfach nen neuen Servo reinbasteln. Aber, ich habe mir eigene linear Servos gebaut, da der Markt in dem Bereich wirklich wenig hergibt und ich genau sowas in meinem Modell benötigt habe. Wer mag, möge sich gerne ein Bild von meinen bisherigen Bastleien machen:
Als Positionsrückmeldung dienen umgebaute einfache Linear Fader (die Dinger, die jeder auf dem HIFI Bereich kennt.
Es gibt genau einen Hersteller (Firgelli) der Linear Servos mit halbwegs langen Wegen anbietet. Diese sind dann aber von der Baugröße im Verhältnis zum Weg sehr groß.
Soweit so gut, jetzt habe ich weit ausgeholt, und komme auf meine eigentliche Frage zurück:
Ich habe nun auf meinem Arduino für die „Servos“ einen Code geschrieben, den ich hier gerne bei Interesse poste, aber der nicht wirklich optimal ist. Was mache ich, in Worten ausgedrückt:
Wenn Fehler (gemessene Spannung – vorgegebene Position) größer/kleiner als ein bestimmter Wert, fahre rauf/runter. Klappt soweit auch ganz gut. Aber das Gelbe vom Ei ist es nicht.
Weil:
-
Mach ich mein Fehlerintervall zu klein zuckelt das Ding hin und her, mach ich es zu groß ist es nicht sehr genau. (Wenn ich den Servo kurz vor erreichen seiner Soll Position abbremse, wird’s schon etwas besser) (Meine Servos haben ne H Brücke vorgeschaltet.)
-
Zusätzlich „hält“ ein Servo von der Stange die Position bei Last. Das haut mit meinem Ansatz natürlich nicht hin. Der wird geschoben, bis er außerhalb des Fehlers ist, und dann erst fährt er wieder an die vorgegebene Position zurück. Das ist eigentlich der noch interessantere Part...
Daher meine Fragen:
-
Weiß jemand, wie so ein Servo Code intern in etwa aussehen könnte? PID Regler etc.? Die PWM Signalverarbeitung am Servo Eingang ist jetzt mal zweitrangig. Auf dem Chip im Servo hock ja vermutlich ein AD Wandler für den Pot, eine H-Brücke, und irgendeine Regelung, die Hardware oder Softwaremäßig aufgebaut sein muss. Aber Infos dazu habe ich fast nix gefunden.
-
Wie haben die das dann vor rund 25 Jahren gemacht, ein allzu komplexer Mico Controller wird’s da kaum gewesen sein? Nur so am Rande… (Die Platine, die da verbaut war, ist echt Retro!
Will das Thema mal umfassender verstehen, und freue mich, falls da jemand von Euch tiefere Kenntnisse hat.
Vielen Dank und Gruß Michl