Target(Astronomy)

Target(Astronomy)

Nachtrag 13.09.2020: Das Projekt “OnStep auf der LXD600” ist bis auf einige Kleinigkeiten fertig. Damit ergeben sich auch für die Target(Astronomy)-Box neue Möglichkeiten. So ist es nicht mehr notwendig, über ein Gateway zu INDI zu kommunizieren, die Box kann sich direkt über die WLAN-Schnittstelle von OnStep anmelden und direkt LX200-Kommandos an die Montierung absetzen. Da mein OnStep-Board nur einen Motorfokus unterstützt, fallen die Funktionen für den zweiten heraus. Somit kann über die F-Taste an der Handbox nur noch mit N und S der Fokus verstellt werden. Der Sourcecode für die Handbox mit OpenStep ist ebenfalls auf Github zu finden.

https://github.com/stroblhofwarte/Target , unter targetclient/arduino/Target_Astronomy_OnStep.


So schön und bequem die Handboxen der Montierungen (bei mir der alte Autostar) auch sind, es hängen immer Kabel herum. Wenn man sich irgendwie verrenkt, um in den Sucher oder das Okular zu blicken, und dann noch auf das Kabel achten muss, welches sich in dem Moment garantiert am Stativbein verheddert, dann wird der Wunsch nach einer drahtlosen Handsteuerung laut.

Also, es muss eine WiFi-Handbox her! Da meine Montierung (und auch andere Dinge am Teleskop) neben dem Autostar auch noch mit einem Raspberry Pi mit Astroberry ausgestattet ist, sollte so ein Projekt einfach umzusetzen sein. Die Idee ist, auf dem Astroberry einen INDI-Client laufen zu lassen, welcher die Tasten der WiFi-Handbox über TCP/IP entgegennimmt und über INDI an das Teleskop weitergibt. Das TCP/IP-Protokoll ist denkbar einfach gehalten (LX200-Protokoll lässt grüßen!), der INDI-Client ist mit QT5 erstellt und die Handbox läuft mit einem ESP8266 (WEMOS D1 mini).

Bei diesem Projekt habe ich es mir nicht entgehen lassen, richtige Tasten in die Box einzubauen, keine Gummitasten ohne irgendeinen Druckpunkt. Die Box wird über einen LiPo-Akku gespeist, der Akku wird mit 12V geladen, kann somit direkt über die Montierung geladen werden, falls notwendig. Der LiPo-Akku wird über ein TP4056 Ladeplatinchen angesteuert, welche Huckepack neben dem µController sitzt. Der LiPo-Akku hat nur eine Zelle und somit 3.7V. Der µController wird aus dem Akku ohne Spannugswandlung gespeist. Da der µController nur zwischen 2.5V und 3.6V verträgt, der LiPo beim Laden bis zu 4.2V haben kann, wird die Spannung einfach durch eine Diode um 0.7V reduziert. Somit liegt sie in dem angenehmen Bereich von 3.5V und darunter (es wird zwar hier und da davon abgeraten, aber es funktioniert einwandfrei, ich kann die Box mehrere Nächte lang ohne Nachladen benutzen).

Es ist eine Platine entstanden, welche über einen Platinenfertiger in die Realität geholt wurde. Das Ganze wird in eine Kunststoffbox eingebaut. Die Platine ist für das Gehäuse BOPLA BOS 502 ausgelegt.

Target Board V0.3

Neben den Hardware-Komponenten ist die INDI-Clientsoftware und das Ardnuino-Progrämmchen entstanden. Beide Komponenten sind über Github verfügbar und stehen offen für Weiterentwicklung (GPL):

https://github.com/stroblhofwarte/Target

Das README.md-File enthält die Anweisungen, wie die Software erstellt wird.

Die Handbox habe ich mit einem Drahtigel getestet, um die Entprellung der Tasten, das TCP/IP-Protokoll und das Schaltverhalten der Slew-Rate-LED’s zu überprüfen. Die Slew-Rate wird zwar von der Handbox an den INDI-Client gesendet, doch die LED-Anzeige auf der Handbox wird als Antwort von dem INDI-Clients auf eine neue Slew-Rate gesetzt. Somit kann leicht überprüft werden, ob die Handbox verbunden ist und ordnungsgemäß funktioniert.

Der Prototyp der Handbox. Es werden nur die Tasten N,S,W,E und Slew-Rate getestet. Focus in und Focus out werden nicht extra getestet, da die Verschaltung in einer Matrix erfolgt und keine Besonderheiten aufweist.

Die Schaltung ist extrem einfach, Tasten sind direkt an GPIO’s angeschlossen, drei LED’s (GUIDE, CENTER, FIND, bei MAX sind alle LED’s aus), ein ESP8266-Board und ein LiPo-Ladeboard zum Auflöten.

Wichtig ist, dass das LiPo-Board so modifiziert wird, dass es den Akku nur mit ca. 250mA lädt, ansonsten wird der Linearregler zu heiß. Hierfür muss ein SMD-Widerstand auf dem Board ausgelötet und durch einen 4.7K-Widerstand ersetzt werden:

Programmierwiderstand für TP4056
Bei dem TP4056-Board muss der Orginalwiderstand durch einen 4,7k ersetzt werden, damit der Akku nur mit 255mA geladen wird. Hier ist er etwas “liederlich” aufgelötet.

Das bestückte Board wird in das Gehäuse BOPLA BOS 502 eingeschraubt, und zwar hängt die Platine unter der Oberschale. In der Oberschale sind passende Löcher für die Tasten und LED’s gebohrt (Taste: 15mm Durchmesser, LED: 3mm Durchmesser). Ich habe einfach einen Ausdruck der Platine mit Klebesteifen auf dem Gehäuse befestigt und dann gebohrt.

Auf die Oberschale wird eine 3D-gedruckte Folie mit Tastenvertiefungen aufgeklebt. Ich habe diese mit PETG gedruckt und lackiert, ist ausgesprochen robust. Das STL-File ist im Github-Repo unter “electronic” abgelegt. Die Frontplatte mit dem Ausschnitt für den 12V-Stecker ist 3D-gedruckt, STL-File ebenfalls im Github.

Die Namensgebung

Das Projekt mit seinen Komponenten hat einfach den Namen “Target”, da es dazu dient, das Ziel im Okular zu zentrieren. Da Target ein Allerweltsbegriff ist, wird die Handbox mit der Hardware und der Software “Target(Astronomy)” und der INDI-Client “TargetClient” genannt. Das ist alles.

Kurzer Exkurs zu den ESP8266

Quelle: https://randomnerdtutorials.com/esp8266-pinout-reference-gpios/

AufdruckGPIOals Inputals OutputAnmerkung
D016kein Interruptkein PWMHIGH beim Starten.
Aufwecken bei DeepSleep
D15OKOKSCL (I2C)
D24OKOKSDA (I2C)
D30PullupOKStartet nicht, wenn LOW beim Einschalten
D42PullupOKHIGH beim Starten, verbunden mit interner LED, Startet nicht, wenn LOW beim Einschalten
D514OKOK(SPI, SCLK)
D612OKOK(SPI, MISO)
D713OKOK(SPI, MOSI)
D815PulldownOK(SPI, CS)
Startet nicht, wenn HIGH beim Einschalten
RX3GehtRXHIGH beim Starten
TX1TXGehtHIGH beim Starten
A0ADC0Analog Input

Bedienung

Die Handbox versucht sich nach dem Einschalten direkt mit dem konfigurierten Netzwerk (dem Astroberry) zu verbinden. Eine nicht eingerichtete Handbox stellt einen AccessPoint zur Verfügung, auf den man sich per Laptop verbinden kann. Der Name des Funknetzwerkes wird aus “TARGET” und der eindeutigen ID des ESP8266 zusammengesetzt, Passwort ist “88888888”. Unter Windows10 wird nach dem Verbinden automatisch der Browser gestartet und die Konfigurationsseite angezeigt. Ansonsten auf die Adresse http://192.168.4.1 verbinden.

Der Konfigurations-AccessPoint kann jederzeit durch gleichzeitiges Drücken von “N+S+SLEW” aufgerufen werden. Wenn der AccessPoint aktiv ist, leuchten alle drei LED’s. Nach dem Konfigurieren so lange warten, bis die drei LED’s erloschen sind, dann die Box aus- und wieder einschalten.

Target Tastenbezeichnung

Die Tasten sind oben abgebildet. Ich habe sie nicht beschriftet, da ich das im Dunklen sowieso nicht lesen kann. “Slew” schaltet von der Geschwindigkeit MAX (keine LED an) über Guide, Center zu Find um wieder bei MAX alle LED’s auszuschalten. Die LED’s schalten nur durch, wenn die Box richtig mit dem TargetClient verbunden ist. Wird “F” gedrückt und gehalten, kann über N und S der Focuser 1 gesteuert werden, mit W und O der Focuser 2. Diese Funktion habe ich allerdings nicht getestet.

Da die Slew-Rate nur beim Drücken der Taste an die Montierung gesendet wird, muss man aufpassen, wenn ein GoTo durchgeführt wurde. Dann stimmt die Slew-Rate nicht mehr mit der Anzeige der LED’s auf der Handbox überein. In diesem Fall einfach mit “Slew” durchtasten, bis die gewünschte Rate mit den LED’s angezeigt wird.

What people talk 14 Comments

14. September 2020 Marco

Moin super Projekt,
ich habe da nur ein Problem ich bekomme den Sketch nicht zum laufen.
Meine Versuche:
.BIN File auf ein Wemos D1 oder Nodemcu geflasht wird mir kein AccessPoint angezeigt. Oder eine Verbindung direkt zu Astroberry (10.42.0.1) wird auch nicht hergestellt.

Wenn ich die .ino flashe egal ob wemos D1 oder nodemcu bekomme ich nach den Flashen einen AccessPoint, ich versuche mich zu verbinden es klappt aber nicht und nach dem drücken der RST Taste verschwindet der AccessPoint komplett und erscheint nicht wieder

Habe auch testweise alles Libaries neu eingeladen

Was mir noch aufgefallen ist wenn ich mit der arduinojson 6.1x es Flashen möchte bekomme ich auch eine Fehlermeldung das der String dynamicjsonbuffer eine Arduino Version 5 sei und ich es auf 6 updaten soll. Habe es dann auf ArduinoJson 5.13 gedowngradet
Würde gerne deine Hamdbox verwendet wollen

Gruß
Marco

15. September 2020 othmar

Hallo Marco,
ich habe bei meiner Handbox, um das von Dir beschriebene Verhalten zu testen, das .ino mit arduino-1.8.13 kompiliert und in den Wemos D1 mini übertragen und vorher den gesamten Flash gelöscht. Somit sollte das Verhalten gleich mit Deinem Wemos sein. Dabei ist mir aufgefallen, dass der AP nur hochgefahren wird, wenn die drei Tasten “N”+”S”+”Slew” gleichzeitig gedrückt werden. Das Verhalten, dass der AP hochgefahren wird, wenn keine Konfiguration vorhanden ist, hatte ich ausgebaut. Bis allerdings Windows10 den AP sieht, dauert es immer etwas. Kannst Du den AP mit den drei Tasten aufrufen? Es sollten dann alle drei LED’s leuchten.

Achso, ja, bei mir ist ArduinoJson 5.13.5 installiert.

15. September 2020 Anonymous

Ah okay, ich habe noch keine Button angeschlossen, deswegen
Hast du zufällig ein Schaltplan für mich damir ich die Button die LEDs verdrahtet kann, wollte jetzt keine Platine kaufen?
Mfg
Marco

15. September 2020 othmar

Der Schaltplan ist unter https://github.com/stroblhofwarte/Target/tree/master/electronic zu finden. Es ist eine Eagle-Datei. Ich packe noch ein PDF von dem Schaltplan in das Verzeichnis, dann brauchst Du nicht Eagle zu installieren.

15. September 2020 Marco

Danke werde ich die Tage testen, setze gerade ein Indi Server auf und danach teste ich es mir der WiFi Handbox
Mfg
Marco

19. September 2020 Marco

Guten Tag, ich habe da nochmal eine Frage könnte man deine Platine auch mit ein Gamepad koppeln, so das man ein wifi gamepad für die telescope Steuerung hat?
Mfg
Marco

19. September 2020 othmar

Hmm… ich weiß jetzt nicht, welche Schnittstelle so ein Gamepad hat. Kann ich mir irgendwo mal anschauen, welches Gamepad Du meinst? Ich hatte mal über eine Joystick-Steuerung nachgedacht, aber insgesamt benötige ich das Handpad nur noch in ganz seltenen Fällen, da die OnStep-Steuerung mit EKOS und PlateSolving sowieso immer Punktgenau das Objekt in die Mitte bugsiert.

20. September 2020 Marco

Guten Abend,
habe jetzt die .bin Datei auf den Wemos geladen,Buttons angeschlossen AccessPoint aufgerufen .Habe auch alles in der 192.168.4.1 Config Seite eingefügt.
Aber ich sehe die Handbox trotzdem nicht,Welche IP muss ich den vergeben in der Config eine für die Handbox oder die IP vom IndiServer.

TargetClient habe ich auch Compiliert und läuft,aber wiegesagt er findet die Handbox nicht

20. September 2020 othmar

Da ich die Handbox nur noch direkt als Client von OnStep betreibe, muss ich das ganze nochmal aufbauen und mir zu gemüte führen, wie das war. Ich hoffe, ich schaffe das morgen. Alles weiter dann hier bei den Kommentaren.

Ich habe das jetzt nochmal ausprobiert, funktioniert eigentlich wie erwartet. Wichtig ist, dass die die Handbox, der INDI-Server und der Rechner, auf dem das Programm “TargetClient” läuft im selben Netzwerk sind und sich sehen können. In die Konfiguration der Handbox (die Website unter 192.168.4.1) ist die IP-Adresse der Handbox einzutragen, welche sie im normalen Betrieb haben soll. Wird z.B. das 192.168.32.0-Netzwerk verwendet, hat der INDI-Server z.B. die Adresse 192.168.32.8, der Rechner, auf dem TargetClient läuft z.B. 192.168.32.10 und die Handbox wird z.B. auf IP 192.168.32.20, Gateway 192.168.32.20 und Netmask 255.255.255.0 konfiguriert, dann muss in der TargetClient-Software ein Profil für den INDI-Server 192.168.32.8, Port 7624 eingerichtet werden und dann, wenn das Profil aktiv ist, die Handbox mit 192.168.32.20 angegeben werden.

21. September 2020 Marco

Also muss in der Config IP und Gateway die selbe IP verwendet werden?
Ich dachte ich muss da die IP von Router (Gateway) eintragen z.b 192.168.188.1
Mein IndiServer und der Targetserver laufen auf ein Rechner z.b 192.168.188.109

Mfg
Marco

21. September 2020 othmar

Ich habe das immer so gemacht, in dem Netz hatte ich keinen Gateway.

21. September 2020 Marco

Super Danke,läuft jetzt bei mir 🙂
Ich habe Kstars am läufen ,wenn ich nun den Focuser testen möchte zeigt er mir nix an wegen den Steps oder ist die Funktion nicht mehr freigeschaltet

Habe alles im Targetclient deklariert
Telescope LX200 GPS
Focuser Myfocuser2

21. September 2020 othmar

Glückwunsch! Freut mich, dass es jetzt zwei von den Handboxen gibt! Mein Problem ist, dass ich noch keinen Motor-Focuser habe. Deshalb ist dieser Teil nur “blind” programmiert, aber nicht getestet.

21. September 2020 Marco

Ich hatte jetzt auch kein Stepper dran, ich dachte vielleicht das man etwas in kstars sieht bezüglich steps
Mfg
Marco

Tell us about your thoughtsSchreibe einen Kommentar zu othmar Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Back to Top
Close Zoom
Context Menu is disabled by theme settings.