Arduino Mega Goto

  • Hallo,


    nach dem ich letztes Jahr versucht habe auf einem Arduino Uno
    eine GOTO-Steuerung mit dem LX200 Protokoll zu basteln und ich
    leider an die Speichergrenzen des UNOs gestossen bin, habe ich mir nun einen Arduino Mega mit Touchscreen besorgt.


    Mein Ziel ist es meine alte LX50 damit zu steuern und die Magellan II
    zu ersetzen.
    Dabei werde ich versuchen die Positionierung und Ausrichtung anstatt mit Winkelencodern mit einem Accelerometer zu bewerkstelligen.
    Mal gucken.


    Im Augenblick verwendete Komponenten:
    - Arduino Mega 2560 Clone von Saintsmart mit Touchscreen
    - PCF8574 für die Einstellung und Freigabe der Schrittmotoren
    - 2 Pollolu Schrittmotortreiber A4988 mit maximal 2A Phasenstrom
    - Eine DS1307 kompatible RTC-Clock mit Batteriepuffer
    Fehlen tut noch die MPU6050.


    Was im Augenblick funktioniert:
    Eingabe und Speicherung von Lokaler Uhrzeit, Sommerzeit, Längengrad, Breitengrad, Höhe, Schrittmotorauflösung pro Achse, Getriebeübersetzung pro Achse, Schneckenübersetzung pro Achse.
    Speicherung der Parameter in INI-Datei auf SD-Karte
    Berechnung der Nachführfrequenz, Berechnung der lokalen Sternenzeit
    und den julianischen Tag.
    Nachführung geht nun wohl seit gestern auch.


    Als nächstes bastele ich eine kleine Testmontierung zum ausprobieren.



    Hier mal ein Bild vom Kabbelwirrwar auf meinem Tisch:



    Und hier ein Bild vom Startbildschirm des Touchscreens:



    Viele Grüsse


    Peter

  • Hallo Peter,


    es freut mich riesig dass du noch dabei bist, habe mit dir nicht mehr gerechnet ;)
    Meine Arduino Steuerung funktioniert sehr gut, bin mit goto fast durch.
    Getestet habe ich es bisher mit Stellarium und Guide 9. Beide funktionieren problemlos.
    Leider klappt es bei mir mit Cartes Du Ciel nicht auf Anhieb :(


    Grüße
    Igor

  • Hallo Igor,


    manchmal ist es gut, etwas mal eine Zeit an die Seite zu legen.
    Zumal ich ja auch noch 'ne Steuerung mit RTAI-Linux habe.

    Bei mir war das Problem zuerst mit Ciel. Damit hatte ich angefangen die Kommandos zu testen.
    Das Problem war bei mir, dass die Programme bei jedem Befehl neu connecten und damit den Arduino
    immer zurückgesetzt hatten. Da musste ich (auch am Mega) den Reset-Jumper durchtrennen und extern rausführen.
    Danach ging es.
    Ich hatte mir auch eine Meade-Steuerung geliehen, um zu gucken, was die anders macht.


    Viele Grüsse


    Peter

  • Hallo Peter,


    hm, komisch, ich habe bei Stellarium so gut wie keine Probleme.
    Habe keine Änderung an Arduino gemacht.
    Hier ist zum Beispiel eine Stellarium Logdatei:

    http://www.ipaste.org/raw/QEj


    Grüße
    Igor


    EDIT: jetzt verstehe ich was du mit dem resetten meinst.
    Du meinst wohl das DTM Pin und Reset Pin was Arduino zum Uploaden benutzt.


    Komischerweise hat diese bei mir unter Stellarium keine Auswirkung.

  • Ich bin echt gespannt wie du es mit Accelerometer machen willst.
    Ob du die Genauigkeit erreichen kannst?


    Bei meine erste Arduino Steuerung war ich immer der Takt / Step Geber, und habe je nach gesamte Untersetzung die Motoren in passenden Moment mit step, step, step, bewegt.
    So habe ich auch die Schritte immer mitgezählt und wusste wo ich bin.


    Mein heutiger Treiber hat zum Glück selber ein Schritte-Zähler und meine Montierung kann nur über die Motoren bewegt werden.
    So weis ich immer wo ich bin.
    Der haken an internen Zähler ist dass er fest ist (22 bit) und ich es immer wieder entweder passend zu gesamte Untersetzung reseten muss, oder eben immer rechnen ob er noch in "range" ist und zum Schluss berichtigen muss.


    Naja, aber es gibt noch jede menge an Sachen die ich selber noch machen muss.


    So z.B., fahre ich die DEC immer von -90 über 0 bis 90 Grad.
    Dass sind aber nur 180 Grad, der Rest wird über RA angefahren. Soweit die Theorie.
    Nun, für bestimmte Objekte / Koordinaten, will man nicht das die RA Achse nach unten Fährt und gegen die Beine trifft.


    Hier bin ich am testen, da ich bisher keine Uhr wie du habe, und keine Ahnung welche Datum oder die Uhrzeit ist, weis ich / Arduino auch nicht bis wohin ich fahren darf.


    Aber wie gesagt, goto war nicht so easy wie ich es mir am Anfang gedacht habe.
    Vor allem die Sachen wie schwenken, Ost oder West Himmel und und...


    LG,
    Igor

  • Hallo Igor,


    Auf das Accelerometer bin ich auch gespannt.
    Wenn es nichts taugt, habe ich ja nur 5 € vertan (und benutze ihn dann für den Quadrocopter)
    Vom Quadrocopter her weiß ich dass der Wii-Motion-Controller total sensibel reagiert.
    Aber mal gucken.


    Die Geschichte mit dem Reset:
    ich hatte mich gewundert, dass ich Seriell alle Befehle eingeben konnte und ordentliche Antworten bekommen habe.
    Habe ich es an Cartes du Ciel gehängt, kam im Log immer nur, dass es die Verbindung verloren hatte.
    Hatte ein bisschen rumgesucht und bin darauf gestossen, dass der Arduino bei jedem Disconnect vom Seriellen Port
    neu startet. Dies dient primär dazu den Arduino neu zu flashen.


    Die Dec und Ra fahre ich (bisher nur in meinem älteren RTAI-Programm) nicht über die
    ganze Achse, sondern ermittle den kürzesten Verfahrweg:


    Für die RA habe ich folgendes gewählt (ist jetzt aus meinem RTAI-Programm, kann aber wiederverwertet werden):


    // Differenz ausrechnen
    diffRA=newRAc -currentRAc;


    // eventuell kuerzeren Weg waehlen
    if (diffRA > 12) {
    diffRA= (24 - newRAc + currentRAc ) * -1;
    IDLog("(ISNewNumber) Fahrweg RA verkuerzen //Shortup the goto (negativ):%f\n",diffRA);
    }
    if (diffRA < -12) {
    diffRA= (24 - currentRAc + newRAc) ;
    IDLog("(ISNewNumber) Fahrweg RA verkuerzen //shortup the goto(positiv):%f\n",diffRA);
    }


    für die DEC bin ich folgenden Weg gegangen:
    diffDEC=(newDEC-currentDEC) * -1;

    // eventuell kuerzeren Weg waehlen
    if (diffDEC > 180) {
    diffDEC= (360 - diffDEC) * -1;
    IDLog("(ISNewNumber) Fahrweg DEC umgekehrt (negativ):%f\n",diffDEC);
    }
    if (diffDEC < -180) {
    diffDEC= (360 + diffDEC) ;
    IDLog("(ISNewNumber) Fahrweg DEC umgekehrt (positiv):%f\n",diffDEC);
    }


    So sollte die DEC und RA möglichst nicht tauchen gehen.... Kostet ja auch Zeit.



    Die RTC-Uhr am Arduino ist wirklich einfach via i2c eingehängt. Damit hab ich auf jeden Fall fast immer die richtige Zeit.




    Cu


    Peter

  • Hallo Peter,


    die RA mache ich genauso, aber die DEC ist mir bei deine Aufstellung nicht ganz klar.


    Stellarium meldet mir / uns Werte zwischen -90 und 90, also kann es nicht sein das irgendein Wert je > 180 wird oder < -180.


    Grüße
    Igor


    Edit:
    Da ich dein Thread nicht Kidnappen will, poste ich meine Bilder und Videos lieber in meinem alten Montierung Thread.
    Da habe ich ein kurzes Video hingestellt.

  • Macht Nichts, DEC Achse ist etwas problematisch.
    Dazu kommt auch noch dass je nach Teleskop Ausrichtung (Ost oder West) die DEC Achse unterschiedlich drehen muss ;)


    Wenn ich mir die ganze angefangene, und nie zu ende realisierte Projekte seit Jahren anschaue, wird einem klar dass die Thema Steuerung, doch etwas unterschätzt wird.


    Deswegen ist die Rückmeldung hier im Forum relativ gering, weil die meisten hier nicht glauben, dass es zu Ende gebracht wird.


    Deswegen freue mich dass du noch dabei bist und eben nicht im großen Kreis mit großen Plänen hier im Forum daran gehst.


    Grüße
    Igor

  • Die Sourcen aus der oberen Steuerung laufen mit meiner RTAI-Steuerung.
    Mit Ost und West-Ausrichtung hatte ich kein Problem, da ich das Teleskop oben ausgerichtet hatte.
    Aber Danke für den Tipp. Das könnte ich im Setup berücksichtigen.
    Meine jetzige Montierung ist allerdings eine Gabelmontierung.
    Da gibt's das Problem auch nicht.


    Viele Grüsse


    Peter

  • Für mich ist die Herausforderung diesen Arduino irgendwie unter Kontrolle zu bekommen
    und dabei meine C-Skills besser zu machen und einfach mal Dinge mit einem Rechner zu bewegen,
    anstatt berufsbedingt nur Dinge zu machen, die man nicht anfassen kann.


    An der RTAI-Geschichte fummele ich auch schon bald 10 Jahre lang rum.
    Eher aus der Not heraus, nicht zu viel Geld für eine Montierung auszugeben entstanden.
    Zu guter letzt mit selbst geschriebenen Kernelmodulen (ein für Goto, eines für die Nachführung) und fifos dazu
    und das ganze dann noch mit einer CNC-Schrittmotorkarte.


    Manchmal muss ich das ganze allerdings auch mal an die Seite packen. Frau, Kinder, Haus, Beruf....
    und andere Ideen, die warten


    Und jetzt liegen die kleinen Dinger hier herum. Ein Raspberry treibt auch schon sei Unwesen in meiner Astrohütte.


    lg


    Peter

  • Hallo
    ich habe mal eine Frage zum zum Verständnis : ein Microcontroller kann doch nur eine Sache in einer Zeiteinheit bearbeiten: will sagen , wenn er die Impulse für den DEC-Motor ausgibt
    kann er keine Impulse für den RA-Motor ausgeben. RA wird also nie haicht bewegt. Oder irre ich mich ? Wie habt ihr das gelöst ?


    Gruss Ulrich

  • Hallo ihr Beiden,
    und vielen Dank. Doch bleibe ich skeptisch was das Multitaskimg in diesem Fall betrifft, siehe Windows. Ich bleibe also ganz konservativ bei meiner Multiprozessorsteuerung , je ein Atmel für RA und DEC und einen Dritten für das Guiding und GOTO. Ein Display brauch ich auch nicht, ein Notebook ist immer dabei und CDC steuert Alles,
    Ich wünsche euch viel Erfolg,
    Gruss Ulrich

  • Hallo Ulli,


    Ich habe meine Steuerung mit vpower verglichen und sehe kein nachteil, ehe vorteile.


    Ich verstehe das Prinzip deine Steuerung nicht.


    Hast du Software dafür selber geschrieben?
    Ich meine auch goto mit ost/west Lage,Schwenk und allem drum und dran?


    Zeig mal was.


    Grüße
    Igor

  • Jo, das ist ein vernünftiges Beispiel.
    Da wurde an viele Sachen gedacht.


    Von der Prinzip her, deckt sich diese zu 60 % mit meine skript.


    Nur die 16 Mikroschritte sind viel zu wenig.


    Grüße
    Igor

  • Hallo,


    gestern habe ich endlich meine MPU6050 bekommen.
    Damit sollte man zumindestens schon mal sein Teleskop ordentlich eingenordet bekommen.
    Hier mal einige Werte aus den ersten Versuchen

    Kippwinkel Norden Polhöhe

    euler 74.26 -3.51 -16.31
    euler 74.30 -3.51 -16.32
    euler 75.53 -3.25 -16.48
    euler 75.56 -3.24 -16.48
    euler 76.84 -2.81 -16.53
    euler 76.86 -2.80 -16.53
    euler 78.11 -2.43 -16.60
    euler 78.14 -2.42 -16.60
    euler 79.39 -2.12 -16.72


    Damit sollte es auch Möglich sein, die RA und DEC bei Nachführung zu korrigieren


    cu


    Peter

  • Hallo Peter,


    Sehr Interessant!
    Ich habe mit eine zweite abgeschlachtete wii nunchuk es nicht vernuftig ausrichten können :(


    Wie hast du es getesten?
    An die Montierung schon befestigt gehabt ?


    Grüße
    Igor

  • Hallo Igor,


    ich habe es mit i2cdev und dazugehörigem mpu6050 Library ausprobiert.
    Ohne Montierung.
    Ich habe meinen Kindern nun erst einmal die Lego-Technik-Kiste entwendet und
    bastele damit eine Testmontierung.
    Eine eq3 wäre natürlich netter. Aber für einen Versuchsaufbau sollte es reichen


    Viele Grüsse


    Peter

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!