Servoansteuerung

Antworten
WalterHz Verified
Beiträge: 5
Registriert: Sa 3. Mai 2025, 21:16
Wohnort: Wien
Wurde bedankt: 2 mal

Servoansteuerung

#1

Beitrag von WalterHz Verified »

Hallo,

bei der Ansteuerung der Servos via MLL wird der Servoimpuls nach erreichen der Sollposition abgeschaltet.
Ich bräuchte jedoch die Haltekraft der Servos.
Gibt es eine Möglichkeit den Servoimpuls bei erreichen der Position nicht abzuschalten ?
Ich hebe im Wiki nicht dazu gefunden.
Vielleicht gibt es eine Idee dazu.

Vielen Dank
Walter

Eckhart Verified
Novize des Beleuchters
Beiträge: 248
Registriert: Di 15. Apr 2025, 17:09
Wohnort: bei Berlin
Hat sich bedankt: 226 mal
Wurde bedankt: 244 mal

Re: Servoansteuerung

#2

Beitrag von Eckhart Verified »

Hallo Walter!

Die Standard 510 Servo Lösung kann das leider nicht, weil im 510er Code fest verankert ist, dass nach 25 Wiederholungen des selben Stellbefehls (das ist, bei 20ms Refesh, eine halbe Sekunde) das Servo keine weiteren Impulse mehr erhält. Das ist imho auch nicht konfigurierbar, oder abschaltbar. Es gäbe aber ein Workaround und einen alternativen Weg.

1. Das Workaround

Wenn der selbe Stellbefehl zu etwas ungewolltem führt, dann sendet man eben, an den Endpositionen, nicht immer wieder genau den selben Stellbefehl, sondern eine kleine Varianz! Dazu brauchst du den Pattern-Configurator und ein Multiphasen-Pattern mit GoTo Befehlen. In den Endlagen lässt du dann den Servo ganz leicht schwingen. Achtung: Da der 510 Servo leider sehr ungenau die Stellungen erkennt (Toleranz ca. 3-4 Werte) reicht es nicht aus, nur einen oder zwei Werte schwingen zu lassen; der 510er Code würde es für den selben Stellbefehl halten!

Nachteil dieser Lösung: Der Servo bewegt sich an den Endlagen ein klein wenig und wird auch "knurren".

2. Der alternative Weg

Du nutzt statt des Excel Programm-Generators, den Python PG und baust komplett um auf "Direct-Servo". Die Lösung kann, was du willst; Im "Direct-Mode" (NICHT "Legacy-Mode" für die Excel Welt!) erzeugt der Tiny so lange Servo-Impulse, wie er die entsprechenden codierten Licht-Werte von der Hauptplatine bekommt. Im "Direct-Mode" gibt es kein Eigenleben des Tiny; er ist sozusagen an der "kurzen Leine".

Nachteil: Der Aufwand des kompletten Umgewöhnens. (und es ist mehr Gebastel, weil es keine fertige Platine gibt)

Gruß, Eckhart

WalterHz Verified
Beiträge: 5
Registriert: Sa 3. Mai 2025, 21:16
Wohnort: Wien
Wurde bedankt: 2 mal

Re: Servoansteuerung

#3

Beitrag von WalterHz Verified »

Hallo Eckhart,

Danke für die schnelle Antwort,
ich habe auch schon den "Direct-Servo" benutzt, macht aber das gleiche, im "Direct-Servo" funktionieren aber alle drei Servos.
Was muss ich genau machen, damit es funktioniert.
Über eine kurze Erklärung der Einstellungen würde ich mich freuen.

LG
Walter

Eckhart Verified
Novize des Beleuchters
Beiträge: 248
Registriert: Di 15. Apr 2025, 17:09
Wohnort: bei Berlin
Hat sich bedankt: 226 mal
Wurde bedankt: 244 mal

Re: Servoansteuerung

#4

Beitrag von Eckhart Verified »

Hallo Walter!

Ich glaube, ich brauche noch mehr Informationen!

Du hast also, mit Harolds Python Programm-Generator, mit dem Effekt "Servo-Animation", eine Kurve für den Direkt-Servo im Direkt-Mode modelliert, oder? Dort müsstest du unter "AUS-Schalt Parameter" den Punkt "Dauer AUS (msec)" auf 0 stellen. Evtl. brauchen wir dazu noch eine Beratung von Harold @hlinke , wie die Paramter in der Servo-Animation genau zu setzen sind, damit die Daten von der Haupplatine angesteuert bleiben.

Gruß, Eckhart

PS: Was meinst du mit "funktionieren aber alle drei Servos"? Das tun sie bei der 510 doch auch, oder?

WalterHz Verified
Beiträge: 5
Registriert: Sa 3. Mai 2025, 21:16
Wohnort: Wien
Wurde bedankt: 2 mal

Re: Servoansteuerung

#5

Beitrag von WalterHz Verified »

Hallo Eckhart,

ich habe auf einen Breadboard praktisch die 511 Platine aufgebaut den TINY85 mit den Prog_generator/LED-Farbtest/Servo Test2 programmiert, dann die Endlagen und die Geschwindigkeit eingestellt, damit kann ich dann im Programmgenerator mit Servo 3 Positionen links/mitte/rechts anfahren, bei bedarf kann ich auch die Servolaufrichtung ändern. Das funktioniert für alle drei Servos die am TINY85 hängen, nur leider werden auch in dieser Konfiguration die Servoimpulse abgeschalten, ist damit praktisch gleich wie mit der 510 Platine.

Mit den Python Programm-Generator und den Effekt "Servo-Animation" habe ich es noch nicht versucht, da muss ich mich mal einlesen.

LG
Walter

Eckhart Verified
Novize des Beleuchters
Beiträge: 248
Registriert: Di 15. Apr 2025, 17:09
Wohnort: bei Berlin
Hat sich bedankt: 226 mal
Wurde bedankt: 244 mal

Re: Servoansteuerung

#6

Beitrag von Eckhart Verified »

Hallo Walter!
WalterHz hat geschrieben: Di 25. Nov 2025, 21:34
...nur leider werden auch in dieser Konfiguration die Servoimpulse abgeschalten, ist damit praktisch gleich wie mit der 510 Platine.
Wirklich praktisch (präzise?) gleich? ...oder nur "ähnlich"?

Wenn es wirklich gleich ("gleich" sind z.B. die Zahlen 5 und 5!) ist, gibt es ein weiteres Problem und mein Lösungsansatz funktioniert leider nicht!

Was ich darüber zu wissen meine:

1. Der 510er Servo schaltet nach 25 * 20ms = 0,5 Sek die Servoimpulse ab, wenn sich der Stellwert nicht mehr verändert.

2. Die Excel Servo-Macros senden, wenn man nichts anderes einstellt, 10 Sekunden lang den Stellwert an den Tiny (egal, ob 510 oder 511)

3. Der 511 sollte, weil er nicht selbstständig abschaltet, die 10 Sekunden der Servo-Macros den Servo mit Impulsen ansteuern!

Jetzt kommt die Crux: Ist das so, oder ist das nicht so? (das wäre das 20-fache und das würde ich niemals mit dem Wort "gleich" belegen; insbesondere, weil man daran ja merken würde, dass man eine Stellschraube in der Hand hat!)

Hast du mal, bei der 511er, die Zeit für das Stellwert-senden im Servo-Macro auf 65 Sek. (mehr geht leider nicht) verlängert und hattest dann 65 Sekunden lang einen angesteuerten Servo?

Wenn ja, dann hast du auch für die Excel Lösung einen Weg!

Du besorgst dir (von Jürgen oder Hardi) die Quellen für die Pattern der Servo-Macros; die *.MLL_pcf Dateien. (leider in den Beispielen nicht enthalten; warum eigentlich nicht?)

Dann nimmst du in den GoTo States der Servo-Positionen die Rückläufe zum State 0 weg. Einfach auf "E", bzw. "G63" setzen. Dadurch werden die States endlos mit ihren Stellwerten ausgeführt. (bis ein anderer GoTo, via DCC oder Button, reinkommt)

Alternativ kannst du den Servo3 Macro in MobaLedLib.h

Orginal:

#define Servo3(LED, InCh, Single_Cx, Servo1, Servo2, Servo3, ServoT) \
InCh_to_TmpVar1(InCh, 3) \
PatternT1(LED,_Cx2StCh(Single_Cx)+28,SI_LocalVar,1,0,255,0,0,ServoT,0,Servo1,Servo2,Servo3 ,127,129,129,129)

auf folgendes ändern:

#define Servo3(LED, InCh, Single_Cx, Servo1, Servo2, Servo3, ServoT) \
InCh_to_TmpVar1(InCh, 3) \
PatternT1(LED,_Cx2StCh(Single_Cx)+28,SI_LocalVar,1,0,255,0,0,ServoT,0,Servo1,Servo2,Servo3 ,127,191,191,191)

ACHTUNG!!! Das gilt dann aber für ALLE Servo3 deiner Konfiguration! (und es ist nach einem MLL Update wieder weg)

Gruß, Eckhart

PS: Ohne die *.MLL_pcf Quelle zu haben; wenn ich das Binary, das Excel oder Python auf der Hauptplatine erzeugen, mit meinem eigenen Tool angucke, sehe ich folgendes beim Servo3 Macro. Und wie im zweiten Bild sollte es aussehen, damit man in dem State bleibt. (sieht im Excel etwas anders aus, aber das Prinzip ist das selbe)
2025-11-26 12_18_12-Greenshot.png
2025-11-26 12_41_17-Greenshot.png

WalterHz Verified
Beiträge: 5
Registriert: Sa 3. Mai 2025, 21:16
Wohnort: Wien
Wurde bedankt: 2 mal

Re: Servoansteuerung

#7

Beitrag von WalterHz Verified »

Hallo Eckhart,

mit "gleich" meinte ich das nach einiger Zeit die Servoimpulse abgeschaltet werden.

Die von Dir geschrieben Punkte 1 - 3 stimmen und verhalten sich bei mir genau so.
Eckhart hat geschrieben: Mi 26. Nov 2025, 12:15
Hast du mal, bei der 511er, die Zeit für das Stellwert-senden im Servo-Macro auf 65 Sek. (mehr geht leider nicht) verlängert und hattest dann 65 Sekunden lang einen angesteuerten Servo?
Die 65 Sekunden sind zu wenig, sollte bis zum nächsten Umschalten (Minuten, Stunden) so bleiben.

im Prinzip reicht mir das Macro Servo 2, nur das halt die Position gehalten wird, wie bei meinen Weichenservos, die halten auch die Position bis zum nächsten umschalten.

Die von Dir geschriebenen Sachen werde ich mir in nächster Zeit ansehen.

Vielen Dank für die Erklärungen, wenn es Fragen gibt, melde ich mich.

LG
Walter

Antworten

Zurück zu „Servomodul / Charlieplexing (510)“