7 Schrittmotoren gleichzeitig unterschiedlich ansprechen

Hallo Leute,
ich bin neu hier und habe so gut wie kein Fachwissen über Elektronik & Co., deshalb hoffe ich hier auf ein paar kompetente Eingeweihte, die mir weiterhelfen können. Im letzten halben Jahr habe ich die Mostly Printed CNC (MPCNC) mit einem arduino uno und Estlcam umgesetzt. Das könnte ich allerdings nur, weil es darüber sehr viele gute Anleitungen gab.
Nun bin ich in der Anfangs-Entwicklungsphase für ein zweites Projekt. Ziel der kompletten Umsetzung ist August 2021. Es soll eine kleine Zeichenmaschine werden (kein Plotter), eher so etwas wie eine Spirograph.
Hierfür werden sieben Nema17 Schrittmotoren (Stepper Motor Bipolar 59Ncm 2A; 1,8 deg (200 Stufen / Umdrehung) - Phasenwiderstand: 1.4ohms) verbaut, die unterschiedliche Aufgaben ausführen sollen und dadurch jeder einzeln irgendwie angesteuert werden muss. Über das Mechanische des Projekts bin ich mir größten Teils im klaren, aber halt nicht über das ganze Elektronische. Da ich weiß, wie viel Zeit es braucht um sich einzuarbeiten, will ich mal heute schon anfangen, mit Fragen stellen und lernen.
erste Frage: Welches Board und welche Shield und welche Motortreiber werden benötige um 7 Nema Schrittmotoren (jeder hat unterschiedliche Aufgaben) daran gleichzeitig anzuschließen?
**zweite Frage: **Wie werden sie daran Angeschlossen (ähnlich wie bei der MPCNC zum Beispiel)? Gibt es dafür Anleitungen oder Tutorials?
dritte Frage: Wie kann ich die Motoren jeweils einzeln ansprechen? Sprich, verschiedene Geschwindigkeiten vorgeben, das reicht bereits. Gibt es dafür Apps/Software etc. oder händisch mit diversen Code.
vierte Frage: Kann man evtl. auch elektr. Geschwindigkeitsregler einbauen (wenn ja welche?) die angesprochen werden, so dass der Programmiercode evtl. nur einmal entworfen wird und die Regler den Rest (Zustand: An,Aus,Drehzahl) übernehmen?
Da ich die Vielfalt und Mächtigkeit des Ardunio noch nicht einschätzen kann, bitte ich um Verzeihung falls meine Erwartungen daran zu kühn sind.
Ich freue mich auf Eure Hilfe

Frage vorab: Hat Du Deinen Post von einem Handy verfasst?

spirograph:
Gibt es dafür Apps/Software etc. oder händisch mit diversen Code.

Kann man evtl. auch elektr. Geschwindigkeitsregler einbauen (wenn ja welche?) die angesprochen werden, so dass der Programmiercode evtl. nur einmal entworfen wird und die Regler den Rest (Zustand: An,Aus,Drehzahl) übernehmen?

Also Apps... aehm. Der (blanke) Arduino ist ein Standalone ohne Netzwerkzugang.... Von der Ausnahme abgesehen.

Und ja. Du kannst so ziemlich alles mögliche an Bedienung von extern basteln.
Kleiner Display, ne Hand voll Tasten - selbst sowas wie ein Joystick geht.

Ich kenne nur den Panthograf :wink:
Hab tatsächlich das wiki nach Spirograph befragen müssen.
Davon gibt es zwei - Deiner wird sich dann wohl eher in der Geometrie finden...

Nette Aufgabe.

Bei den Motortreibern mit sieben hast Du noch Luft.
Steuern lässt sich jeder einzeln. sowohl Geschwindigkeit als auch Richtung.
Musst nur drauf achten, das Dein Code nicht blockierend ist. Also kein delay() verwenden und auch bei anderen Schleifen-Konstrukten (while etc...) drauf achten, das Du in der Zeit nicht den Kontakt zu den Antrieben verlierst. Besser gar nicht verwenden...

Na dann viel Erfolg!

  1. Mega2560, sieben DRV8825

  2. MobaTools

  3. je Motor eine MobaTools-Instanz, also sieben Instanzen.

  4. Poti oder Drehimpulsgeber

Ob die MobaTools sieben Motoren in der gewünschten Geschwindigkeit steuern können, wäre zu überprüfen.

1 Like

my_xy_projekt:
Frage vorab: Hat Du Deinen Post von einem Handy verfasst?

Nein, normal am PC. Warum?
Das Ganze soll eine Mischung aus Panthograf und Spirograph werden, ja Geometrie ist das Stichwort. :slight_smile:

my_xy_projekt:
Musst nur drauf achten, das Dein Code nicht blockierend ist. Also kein delay() verwenden und auch bei anderen Schleifen-Konstrukten (while etc...) drauf achten, das Du in der Zeit nicht den Kontakt zu den Antrieben verlierst. Besser gar nicht verwenden...

Vielen Dank übrigens für deine Antwort und danke für den Tipp, aber dass ist noch viel zu früh für mich um die Info zu verarbeiten. Mal sehen, wo ich mir das für später abspeichere.
Gut wäre es für mich, damit ich das Ganze begreife, wenn wir die Fragen nach ihrer Nummerierung abarbeiten könnten.

agmue:

  1. Mega2560, sieben DRV8825

  2. MobaTools

  3. je Motor eine MobaTools-Instanz, also sieben Instanzen.

  4. Poti oder Drehimpulsgeber

Wow vielen Dank, da ist ja mein Wusch fast gleich erfüllt worden. :slight_smile:
zu 1.) Wenn ich den Mega2560 und die DRV8825 Treiber benutze, brauch ich doch bestimmt auch ein Shield?
Auf welchen haben denn 7 Motorenanschlüsse platzt? Oder verstehe ich da etwas falsch?

agmue:

  1. Mega2560, sieben DRV8825

  2. MobaTools

  3. je Motor eine MobaTools-Instanz, also sieben Instanzen.

  4. Poti oder Drehimpulsgeber

Ob die MobaTools sieben Motoren in der gewünschten Geschwindigkeit steuern können, wäre zu überprüfen.

Sieben Motoren parallel, verschiedene Schrittweiten, verschiedene Geschwindigkeiten. Das ist verdammt viel. Kann ich mir nicht vorstellen dass das geht. Also jedenfalls nicht wenn man kurze Schrittweiten braucht. Wenn jeder Motor auch noch sagen wir mal 6400 Schritte je Umdrehung machen soll. Und auch noch recht flott unterwegs sein soll.

spirograph:
Nein, normal am PC. Warum?

Weil wenn ich drauf antworte Deine Message komplett verkackt ist.
Du benutzt keinen Mac?

Um Dir mal zu zeigen, wie das aussieht:

Das Ganze soll eine Mischung aus [color=#222222]Panthograf  und[/color][color=#222222] Spirograph[/color][color=#222222] werden, ja Geometrie ist das Stichwort. [/color][color=#222222]:) [/color]Vielen Dank

Das ist nicht lesbar - sowas gibt es seit kurzem immer wieder - daran bist Du selbst nicht schuld. Mach Dir keine Gedanken darüber. Ist nur halt die Suche nach dem "Warum".

Zurück zum Thema.
Also der Mega und der Motortreiber ist schon genannt.
Der/die Anschluss/e ist/sind dokumentiert. Da gibt es "Unmengen" an Tut's... Notfalls wenn es konkret wird hier nochmal nachhaken.

Frage 3 ist beantwortet und Frage 4 werden Zustandsautomaten - also abhängig vom Eingangssignal einen bestimmten Punkt im Code abarbeiten.

Nichts, was Dich aufregen muss :wink:

spirograph:
zu 1.) Wenn ich den Mega2560 und die DRV8825 Treiber benutze, brauch ich doch bestimmt auch ein Shield?
Auf welchen haben denn 7 Motorenanschlüsse platzt? Oder verstehe ich da etwas falsch?

Ein Shield braucht man nicht. Drei Pin´s pro Treiber, und alles ist gut.

Franz54:
Sieben Motoren parallel, verschiedene Schrittweiten, verschiedene Geschwindigkeiten. Das ist verdammt viel.

Ich hab schon mal einen (englisch???sprachigen) Thread mit 10 Steppern gesehen, die (fast?) gleichzeitig laufen sollten.

Es ist ja nur mal eine Frage - so zumindendest mein Verständnis - ob es möglich ist 7 mit unterschiedlichen Instruktionen zu betreiben. Und da spricht IMHO nichts dagegen.

Wenn jeder Motor auch noch sagen wir mal 6400 Schritte je Umdrehung machen soll.

Soll er nicht.
Steht oben. :wink:

agmue:
Ob die MobaTools sieben Motoren in der gewünschten Geschwindigkeit steuern können, wäre zu überprüfen.

Das wäre eine wichtige Frage: - welche Geschwindigkeiten / Stepraten werden gefordert.

spirograph:
Wie kann ich die Motoren jeweils einzeln ansprechen? Sprich, verschiedene Geschwindigkeiten vorgeben, das reicht bereits.

Laufen die Motore dann unabhängig voneinander? Bei CNC ist da ja z.B. anders, da müssen die Motore exakt synchronisert werden, damit z.B. der Fräaser eine vorgegeben Kurve abfährt.

Ein bisschen mehr Info zu dem, was da entstehen soll, wäre nicht schlecht.

MicroBahner:
Das wäre eine wichtige Frage: - welche Geschwindigkeiten / Stepraten werden gefordert.

Also für ein Mandala brauchts keine Lichtgeschwindigkiet :wink: :wink: :wink:

Laufen die Motore dann unabhängig voneinander?

Das ist ne gute Frage - da erkennt man, wer sich auskennt...
Da dürfte das Eine oder andere Sync drin sein.

Bei:

(200 Stufen / Umdrehung)

Dürfte aber die Genauigkeit schon keine sooo grosse Rolle spielen.
Womit ein (Teil-)Async ohne weiteres möglich sein dürfte.

So wie ich den TO verstanden habe, ist er noch in der Findungsphase, was möglich ist.

Gut wäre es für mich, damit ich das Ganze begreife, wenn wir die Fragen nach ihrer Nummerierung abarbeiten könnten.

Und da ist viel Spielraum.

spirograph:
zu 1.) Wenn ich den Mega2560 und die DRV8825 Treiber benutze, brauch ich doch bestimmt auch ein Shield?

Für CNC gibt es Shields für bis zu vier Achsen, die sind für Deine Anwendung aber eher hinderlich. Also nein, wurde ja schon geschrieben.

my_xy_projekt:
Also für ein Mandala brauchts keine Lichtgeschwindigkiet :wink: :wink: :wink:

Das ist richtig, aber ich tippe mal darauf, daß es Schrittmotore mit Getriebe werden könnten und daß einige, wenn nicht alle Achsen synchron laufen sollen. Da ist ein Arduino schnell mal überlastet, wenn viele Berechnungen notwendig sein sollten. Wenn jede Achse mit einer festen Geschwindigkeit dreht, könnte es möglicherweise was werden. Auf jeden Fall sehe ich einen Arduino an seinen Grenzen.

Die MobaTools werkeln auch auf Arduino Due ESP32, ESP8266 und STM32, aber dann könnte der Programmierer möglicherweise an seine Grenzen geraten :wink:

Ja, das mit den 200 Schritten pro Umdrehung habe ich überlesen. Ist immer noch eine Mamutaufgabe, wenn sie sauber Synchron drehen sollen. Ich weiß nicht mehr wo das Problem genau war, aber ich habe nur drei Motoren mit kleinen Schritten bis 6400 pro Umdrehung und recht flott und sauber synchron drehen lassen. Also immer Motor 1 bis 3 einen Schritt, dann wieder 1 bis 3 einen Schritt, so dass alle Motoren am Ende nach 32000 Schritten gleichzeitig ihren 32000sten Schritt machten. Dann Stopp und das selbe wieder zurück. Das ganze mit Start und Stopp Rampe. Das brachte ich mit 4 Motoren nicht mehr hin. Da kam alles aus dem Tritt. Aber ich weiß nicht mehr wo mir die Zeit ausging. Ich weiß nur noch dass die Synchronität nicht mehr möglich war. Ich hatte es auch genau gefunden warum es nicht mehr gehen konnte. Aber ich kriege das Problem jetzt gerade nicht auf den Schirm :confused: :confused:

PS: Das war natürlich nicht mit MobaTools, oder sonstigen Programmen die im Hintergrund werkeln. Sondern ich wollte jeden schritt selber machen. Ging ja nur ums lernen.

agmue:
Die MobaTools werkeln auch auf Arduino Due, ESP8266 und STM32, aber dann könnte der Programmierer möglicherweise an seine Grenzen geraten :wink:

Wenn Du 'Arduino Due' durch 'ESP32' ersetzt stimmt's :wink: - Der Due steht noch auf der Warteliste 8)

Die Synchronität ist vor allem dann ein Problem, wenn es um Wege geht. D.h. die Stepper haben unterschiedliche Wege abzufahren, sollen aber gleichzeitig ankommen. Insbesondere wenn Rampen im Spiel sind ist das anspruchsvoll - da habe ich auch noch keine Lösung. Ohne Rampen ist es rel. einfach die notwendigen Geschwindigkeiten auszurechnen, und dann beide Stepper synchron zu starten.
Das reine synchrone Drehen sollte nicht so das Problem sein. Wenn die gleiche Steprate eingestellt ist, drehen die auch gleich schnell.

Verwechslung mit dem Leonardo, sorry :-[

Wobei der Leonardo leistungsmäßig gegenüber den Standard-Arduinos nichts bringt. Und der ESP32 stimmt ja auch noch nicht ganz - aber bei mir funktioniert's schon, und auf GitHub gibt's die Variante auch bereits (im Development-Branch). Nur noch nicht im Bibliotheksverwalter.

MicroBahner:
Die Synchronität ist vor allem dann ein Problem, wenn es um Wege geht. D.h. die Stepper haben unterschiedliche Wege abzufahren, sollen aber gleichzeitig ankommen. [...]
Ohne Rampen ist es rel. einfach die notwendigen Geschwindigkeiten auszurechnen, und dann beide Stepper synchron zu starten.

Das dürfte beim zeichnen geometrischer Figuren ja nu das geringste Übel sein :wink:

Ok - ich bin dann mal auch raus. Der TO wird hoffentlich noch das eine oder andere Detail nachwerfen.
Zumindest seine Eingangsfrage ist - hoffentlich - beantwortet :wink:

Puh - Vielen Dank Leute für die vielen Antworten, aber um die Zeit bin ich etwas überfordert. Also bis morgen und vielen Dank an die Community.

Jetzt bin ich neugierig. Zu was brauchst Du 7 Motore?
ICh kann mir keine Mechanik vorstellen wo man bei einer Zeichenmaschine so viele Motoren braucht.
Ok es gibt vielachsige CNC Fräsen wobei
3 Achsen für x,y,z
2 Achsen Für 2 Drehbewegungen
eine für den Fräsmotor, der aber nicht ein Schrittmotor sein wird.
Automatisiet kann man noch einen Drehtisch
und einen für den automatischen Werkzeugwechsel.
Noch dazu Drehfutte automatisch schließen.

Aber das meiste braucht man zum Zeichnen nicht.

Auch braucht man nicht für alle Bewegungen Schrittmotre. ZB Stift aufheben kann ein Servo auch.

Grüße Uwe

Puh,puh ich weiß jetzt gar nicht, wenn ich antworten oder fragen soll. Bei manchen weiß ich nicht mal wo von ihr redet.
Das Ganze liegt sicher auch daran, das ich vor 4 Jahren einen Impfunfall erlitten habe und seit 2 Jahren berentet bin. Mein Kopf will manchmal nicht so, das mal so neben bei. Für mich heißt das, ich brauche für alles mindestens viermal so lang.

Gut, ich merke das es zwei Lager gibt, die einen sagen es geht und die anderen dass das Board oder der Code es nicht schafft.
Vielleicht ist das auch alles überdimensioniert und da könnt ihr mir gerne reinreden, das andere Komponeten oder Programme besser wären. Damit ihr überhaupt wisst, wo von ich spreche, habe ich eine kleine Skizze erstellt, die das ungefähre Prinzip erklären soll.


Wie ihr seht, sind Motor 1-4 Minimum und schön wäre, wenn 5-7 auch umzusetzen ginge.
Motor 1-4 sind also starr und Motor 5-7 auf der X oder Y-Achse unterwegs.
(Ganz nebenbei: Ich müsste das Ganze mal animiert simulieren. Kennt jemand eine einfache kostenlose Simulationssoftware?)

P.s. Ich kann jetzt erstmal nicht die nächsten Stunden, weil gleich die Schwiegermutter kommt. :o