Auf diesen Seiten möchte ich euch meinen Selbstbau-Motorfokusierer vorstellen.
Ich baute mir bereits für meinen Newton die Steuerung von Thomas Westerhoff (http://www.astrohome.info) nach. Dieser arbeitet mit mindestens einem oder aber zwei Endlagenschaltern und nutzt als Treiber den bewährten robofocus-ASCOM-Treiber.
Die Steuerung ist sehr durchdacht und auch gut konstruiert und der Funktionsumfang beträchtlich.
Da dort allerdings viel SMD-Lötarbeit und auch das flashen von Atmel-Microprozessoren erforderlich ist, macht das den Nachbau nicht so einfach.
Von der Möglichkeit zu foksieren, ohne an das Teleskop greifen zu müssen hat mich dermaßen begeistert, dass für mich auch eine Lösung für meinen Apo her musste.
Diese Steuerung sollte es mir ermöglichen, den Apo vom Computer aus zu Fokusieren, reproduzierbare Fokuspositionen speichern zu können und wieder abzurufen.
Als Option folgt eventuell eine Steuerungsmöglichkeit über Taster.
Auf eine Temperaturkompensation kann ich verzichten. Da ich meine Ausüstung ausschließlich mobil nutze, werden die gelernten Temperaturen immer schwierig zu reproduzieren.
Ungeachtet dessen wird eine entsprechende Funktion von meiner Aufnahmesoftware bereitgestellt.
Die Steuerung die ich am Newton verwende wollte ich in diesem Falle nicht nutzen, da ich das ganze möglichst klein halten will und aus diesem Grunde keinen Endschalter einsetzen kann und will.
Vom Hersteller TRINAMIC fiel mir deren Schrittmotorcontroller TMCM-1110 (StepRocker-Board auf www.trinamic.com) auf.
Diese quasi fertige Steuerung eignet sich aus den folgenden Gründen geradezu perfekt für meine Verwendung:

  • Kaum Lötarbeit erforderlich
  • Lediglich evtl. Stecker oder optionale End- oder Referenzschalter ausgenommen
  • Ein- und Ausgänge
  • Digitale Ein- und Ausgänge
  • Analoge Eingänge
  • Drehgebereingang
  • Referenzschalter-Eingang
  • Seperate Eingänge für Endlagenschalter
  • Fertige Schnittstellen und umfangreiche Kommunikationsmöglichkeiten
  • Mini-USB on Board
  • Selbstverständlich RS232 und RS485
  • Optional CAN-Bus möglich

Und einer der größten Vorteile bietet der Interne Speicher für Skripte, die zum einen den autarken Betrieb ermöglichen udn zum anderen fast vollständig auch für die Kommunikation von z.B. USB erfolgen kann.
Diese TRINAMIC-eigene Scriptsprache TMCL (Trinamic Motion Controll Language) ist sehr umfangreich und wird nur sehr eingeschränkt von meiner Anwendung genutzt.
Die wichtigsten Punkte wäre die Möglichkeit den Motor via ASCOM vom PC aus zu steuern und auf Referenzschalter verzichten zu können.
Man kann sich natürlich das TMCL-LITE-Project zu nutze machen und auf dem Controller eine art Zwischenschicht zu programmieren, damit dieser direkt von dem z.B. Robofocus-Treiber verwendet werden kann.
Allerdings nimmt man der Steuerung die wesentlichen Vorteile und man macht sich selbst das Leben schwer.
Der eleganteste Weg wäre, einfach einen ASCOM-Treiber zu schreiben, der die Karte direkt ansteuert.
Da mir dafür die Kenntnisse fehlen, sah ich mich gezwungen mir Hilfe zu suchen, welche ich in Rob Morgen fand. Einem der Programmierer des ASCOM-Projektes.
Der ASCOM-Treiber bildet das wesentliche Steuerungselement des Fokusierers obgleich er einen überaus schlichten Eindruck macht. Es wurde auf Funktionalität wert gelegt.
In den Einstellungen können feste Daten interlegt werden, oder man ruft die Eisntellungen aus den Uservariablen auf dem TMCM-1110-Board ab.
Es gibt verschiedene Möglichkeiten mit dem Board in Verbindung mit dme ASCOM-Treiber zu arbeiten:

  1. Man hinterlegt keinerlei Daten auf dem TMCM-1110-Board und speichert alle Parameter im Treiber selbst (Motorstrom, Beschleunigung, Geschwindigkeit, kleinste und größte Koordinate, ...)*
  2. Man hinterlegt im dem Treiber-Board die Motorparameter und ruft ausser den Endlagen alles über den Treiber ab*
  3. Man hinterlegt mehr oder weniger komplexe Programme zur Referenzierung auf der Karte ab und ruft die ganzen Parameter nur noch ab.

(Die mit '*' markierten Optionen wurde nicht durch mich getestet)

Zu dem ersten Betriebsmodus gibt es eigentlich nicht viel zu sagen. Hier werden die relevanten Motorparameter komplett im Treiber hinterlegt.
Notwendig ist die Angabe von Minimaler (meist 0) und Maximaler Position. Ausserdem muss der Fokusierer vor der Nutzung von Hand in eine Neutrale Position gebracht werden.

Im zweiten Betriebsmodus mus im wesentlichen genau so Verfahren werden wie im ersten. Nur dass hier ein Teil der Parameter auf der Steuerung hinterlegt werden.
Folgende Punkte gibt es bei der Verwendung eines Scriptes auf der Karte zu berücksichtigen:
Das Programm startet sobald die Betriebsspannung angelegt wird. Daher gilt hier zuerst den Motor anzuschließen.
In diesem Fall sollte der Motorstrom nicht (nur) im Treiber hinterlegt werden. Sonst kann es sein, dass dieser evtl. mit einem zu hohen Motorstrom angesteuert wird.
In den mit '#' markierten Feldern können Parameter von dem Board aufgerufen werden, welche zuvor in der Bank 2 abgelegt wurden. Diese Bank 2 auf der Steuerplatine hält die Speicherplätze 0-55 für Nutzdaten bereit.
Es dürfen NUR IN BANK 2 Daten abgelegt werden. Die Speicherbänke 0 und 1 sind für das System reserviert. Hierzu lege ich jedem die TMCL-Referenz nahe.
Es können z.B. mit dem Befehl SGP (Store global Parameter) Daten dort abgelegt werden. Anbei ein Beispiel:
SGP 3,2,170
Mit diesem Befehl wird der Wert 170 im Speicherplatz 3 der Bank 2 geschrieben. Dieser kann dann mit der Angabe #3 im entsprechenden Feld des Treibers (in meinem Fall der Motorstrom) aufgerufen werden.
Es gibt auch noch andere Möglichkeiten daten dort abzulegen. Doch hierzu später mehr.

Ich selbst beitreibe meinen Fokusierer mit der dritten Möglichkeit.
Es ist ein nicht ganz kleines Skript hinterlegt, welches nach dem Anlagen der Betriebsspannung folgende Schritte durchführt:
Zuerst werden diverse Motorparameter definiert.
Danach werden die Parameter

  • Geschwindigkeit
  • Beschleunigung
  • Motorstrom im Betrieb
  • Motorstrom im Standby
  • Rampenmodus
  • Microstepping-Modus

in Bank 2 geschrieben und werden von dort durch den Treiber abgerufen.
Danach wird der Fokusierer etwas nach aussen gefahren um sicher zu stellen, dass er sich nicht an einem Mechanischen Anschlag befindet.
Dann fährt er so lange nach innen, bis er gegen einen Mechanische Anschlag stößt, welches durch die Stall-Guard-Funktoin erkannt wird.
Jetzt wird wieder wenige Schritte nach draussen gefahren und die Position auf '0' gesetzt.
Im Anschluss fährt der Motor so lange nach aussen, bis er gegen einen Mechanischen Anschlag stößt. Dort wird wieder ein paar Schritte nach innen gefahren und der Wert auf Platz 0 in Bank 2 als Maximalwert gespeichert, den ich dann im Treiber mit #0 Abrufen kann.
Dann fährt der Fokusierer auf den Wert '0' und ist einsatzbereit.
Details zu meinem Skript findet ihr hier.

Die Motorrelevanten Daten von der Treiberkarte abzurufen bietet den großen Vorteil dass man bei der Verwendung mehrerer Fokusierer nicht notwendig ist den Treiber anzupassen.

Vor einer Weile wurde die Version 1.1 fertig gestellt. Diese möchte ich euch hier zum Download zur Verfügung stellen.

Detailierte Informationen zu der Software erhaltet ihr unter diesem Link.

Die wesentlichen Änderungen zur Version 1.0 sehen wie folgt aus:

  • Anzeige der verfügbaren COM-Ports
  • ein zweiter Treiber kann installiert werden was es ermöglicht mit zwei Fokussieren (z.B. Leitrohr und Aufnahmeoptik) unabhänig zu arbeiten
  1. Download ASCOM-Treiber v1.1
  2. Download als ZIP-Archiv
  3. StepRocker-Board auf www.trinamic.com
  4. Trinamic Motion Controll Language

Alte Versionen:

Version 1.0