Home

Teleskopsteuerung-Projekt (Reloaded :-) )

(Start Ende 2009)

Nachdem ich meinen ersten Prototypen durch habe und dabei viel lernen konnte, hab ich mich jetzt entschlossen das Ganze nochmals zu überarbeiten, Fehler zu beseitigen und einige verbesserungen zu integrieren.

 

Das Projekt läuft nun schon eine ganze Weile. Man hat aber immer wieder neue Ideen und insbesondere die Entwicklungen im Bereich Microcontroller machen andere Komponenten attraktiv. Mit ihnen lassen sich Dinge realisieren, die es so bisher nicht gab. Ein Re-Design war also mehr als überfällig. Auch in bezug auf die Kosten der Steuerung konnte durch das Redesign deutlich gespart werden. Nachdem genug Ideen für die neue Hardware zusammen getragen waren und Bezugsmöglichkeiten für diese Komponenten abgekärt wurden, wurde die Featureliste überarbeitet und schaut jetzt so aus. Da kann sich ja ein gewisser Herr mal wieder was abschauen ;-)

Hardware:

- 2-teiliges Design analog zur FS2 bestehend aus Basisgerät für die Leistungselektronik und Handbox mit numerischer Tastatur
- moderne Mehrlagenleiterplatte ohne Drahtverhau mit extra Power/GND-Plane
- Uhr mit Batteriepuffer
- universelle Timersteuerung für DSLR- Kameras (wenn man das überhaupt noch braucht, da die neuen Kameras sich eh perfekt über USB steuern lassen) (wird eventuell gestrichen)
- Mehrprozessorssytem 1x XMega128-A1, 1xATMEGA32 für optimale Performance und Aufgabenteilung (Update 05.02.2010)
- 4 MByte RAM für extrem schnelle Datenhaltungs und Katalogzugriffe (Update 05.02.2010)
- Temperatur- und Luftfeuchtigkeitssensor zur Berechnung und Warnung bei erreichen des Taupunktes, sowie zur Kompensation der Temperaturdrift beim Fokus.
- Mehrbereichs Wolkensensor ( mit 35 Grad-Blickfeld ) zur Bestimmung der Himmelstrübung und des Bedeckungsgrades
- Luftdrucksensor zum exakten Berechnen und Korrektur der athmosphärischen Refraktion
- Neigungssensor für Teleskopausrichtung (Alignment)
- Spannungswächter der bei Ausfall der Betriebsspannung alle wichtigen Daten und die aktuelle Position speichert. Spannung wird durch 2 SuperCaps zusätzlich gepuffert
- Motorsteuerung über modernen Controller von Trinamic mit Rampensteuerung (linear und S-Rampe) , Motorüberlastungsschutz, Temperaturkontrolle, Kurzschlussfestigkeit,adaptive Motorstromregelung ...
- Hochleistungs Schrittmotorcontroller TMC457
- 2x Motortreiber TMC-249 für RA, DE
. Diese werden jeweils von einem sparaten Controller angesteuert und können einen Phasenstrom von (derzeit) 4.0A bei 34V liefern (optional 6A pro Phase)
- 2x Motortreiber TMC246 für Focuser/Field-Rotator (auf Expansionsplatine)
- 24bit interne Positionscounter damit sind prinzipiell Auflösungen bis 0,07" möglich.
- Fullstepfrequenz bis 20kHz
- bis 2048 fach µStepping mit automatischer geschwindigkeitsabgängiger Fullstep-Umschatung (Update 20.04.2010)
- Nichtlineare Motorkennlinien parametrierbar(Update 20.04.2010)
- integrieter PID Regler zum Ausregeln von Windlasten
(nur mit Encodern verfügbar) (Update 20.04.2010)
- direktes hardware Encoderinterface in Motorstufe integriert
damit keine Belastung des Hauptprozessors (Update 20.04.2010)
- Referenzpositionsgeber für jede Achse
- sensorlose Erkennung von Schrittverlusten oder Motorblockade
- GPS-Empfänger zur genauen Positions-und Zeitbestimmung in Handcontroller integriert (Update 20.01.2010)
- µSD Speicherkarteninterface zum Ablegen externer Daten wie Sternkatalogen, Beobachtungsplänen, Kometenbahndaten, Satellitendaten und weitere speicherintensive Funktionen.
- USB-Host-Master zur Ansteuerung von USB-Flash-Speichersticks und USB-GPS-Maus
- ST-4 Autoguider Eingang (entkoppelt) (eigentlich nur zur Wahrung der historischen Kompatibilität drin)
- intelligente Autoguiderkamera CMUCam3 (Update 01.08.2010)
- Direktansteuerung einer Adaptivoptik nach AO-L Prinzip durch die Autoguiderkamera (Update 30.09.2010)
- Ambient Light Sensor in Handbox zur Helligkeitsregelung des Displays (Update 13.03.2010) . Den könnte man auch als SQM (Sky Quality Meter) einsetzen.(Update 20.09.2010)
- Lage- und Bewegungssensor (Accelerometer) in der Handbox zur Displaysteuerung (Update 13.03.2010)
- 2x USB-Host-Schnittstelle für USB-FlashDisks, Bluetooth-Sticks und serielle USB-Kommunikation.(Update 20.01.2010)
- mehrere Relaisausgänge (48V/1A)
- 10/100 BaseT-Ethernet Schnittstelle Lantronix XPORT Pro (voll integrierter Webserver mit TCP/IP, UDP/IP, ARP, ICMP, SNMPv2, TFTP, FTP, Telnet, DHCP, BOOTP, HTTP, SMTP, SSHv2, SSLv3, PPP, AutoIP, RSS, and SYSLOG, SSLv3 and SSHv2 Client & Server, Selectable 128/256/512/1024 Bit certificates, Encryption: AES, 3DES and RC4, Authentication: SHA-1, MD5, Base-64 User Access Lists (Update 19.02.2010)
- robuster Handcontroller mit numerischer Tastatur, Funktionstasten, Astro-Taschenlampe, Lagesensor
- Vollgrafisches AmOLED Display ohne lästige Hintergrundbeleuchtung mit 320x240 Pixel 65k Farben und 175° Einblickwinkel. Auch bei -30°C keine träge Darstellung wie bei LCD, wodurch die Notlösung mittels einer Displayheizung überflüssig ist. Auch in modernen Handys wie dem Samsung Wave S8500 komen solche Displays zum Einsatz.
- Externer I²C-Bus über eigenen Treiberbaustein (1x 3,3V und 1x5V) für zusätzliche Erweiterungen (Sensoren, Port-Extension, Dome Steuerung usw.)
- volle Implementierung des Stepperfocusers 2.0 in die neue Steuerung.

Software:


- Multitasking-Betriebssystem auf beiden Hauptprozessoren
- ALT/AZ-Betrieb und RA/DE-Betrieb möglich
- grafische Bedienoberfläche auf der Handsteuerbox
- Java Webinterface mit diversen Applets zur Steuerung (Update 10.02.2010)
- Online Anbindung an Astrodatenbanken (DSS, Aladin usw.) (Update 10.02.2010)
- integrierte Objektkataloge mit Bild und Objektinformationen! z.B. Messier, NGC, IC, Melotte, Abell, Sharpless, Barnard, GSC,PGC, SAO...
- frei programmierbare Positioniergeschwindigkeiten für jede Achse einzeln
- frei programmierbare Relaisausgänge (Taukappenheizung, Teleskoplüfter usw.)
- frei programmierbarer Schrittmodus für jeden einzelnen Motor (Fullstep,Halfstep, 4-,8-,16-,32-,64-,..,2048-fach Microstepping)
- automatische Umschaltung von Microstep auf Fullstep bei schnellen Geschwindigkeiten (Schaltschwelle einstellbar)
- frei programmierbare Rampenfunktion für jeden einzelnen Motor (Linear oder S-Rampen)
- frei programmierbare Mikroschrittabelle mit bis zu 8192 Einträgen
- Alignment anhand von 2 und 3 Sternen=> hierfür Auswahl von Sternen, die von der Steuerung vorgeschlagen werden in Abhängigkeit von Datum und Uhrzeit
- Scheiner-Hilfe ( jedoch auch automatiche Korrektur auch wenn nicht genau gescheinert ist)
- Parkfunktion
- Meridianflip bei deutscher Montierung
- Akustische und optische Warnsignale mittels Sprache (z.B für Motor-Stall-Detection, Taupunktunterschreitung, Annäherung an Sonne usw.)
- ASCOM-Treiber zur Steuerung der Funktionen vom Laptop aus (Steuerung,Focuser,Dome)
- Dazu natürlich die bekannten Funktionen, die eine Steuerung sowieso können muss wie LX200, Pulseguiding, Goto......usw.
- Firmwareupdate über USB / LAN

Warum der TMC457 anstelle des TMC428

Die Entscheidung für den TMC457 ist aufgrund der gesammelten Erfahrungen mit dem TMC428 sehr leicht gefallen. Der TMC428 hat einige wesentliche Nachteile. Zunächst ist er als Controller für 3 Schrittmotoren ausgelegt. Das scheint zunächst ein Vorteil, erweist sich jedoch beim Anschluss aller 3 Motoren als nachteil, weil jeder der 3 Motoren nun aufgrund der Beschränkten Bandbreite des SPI-Busses nur noch 1/3 der Geschindigkeit hat. weiterhin kann der TMC428 von Haus aus nur 16-Fach microstepping. Will man das erhöhen ist ein nict unerhebliche Mehraufwand an externer Beschaltung ntig. Dieser erhöht sich noch weiter, wenn man eine Motorstromregelung mit einplant. Zudem ist die Umschaltung von Microstep auf Fullstep welche bei höheren Geschwindigkeiten mehr Performance bringt nur durch ein koomplettes Umprogrammieren der Ram-Table möglich Dies dauer jedoch zeit und ist nicht ohne Ruckeln des Motors auszuführen. Weiterhin muss im Velocity-Modus beim TMC428 eine gültige Kombination der Register P_MUL und P_DIV gefunden werden, was dazu führt, dass nicht alle Geschwindigkeiten exakt eingestllt werden können. Dies führt dazu, dass ständig Korrekturen nötig werden, weil oft der Motor ein klein wenig schneller oder langsamer als zum beispiel die benötigte siderale Geschwindigkeit läuft. Zudem besitzt der TMC428 kein encoderinterface, welches extern entweder per Hardware oder im schlechtesten Falle softwareseitig durch die MCU übernommen werden muss.
All diese Probleme hat der TMC457 nicht. Er kann mit minimalem Zusatzaufwand bis zu 2048-fach Microstepping, hat eine Motorstromregelung, Kann alle Geschwindigkeiten hochpräzise fahren, verfügt über ein Encoderinterface und einen integrierten PID-Controller mit dem sich auch Windlasten ausgleichen lassen. Zudem ist das SPI-Protokoll einfacher als das des TMC428. Der TMC457 bietet zudem die Möglichkeit neben linearen Rampen auch S-förmige Rampen zu fahren. Dadurch ist ein absolut ruckfreier Anlauf und Abbremsen möglich was jegliche Art von Schwingungen wirksam vermeidet. Aufgrund der genannten Eigenschaften konnte zudem die Motorstufe deutlich vereinfacht und verkleinert werden. Der einzge Nachteil des TMC457 ist sein FBGA-144 Gehäuse was zum Löten zwingend einen Reflow-Ofen erfordert.

 

Projektverlauf

 

Januar 2010

Die Sensor und Encoderplatine im vorherigen Projektstand war rein zu Testzwecken entwickelt und die Leistungsfähigkeit der komponenten auszutesten. Ein Wolkensensor macht natürlich auch nur dann sinn wenn er nich tin der Steueurng angebracht ist sondern auf dem Dach der Sternwarte arbeitet. Auch das Ethernetnterface mittels ENC28J60 erwies sich zwar als brauchbar, stieß aber bezüglich der kompletten Steuerung übers INternet und insbesondere der JAVA-Unterstütztung auf Hindernisse. Da gibt es inzwischen modernere Lösungen, die zudem noch platzsparender und kompakter sind.

Aufgrund der diversen Diskussionen über die angebliche Lebensdauer eines OLED Displays von 'nur' 30000h ;-) habe ich mich entschlossen eine Screensaverfunktion in die Handsteuerbox einzubauen. Das Display wird nach einer programmierbaren Zeitspanne der Inaktivität ausgeschaltet. Ein interner Bewegungssensor erkennt, ob die Handbox bewegt wird (iPhone läßt grüßen) und schaltet das Display sofort wieder ein. Sollten Warnungena auftreten, so wird das Display natürlich auch sofort eingeschaltet und die Warnung sowohl akustisch als auch in Textform angezeigt.

Zudem habe ich jetzt einen USB-Controller ( VNC1L auf VDIP-2 Modul) gefunden, welcher einen Master-Mode besitzt und der es somit ermöglicht auch USB-Flash Speicher anzusteuern. Dadurch kann ich auch die PS2-Schnittstelle für die GPS-Maus verwerfen. Mittlerweile sind GPS-Mäuse mit PS/2 Stecker kaum noch zu bekommen. Auch hier geht der Trend deutlich zu USB.
Dank des Einsatzes des Altium Designers macht auch das Redesign der Leiterplatte einen großen Fortschritt.

Aus dem ersten Prototyp und dessen kleineren Designfehlern habe ich eine Menge gelernt. Diese Erkennnisse sollen in die neue Steuerung einfließen. Es wird in der neuen Version eine Mehrlagenleiterplatte geben die dichter gepackt aber auch auf beiden Seiten bestückt ist. Ich denke, daß ich die komplette Schaltung nun auf einer einzigen Europakarte unter bekomme.

Die Motorstufen wurden nochmals überarbeitet. In der neuen Version kann man dann mit entsprechenden Schrittmotoren mehr als 1000Umdr./Minute fahren können (bei 200Schritten/Umdr). Es sollte prinzipiell noch mehr drin sein, aber dazu will ich mich dann erst äußern, wenn ich es ausgetestet habe. In gewissen Foren wird nämlich jedes Wort auf die Goldwaage gelegt und verdreht.

Februar 2010

(03.02.2010) Da ich derzeit am Re-Design der Leiterplatte arbeite um alles auf eine einzelne Europakarte zu bekommen, habe ich mich gleich entschlossen auch das RN-Mega2560 Prozessorboard zu verbannen (zu teuer zu groß und zu veraltet). Zunächst hatte ich überlegt, ob ich nicht auf einen ARM-Controller setze, wovon mir jedoch seitens unserer Fachleute im Institut abgeraten wurde. ARMs sind zwar im Vergleich zum ATMEGA unheimlich schnell im Rechnen, aber haben eine grottenschlechte IO-Performance. Dieser Umstand wird nch verschlimmert, wenn man ein Linux drau laufen läßt. Wichtig ist aber bei einer Teleskopsteuerung, dass nahezu in echtzeit auf informationen seitens der Steuerung (z.B. Encoder) reagiert werden muss. Also bin ich den AVR-RISC Controllern treu geblieben.

Das bisherige Controllerboard wird durch ein XMega128A1 bzw. später durch Pin-kompatibles XMEGA384A1 Board ersetzt. Dieses ist mit 32 MHz doppelt so schnell getaktet wie das alte, und kostet nur die Hälfte von selbigem. Zudem ist hier gleich der SD-Kartenleser mit drauf, wodurch ich die Komponetnten, die ich bisher dafür auf der Leiterplatte hatte gleich mit einsparen kann. Das SD-Interface wird allerdings nicht von Außen zugänglich sein. Es enthält alle internen Kataloge, Bilder, Parameterdaten und alles was sonst intern gebraucht wird) Für den Datenaustausch ( Firmware, Klimadaten, Tracking-Logs usw) setze ich komplett auf USB-Sticks. Sowas hat jeder rum liegen und man braucht beim Ausspielen auf den PC keinen SD-Kartenleser. Ebenso sind auf dem Modul 4 MB RAM drauf, wodurch ich insbesondere die Katalogfunktionen deutlich beschleunigen kann. Das Meiste von der schon fertigen Firmware kann ich auch übernehmen, wodurch der Umstelungsaufwand deutlich geringer werden dürfte.
(12.02.2010) Die drei internen Relais sind jetzt auch aus dem Basisgehäuse verbannt. Zum Einsatz kommt nun ein externes Modul welches über I²C angeschlossen wird und es ermöglicht über einen Philips PCA9698 insgesamt bis zu 40 externe Ports also maximal 320 IO-Kanäle steuern. So viel wird man zwar sicher nie brauchen, aber es gibt schon eine Liste, was man außer der Taukappenheizung und dem Lüfter noch alles damit steuern kann. Geplant ist unter anderem eine Sperre der Weißlicht-Beleuchtung wenn das Teleskop im Nachführ- bzw ObjectTracking-Modus ist. Ebenso wird in unserer Sternwarte dann am teleskop eine rote LED folie sein, die geschaltet werden kann, damit sich Besucher nicht den Kopf am 60cm-Cassegrain oder am 50cm-Newton stoßen. Die sache mit der Kaffeemaschinensteueurng lass ich mir noch mal durch den Kopf gehen ;-)

Es gibt nun auch erste Gehversuche am Java Webinterface. Die sind aber wirklich noch in den Kinderschuhen. Mein Ziel ist es die Steuerung komplett Internetfähig zu machen und so zum Eeinsatz für robotische Teleskope an unserer Sternwarte brauchbar zu machen.
(19.02.2010) Das neue Webinterface ( Lantronix XPORT Pro) macht richtig Spaß. Die Starthomepage ist schon drauf und die Verbindung über das Internet steht. Der Webserver kann sogar richtig gescheite Verschlüsselungen. Auch der Serial Tunnel funktioniert gut. Damit kann ich von jedem Windows-PC oder Linux Rechner (und dem zum Betriebssystem gehörigen virtuellen COM-Port Treiber) eine direkte serielle Verbindung zur Steuerung aufbauen. Über diesen Tunnel kann jedes LX200 kompatible Programm die Steuerung weltweit kontrollieren. Man kann aber auch das Java-Applet über das Webinterface benutzen. Dazu ist nur ein Webbrowser nötig. So langsam macht die Sache richtig Spaß.:-)

Da das Design für die neue Platine noch nicht ganz fertig ist und ich ja auch noch etwas mit den neuen Komponenten experimentieren will, habe ich erst mal die neuen Module auf eine kleine Leiterplatte gesetzt. Ein paar Taster ( um das Cursorkreuz und 2 Funktionstasten zu testen sind auch mit drauf). Leider hat das Prozessormodul kein Standardraster und hat so nicht aufs Breadboard gepasst.

März 2010

Inzwischen habe ich das Design für den neuen Handcontroller fast fertig. Neu hinzu gekommen ist jetzt ein GPS-Modul, welches direkt in der Handbox sitzt. Hierdurch wird der 2. USB Anschluss frei und man benötigt keine externe GPS-Maus mehr. Dies wurd epreislich möglich, da das neue Prozessormodil halt 30.-€ Billiger ist als das alte und der GPS-Empfänger genau so viel kostet.
Ebenso ist ein Lage- und Beschleunigungssensor in die Handbox gekommen. Dieser hat die Aufgabe die Bewegungen der Handbox zu verfolgen. In der ersten Ausbaustufe wird erst einmal das Display nach einer definierbaren Zeit ausgeschaltet, wenn die Handbox sich nicht mehr bewegt. Wird sie dann wiede rin die Hand genommen oder leicht angeschubst, so schaltet sich das Display wieder ein.
Später könnte man damit so eine Funktion realisieren, wie sie der SkyScout bietet. Man könnte einfach mit dem Handcontroller auf ein Objekt zeigen und im Display wird der Name angezeigt. Es wäre auch eine Bedienung der montierung wie mit einem Ninteno Wii-Controller möglich. Naja ich will mal nicht zu viel phantasieren, hoffe aber nicht, daß der Herr aus dem blauen Forum wieder hier abschaut. ;-)

Die Helligkeitssteurung des Displays übernimmt ab sofort ein Umgebungslichtsensor im Handcontroller. Damit erspare ich mir ständiges manuelles Regeln der Displayhelligkeit da das OLED einen sehr hohen Bereich abdecken kann. Scheint die Sonne, so wird mit maximaler Helligkeit gearbeitet, ist es stockdunkel wird auf Nachtmodus (dunkel und BIAS nach ROT verschoben) geschaltet. Dazwischen gibt es halt etliche Abstufungen, die über den Sensor geregelt werden. Dieser arbeitet mit einer Verzögerung von 5 Sekunden. Damit wird sichergestellt, daß nicht durch versehentliches Anleuchten mit einer Astrolampe plötzlich das Display auf volle Helligkeit fährt und so die Dunkeladaption der Augen dahin ist.

Auch das neue XMEGA-Modul hat wieder einmal einen Baustein auf der Leiterplatte überflüssig gemacht. Ich hatte einen 16bit DAC zur Einstellung des Motorstromes in RA und DE verwendet. Dieser entfällt, weil ich die Internen 12 bit DAC des XMEGA verwende. Somit ist wieder ein Bauteil weniger auf der Leiterplatte. Mit den DACs ist der Strom dann in 4096 Schritten regelbar. Bei den momentanen 4 Ampere Phasenstrom pro Strang (=8A pro Motor) macht das dann eine Genauigkeit von etwa 1mA / Schritt. Das braucht man zwar nicht so genau, aber die internen DACs im XMEGA haben nun mal diese Auflösung. Wenn das nichts extra kostet, warum soll man das nicht mitnehmen?

April 2010

Nunmehr habe ich das Osterwochenende etwas genutzt um das veränderte Design des Handcontrollers fertig zu stellen. Das Display wird jetzt nicht mehr über den seitlichen Stecker und ein Kabel angesteckt sondern direkt mit den dafür vorgesehenen HD-Buchsen auf das Controller-Board gesteckt. Füe diese Buchsen habe ich inzwischen einen Lieferanten gefunden. Der Bewegungssensor, Umgebunsglichtsensor und das GPS-Modul wurden ebenfalls integriert. Zudem habe ich die Montagelöcher noch einmal versetzt. So kann die komplette Controllerplatine in den Deckel des Gehäuses eingebaut werden und nicht wie bisher in den Boden. Die 4 roten LEDs für die Astrotaschenlampe sind nun am oberen Platinenrand herausgeführt. Bisher würden sie hinten aus dem Gehäuse geführt. Damit Alles passt wurde auf die 3D Prüffunktionen des Altium Designers zurückgegriffen. Jetzt muss ich das Board nur noch in Produktion geben. :-)

Mai 2010

Das Re-Design schreitet so langsam voran. Allerdings habe ich noch einmal über das Thema mit der Mehrlagenleiterplatte nachgedacht. Ich denke aber, dass ich eine Lösung habe, die sogar noch mehr Vorteile bietet als die Hauptplatine als 4-Lagen-Platine aufzubauen. Der Grund für das Mehrlagendesign waren ja die Treiberstufen und der Motorcontroller TMC457. Dort sind zwingend aufgrund der Bauform (BGA 144) und der Ströme Mehrlagendesigns nötig. Ich werde aber sowohl für den Motorcontroller als auch für die Treiberstufe einzelne Module entwickeln. Diese sind dann sehr kompakt., auch in anderen Schaltungen einsetzbar und zudem kann die Hauptplatine als gewöhnliche 2-Lagen-Plarine recht preiswert herstellbar bleiben. Damit ist die Schaltung dann komplett modular. Man könnte also auch recht einfach ohne Lötarbeit zum Beispiel eine defekte Motorstufe austauschen oder aber diese bei Bedarf gegen eine Stärkere oder gegen einen andern Typ (Servo) ersetzen.

Für den Motorcontroller mit dem TMC457 habe ich das Design schon fertig. Das Modul ist 35x18mm groß und enthält neben dem TMC457 auch den DAC für das 2048-fach Microstepping und einen Multiplexer zur geschwindigkeitsabhängigen on-the-fly-Umschaltung zwischen Microstep und Fullstep! Das Modul verfügt über zwei 14 polige Pin-Leisten im 2,54mm Raster. Das ist dann auch wieder vom "Nicht-SMD-Löter" zu löten. Es ist als 6-Lagen Leiterplatte mit je einer Lage für jede Versorgungsspannung und für Masse ausgelegt. Es passen hiervon 14 Stück auf eine Europakarte. Damit dürfte man auch bei PCB-Pool einen vernünftigen Preis bekommen.

Auch die 4A Motorstufe ist auf einem 47x32mm kleinen Modul untergebracht. Die Wäremabführung der MOSFETs erfolgt über die Pins 5-8 und die daran angeschlossenen Kupferplächen. Über die beiden Bohrungen neben diesen Kupferflächen wird ein optionaler Kühlkörper montiert. Die Sense-Widerstände wurden jeweils doppelt vorgesehen um hier eventuell Parallelschaltungen zu ermöglichen. Sie sind beide ale auf der Unterseite angebracht was zum einen die Leiterbahnlängen dramatisch erkürzt und zum zweiten Platz spart. Da die Leiterplatte eine 6-Lagen-Platine ist war es möglich intern zusätzlice MAsselagen sowie eine eigene Lage für die Motorspannung VM+ vorzusehen. Die Module werden über jeweils zwei 7-polige Steckverbinder auf die Basisleiterplatte gesteckt.

Die Konstruktion bietet zwei entscheidende Vorteile, erstens kann wie bereits geschrieben die Basisplatine als preiswerte 2-Lagen-Leiterplatte ausgeführt werden und zweitens ist im Falle eines Moduldefektes ein schneller und leichter Austausch möglich. Auch anpassungen an andere Motorversorgungsspannungen oder -ströme ist so möglich.

Juni 2010

Nunmehr sind auch die Trinamic Controller-ICs TMC457 eingetroffen. So in natura schauen die noch kleiner aus, als man sich das vorstellt. Da wird das mit dem Löten des FBGA144-Gehäuses eine sportliche Angelegenheit. Die Abteilung bei uns im Institut, welche die Leiterplatten bestücken, hat allerdings Entwarnung gegeben. Laut deren Aussagen ist das im Reflowofen machbar.

Ebenso habe ich ein neues Konzept zur Stromversorgung in Angriff genommen. Im letzten Prototypen und auch noch in der aktuellen Schaltung wird die Elektronik über LM317 Regler versorgt. Diese 'verbraten' jedoch die Spannungsdifferenz in Wärme, was bei Akkuanwendungen wenig Sinn macht. Daher entwickle ich gerade einen zweifach- Stepup/Stepdown-Regler auf Basis des LTC3780, der aus einer Eingangsspannung von 7-25V jeweils eine Ausgangsspannung von 5V für die Elektronik und 34V für die Motoren macht. Aus den 5V (Display und Encoder) werden dann per Low-drop-Regler die 3.3V und die 1.5V für die Steuerelektronik erzeugt.

Juli 2010

Da ich momentan noch auf die Handbox-Leiterplatten aus Bulgarien warte (Urlaub) hab ich mich mal wieder an der Benutzeroberfläche zu schaffen gemacht. Inzwischen ist die Programmiersprache 4DGL so weit fortgeschritten, daß man prima damit arbeiten kann und viele Bugs aus der Anfangszeit Geschichte sind.. 4DSystems hat die Firmware gerade umgestellt und die Rev.2.1 für den PICASO-GFX2 herausgebracht, sodaß nun 16kb für Programme im Flash zur Verfügung stehen. Zudem können Funktionen von der SD-Karte nachgeladen werden und da passen ja bis zu 16GB drauf. So langsam macht das wieder richtig Spaß. Einzig die Screenshotfunktion funktioniert noch nicht ganz wie ich mir das vorstelle. Aber ich hatte mir da ja mal selber was geschrieben, womit ich den GRAM des Displays auslesen und mir daraus BMPs machen kann.

Für Anregungen und Kritik zu den Screenshots habe ich imme rein offenes Ohr.

Basisbildschirm mit allen wichten infos wie GPS-Koordinaten, Zeit,Temperatur, Luftfeuchte, Taupunkt, Zielobjekt und Koordinaten, Aktuelle Teleskopkoordinaten, Batteriezustand, USB-Status, Wetterund Mondphase

Menübeispiel für das Goto.

Der aktuelle Eintrag ist immer rot markiert

Im Header kommt noch der korrekte Gruppeneintrag rein. Momentan hab ich da noch nen Bug. Da sollte eigentlich "Goto" stehen

Noch ein Untermenü.

Im Header kommt noch der korrekte Gruppeneintrag rein. Momentan hab ich da noch nen Bug. Da sollte eigentlich "Deepsky" stehen

Ein geöffneter Eigenschaften-Editor. Die sind als Popup-Fenster realisiert. Auzug aus dem Messierkatalog

Wenn man die Website auf einem 14" Laptop-Display (bei mir Dell Latitude D620) betrachtet, dann sind die Screenshots etwa in der Originalgröße des OLED-Displays.

August 2010

Nun bin ich auch so langsam mit dem Design der Basisplatine fertig. Aufgrund des Einsatzes der Module für die Motortreibe und die TMC457 mit dem 12bit DAC Ist diese recht einfach gestrickt und kann als preiswerte 2-Lagen Leiterplatte ausgeführt werden. Für die Spannungsversorgung kommen zwei Schaltreglermodule zum einsatz. Diese verbraten nicht wie die 78xxx oder der LM317 die Differenz zwischen eingangspannung (= Motorversorgungsspannung) und den internene Betriebsspannungen(5V und 3.3V). Die Modulbauweise zeigt auhc hier wieder einen grpßen Vorteil. Unter den Modulen können weitere Funktionalitäten untergebracht werden bzw. sind unter den Motortreibern mehrere Elkos platziert um die Motorspannung sowie die Versorgungsspannungen zu stabilisieren. Dummerweise ist mein bulgarischer Leiterplattenhersteller immer noch im Urlaub (is Ende August) , weshalb ich wohl erst Anfang September die Platine in den Händen haben werde. :-(


Inzwischen sind auch die Module für die TMC457 gekommen. Ich habe daher die 3D-Darstellung weiter oben durch ein Foto erstzt. Die Module haben 2x14 Pins im normalen 2,54mm Raster, was auch dem ungeübtetsten Bastler keine Sorgen bereiten sollte. Zur Verdeutlichung der Größenverhältnisse hab ich mal einen Cent daneben gelegt.

September 2010

Ich habe mal eine kurze Schaltungsbeschreibung zur Steuerung veröffentlicht. Hoffentlich wird da nicht wieder abgeschaut. Zudem habe ich nun endlich auch mein schon länger avisiertes Kameramodul (CMUcam3) mit integrierter Bilderkennung geliefert bekomme. Dieses soll als Autoguider eingesetzt werden, der direkt mit der Steuerung verbunden werden kann. Die Idee gabs zwar schon mal im alten Prototypen, ist aber leider an der nötigen Bildauswertung gescheitert. Ein ATmega hat schlichtweg weder die Rechenpower noch den nötigen Speicher um eine sinnvolle Bildauswertung von mehreren Bildern/Sekunde zu machen. Selbst wenn man die Kamera zu einer "Langzeitbelichtung" von 1-2 sek übereden kann, ist die Bilddatenmenge, so groß, daß die MCU damit hoffnungslos überfordert ist. Daher ist der Einsatz einer Kamera mit analogem Bildsignal (was ja zusätzlich ja noch digitalisiert werden muss) wie z.B. einer Watec oder Mintron schlichtweg in einem solchen Projekt zum Scheitern verurteilt. Hier mal ein Bild von dem guten Stück. Das Objektiv ist abschraubbar, sofaß man am Teleskop schön fokal arbeiten kann.

CMUCam3


Die CMUcam3 besteht hingegen aus 2 getrennten Boards, einem Sensorboard, und einem Logikboard. Der aktuelle Sensor OV6620 hat eine Auflösung von 352x288 Pixeln, kann aber auch nach Firmwareanpassung per Tausch des Sensorboards gegen einen Größeren ersetzt werden. Als Prozessor werkelt ein LPC2106 ARM7-Controller in der Cam. Die Firmware hat bestechende Features wie MMC Kartenslot mit FAT16 Filesystem, Vier-Port Servo-Controller, Einlesen von Bildern mit max. 26 Frames/Sekunde, JPEG Kompression und diverse Bildvearbeitungsfunktionen wie Bildausschnitte definieren, Downsampling, Veränderung von Bildattributen, Schwellwert und Convolution-Filter Funktionen, RGB, YCrCb und HSV Farbraum oder Erzeugung von Histogrammen. Zudem ist Softwaremäßig einges implementiert, was sie für den Einsatz als Autoguider geeignet macht wie:

  • Definition und Verfolgung von Objekten ( z.B. Sternen)
  • Erkennung von Bewegungen durch Bildvergleich (geht schon intern)
  • Schwerpunktermittlung von Bildobjekten
  • Ermitteln des Farbmittelwertes und der Varianz
  • horizontale Kantenerkennung
  • Echtzeitübertragung einer Binärbitmap der in einem Bild verfolgten Pixel (für den Xmega in der Steuerung)
  • Definition beliebiger Bildausschnitte
  • Downsampling von Bildern
  • Auslesen eines unverarbeiteten Bildes (RAW)
  • wählbare Schnittstellengeschwindigkeit: 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 bit/s
  • Mehrfache Verarbeitung eines einzelnen im Framebuffer gespeicherten Bildes möglich

Die Kommunikation mit der CMUcam3, also alle Steuersignale, sowie notfalls ein Auslesen der Bildinformationen (Sternverfolgung passiert ja innerhalb der Kamera) erfolgt über RS232. Absolutes Highlight der Kamera ist allerdings die Möglichkeit direkt Servos anzusteuern. Diese werden so bewegt, daß sie das zu trackende Objekt immer in Position halten. Das werde ich nutzen um eine Adaptivoptik nach dem SBIG AO-L Prinzip zu bauen. die Kamera läuft dann am Off-Axis Guider. Vor diesem wird dann in einem speziellen Adapter eine bewegliche optische Glas-Planplatte angebracht, sobald der Stern sich etwas bewegt wird diese Platte vom Servocontroller der Kamera so bewegt, daß sie den Stern wieder an die ursprüngliche Position bewegt. Da muss ich mir allerdings noch jemanden suchen, der mir die Feinmechanik baut.

Jetzt muss ich nur noch die Empfindlichkeit des Kamerasensors testen. Mein aktuelles Modul hat 3 Lux empfindlichkeit. Das ist natürlich shconmal schlechter als die Bewährte ToUCam mit 1 Lux. Alternativ gibt es ja aber auch OV7620 Module die da drauf passen. Dann habe ich bei 640x480 Pixeln immerhin 0.5Lux empfindlichkeit. Notfalls muss dann doch so einer rein.

Dezember 2010

Da es wetterbedingt auf der Baustelle nicht vorwärts geht habe ich endlich mal wieder Zeit gefunden mich um die Steuerung zu kümmern. Die Leiterplatte des Basisgerätes ist anhezu vollständig bestückt. Momentan ist zwar nur die RA-Stufe mit den entsprechenden Modulen bestückt weil ich über die Feiertage nicht an den Reflow-Ofen ran gekommen bin um den TMC457 drauf zu löten. Zum Experimentriern habe ich auch mal eine Schraubbuchse für die Stromversorgung drauf gelötet. Die ist allerdings etwas groß, weshalb ich die ST4-Buchse für den Autoguider nicht bestücken konnte. Im Endausbau wird die Stromversorgung direkt auf die Pads auf der Platine gelötet. Hinter der grünen Klemme befinden sich die beiden beiden Spannungsregler für die 5V und 3,3V. Hier kommen spezielle 1,5A-Schaltregler zum Einsatz, die im Gegensatz zu den 78xx-Reglern sehr effizient arbeiten (>85%) und somit kaum verluste erzeugen. Eine gesonderte Kühlung ist daher nicht erforderlich. Von den Reglern gibt es verscheidene Varianten für unterschiedliche Eingangsspannungen (6-18V und 18-35V). Hier müsste dann entsprechend der geplanten Spannungsversorgung (12V oder 24V) unterschiedlich bestückt werden. Die Stüzkondensatoren für die alle Spannungen sind unter den Motormodulen Versteckt. Die 1,5V Spannungserzeugung für den Core des TMC457 und die Takterzeugung liegen ebenfalls unter dem RA-TMC457-Modul. An der Encoderbuchse befindet sich eine Filterschaltung, die für bessere Impulserkennung sorgt. Daneben liegt der Bustriber für die beiden externen I2C-Busse(3,3v und 5V). Hiermit sind Buslängen von 20-30m möglich.


 

Januar 2011

So inzwischen sind alle Sensoren in der Firmware integriert und laufen einwandfrei. Es gab zwar zunächst noch ein paar kleine Probleme mit dem I2C Pegelwandler, aber durch Anpassung der Pullup Widerstände konnte das gelöst werden. Auch der SHT71 hat falsche Werte geliefert, weil der XMega aufgrund seiner höheren Taktfrequenz diesen einfach überfahren hat. Der Webserver im Xport Pro sowie der Serielle Tunnel arbeiten einwandfrei. So kann ich die Formware auch über das Internet aktualisieren. Jetzt geht es an das Neuschreiben der Motorroutinen. Die vom TMC428 sind ja nicht mehr brauchbar. Dafür ist beim TMC457 das SPI Protokoll wesentlich einfacher. Die Microstep-Table mit ihren 8192 Einträgen ist auf der µSD-Karte abgelegt und wird von Dort geladen. So können für verscheidene Motoren passende Tabellen abgelegt werden ohne hierfür wertfollen Flash-Speicher zu verschwenden.