Disclaimer: !! Das Benutzen dieser Programme geschieht auf eigene Gefahr! !! Für eventuelle Schäden an Ihrer Hardware übernehme ich keine Haftung! Letze Änderung 23.11.2008 Gleich vorab: Für Kritik/Ideen/Verbesserungen bitte mail an: peter@peges.de Was geht, was nicht geht: Geht: - Positionierung aus KStars (Goto) - Nachführung im Nannosekundenbereich (Goto and Slew) - USB-Joystick zum korrigieren der Position - Positionsynchronisierung (Position mit der Hand in KStars einstellen, dann Sync) - Unidireketionale - Einfachsteuerung - Bidirektionale Steuerung mit 3D-Step Schrittmotorkarte von www.nc-step.de. Funktioniert auch mit allen parallelen Schrittmotorsteuerungen, die folgende PIN-Belegung am Parport haben: PIN 2 (D0) - Direction X PIN 3 (D1) - Clock X PIN 4 (D2) - Direction Y PIN 5 (D3) - Clock Y Was (noch) nicht geht/Todo: - Fokussierung - Parken des Teleskopes - Korrektur Schneckenfehler - 2-Star Alligment Was benötigt man? - alten Rechner mit 2 Parallelports (für bidirektionale Steuerung nur einen Parallelport) - Einen USB-Joystick (ich habe einen 3-Achsen, 3 Button Joystick) - eine Linuxdistri (mit Kernelsourcen) oder gleich die EMC-Live CD installieren. Ich habe das mit mit folgender Distri getestet: http://www.linuxcnc.org/iso/emc2.2.2-1-ubuntu6.06-desktop-i386.iso - Rtai eine gute Anleitung findet man hier: http://www.rtai.dk/cgi-bin/gratiswiki.pl - Indi-Sourcen http://indi.sourceforge.net - meine Sourcen (siehe weiter unten) - KStars (muss nicht auf Steuerungsrechner laufen) - elektronische Bauteile siehe im Ordner schemantic (15,- Euro bei www.reichelt.de ) - Netzteil - 2 unipolare Schrittmotoren an eqatorialer Monti Billige unipolare Schrittmotoren gibts öfter mal bei http://www.pollin.de Was ist neu : 23.11.2008 -- USB-Joystick-Support für Korrigieren/Steuern des Teleskops 07.03.2008 -- Änderungen an Bidirektionalen Treiber zum korrigieren während des Nachführens und Anpassung auf Rtai 3.6 07.07.2007 -- Bugfix in Berechnung des Julianischen Datums 12.11.2006 -- Korrektur in Funktion get_gmst (mytele.c -- Wert falsch abgetippt) 22.10.2006 -- Änderungen in bidifullstep.c zum Anfahren der Schrittmotoren mit Rampe. -- Änderungen in mytele.c zum korrigieren der RA nach langem Goto 25.09.2006 -- Änderungen in bidicontrol.c zur besseren Nachführung. Änderungen in mytele.c zum besseren Positionieren. 26.08.2006 -- Änderungen in bidicontrol.c um Nachführung zu verbessern rt_make_hard_real_time eingeführt. Dadurch hat der Task höchste Priorität. 25.08.2006 -- Nachdem ich den neuen Treiber in der Maillingliste indi-devel announciert hatte habe ich von Jasem Mutlaq ein paar Tips zum optimieren bekommen: Änderungen in mytele.c: INumberVectorProperty eqNum = { mydev, "EQUATORIAL_COORD", "Equatorial J2000",BASIC_GROUP, IP_RW, 0, IPS_IDLE, eq, NARRAY(eq),0,0}; nach INumberVectorProperty eqNum = { mydev, "EQUATORIAL_EOD_COORD", "Equatorial JNOW",BASIC_GROUP, IP_RW, 0, IPS_IDLE,eq, NARRAY(eq),0,0}; er machte mich auf die falsche (womöglich fatale) Übersetzung von Längengrad in LATITUDE aufmerksam. Nun heisst es korrekt LONGITUDE. 24.08.2006 -- Wegfall überflüssiger Einstellungsmöglichkeiten des Treibers in mytele.c -- Korrektur der Handpad-Steuerung in bidicontrol.c 06.08.2006 -- Änderungen mytele.ini Wegfall einiger nun Überflüssiger Variablen Überarbeitung Nachführungkontrolle für bidirektionale Karte 22.07.2006 -- Rtai-Treiber fuer bidirektionale Schrittmotor-Steuerkarte 3D-Step von www.nc-step.de 16.04.2006 -- Treiber unterstuetzt nun das INDI Library v0.4 01.10.2005 -- Treiber unterstuetzt nun das INDI Library v0.3 30.09.2005 -- Steuerung via Handpad in Halfstep-Modul integriert. Schaltplan folgt. 24.06.2005 -- Positionierung überarbeitet. 05.05.2005 -- Fullstep-Rtai-Modul überarbeitet. Bugfix bei Anzeige der Nachführung Bugfix bei Goto 25.04.2005 -- Das Modul Fullstep ist nun fuer RTAI verfuegbar mytele.c läuft nur noch mit den RTAI-Modulen 08.04.2005 -- Das Modul Halfstep ist nun auf fuer RTAI (www.rtai.org) verfuegbar (im Verzeichnis rtai) Durch das Echzeit-Linux rtai wird eine optimierte Nachfuehrung erreicht. getestet unter dem Kernel 2.6.10 (vanilla), rtai-3.2-test3 und dem Hal-Patch von fusion-0.7 (bekommt man beides bei www.rtai.org) 14.02.2005 -- Nachfuehrung geaendert. Halfstep wird nun vom Programm im Hintergrund gestartet. Keine unnötigen Client-Prozesse mehr 13.02.2005 -- Nachfuehrung geaendert. Es wird nun die neue halfstep.c aus dem Ordner kernel_2.6/nachfuehrung benoetigt. Der Halbschrittbetrieb und somit auch die Nachfuehrung wird nun durch killen des Pids beim Umschalten auf Tracking gestopt. Ansonsten laueft die Nachfuehrung nun stetig weiter und wird nicht andauernd neu gepollt. Vorteil: Gleichmaessiger Lauf der Nachfuehrung Die Geschindigkeit der Halbschritte wird ueber die Option POLLMOTOR_HALFSTEP:250000 in der mytele.ini gesteuert. Der Wert wird in Mikrosekunden angegeben. 05.02.2005 -- Fehler in Positionierung nach Neustart gefixt. erster erfolgreicher Test der Steuerung an meiner Astro-5. 24.01.2005 -- Steuerung überarbeitet. Ein paar Fehler gefixt. Konfiguriert wird nun über mytele.ini 11.09.2004 -- Steuerung überarbeitet. Sternzeitkorrektur eingefügt. Neuer Key LATITUDE eingührt (zum berechnen der Sternzeit) -- im Verzeichnis kernel_2.6 liegen nun die vorläufigen Schrittmotorsteuerungen für Kernel 2.6 13.08.2004 -- Steuerung überarbeitet. Bei der Umkehrung der Drehrichtung bei der Positionierung auf der RA und DEC wird nun eine Korrektur ausgeführt Kurzanleitung: Ich benutze im Augenblick KStars unter Fedora Core 5. Es werden ausser den Sourcen mytele.tgz auch die Programme halfstep und fullstep benötigt. fullstep und halfstep arbeiten mit unipolaren Schrittmotoren. Alldings muss der Indiserver als root laufen, da ich outb() und inb() benutze. Ich habe jeweils einen Motor an einem eigenem Parallel-Port installiert. Beide Motoren werden jeweils an einem Parallel-Port mit Anschluß D0-D3 verbunden (Pin 2-5 am Parallel-Port) Im Verzeichnis schemantic findet man eine einfache Steuerung von Enrico Gueli, die mit dem Programmen halfstep.c und fullstep.c funktionieren. Die Steuerung funktioniert sowohl mit der Steuerung von Enrico Gueli, als auch mit der Schrittmotorensteuerung die im Buch "Steuerungsaufgaben mit Linux lösen" (www.zickner.de), als auch mit einem einfachen ULN2003-chip. So wie es aussieht funktioniert die Steuerung auch mit dem Mel-Bartels-Controller. Die original Sourcen des Schrittmotor-Treibers habe ich bei "www.luberth.com" gefunden. Diese kann man auch im Verzeichnis original finden Wenn die Schrittmotor-Steuerkarte von www.NC-Step.de verwendet wird, benötigt man die Sourcen bidicontrol.c und bidifullstep.c Installieren: (als root) aktuelles indilib von http://indi.sourceforge.net holen und kompilieren indiserver nach /usr/local/bin/ kopieren (bei Fedora Core 2 indiserver nach /usr/bin kopieren) myindi.tgz von hier holen, auspacken und kompilieren Parameter in myindi.c einstellen (siehe unten) mytele nach /usr/local/bin/ kopieren mytele.ini auch nach /usr/local/bin/ kopieren (halfstep mit rtai, siehe Anleitung im rtai-Verzeichnis) Den indiserver als root aus dem Verzeichnis /usr/local/bin wie folgt starten: indiserver -v mytele Nun kann man KStars starten und über den Gerätemanager als Client mit localhost auf port 7624 connecten. Viele Optionen im Indi-Kontrollfeld sind zwar dargestellt, funktionieren aber noch nicht. Das einzige was funktioniert ist Positionieren und Nachführen. Das Programm speichert permanent Positionsdaten in /usr/tmp/mytele.pos und liest diese Koordinaten beim Neustart des Programms. Will man neu initialisieren, muss die Datei gelöscht werden. (Bugreports bitte an Peter@peges.de) clear skys Peter Konfigurierbare Parameter in mytele.ini: Die Datei mytele.ini sieht folgendermassen aus: _________________mytele.ini_____________________ invert_motor_RA:0 invert_motor_DEC:1 INITIAL_RA:06.00 INITIAL_DEC:90.00 POLLMS:1000 WORM_CORRECTION_LR_RA:0.0005 WORM_CORRECTION_LR_DEC:0.0005 WORM_RATIO_RA:1467033.914 WORM_RATIO_DEC:800000 FULLSTEP_RATIO_RA:400 FULLSTEP_RATIO_DEC:400 FULLSTEP_MAXSPEED_RA:800000 FULLSTEP_MINSPEED_RA:1000000 FULLSTEP_MAXSPEED_DEC:800000 FULLSTEP_MINSPEED_DEC:800000 LATITUDE:9.960555556 neustart:0 bidirectional:1 brake:10 ______________________________________________________________ Die Reihenfolgende der Parameter darf nicht veraendert werden. Drehrichtung der Motoren anpassen: invert_motor_RA:0 invert_motor_DEC:0 1 bedeutet Invertierung der Drehrichtung (wird an die Steuerung weitergegeben) Startposition der Montierung setzen: RA im Stundenwinkel, DEC in Grad INITIAL_RA:06.00 INITIAL_DEC:90.00 In welchem Intervall soll das Programm beim Nachführen pollen Ist für die Rückkopplung der Position vom Treiber zu KStars Muss normalerweise nicht geändert werden. POLLMS:1000 Korrektur nach Drechrichtungswechsel der Achsen in Grad (Dezimal): WORM_CORRECTION_LR_RA:0.05 WORM_CORRECTION_LR_DEC:0.05 Wieviel Schritte werden für eine komplette Umdrehung der Achse benötigt: WORM_RATIO_RA:1467033.914 WORM_RATIO_DEC:800000 Wieviel Schritte mach der Motor im Vollschritt ? FULLSTEP_RATIO_RA:400 FULLSTEP_RATIO_DEC:400 Geschwindikeit der Positionierung in Nannosekunden (Posionierung) FULLSTEP_MAXSPEED_RA:3500000 FULLSTEP_MINSPEED_RA:4000000 FULLSTEP_MAXSPEED_DEC:3500000 FULLSTEP_MINSPEED_DEC:4000000 Einstellung des Längengrades für Berechnung der Sternzeitkorrektur LONGITUDE:9.960555556 Soll nach Neustart die alten Positionen wieder eingelesen werden? 0=nein 1=J neustart:0 Wenn bidirektional auf 1, wird der Treiber der 3D-Step Karte benutzt. Wenn 0, dann der Unidirektionale Treiber bidirectional:1 Hiermit wird die Beschleunigung der Schrittmotoren beim Positionieren brake:10 Hiermit wird der Multiplikator für die Korrektur im Slew-Betrieb gesetzt Nachführgeschwindigkeit * X (hier 10) bidimultiplikator:10 _