Hallo Karl Heinz, Tobias und alle anderen,
gestern und vorgestern habe ich mich mit der GoTo Steuerung der OnStep auseinander gesetzt und bin auf Dinge gestossen die ich zuvor anders eingeschätzt hätte.
Ich will mal ein wenig von meinen Erfahrungen berichten.
In der Config.h ganz am Ende sind 6 Zeilen die sich auf das GoTo beziehen, das sieht so aus:
#define HA_MODE_OFF // programs the HA uStep mode M0/M1/M2, optional and default _OFF. Other values 0 to 7 (0xb000 to 111): for example "#define HA_MODE 4"
#define HA_MODE_GOTO_OFF // programs the HA uStep mode M0/M1/M2, used during gotos, optional and default _OFF. Other values 0 to 7 (0xb000 to 111): for example "#define HA_MODE_GOTO 4"
#define HA_STEP_GOTO 1 // 1=goto mode is same as normal mode: for example if normal tracking mode is 32x and goto is 8x this would be 4
#define DE_MODE_OFF // programs the Dec uStep mode M0/M1/M2, optional and default _OFF. Other values 0 to 7 (0xb000 to 111)
#define DE_MODE_GOTO_OFF // programs the Dec uStep mode M0/M1/M2, used during gotos, optional and default _OFF. Other values 0 to 7 (0xb000 to 111)
#define DE_STEP_GOTO 1 // 1=goto mode is same as normal mode: for example if normal tracking mode is 32x and goto is 8x this would be 4
Die ersten 3 Zeilen beziehen sich auf die RA, die weitere drei Zeilen auf die DEC. Das ist ja noch einfach ersichtlich.
In der ersten Zeile definiert man ob überhaupt Mikroschrittmode genutzt werden soll im "Normalbetrieb" oder nicht und wenn ja wieviel Mikroschritte genutzt werden. Als Beispiel 32 Mikroschritte = 5. Bei mir steht da also eine 5.
Man entfernt übrigens nicht nur das "OFF" sondern auch noch den Unterstrich davor, dann kommt ein Leerzeichen hinter dem Wort und dann der Zahlenwert. Im Kommentar ist auch ein Beispiel genannt.
Bei mir sieht das dann also so aus: #define HA_MODE 5
In der zweiten Zeile definiert man in welchem Mikroschrittbetrieb der HA-Motor (RA = HA = Rektazension) laufen soll.
Ich habe 4 und 8 Mikroschritte ausprobiert. Wählt man zuviele Mikroschritte kriegt man anschliessend das GoTo nicht so schnell hin wie gewünscht. Aber dazu gleich mehr.
Anfänglich dachte ich das z.B. 8 statt den üblichen 32 Mikroschritten im Normalbetrieb dazu führen würden das das GoTo 4x so schnell wie bisher laufen würde... weit gefehlt.
In der zweiten Zeile steht bei mir eine "2" (für 4 Mikroschritte im Goto).
In der dritten Zeile bezieht sich der einzugebende Wert nicht mehr auf die Definitionen weiter oben (wie ich anfänglich annahm) sondern hier läuft es anders.
Hier müssen wir den Zahlenwert selber mathematisch errechnen. Ein Beispiel steht ja auch dort. Der zu ermittelnde Wert entsteht durch Division der Schrittanzahl im Normalbetrieb (also während der Nachführung) durch die Schrittanzahl die wir in Zeile 2 für den Gotobetrieb gewählt hatten.
Bei mir sind das z.B. 32 Schritte im Nachführbetrieb und 4 Mikroschritte bei GoTo.
32 durch 4 ergibt 8.
In Zeile 3 musste ich also den Wert 8 einfügen.
Für die DEC habe ich sinngemäß das gleiche gemacht. Meine Werte dort sind mit denen der HA identisch.
Meine in den 6 Zeilen eingegebenen Werte lauten also von oben nach unten 5-2-8--5-2-8
5 für 32Mikroschritte während Nachführung, 2 für 4 Mikroschritte beim Goto und 8 weil 32 durch 4 eben 8 ergibt.
Wer nun glaubt das das Goto nun rasend schnell erfolgt da hierbei ja lediglich 4 Mikroschritte pro Step zum Einsatz kommen wird herb enttäuscht!
EGAL wieviel Mikroschritte wir für GoTo eingeben, die Geschwindigkeit beim Schwenken bleibt zunächst mal immer die gleiche! Kaum zu glauben aber wahr.
Das sich überhaupt was ändert habe ich nur an den Geräuschen der Motoren vernommen die bei weniger Mikroschritten deutlich rauher und lauter arbeiten. Die Zeitdauer um einen bestimmten Stern anzusteuern blieb gleich.
Es hat mich einen halben Tag gekostet zu versuchen zu verstehen wozu das ganze denn gut sein soll wenn die Geschwindikeit immer die gleiche bleibt.
Ganz oben in der Config.h habe ich dann einen Wert von 96 für "MaxRate" entdeckt der die minimale Mikrosekundenanzahl zwischen zwei Steps definiert. Es gibt dort auch Erläuterungen wozu der genau da ist bzw. was er bewirkt.
Er beeinflusst direkt wie schnell die Steps aus dem Arduino ausgegeben werden.
Kleinere Werte erhöhen dadurch die Geschwindigkeit beim GoTo und größere verlangsamen sie.
Allerdings kann der Mega2560 den ich verwendete nicht unbegrenzt schnell arbeiten weswegen im Kommentar bestimmte Mindestwerte für den Mega2560 und auch für den Teensy genannt sind mit dem Hinweis das der Wert von der Schrittauflösung abhängig ist.
Dort steht : "minimum can be lower, when both HA & DE_MODE_GOTO are used by HA/DE_STEP_GOTO times."
Ich hab es so verstanden das man den Wert nur relativ klein machen kann wenn für Goto eine geringe Mikroschrittanzahl verwendet wird.
Ich wählte in Stufen kleinere Werte für die Mikrosekunden bis zuletzt 32 und siehe da, das Goto flitzt jetzt mit dreifacher Geschwindigkeit im Vergleich zu meinem ersten Video.
Ich erreiche nun 3,5Grad/Sekunde was wirklich schon beeindruckend auf mich wirkt. (Werde mal ein neues Video machen)
Warum belässt man dann den Wert von 32 Mikroschritten dann nicht einfach auch für das Goto und verändert nur den Wert für die Mikrosekunden? Eben weil das zuviel Rechenleistung erfordert.
Ich habe das versuchweise mal gemacht was nach dem Anfahren beim GoTo zur Blockade des Motors führt.
Anscheinend kann mein Arduino nicht so schnell die vielen Mikroschritte berechnen/steuern.
Erst das herabsetzen der Mikroschrittanzahl im Goto UND das herabsetzen der Mikrosekunden für "MaxRate" führen dazu das GoTo auch schneller arbeiten kann. Beides ist voneinander abhängig.
Ich hoffe ich konnte euch etwas helfen.
Falls irgendwas falsch war korrigiert mich bitte.
Grüße
Bernd