Einfache GOTO-Steuerung - Motivation und Konzept

  • Ersteller des Themas Ersteller des Themas Aloys
  • Erstellungsdatum Erstellungsdatum
Status
Es sind keine weiteren Antworten möglich.

Aloys

Mitglied
Motivation
Letzten Winter hatte ich mir vorgenommen, mich ein wenig mit Schrittmotoren und deren Eigenschaften zu beschäftigen. Als praktische Anwendung wollte ich meine alte EQ5 Montierung mit einer einfachen GOTO-Steuerung versehen.

Hierzu ist anzumerken, dass ich die Montierung und einen passabel korrigierten 102/700 mm Refraktor seit vielen Jahren besitze, aber kaum genutzt habe. Das liegt zum einen daran, dass ein Blick durch einen 102mm Refraktor kein spektakuläres Bild bietet und zum anderen aber auch, dass die besten Bedingungen zum "spechteln" meist in der kalten Jahreszeit liegen und es mir dann einfach zu kalt war, die Nacht im Freien zu verbringen um mühsam die wenigen astronomischen Objekte zu suchen, die mit einem Teleskop dieser Größe sichtbar sind.

Mit Fertigstellung meiner GOTO-Steuerung hat sich der Spaß an der Astronomie ganz Wesentlich erhöht. In den letzten Monaten habe ich mehr Zeit damit verbracht und mehr astronomische Objekte live gesehen, als in den zwanzig Jahren davor. Das hat mich motiviert, das Projekt hier kurz vorzustellen.

Konzept des Projektes
Die EQ5 Montierung wird um zwei NEMA 17 Schrittmotoren ergänzt, die über eine einfache Handsteuerbox angesteuert werden. Die Handsteuerbox enthält im Wesentlichen die Treiber für die Schrittmotoren einen Controller mit lokalen Bedienelementen und mit einer USB Schnittstelle

Die lokale Bedienschnittstelle an der Handsteuerbox dient zum ein-und ausschalten der Nachführung sowie zum manuellen Verfahren der Motoren. Die GOTO Funktionalität wird ausschließlich über die USB Schnittstelle realisiert. Hierdurch wird es möglich, die Handsteuerbox sehr einfach zu halten, da sie sich weder um Echtzeit noch um Sternpositionen kümmern muss. Die Aufgabe der Handsteuerbox besteht im Wesentlichen darin, die Kommandos von den lokalen Bedienelemente und von der USB Schnittstelle entgegenzunehmen und in Stellbefehle an die Treiberbausteine der Schrittmotoren zu übersetzten. Allein die Nachführfunktion wird autark in der Handsteuerbox implementiert, indem diese den Schrittmotor für die Stundenachse in festen Intervallen mit einzelnen Mikroschrittbefehlen ansteuert. Die hierzu erforderliche Funktionalität kann in wenigen hundert Zeilen C-Code implementiert werden.

Die wesentlichen Befehle über die USB Schnittstelle sind neben Statusabfragen die erforderlichen Positionierbefehle für beide Achsen, um die gewünschte GOTO Funktionalität zu erreichen. Die USB Schnittstelle wird durch eine einfache PC Anwendung bedient, die auch eine Liste mit astronomischen Objekten und deren Positionen verwaltet und in Abhängigkeit vom Beobachtungsort und Uhrzeit die erforderlichen Positionierbefehle errechnet und an die Handsteuerbox ausgibt.
 
Wahl der Antriebe

Die EQ5 Montierung ist zwar kein Präzisionsinstrument, aber sie ist für den Einbau von Motorsteuerungen auf beiden Achsen "vorbereitet". So ist es relativ einfach, die Motoren zu befestigen und über kleine Zahnriemen (GT2 Zahnriemen) mit den Achsen des Schneckengetriebes zu verbinden. Grobe Messungen an der Montierung haben gezeigt, dass das Schneckengetriebe mit einen Drehmoment von ca. 10 Ncm in Bewegung gesetzt werden kann. Das ermöglicht die Verwendung von kleinen NEMA 17 Schrittmotoren mit einer Stromaufnahme vom ca. 400 mA. Diese Motoren sind kostengünstig und liefern ein Drehmoment von ca. 20-30 Ncm. Weiterhin ist es durch Wahl geeigneter Riemenscheiben auf den Schrittmotoren und auf den Schneckenwellen einfach möglich, den Riemenantrieb mit einer kleinen Untersetzung zu versehen, wodurch sich sowohl Drehmoment als auch Nachführgenauigkeit entsprechend erhöht.

Genauigkeit der Nachführung

Die Beobachtung am Teleskop soll zukünftig im Wesentlichen über eine Kamera erfolgen. Typische Astro-Kameras haben Pixelabstände von ca. 5 μm = 5 *10-6 m. Astronomische Objekte können von der Kamera nur dann aufgelöst werden, wenn sie mindestens zwei Pixelabstände von einander entfernt liegen. Damit ergibt sich die maximale Auflösung eines typischen Sensors zu 10-5 m. Der Zusammenhang zwischen der Größe d des virtuellen Bildes einer Optik mit der Brennweite fi und dem Einfallswinkel ζi des zugehörigen astronomischen Objektes ergibt sich zu

d = 2 * fi tang (0,5 *ζi )

Bei einer Brennweite fi = 0,7m entspricht somit die Sensorauflösung von 10-5 m einem auflösbaren Einfallswinkel von

ζi = 2* arctan( 10-5 m/(2*0,7)) = 2* 4,1 *10-4 = 3'' (Bogensekunden)

Sinnvollerweise sollte die Nachführung des Teleskops nicht schlechter sein als die Auflösung der Kamera.
Die EQ5 Montierung besitzt Zahnräder mit 144 Zähne. Schrittmotoren haben üblicherweise eine Schrittweite von 1,8°, so dass sich eine Umdrehung der Schnecke in 200 Schritte untergliedert. Damit ergibt sich für einen Schritt eine Winkeländerung des Teleskops von 360/(144*200) =0,0125° oder 45 Bogensekunden. Die damit erreichbare Nachführgenauigkeit ist offensichtlich unzureichend.

Moderne Treiberbausteine für Schrittmotoren unterstützen in der Regel auch eine Ansteuerung der Motoren in Mikroschritten wobei die meisten dieser Treiberbausteine in der Lage sind, einen Vollschritt in bis zu 16 Mikroschritte zu untergliedern. Für eine Mikroschritt erhält man dann eine Winkellauflösung von 45/16 = 2,8 Bogensekunden was in etwa der optischen Auflösung eines Sensors entspricht.

Das sollte grundsätzlich ausreichend sein insbesondere auch deshalb, weil es sich bei der EQ5 Montierung keinesfalls um ein Präzisionsinstrument handelt. Durch den Einbau der oben beschriebenen Untersetzung in den Riemenantrieb kann die Nachführgenauigkeit entsprechend erhöht werden.

 
Montage der Schrittmotoren

Wie ober erwähnt ist die EQ5 Montierung für die Motor-Nachrüstung vorbereitet. Zumindest gibt es an beiden Schneckenwellen einfache Möglichkeiten, einen NEMA 17 Schrittmotor zu befestigen und über eine Riemenscheibe mit der Schneckenwelle zu koppelt. Leider hat die Schneckenwelle eine Durchmessen von 6 mm was die Vielfalt der verfügbaren Riemenscheinen ein wenig einschränkt. Für beide Wellen habe ich mich auf den Schneckenwellen für eine Riemenscheibe mit 36 Zähnen und auf der Motorwelle für eine Scheibe mit 20 Zähnen bei einer Riemenlänge von 142 mm entschieden.
 

Anhänge

  • Schrittmotor.jpg
    Schrittmotor.jpg
    21,8 KB · Aufrufe: 787
Realisierung der Handsteuerbox

Hardware

Die Handsteuerbox wird mit zwei 72x58 mm großen doppelseitig bestückten Platinen realisiert, die über fünf Kontakte gekoppelt und in Sandwichbauweise miteinander verschraubt sind. Die Aufteilung der gesamten Funktionalität auf zwei Platinen hat sehr einfache Gründe. Bastelprojekte funktionieren selten auf Anhieb und je kleiner die Einheit ist, die im Falle eines Fehlers neu gefertigt werden muss, um so geringer ist der Aufwand. Aber es gibt auch technische Gründe. Durch den Aufbau mit zwei Platinen können die Treiberbausteine vom Controllerbaustein separiert werden. Die Treiberbausteine schaltet Ströme vom einigen hundert mA und das verursacht Störungen auf den Versorgungsleitungen die den empfindlichen Controller stören oder sogar zerstören können. Die Separation der Platinen vereinfacht die erforderliche Entkopplung ganz erheblich. Die Verwendung von doppelseitigen Platinen erleichtert zum einen die Entflechtung und vereinfacht die Kühlung der Treiberbausteine, da die Rückseite der Platine ans Kühlfläche mitgenutzt werden kann.

Die Controllerplatine enthält neben dem Controller mit zugehörigem Oszillator und 3,3 V Spannungsversorgung noch die lokalen Bedienelementen und die USB Schnittstelle. Die Treiberplatine enthält neben den beiden Treiberbausteinen noch die Referenzspannung für den I2C Bus sowie die Wannenstecker für den Anschluss der Schrittmotoren.

Als Controller kommt ein PIC32MX220F zur Anwendung, der über alle erforderlichen Leistungsmerkmale und Schnittstellen verfügt und mit dessen Funktionen und Entwicklungsumgebung ich aus anderen Projekten vertraut bin. Die lokale Schnittstelle umfasst fünf Schalter und zwei Leuchtdioden. Vier der Schalter dienen zum steuern der beiden Motoren in je zwei Richtungen und der fünfte Schalter dient zum ein- und ausschalten der Nachführung. Aus Gründen der Ergonomie sind die fünf Schalter als Mini-Joystick implementiert und zusammen mit den Leuchtdioden auf der Rückseite der Controllerplatine implementiert. Die Verwendung eines Joysticks in SMD Technik vereinfacht sowohl den Aufbau der Schaltung als auch die Verwendung der Handsteuerbox. Die gelbe Leuchtdiode signalisiert den Betriebszustand (Nachführung ein/aus über Blinkfrequenz) der Handsteuerbox während die rote Leuchtdioden Hardwarefehler signalisiert.

Die Versorgungsspannung von 12 Volt wird über SC2 eingespeist und über die X1 Schnittstelle an die Treiberplatine ausgekoppelt. Der Controller selbst benötigt lediglich 3.3 V , die von IC2 zur Verfügung gestellt werden. Weiterhin findet man in der Schaltung neben den lokalen Bedienelementen noch die USB Schnittstelle, den Oszillator und die Kontakte für die ISP-Programmierung. Die X3 Schnittstelle liegt parallel zu den lokalen Bedienelementen und ermöglicht den Anschluss externen Steuermittel (Joysticks , ST4 etc.).

Als Motortreiber kommt der AMIS-30624 Baustein zum Einsatz. Es handelt sich hierbei um einen sehr leistungsfähigen Schrittmotortreiber, der über eine IC2 Schnittstelle angesteuert wird, selbständig positionieren kann und dank der intrigierten H-Bridge Schrittmotoren mit bis zu 800 mA Stromaufnahme direkt ansteuern kann. Darüber hinaus ist er in weiten Bereichen parametrierbar und enthält umfangreiche Überwachungsfunktionen. Die Parametrierung erlaubt es unter anderem zwischen fünf unterschiedlichen Mikroschrittprogrammen zu wählen, den Arbeitsstrom und Haltestrom der Schrittmotoren separat vorzugeben sowie zwischen einer Vielzahl von Geschwindigkeitsprofilen zu wählen. Hierdurch wird nicht nur der Hardwareaufbau sehr einfach sondern auch der Aufbau der Firmware für den Controller gestaltet sich sehr einfach. Diese muss im Wesentlichen die Kommandos der USB Schnittstelle in Treiberkommandos der I2C Schnittstelle umsetzten. Die Überwachungsfunktionalität des AMIS-30624 umfasst die elektrische Verbindung zu den Motoren, die Höhe der Versorgungsspannung wie auch die Temperatur der Treiberbausteine selbst. Die von den Überwachungsfunktionen gefundenen Fehler sind als Statusparameter hinterlegt und können über die IC2 Schnittstelle abgerufen werden.

Neben den beiden Treiber ICs gibt es noch eine 5V Spannungsreferenz (IC2) für die I2C Schnittstelle und es ist ein EEPROM vorgesehen, der aber in der derzeitigen Ausbauvariante noch nicht verwendet wird und daher auch nicht bestückt werden muss. Die Schnittstelle X1 dient der Kopplung mit der Controllerplatine während die Schnittstellen X1 und X3 für den Anschluss der Schrittmotoren vorgesehen ist. Durch die Schnittstelle X4 wird der I2C Bus für spätere Erweiterungen nach außen geführt, so dass die Funktionalität der Handsteuerbox z.B. Um ein LCD Modul erweitert werden kann.

Firmware

Das Hauptprogramm der Firmware geht zunächst in eine Warteschleife ( Delay_us()), um nach Zuschaltung der Versorgungsspannung die Betriebsbereitschaft der I2C Geräte abzuwarten. Danach erfolgt die Initialisierung des USB-Stacks ( USBDeviceInit(), USBDeviceAttach()) und der anwendungsspezifischen Peripherie ( UserInit()).
Die eigentlichen Anwenderfunktionen sind in der System_Task() implementiert, die in einer Endlosschleife zyklisch aufgerufen werden. Neben der zyklisch aufgerufenen System_Task() gibt es noch drei nebenläufige Interrupt-Service Routinen, von welchen die Routine T2Interrupt() die Funktionalität der Firmware ganz wesentlich beeinflusst.
Die Routine T2Interrupt() stellt den zentralen Zeitgeber dar, welcher sowohl die Nachführung als auch alle übrigen Befehle zur Steuerung der Schrittmotoren koordiniert. Mit jedem T2 Interrupt wird ein Flag gesetzt (GC.clock_puls), welches in der Routine System_Task() ausgewertet wird und dazu führt, dass anstehende Positionieranforderungen an die Schrittmotoren in konkrete Befehle an die Motortreiber umgesetzt werden. Im Falle einer Anforderung zur Nachführung kann das ein einzelner Mikroschritt sein, im Falle eines nicht abgeschlossenen GoTo Befehls können das auch viele hundert Mikroschritte sein. Weiterhin werden in der Routine T2Interrupt() lokale Befehle zur Motorsteuerung (Befehle vom Joystick der Handsteuerung) ausgewertet und in entsprechende Flags umgewandelt, die dann ebenfalls in der Routine System_Task() ausgewertet werden.
Das Intervall des T2 Interrupts wird durch die Forderung nach einer möglichst hohen Nachführgenauigkeit bei gegebener Untersetzung der Schrittmotoren bestimmt. Die Ermittlung des T2 Interrupt Intervalls erfolgt über die Berechnung, in welchen periodischen Abständen ein Mikroschritt ausgeführt werden muss, um einen siderischen Tag nachzuführen. Dazu sind folgende "Getriebedaten" von Relevanz
Anzahl der Zähne des Schneckengetriebes bei der EQ5: 144
Untersetzung Schrittmotor aus Schneckenwelle: 36/20
Anzahl Schritte pro Umdrehung Schrittmotor: 200
Anzahl Mikroschritte je Vollschritt: 16

Daraus folgt, dass eine volle Umdrehung der Montierung 144*200*16*36/20 = 829440 Mikroschritte erfordert. Eine volle Umdrehung entspricht einem Tag oder 24*60*60=86400 Sekunden. Damit müssen für die Nachführung die Mikroschritt im zeitlichen Abstand 86400/829440 = 104,16 ms getätigt werden. Beachtet man, dass der siderische Tag um den Faktor 1,0027379 kürzer ist als der bürgerliche Tag, dann ergibt sich das Intervall zu 104,45ms.

Die beiden anderen Interrupt-Service Routinen haben eher untergeordnete Bedeutung. Die Routine T1Interrupt() hat ausschließlich die Aufgabe, die rote Leuchtdiode zurückzusetzen. Insbesondere werden die Aufrufe über die I2C Schnittstelle auf korrekte Ausführung überwacht. Ein Fehler wird über die rote Leuchtdiode signalisiert. Mit der Signalisierung wird gleichzeitig der Timer1 gestartet und wenn dieser das entsprechende Interrupt auslöst, wird die Leuchtdiode wieder gelöscht. Dadurch kann zwischen temporären Fehlern und permanenten Fehlern unterschieden werden. Die dritte Interrupt-Service Routine wird über den lokalen Taster zum Ein- und Ausschalten der Nachführung ausgelöst und setzt das entsprechende Flag in der Software.
Wie oben schon angedeutet, ist die Anwendungsfunktionalität im Wesentlichen in der Routine System_Task() implementiert. Mit jeden Aufruf wird als erstes die Routine APP_DeviceCustomHIDTasks() aufgerufen, welche Anforderungen von der USB Schnittstelle behandelt. Danach wird geprüft, ob ein Takt des zentralen T2 Taktgebers (GC.clock_puls) ansteht und wenn ja, werden anstehende Positionieranforderungen an die Schrittmotoren ausgeführt. Bei den Positionierungsanforderungen ist zu differenzieren zwischen lokalen Anforderungen (Joystick der Handsteuerbox), Anforderungen von der USB Schnittstelle und Anforderungen in Folge der eingeschalteten Nachführung. Höchste Priorität haben lokale Anforderungen, welche anstehende Befehle von der USB Schnittstelle außer Kraft setzen. Danach kommen die Befehle von der USB Schnittstelle und mit letzter Priorität kommen Anforderungen aus der Nachführung. D.h. Nachführbefehle werden nur dann ausgeführt, wenn keine sonstigen Positionieranforderungen anstehen.
Lokale Befehle zur Motorsteuerung sind grundsätzlich sogenannte MOVE Befehle. Die entsprechenden Fahrbefehle an die Schrittmotoren stehen so lange an, so lange der Befehl gegeben wird. Grundsätzlich können über MOVE Befehle kleiner Positionskorrekturen durchgeführt werden aber es können auch vollständige Neuausrichtungen des Teleskops erfolgen. Daher ist der MOVE Befehl in der Firmware progressiv implementiert, d.h. die Wirksamkeit des Befehls steigt je länger der Befehl ansteht. Ein neuer Befehl führt zunächst zu sehr keinen Korrekturen (1 Mikroschritt je Takt), danach wird in eine kontinuierliche Bewegung mit minimaler Fahrgeschwindigkeit gewechselt und wenn der Befehl noch länger ansteht wird auf maximale Fahrgeschwindigkeit beschleunigt und diese Geschwindigkeit wird beibehalten bis der Befehl zurückgenommen wird. Die progressive Ansteuerung gilt auch für MOVE Befehle, die über die USB Schnittstelle veranlasst werden. Damit ist es grundsätzlich auch möglich eine Autoguider an die lokale Bedienschnittstelle anzuschließen, um die Nachführung zu korrigieren.
Zu bemerken ist weiterhin, dass sich die Positioniermöglichkeit der Motortreiber auf Positionen beschränkt, die mit 16 Bit Mikroschrittadressen adressierbar sind. Da dies für die genaue Positionierung nicht ausreichend ist, verwendet die Firmware 32 Bit Mikroschrittadresse und gliedert diese in eine globale 32 Bit Komponente und eine lokale 16 Bit Komponente auf, wobei die lokale16 Bit Komponente der Adresse im Motortreiber entspricht. Die tatsächliche Adresse ergibt sich aus der Summe der globalen und der lokalen Komponente. Weiterhin ist zu bemerken, dass es sich bei den in der Firmware verwalteten Positionen immer um Mikroschrittpositionen handelt, die sich auf einen "Referenzpunkt" beziehen, der mit dem USB Befehl "COMMAND_CALIBRATE" als Nullpunk definiert wird. Die dazu gehörigen absoluten Positionen sind nur der PC Applikation bekannt. Positionieranforderungen der PC Applikation über die USB Schnittstelle werden grundsätzlich in Bogensekunden übergeben und in der Firmware in Mikroschritte umgerechnet. Zur Umrechnung dienen die Getriebeparameter RA_GF und DEC_GF, welche beschreiben, wievielMikroschritte für eine Bewegung vom einer Bogensekunde erforderlich sind.
Die übrigen Funktionen der Firmware dienen im Wesentlichen dem Zweck, die Bedienkommandos an die I2C Schnittstelle sowie an die Treiberbausteine derart zu kapseln, so dass sie einfach handhabbar sind oder sie sind Teil des von Microchip beigestellten USB Stacks.
 

Anhänge

  • Schaltplan_con.jpg
    Schaltplan_con.jpg
    91 KB · Aufrufe: 728
  • Schalptlan_driver.jpg
    Schalptlan_driver.jpg
    88,3 KB · Aufrufe: 638
  • Controller2M.jpg
    Controller2M.jpg
    95,6 KB · Aufrufe: 705
Schnittstelle zur PC Applikation

Als Schnittstelle zur PC Applikation sind derzeit zehn unterschiedliche Funktionen implementiert, die es ermöglichen alle erforderlichen Bewegungen des Montierung zu steuern.
Diese sind
1. Statusabfrage der Schrittmotortreiber COMMAND_GET_MOTOR_STATUS
2. Nachführung Ein-/Ausschalten COMMAND_TOGGLE_AUTOGUIDE
3. Absolute Position anfahren COMMAND_SET_ABSOLUTE_POSITION
4. Relative Position anfahren COMMAND_SET_RELATIVE_POSITION
5. Starte MOVE COMMAND_START_MOVE
6. Stoppe MOVE COMMAND_STOP_MOVE
7. Stoppe alle Motoren COMMAND_HARD_STOP
8. Teleskopposition überwachen COMMAND_TRACK_MOTION
9. Kompaktstatus der Steuerung COMMANT_GET_COMPACT_STATUS
10. Kalibrierung der Steuerung COMMAND_CALIBRATE

Die Funktion "COMMAND_GET_MOTOR_STATUS" kapselt die IC2 Funktion "GetFullStatus1" des AMIS-30624 Treibers und erlaubt damit Zugriff auf den kompletten Status eines Treiberbausteins. Die Adresse de gewünschten Treiberbausteins muss dabei als Parameter mit übergeben werden. Diese Funktion dient allerdings im Wesentlichen der Fehlerlokalisierung und wird in der aktuellen PC-Applikation nicht verwendet. Die PC Applikation verwendet statt dessen die Funktion "COMMANT_GET_COMPACT_STATUS ", welche einen kompakten Status für beide Treiberbausteine zur Verfügung stellt.

Die Funktion "COMMAND_TOGGLE_AUTOGUIDE" schaltet den Nachführmodus der Handsteuerbox wechselweise ein und aus. Alternativ kann die Nachführung auch über den Joystick der Handsteuerbox ein und ausgeschaltet werden.

Die Funktion "COMMAND_SET_ABSOLUTE_POSITION" implementiert die GotoFunktion, indem Sie die Steuerung veranlasst eine absolute Position anzufahren. Die Position wird dabei relativ zu einer Referenzposition als Parameter übergeben. Voraussetzung ist allerdings, dass die Montierung recht genau eingenordet ist.

Der Befehl "COMMAND_SET_ABSOLUTE_POSITION" ist nur möglich, wenn die Steuerung zuvor kalibriert wurde.

Die Funktion "COMMAND_SET_RELATIVE_POSITION" verursacht ein verfahren der Motoren um eine feste Schrittweite bezogen auf die letzte Position. Die Schrittweite kann dabei als Parameter übergeben werden.

Die Befehle "COMMAND_START_MOVE" und "COMMAND_STOP_MOVE" starten und stoppen die Motoren. Solange der Start-Befehl ansteht, bleibt der Fahrbefehl gültig wobei die Bewegungsgeschwindigkeit mit der Dauer des Befehls bis zu einem Maximalwert zunimmt. Die Wirkung entspricht dem MOVE-Befehlemit dem Joystick der Handsteuerbox.

Der Befehl "COMMAND_STOP_MOVE" führt unmittelbar zum Stopp des Motors.

Der Befehl "COMMAND_HARD_STOP" führt unverzüglich zum Stopp beider Motoren.

Der Befehl "COMMAND_TRACK_MOTION" setzt ein Flag in der Firmware der Handsteuerbox, welches dazu führt, dass die aktuelle Position beider Achsen zyklisch an die PC Applikation übertragen werden. Die PC Applikation muss dabei sicherstellen, dass diese Daten auch zyklisch abgerufen und angezeigt werden.

Die Funktion "COMMAND_CALIBRATE" definiert den Referenzpunkt für nachfolgende GOTO Befehle. Für die Firmware bedeutet das einfache, dass die aktuellen Positionsdaten auf Null gesetzt werden. Die PC Applikation hat hingegen sicherzustellen, dass der Referenzpunkt (geometrisch und zeitlich) gespeichert wird, so dass die relativen Koordinaten für nachfolgende GOTO Befehle korrekt ermittelt werden können. Typischerweise erfolgt die Kalibrierung derart, dass man in der PC Anwendung ein bekanntes Objekt aus der Liste der eingetragenen Objekte auswählt, das Teleskop darauf ausrichtet und dann den Befehl "COMMAND_CALIBRATE" ausführt.

Die PC Applikation

Die PC-Applikation ist eine mit dem "Qt-Framwork" realisierte Windows 10 Anwenderschnittstelle, die es erlaubt, die USB Funktionen der Handsteuerbox ergonomisch zu nutzen. Die Verbindung mit der Handsteuerbox wird über den Bedienknopf "connect" hergestellt. Wenn die Handsteuerbox über ein USB Kabel mit dem Rechner verbunden ist auf welchem die PC-Applikation läuft, dann sollte die Handsteuerbox von der Anwendung gefunden werden und der "connect" Befehl sollte mit der Meldung "connected" quittiert werden.

Der Bedienknopf GetShortStatus implementiert den USB Befehl "COMMANT_GET_COMPACT_STATUS" und zeigt die Ergebnisse im Fenster an. Er kann jederzeit ausgeführt werden, sofern die Applikation mit der Handsteuerbox verbunden ist.

Der Bedienknopf "Autoguide" schaltet wechselweise die Nachführung der Handsteuerbox ein und aus. Auch dieser Befehl kann jederzeit ausgeführt werden, sofern die Applikation mit der Handsteuerbox verbunden ist.

Die vier Bedienfelder "move" implementieren die USB-Funktionen "COMMAND_START_MOVE" und "COMMAND_STOP_MOVE" für beide Motoren in beide Richtungen. Sobald einer der Bedienknöpfe betätigt wurde, änder sich sein Text von "move" nach "stop" und die zweite Betätigung löst dann den Befehl "COMMAND_STOP_MOVE" aus während der Text auf "move" wechselt usw.

Die vier Bedienfelder "step" implementieren den USB Befehl "COMMAND_SET_RELATIVE_POSITION" für beide Motoren in beide Richtungen. Die gewünschte Schrittweite kann zuvor über die Eingabe "Step Size" gewählt werden wobei es sich bei den Zahlenangaben um Bogenminuten handelt.

Das zentrale Bedienfeld "STOP" implementiert den USB Befehl "COMMAND_HARD_STOP" welcher unverzüglich zum Stopp beider Motoren führt.

Das Listenfeld Objekt enthält eine Reihe bekannter Objekte, deren geometrische Daten im Programm hinterlegt sind. Diese Liste kann natürlich beliebig erweitert und auch in eine externe Datei ausgelagert werden. Wenn über die PC Applikation GOTO Befehle ausgeführt werden sollen, dann ist es zunächst erforderlich, dass das Teleskop auf eines der Objekte in der Liste kalibriert wurde, damit die Referenzposition bekannt ist. Das erfordert zum einen, dass der Beobachtungsort und die Zeitzone korrekt eingestellt sind und natürlich auch, dass das Teleskop eingenordet ist.
Dann kann ein Referenzobjekt aus der Objektliste ausgewählt und das Teleskop aus dieses Referenzobjekt ausgerichtet werden. Dann muss nur noch das Bedienfeld "Calibrate" betätigt werden und die Kalibrierung ist abgeschlossen.

Danach sind GOTO Befehle grundsätzlich möglich. Zum Ausführen eines GOTO Befehls kann entweder das gewünschte Objekt in der List ausgewählt werden oder es können die geometrischen Daten in die Koordinatenfelder "Right Ascension" und "Declination" eingegeben werden. Die nachfolgende Betätigung des zugehörigen "GOTO" Bedienfeld veranlasst die Steuerung diese Position anzufahren.

Das Bedienfeld "Track Motion" implementiert die USB Funktion "COMMAND_TRACK_MOTION" und zeigt die von der Handsteuerbox empfangenen Positionsangaben zyklisch in den darunter gelisteten Felder an.
 

Anhänge

  • Interface.JPG
    Interface.JPG
    67,7 KB · Aufrufe: 656
Einnordung der Montierung und Betriebserfahrung

Da die Kalibrierung der GOTO-Steuerung über eine einzige Referenzposition erfolgt und da auch die Nachführung nur über eine Achse erfolgt, ist eine recht genaue Einnordung der Montierung unverzichtbar. Am einfachsten geschieht dies mit einer Kamera und Softwareunterstützung (e.g. "Polar Align" von "SharpCap"). Bei guter Sicht auf den Nordpol und Dunkelheit ist es auf diese Weise möglich, die Montierung in wenigen Minuten exakt einzunorden.

Um mir auch diesen Aufwand bei jeder neuen Beobachtung zu sparen, habe ich im Garten drei Pflastersteine auf frostsichere Punktfundamente gesetzt und mit ca. 1 cm tiefen Bohrungen als Positionsmarkierungen versehen. Damit erreicht man eine Reproduzierbarkeit der Aufstellung von weniger als 5' was sowohl für die GOTO Funktionalität als auch für die Nachführung hinreichend sein sollte. Mit dieser Konfiguration habe ich meine ersten Erfahrungen mit der Selbsbau-GOTO-Steuerung gesammelt und die ersten Fotos gemacht. Als Kamera diente die ASI 178.

Das Auffinden von Objekten wird durch die GOTO Steuerung äußerst einfach und gelingt eigentlich spontan, sofern die Steuerung zuvor richtig kalibriert wurde. Dabei ist es natürlich hilfreich, wenn der für die Kalibrierung verwendete Referenzstern nicht zu weit von dem gesuchten Objekt entfernt ist, da sich dann Fehler in der Einnordung auch entsprechend geringer auswirken. Sofern die Montierung auf ca. 5 Bogenminuten genau eingenordet ist, sollte auf alle gesuchte Objekte hinreichend genau positioniert werden.

Bei fotografischen Aufnahmen ist es sehr einfach, den Nachführfehler der Steuerung zu ermittelt, indem man auswertet, wie sich die Pixelposition eines beliebigen Objektes über die Zeit in den Aufnahmen verändert. Dabei ist es vorteilhaft, wenn man die Kamera derart ausrichtet, dass die Koordinatenachsen des Bildes mit den Achsen der Steuerung zusammenfallen. In diesem Fall lässt sich der Nachführfehler nach RA-Achse und DEC- Achse einfach separieren. Bild 7 zeigt den Nachführfehler der RA-Achse für eine der Aufnahmesequenz von knapp 50 Minuten. Der Nachführfehler der DEC-Achse war gegenüber der RA-Achse vernachlässigbar.

Der Nachführfehler der RA-Achse setzt sich zusammen aus einen periodischen Anteil mit einer Periode von 10 Minuten (Schneckenfehler) und einen überlagerten linearen Fehler von ca. 1,5 '' je Minute, der wahrscheinlich auf eine ungenaue Einnordung zurückzuführen ist.

Der periodische Anteil besitzt eine Amplitude von ca. 15'' was bei einer Periode von 10 Minuten zu einen maximalen Fehler von ca. 6'' je Minute führt. Damit ist der periodische Schneckenfehler um den Faktor 4 größer wie der durch die unzulängliche Einnordung verursachte Nachführfehler und ist bestimmend für die sinnvolle Belichtungszeit. Es ist offensichtlich, dass die Unschärfe in den obigen Fotos zum Teil durch den Schneckenfehler verursacht wurden.

Der erste Eindruck nach dieser Auswertung war, dass der Schneckenfehler die bescheidene Qualität der EQ5 Montierung unterstreicht, was aber wohl nicht ganz stimmt. Für eine Montierung mit 144 Zähnen scheint ein Schneckenfehler von 15'' durchaus normal. Nach Recherchen im Internet wird für die Losmandy GM8 ein maximaler Schneckenfehler von 14'' spezifiziert, wobei die Losmandy als Präzisionsmontierung gehandelt wird und mit 180 Zähne für Schneckenfehler merklich weniger empfindlich sein sollte als die EQ5.
Dennoch beschränkt ein Nachführfehler von 6'' je Minute die sinnvolle Belichtungsdauer für mein Teleskop auf 10-15 sec was auch Kameras mit geringem Ausleserauschen an ihre Grenzen bringt. Daher erscheint es mir sinnvoll einen Versuch zu unternehmen, den Schneckenfehler in der Handsteuerbox zu kompensieren. Da der Schneckenfehler streng periodisch und mit annähernd gleicher Amplitude verläuft sollte eine Reduktion um den Faktor 3-4 durchaus möglich sein. Das ist aber eine Aufgabe für die nächste Version der Steuerung.



 

Anhänge

  • Diagramm.JPG
    Diagramm.JPG
    33,1 KB · Aufrufe: 648
Hallo Aloys,

ein sehr beeindruckendes Projekt, das Du vollbracht hast und sehr schön und ausführlich beschrieben hast Du es auch.

Du hast einen PIC32 verwendet, bisher habe ich mich nur mit den kleineren, etwas betagteren Brüdern beschäftigt. Wie bist Du auf diesen Typ gekommen, im Hobbybereich ist er doch eher unüblich?

Gruß

Martin
 
Hallo Martin,

im letzten Winter hatte ich mich mit Radar-Sensoren beschäftigt. Für das Projekt musste eine FFT auf mindestens 512 Werten in <100ms berechnet werden und da war dann Schluss mit PIC16 und PIC18. Dabei hab ich mich in Schritten bis zum PIC32 hochgearbeitet und dabei auch die Vorteile moderner Ccntroller kennengelernt. Ein PIC32 kostet auch nur 4€ und man muss sich mit keinen Einschränkungen mehr herumschlagen.

Gruß
Aloys
 
Hallo Aloys,

interessant. Hast Du dafür eine spezielle Entwicklungsumgebung oder arbeitest Du da auch mit dem PicKit3?

Hast Du vor die SW auch frei zugeben? Die würde ich mir mal gerne anschauen. Ich habe noch eine TAL Monti, deren zweite Achse ich motorisieren will und da schwebt mir auch ein einfaches Goto vor. Zunächst wollte ich da aber erstmal mit einem einfachen PIC die Nachführung realisieren.

Gruß

Martin
 
Hallo Martin,

ich arbeite auch mit PicKit3.
Sie Sofware und die Entwicklungsunterlagen sind kein Gemeimnis. Ich wollte eigentlich die ganzen Unterlagen als zip mit hochladen, aber das lassen die Regeln des Forums wohl nicht zu.

Wenn Du ein ähnliches Projekt planst, kann ich Dir eine frühere Version der Handsteuerbox überlassen.
Die hat noch 5 SMD-Taster statt Joystick zur lokalen Steuerung, aber sonst sollte alles funktionieren.

Gruß
Aloys


 
Hallo Aloys,

da habe ich auf alle Fälle Interesse, dann muss ich das Rad nicht neu erfinden :-), danke. Schreibe mir bitte was Du dafür willst. Da Dein Mail-Account erst ab 30 Mails hier geht, gebe ich Dir mal meine Mail. Martin.Duerrschnabel@gmx.de

Gruß

Martin
 
Mittlerweile habe ich meine Selbstbau-GOTO-Steuerung ein halbes Jahr im Einsatz und in dieser Zeit umfangreiche Erfahrungen gesammelt, die ich nachfolgend kurz zusammenfassen möchte.

Nach einigen kleineren Optimierungen der Firmware läuft die Steuerung in Bezug auf Nachführung und GOTO-Funktion seit Monaten absolut zuverlässig. Der Versuch, den Schneckenfehler durch einen PEC-Algorithmus zu reduzieren, war nicht wirklich erfolgreich. Zum einen ist die Periodizität des RA-Fehlers unzulänglich und zum anderen wird er von DEC Fehlern überlagert, die nicht in der Einnordung begründet liegen.

Daher hatte ich mich entschlossen, die Qualität der Nachführung mit einer Guidingkamera am Leitfernrohr zu verbessern. Hierzu wurde eine ASI 120 MM an den 240 mm Sucher angeschlossen und mit der PHD2 Software auf dem PC verbunden. Der ST4 Ausgang der Kamera wurde mit der X3 Schnittstelle der Controllerplatine der Handsteuerbox verbunden, welche parallel zum Joystick für die manuellen Steuerung der Motoren liegt. Über diese X3 Schnittstelle wirken die Korrekturbefehle der PHD2 Software wie Handbefehle auf die Steuerung. In dieser Konfiguration war es relativ problemlos möglich, PHD2 zu kalibrieren und dann auch das Guiding durchzuführen. Bild 1 zeigt dazu ein typisches Protokoll von PHD2. Der verbleibende Nachführfehler liegt im Bereich von kleiner 2 arcsec und wird vom DEC Fehler dominiert. Dieser relativ geringe Nachführfehler spricht für die Qualität von PHD2, denn die Anzahl der PHD2 Korrekturen ist erheblich und unterstreicht die Schwächen der Montierung.

Um die Wirksamkeit der Nachführung am finalen Foto zu überprüfen, wurde die ASI 178 an den Refraktor angeschlossen und mit der Software SharpCap wurde der verbleibende Drift im Fotos gemessen. Im Unterschied zum PHD2 Protokoll, welches eine recht ordentliche Nachführung bestätigte, zeigte die Driftmessung von SharCap einen zwar geringen aber dennoch erkennbaren Drift im finalen Foto. Nach einigen Versuchen konnte als Ursache des verbleibenden Drifts die mangelhaften Stabilität des Crayford-Auszuges verantwortlich gemacht werden, der im Laufe der Nachführung ein wenig verkippt.

Um auch diese Fehlerquelle auszuschließen, wurden in einer letzten Versuchsreihe eine DSLR Kamera mit Teleobjektiv mit dem Leitfernrohr über eine massiven Montageplatte verbunden, so dass Leitfernrohr und Fotoeinrichtung recht starr gekoppelt waren. Und siehe da, es wird wesentlich besser.

In diese Konfiguration werden Sterne auch bei 10 Minuten Belichtungszeit als Punkte abgebildet und die Qualität der Abbildung wird im Wesentlichen durch das Objektiv und nicht durch die Nachführung gestimmt. Bild 2 zeigt eine bei diesem Versuch entstandene Aufnahme des Nordamerika-Nebels aufgenommen mit 150mm/F2.8 Brennweite und 20 x 10 Minuten Belichtungszeit bei minimaler Nachbearbeitung.
 

Anhänge

  • PHD_Log.PNG
    PHD_Log.PNG
    101,9 KB · Aufrufe: 258
  • NA2_mini.jpg
    NA2_mini.jpg
    77 KB · Aufrufe: 275
Status
Es sind keine weiteren Antworten möglich.
Zurück
Oben