Beiträge von Flohbie im Thema „Arduino 1-Achsen-Steuerung“

    Hallo Igor,


    an die dynamische Anpassung des Schrittmodus je nach Geschwindigkeit hatte ich auch schon gedacht. Damit läßt sich bei gegebener Frequenz eine höhere Geschwindigkeit erreichen, ohne den Rundlauf im Nachführbetrieb einzuschränken.


    Wenn ich das richtig gerechnet habe, hast du eine Untersetzung von 960:1 ...das gibt sehr moderate Schrittgeschwindigkeiten. Schau dir mal die Untersetzung unserer Montierung an - 12840:1.


    Wenn ich mich nicht verrechnet habe und ich annehme, daß die 1700x bei dir im Vollschrittbetrieb laufen, hast du eine Schrittfrequenz von etwa 3,8kHz - etwa in dem Bereich lagt ich mit Float Operationen auch (ca. 3,4kHz).


    Mit dem optimierten Code schaffe ich jetzt eine Schrittfrequenz von fast 10kHz....und heute früh unter der Dusche hatte ich noch eine Idee, wie sich das noch weiter optimieren läßt. Damit müßte ich 10kHz knacken können. Die hohe Frequenz brauche ich auch, da ich gegenüber deiner Montierung die 12fache Schrittfrequenz benötige.



    Wenn er mit Last schneller drehen kann, bin ich mal gespannt, wie weit ich dann noch komme. Jetzt wird das Ganze aber erst mal in ein schickes Gehäuse gepackt und dann an der Montierung getestet.


    Gruß Stefan

    Hallo,


    hier mal wieder ein Update.


    (==>)Igor: Die Schrittsteuerung geschieht in einer timergesteuerten Interrupt-Routine, das Display wird im Main-Loop aktualisiert. Soll heißen, das Display bremst die Schrittmotorsteuerung nicht.


    Ich bin jetzt auf einen DRV8825 Treiber für den Schrittmotor gewechselt. Der erlaubt mir auch Mikroschritt-Betrieb, bis 1/32-Schritt (und ist auch einfacher anzusteuern). Der neue Treiber bringt einen mächtigen Gewinn! Beim Vollschritt ist bei ähnlichen (aber schon etwas höheren) Geschwindigkeiten Schluß. Im Halbschritt kommt er aber auf ca. die doppelte Geschwindigkeit (immer relativ zur Nachführgeschwindigkeit gerechnet).


    Jetzt war der Arduino wieder das Problem, daß die Schrittsteuerung nicht mehr hinterherkam. Ich hab da noch einiges optimiert. Den größten Gewinn hat der Verzicht von Float-Operationen gebracht. Durch den Wechsel auf Integer-Operationen (unter Inkaufnahme von Genauigkeitsverlust) erhielt ich schon alleine mehr als die doppelte (theoretische) Geschwindigkeit.


    Aktuell ist beim Halbschritt bei 110x Schluß (Motor setzt aus). Beim Viertelschritt komme ich auf 75x, bevor der Arduino wieder der limitierende Faktor wird.
    Durch Erhöhung der Spannung erreiche ich vielleicht noch 150x im Halbschrittbetrieb. Danach noch eine 1:2 oder 1:3 Übersetzung und ich erreiche angenehme Schwenkgeschwindigkeiten :)


    Hier mal ein kleines Video vom Prototypen


    Gruß Stefan

    Hallo,


    erst mal danke für die Links, werde ich mir am Wochenende anschauen.


    (==>)Harold: Gut geschätzt. Empirisch ermittelt haben wir die Übersetzung mit 12840:1.


    Die Montierung wird nur visuell genutzt, bzw. fotografisch höchstens für Mond/Planeten. Da kommt dann unsere Neuerwerbung drauf (Klick hier). Die Montierung läuft absolut butterweich. Die Welle läßt sich mit dem kleinen Finger drehen. Wie sich das verhält, wenn das Teleskop drauf sitzt, bleibt natürlich abzuwarten. Ob der Motor dann reicht, muß die Praxis zeigen.


    Ich bin jetzt schon ein Stück weiter. Statt dem L298 habe ich mir ein DRV8825 zugelegt. Der kann bis zu 1/32 Schritt - vorher ging nur Voll oder Halbschritt. Den Code vom L298 auf den neuen Treiber umzuschreiben war nicht schwer. Jetzt schaffe ich im Vollschritt schon 57fach, bevor man hört, daß der Schritte verliert (bei 14 V - Lipo-Akku).
    Beim Halbschrittbetrieb komme ich auf 55fach. Darüber hinaus überfordere ich den Mikrocontroller, also Code optimieren und so viel wie möglich aus der Interrupt-Routine raus werfen. Ansatzpunkt habe ich, aber das bedeutet noch mal einen größeren Umbau im Programm - könnte sich aber lohnen.


    An Getriebe habe ich auch schon gedacht, läßt sich ggf. über ein Zahnriemen umsetzen - wobei dann der Motor auch entsprechend mehr Last hat.


    Gruß Stefan

    Hallo,


    heute stelle ich auch mal ein kleines Projekt vor. Der Grund für dieses Projekt ist zum einen der Wunsch sich mit dem Arduino zu beschäftigen und zum anderen eine defekte Steuerung von einem Lidlscope. Die hat mal eine zu hohe Spannung abbekommen. :( ) Eine kommerzielle Steuerung wäre hier ein wenig viel des Guten.


    Ende letzten Jahren kam dann noch eine Montierung auf der Sternwarte dazu, die auch in einer Achse motorisiert werden sollte.


    Ziel war also eine Steuerung, die an verschiedene Montierungen anpassbar ist und am Ende auch noch günstiger sein soll, als vergleichbare kommerzielle Lösungen.


    Mikrocontroller-Programmierung war kein Neuland für mich, aber mächtig eingerostet (war Teil des Studiums). Es bot sich daher an, sich mit dem Arduino vertraut zu machen. In meinem Fall ein Arduino-Nano. Zur leichteren Bedienung kommt ein 16x2 LC-Display zum Einsatz und als Treiber für den Schrittmotor dient eine Doppel-H Brücke mit einem L298. Soweit die technische Basis.


    Der Prototyp sah dann so aus:


    Also "Motor" dienten hier noch LED's zur Überprüfung der Ansteuerung. Die Programmierung hat mich deutlich länger beschäftigt, als geplant. Die Motorsteuerung war hierbei noch eins der einfacheren Probleme. Die Menüsteuerung hatte mich viel mehr geärgert.


    Letzte Woche war dann die Programmierung soweit abgeschlossen und ist über's Display konfigurierbar. Die Funktionen im Überblick:


    - Schneller Vor- und Rücklauf (Geschwindigkeit einstellbar)
    - Siderisch/Lunar/Solar-Geschwindigkeit
    - Begrenzung des Schnellaufes einstellbar 2...255fache Nachführgeschwindigkeit
    - Beschleunigung beim Schnellaufes einstellbar 1...9 (extrem gemächliche Beschleunigung - sehr schnelle Beschleunigung)
    - einstellbare Schrittfrequenz in Hz (der wohl wichtigste Parameter)
    - Schrittmodus: Vollschritt/Halbschritt


    (Weitere Bilder folgen in den nächsten Tagen)


    Das ist am Ende schon deutlich mehr, als die günstigen kommerziellen Nachführungen bieten. Ich hab's noch nicht die komplette Teileliste zusammengestellt, aber auch preislich dürfte ich drunter oder nur knapp über den kommerziellen 1-Achsen-Schrittmotor-Steuerungen sein.


    Aktuell kämpfe ich ein wenig mit den Schrittmotoren. Zum Test habe ich mir verschiedene Motoren bestellt (Nema 17). Alle versagen bei etwa im gleichen Frequenzbereich den Dienst (bei 30V etwa bei einer Schrittfrequenz von 1,3-1,5 kHz. - ca. 420 rpm). Höher als 35V wollte ich nicht gehen, damit das über ein kleines Steckernetzteil betreibbar bleibt.


    Beim Lidlscope ist mir der Schnellauf relativ egal, hier kann ich die Klemmen lösen und manuell Grobeinstellung vornehmen. Für die geplante Motorisierung der Sternwarten-Montierung ist das aber ein dickes Problem. Die RA-Achse ist fest mit dem Schneckenrad verbunden, kann also nur über den Motor bewegt werden. Bei der aktuellen Frequenz komme ich so auf ca. 40fache Nachführgeschwindigkeit - beim Umschwenken um 180° kommt da richtig Freude auf....dürften 18 Minuten sein.


    Hat jemand Erfahrungen mit Schrittmotoren und kann mir hier hilfreiche Tips geben?
    (Gibt es "Highspeed-Stepper" - die ins Budget passen?)
    Funktionieren andere Treiber (z.B. A4988, DRV8825) besser?
    Wie sieht es mit Alternativen und deren Ansteuerung aus (Servo, Gleichstrommotor)?
    Optimal wäre einen Bereich von 6-3000rpm.


    Gruß Stefan