Das neuste Projekt befasste sich mit dem Bau eines Autofocuser mit Hilfe eines Arduinos mit ASCOM Support für unsere beiden Teleskope. Das Projekt ist auf dem Sourceforgeprojekt Arduino ASCOM Focuser Pro DIY von Robert Brown aufgebaut. Mittlerweile hat er eine neue Version auf SourceForge hochgeladen.
Aufbau und Funktionsweise
Als Herzstück des Autofocuser dient ein Arduino Nano zusammen mit dem DRV8825 Schrittmotortreiber. Weiter besitzt der Autofocuser einen digitalen Temperatursensor, um temperaturbedingte Verformungen des Teleskops durch ein erneutes Fokussieren der Optik auszugleichen. Die Bedienung erfolgt wahlweise über einen im Gehäuse der Kontrollbox montierten Drehregler oder direkt über den Computer. Als Schnittstelle zwischen den einzelnen Programmen und dem Mikrocontroller dient der von Mr. Brown programmierte Treiber zusammen mit der ASCOM Plattform 6.2.
Der NEMA-17 Schrittmotor wurde über einen Vibrationsdämpfer auf einem Aluminiumprofil montiert. Die Verbindung zwischen dem Okularauszug und dem Schrittmotor wird über 12″ MXL Zahnriehmen hergestellt, welcher direkt auf die Feinuntersetzung gelegt ist.
Die Platine wurde in Frizting entworfen und mit dem hauseigenen Ätzsystem, welches Natriumpersulfat als Ätzmittel benutzt, hergestellt.
Der Schrittmotor wird über ein D-Sub Kabel und der Temperatursensor über eine 3.5 mm Audioklinke mit der Steuerelektronik verbunden. Die Eingangsspannung für den Autofocuser beträgt 12V, welche von einem Spannungsregler auf die vom Mikrocontroller benötigten 5V herunterreguliert werden. Die Stromaufnahme beträgt ca. 200 mA und ist somit in einem erträglichen Bereich und für den Feldeinsatz geeignet.
Fazit
Die Elektronik und Mechanik funktioniert zuverlässig. Nachdem der Strom für den Schrittmotor einmal eingestellt wurde, müssen keine grossen Veränderungen vorgenommen werden. Die Bedienung des Autofocusers über den Computer gestaltet, sich dank der guten Arbeit von Herrn Brown, denkbar einfach.
Beim ersten Test kam das Programm Astro Photography Tool (APT) zum Einsatz. Das Ergebnis war akzeptabel, aber noch nicht perfekt. Da jedoch die Einstellungen wahrscheinlich noch nicht ganz korrekt gesetzt sind, möchte ich noch kein Urteil fällen.
Bauteil Liste
Bauteil | Anz. |
Elektrolyt-Kondensator 470uF | 1 |
Elektrolyt-Kondensator 330uF | 2 |
Elektrolyt-Kondensator 100uF | 1 |
Keramik-Kondensator 100nF | 2 |
Universal-Silizium-Diode 1N4001 | 1 |
Arduino Nano | 1 |
NEMA-17 17HS15-0404S Schrittmotor | 1 |
Metallschicht-Widerstand 10 kOhm | 5 |
Metallschicht-Widerstand 4.7 kOhm | 6 |
Metallschicht-Widerstand 100 Ohm | 1 |
Rotary Encoder mit Taster | 1 |
Einbaubuchse 2.1mm/5.5mm | 1 |
D-Sub Stiftleiste 9-Polig | 1 |
Kunststoffgehäuse Klar-Transparent | 1 |
Stiftleiste gerade 5-Polig | 1 |
Stiftleiste 2×5-Polig | 1 |
Leiterplatte Anschlussklemme | 1 |
Stiftleiste gerade 2-Polig | 1 |
Kurzschlussbrücken 2-Polig | 1 |
5V Spannungsregler LP2954AIT | 1 |
Schrittmotortreiber DRV8825 | 1 |
1-Wire Temperatursensor DS18B20 | 1 |
3mm LED | 5 |
3.5mm Audio Buchse | 1 |
Piezo Summer (passiv) | 1 |
Links
Gerber:
Für ein besseres Ergebnis solltet ihr, aufgrund der höheren Auflösung, die unten verknüpften BMP Dateien anstelle der PNG Bilder in der Galerie zur Platinenherstellung verwenden.
Sourcecode (not up to date):
Fritzing:
[…] Arduino Autofokus für ein Teleskop Ein Autofokus für die beiden Teleskope auf Basis des Arduino ASCOM Focuser Pro. Zur Verwendung kommt ein Arduino Nano v3.0, das DRV8825 Stepper-Motor Driver Board und der Nema17 Schrittmotor 17hs15-0404s um eine möglichst genaue Einstellung des Fokus zu ermöglichen. […]
Ich habe vor, mir den Arduino-Motorfokus nachzubauen. Daraus einen Autofokus zu machen wäre natürlich die Krönung. Für mich ist aber nicht klar, wie die Information über die erreichte Schärfe in das Arduino Programm eingelesen werden kann. Bei Sharpcap wird der Wert für die Halbwertsbreite im Programm immer wieder aktualisiert. Darauf müsste das Arduino Programm Zugriff haben. Ist das so oder so ähnlich geplant?
Hallo Dieter,
Cool, selber zu basteln ist immer eine tolle Erfahrung!
Es wird nicht direkt die Information zur Schärfe an den Arduino gesendet, sondern nur Befehle, wie viel sich der Schrittmotor drehen muss.
So gesehen, ist die ganze Logik in der Software auf dem Computer. Sharpcap kenne ich leider nicht, wir benutzen seit einiger Zeit nur noch EKOS/INDI mit dem myFocuserPro2 Treiber von Robert Brown.
Grüsse
Philip
Sharpcap ist ein Programm für EAA und kann über ASCOM auch einen Focuser ansteuern. Sharpcap selber bildet auch die Größe für die Halbwertsbreite. Daher habe ich die Hoffnung, dass die Sharpcap-Entwickler selber den Autofokus Code entwickeln und einbinden.
Im Moment habe ich aber noch Probleme mit der Compilatition des Source-Codes. Es fehlen ein paar Einträge in der Library und ich kann die auch nirgends finden. Das sind zuerst mal EEpromanything und myrotaryencoder.
Ah, verstehe. Normalerweise sind die Autofokus Algorithmen iterativ und versuchen in mehreren Schritten einen optimalen Wert, in diesem Fall Halbwertsbreite zu erreichen. Daher muss die Autofokus Software nur die aktuelle Fokus-Position verändern können, der Rest wird von alleine gemacht. Robert stellt einen ASCOM Treiber zur Verfügung, daher sollte das ohne Probleme funktionieren. Wenn ich mich richtig erinnere, habe ich es sogar einmal mit der ASCOM Plattform betrieben.
Ich habe oben meinen Code mit den nötigen Dateien hochgeladen. Dieser kompiliert bei mir der Arduino Software 1.8.6, nachdem ich die OneWire, DallasTemperature und EEPROM Bibliotheken installiert habe. Die beiden anderen Includes (eepromanything & Quadrature) sind im Zip-File enthalten.
Verwendest du meinen Code oder die ursprüngliche Version von Robert Brown?
Ich habe jetzt die alte Version 1.8.6 heruntergeladen und alles genau so gemacht. Das Kompilieren funktioniert nun fehlerfrei. Jetzt noch die Hardware komplettieren, dann bin ich gespannt. Ich melde mich dann.
Viele Grüße
Dieter