www.wernerhirsch.de Elektronikprojekte Home Elektronikprojekte Sonstiges Kontakt/Copyright/Haftung

Goto Teleskopsteuerung

Was bietet die Steuerung:

- Ansteuerung von bipolaren Schrittmotoren an Stunden- und Deklinationsachse. - Über Parameter Anpassung an eine Vielzahl von Motor-, Getriebe-, Schneckenrad   Kombinationen möglich. - Nachführung im 16-fach Mikroschrittbetrieb, 3 Geschwindigkeiten: siderisch, solar, lunar - Goto Funktion und Schwenks im Vollschrittbetrieb mit bis zu 1.000 facher Geschwindigkeit. - Position von ca. 16.000 Objekten abrufbar (Messier, NGC, BSC sowie 100 Eigene). - Aufbau auf Streifenraster mit PIC16F876A Mikrocontrollern. - Materialkosten ca. 100EUR (ohne Motoren / Getriebe)

Voraussetzungen

Bevor mit dem Nachbau begonnen wird sollten folgende Dinge geprüft werden: 1. Für die Steuerung werden Mikrocontroller PIC16F876A und  EEPROMs 24C512 verwendet, die mit den weiter unten aufgeführten HEX-Dateien programmiert werden müssen. Ist kein geeignetes Programmiergerät vorhanden, kann ein einfaches Gerät (JDM-Programmer) selbst gebaut werden. Voraussetzung hierfür ist ein PC mit "echter" 9-poliger RS232 Schnittstelle (USB auf RS232 Adapter funktionieren in der Regel nicht). Stromlaufplan, Platinenlayout und Installationsanleitung für eine geeignete Software finden sich hier:    JDM-Programmer 2. Aufgrund der Betriebsweise ( Mikroschritt und Vollschritt ) sollten Motoren vorhanden sein, die für Mikroschritt optimiert sind. Diese haben ein geringes Rastmoment, d.h. sie lassen sich im nicht angeschlossenen Zustand relativ leicht drehen. Im Prinzip kann jeder Schrittmotor im Mikroschritt betrieben werden, jedoch wird die Linearität der Bewegung im Mikroschrittbetrieb ungleichmäßiger, je schlechter der Motor für Mikroschritt geeignet ist. Im Extremfall läuft der Motor lediglich mit "weichen" Vollschritten. 3. Die Steuerung ist in der Lage eine Vielzahl von Frequenzen zu erzeugen, jedoch sollte geprüft werden ob die benötigten Frequenzen, die sich aus den verwendeten Schneckenrädern, Getrieben und Schrittmotoren ergeben, mit der nötigen Genauigkeit erzeugt werden können. => Siehe "Erzeugung der Takte".

Beschreibung der Teleskopsteuerung

Die Teleskopsteuerung besteht im Wesentlichen aus 2 Hauptkomponenten: - Die Steuerung mit Handbox, Display und Datenspeicher - Die Schrittmotorsteuerung

Steuerung mit Handbox, Display und Datenspeicher

Die Hauptarbeit innerhalb der Schaltung übernimmt der PIC16F876A (IC5). Über die 5-polige Stiftleiste SV2 kann der PIC im eingebauten Zustand in der Schaltung programmiert werden (ICSP = In Circuit Serial Programming), ich empfehle jedoch die Programmierung im Programmiergerät. Wenn auf die ICSP Option verzichtet wird, können SV2 und der Jumper JP1 entfallen. Das Programm wird mittels der HEX-Datei in den Mikrocontroller geladen. Wer noch Änderungen am Programm vornehmen möchte, findet hier auch die Assembler-Datei:    Teleskop_P16F876A_HEX_ASM.zip Nach der Programmierung läuft innerhalb des Chips einerseits die Hauptprogrammschleife für alle nicht zeitkritischen Abläufe wie z.B. die Aktualisierung des Display, Abfrage der Handboxsteuerbefehle oder Menüsteuerung und andererseits eine sogenannte Interupt Routine für alle zeitkritischen Abläufe, im wesentlichen die Erzeugung der Takte für die Schrittmotoren und die Takte der internen Uhren für Uhrzeit/Sternzeit.

Erzeugung der Takte

Die Interupt Routine wird mit einer festen Frequenz von 7.812,5 Hz ausgeführt:    fi = Quarzfrequenz/4 /512 = 16.000.000 Hz/4 /512 = 7.812,5 Hz Von dieser Frequenz leiten sich alle anderen Frequenzen ab, z.B. für den Sekundentakt der internen Normalzeit Uhr wird die Frequenz abwechselnd durch 7812 und 7813 geteilt:    fuz = 7.812,5Hz x 2 / (1 x 7812 + 1 x 7813) = 1.000000Hz Für den Sekundentakt der internen Sternzeituhr wird die Frequenz 5x durch 7791 und 1x durch 7792 geteilt, sodaß eine mittlere Frequenz von 1.002738144Hz entsteht, was theoretisch einem Fehler von +0,02 sek/tag entspricht:    fsz = 7.812,5Hz x 6 / (5 x 7791 + 1 x 7792) = 1.002738144Hz Auf ähnliche Weise werden die Frequenzen für die Nachführgeschwindigkeiten der Schrittmotoren erzeugt. Um die Steuerung an unterschiedlichen Montierungen in Bezug auf Schneckenradzähnezahl, Getriebeübersetzung und Schrittwinkel der Motoren einsetzen zu können, müssen die entsprechenden Parameter berechnet und in die Steuerung eingegeben werden. Diese werden dann in dem internen EEPROM des Mikrocontrollers abgespeichert. Die folgende Excel Tabelle und/oder PDF Datei dienen der Berechnung der Parameter:     Teleskop_Parameter.xls          Teleskop_Parameter.pdf Die Genauigkeit der Frequenzen hängt auch von der Genauigkeit des Quarzoszillators, gebildet aus Q1, C6 und C7, ab. Ein Feinabgleich ist mittels C6 möglich. Hierfür kann die interne Normalzeituhr mit einer anderen genauen Uhr (z.B. über 24 h mit der 20:00 Tagesschau Uhr) verglichen werden und durch Veränderung des Kondensators C6 angepasst werden. Die Frequenz für den Schrittmotor der Stundenachse wird an Pin 2 des PIC (IC5) ausgegeben, die Frequenz für den Motor der Deklinationsachse an Pin 11. Für den Mikroschritt Betrieb gehen die Pins 5 und 13 auf  High Level, bei Vollschritt Betrieb auf Low Level. Die Drehrichtung wird über die Pins 4 und 12 ausgegeben: ein High Level entspricht einer Rechtsdrehung des Motors, ein Low Level einer Linksdrehung. Mit dem Schalter S1 können die Motoren abgeschaltet werden. Dieses geschieht wenn S1 geschlossen, d.h. auf Masse gelegt wird. In diesem Fall werden auch die Frequenzen für die Motoren abgeschaltet.

Handbox

Die Taster T1-T7 werden periodisch vom PIC16F876A (IC5) abgefragt. Mit einem negativen Impuls auf der Load Leitung werden die Zustände der Taster T1-T7 parallel in das Schieberegister 74HC165 (IC7) geladen und über die Clock und Daten Leitung seriell an den PIC übergeben. Als Verbindung zwischen Handbox und Microcontroller empfiehlt sich ein Datenkabel mit einzeln abgeschirmten Leitungen für Clock, Data und Load.

Display

Als Display wurde ein sogenanntes OLED Display mit 2x16 Zeichen gewählt. Der Vorteil dieses Typs gegenüber normalen LCD Displays ist der weite Betriebstemperaturbereich von -40°C bis +80°C. Der Nachteil ist der relativ hohe Preis von ca. 30 EUR und das Fehlen einer Möglichkeit zur Helligkeitseinstellung. Bei +5V Betriebsspannung ist das Display sehr hell, daher wurde die Betriebsspannung über den Spannungsregler LM1117 (IC15) auf +3,3V reduziert. Gegebenenfalls kann die Helligkeit mit einer roten Filterscheibe weiter reduziert werden. Die Spannungsteiler R25/R29, R26/R30, R27/R31 und R28/R32 dienen der Anpassung der 5V Signale des PIC auf das 3,3V Niveau des Displays. Wem die 30 EUR zu teuer sind, kann unter Umständen auch andere 2x16 Zeichen Displays mit 8 Bit Ansteuerung verwenden, muss dann allerdings das Platinenlayout ändern und ggf. das Display beheizen. Getestet wurde die Schaltung mit dem LCD Display EA W162B-N3LW von Reichelt. Dieses Display benötigt 5V Spannung, d.h. IC15 und die Spannungsteiler R25/R29, R26/R30, R27/R31 und R28/R32 entfallen, dafür müssen Anschlüsse und ein Vorwiderstand für die LED Beleuchtung vorgesehen werden. Außerdem benötigt das Display einen einstellbaren Widerstand für die Displayspannung VEE an Pin3. Die an das Display zu sendenden 8 Bit Daten werden seriell vom PIC über Pin 18 und 24 (18 = data, 24 = clock) an das Schieberegister 74HC164 (IC6) übergeben und dort parallel ausgegeben. Mit der negativen Flanke an Pin 17 des PIC (Display: Pin En) werden die parallelen Daten DB0-DB7 in das Display geladen. Über Pin 23 des PIC (Display: Pin RS) wird festgelegt ob die Daten einer Adresse oder einem Zeichen entsprechen.

Datenspeicher

Der Datenspeicher besteht aus 4 EEPROMs (IC1-4) mit je 512 kBit Speicher. Der Datentransfer zwischen PIC und EEPROM erfolgt über einen seriellen 2-Leiter I2C-Bus. PIC-seitig ist der I2C-Bus an den Pins 14 (clock) und 15 (data) angeschlossen. EEPROM-seitig liegt der Bus auf den Pins 6 und 5. Über die Pull-up Widerstände R2 und R3 werden die Bus Leitungen im "Leerlauf" auf high gezogen. Die Adresse, über die die EEPROMs angesprochen werden, ist über die Pins 1-3 (A0-A2) hardwaremäßig fest verdrahtet. IC1 hat die 3 Bit Adresse 4 (=> HLL), IC4 die Adresse 7 (=> HHH). Bei IC1 ist Pin 7 (WP = write protection) auf Masse gelegt sodass IC1 beschrieben werden kann. Bei IC2 bis IC4 liegt Pin 7 an der Versorgungsspannung womit diese Speicher schreibgeschützt sind. Jedes EEPROM enthält 4096 Objekte mit jeweils 16 Byte Daten: Byte 1 und 2 enthalten eine 4 stellige Katalognummer, die Bytes 3-9 enthalten Text (Sternbild und bei Sternen die Bayer- Bezeichnung, bei Deep Sky Objekten der Objekttyp), Byte 10 enthält die visuelle Helligkeit, Byte 11-13 die Position in Rektaszension und Byte 14-16 die Position in Deklination. Im Einzelnen beinhalten die EEPROMs die folgenden Objekte: IC1: 100 eigene Objekte, 109 Messier Objekte und 3.887 NGC Objekte. IC2: 3.953 NGC Objekte und 143 Objekte des Yale Bright Star Katalogs. IC3 und IC4: jeweils 4.096 Objekte des Yale Bright Star Katalogs. Die Daten sind den Katalogen des Strasbourg astronomical Data Center (CDS) entnommen und beziehen sich auf das Jahr 2000. Hier sind die HEX-Dateien, die mittels Programmiergerät in die EEPROMs (IC1-IC4) geschrieben werden: Katalog_IC1_IC4_HEX.zip

Verwendung von externen Winkelencodern

Eine erste Version der Steuerung ging von der Verwendung externer Winkelencoder aus. Mit den internen Encodern der jetzigen Version werden externe Encoder nicht mehr benötigt. Die Option ist jedoch noch vorhanden, aber mangels geeigneter Encoder nicht intensiv weiterentwickelt. Wer dennoch externe Encoder verwenden möchte sollte das folgende beachten: Die Jumper JP2 und JP3 müssen entfernt und Pin 28 von IC5 auf  Masse gelegt werden, z.B. mit einem Jumper über die Stifte GND und PGD von SV2. Die Encoder werden an den Lötpunkten LP5-LP8 angeschlossen:    LP5:  Encodertakt der Deklinationsachse, die erforderliche Auflösung ist 12arcsec/Takt    LP6:  Drehrichtung der Deklinationsachse, H = Rechtsdrehung, L = Linksdrehung    LP5:  Encodertakt der Stundenachse, die erforderliche Auflösung ist 15arcsec/Takt    LP5:  Drehrichtung der Stundenachse, H = Rechtsdrehung, L = Linksdrehung Das Drehrichtungssignal muss vor der negativen Flanke (H/L Übergang) des Taktsignals anliegen. Das Tastverhältnis des Encodertaktes der Deklinationsachse sollte etwa 50%/50% betragen, da dieses Signal innerhalb der Hauptprogrammschleife abgefragt wird und zu kurze positive oder negative Impulse nicht erkannt werden.

Schrittmotorsteuerung

Die Schrittmotorsteuerung besteht im Wesentlichen aus 2 Blöcken: - Die Steuerungseinheit - Die Leistungsstufe Für die Ansteuerung der Schrittmotoren der Stunden und Deklinationsachse sind Steuerungseinheit und Leistungsstufe jeweils doppelt vorhanden und schaltungstechnisch identisch aufgebaut. Die folgenden Beschreibungen beziehen sich daher auf den Teil der Stundenachsensteuerung.

Steuerungseinheit

Für die Steuerungseinheit wird ebenfalls ein PIC16F876A Mikrocontroller verwendet. Die Programmierung kann über die Stiftleiste SV4 bzw. im Programmiergerät erfolgen. Wird auf die ICSP Option verzichtet, können SV4 und JP4 entfallen. HEX-Datei und ASM-Datei findet Ihr hier: SMPMW-P16F876A_HEX_ASM.zip In Abhängigkeit des Signalpegels an Pin 22 (RB1) arbeitet die Schaltung im Mikroschritt oder Vollschritt Modus: Mikroschritt bei einem High Pegel auf Pin 22 (wobei 16 Mikroschritte dem Drehwinkel eines Vollschritts entsprechen), Vollschritt bei einem Low Pegel auf Pin 22. Auf die Theorie der Schrittmotoransteuerung wird hier verzichtet, diese ist  im Internet auf etlichen Seiten ausführlich beschrieben. Im Vollschrittbetrieb werden bei jedem Takt an Pin 25 (RB4) die Polaritäten der Ausgangspaare Pin 11/14 (RC0/RC3) und Pin 6/7 (RA4/RA5) abwechselnd umgesteuert und auf je einen Eingang des CMOS 4-fach UND-Gatters 4081 (IC9) gelegt. Auf den anderen Eingang des UND-Gatters wird jeweils paarweise das pulsweiten modulierte Signal (PWM) zur Stromregelung von den Mikrocontroller Pins 12 und 13 (CCP2 und CCP1) gelegt. Durch die UND Funktion wird das PMW Signal jeweils auf den High Ausgang der Ausgangspaare des UND-Gatters (Pin 3/4 und Pin 10/11) geschaltet. Für die PWM Stromregelung wird eine Referenzspannung benötigt, die am Schleifer des einstellbaren Widerstand R12 abgenommen und auf Pin 5 des Mikrocontrollers gelegt wird. Werden für beide Achsen Motoren mit dem gleichen Spulennennstrom verwendet, kann die Referenzspannung von R12 für beide Mikrocontroller verwendet werden, sodass R15 entfallen kann. Im Vollschrittbetrieb werden die Pulsweiten der Steuersignale in der Form geregelt, dass die über die Strommesswiderständen R17 und R18 abfallende Spannung 1/4 der Referenzspannung beträgt. Die über R17 und R18 abfallende Spannung wird über einen Tiefpass (R19/C16 und R20/C17) geglättet und an die Messeingänge Pin 2 und 3 (RA0 und RA1) geführt. Wird z.B. die Referenzspannung auf 4 Volt eingestellt, würde der Spannungsabfall an R17 und R18 auf 1 Volt geregelt. Mit dem verwendeten Widerstandswert von 1 Ohm betragen dann die Spulenströme des Motors je 1 Ampere. Die Strommesswiderstände sollten auf einen Spannungsabfall von 0,5 - 1 Volt beim Nennspulenstrom des Motors ausgelegt werden: Spulenstrom (A) Widerstand (Ohm) 0,25 - 0,5 1,8 oder 2,2 0,5 - 1 1 1 - 2 0,47 oder 0,56 Im Mikroschrittbetrieb wird pro Takt der Spulenstrom für die Motorspule 1 über die PWM Regelung sinusförmig verändert, für Motorspule 2 cosinusförmig. In den Nulldurchgängen werden die Spulen umgepolt: Takte Strom Spule 1 Strom Spule 2 Umpolung % Nennstrom % Nennstrom Spule 0 0 100 1 8 70 70 - 16 100 0 2 24 70 70 - 32 0 100 1 40 70 70 - 48 100 0 2 56 70 70 - 64 0 100 1 Nach 64 Takten sind die Spulen wieder in dem Ausgangszustand.
Goto Teleskopsteuerung