hi Dirk,
Das sieht ja gut aus. Viel Arbeit!
stimmt, aber wenn ich etwas habe, dann ist es zeit...

Die Steppermotoren bewegen pro Schritt der Ansteuerung das Rad um einen bestimmten Winkel, z.B. 1° (je nach Motortyp).
Dann wären also 360 Schritte eine Umdrehung und die Entfernung wäre zu berechnen.
so war meine frage eigentlich nicht gemeint, diese berechnungen habe ich bereits angewendet, bzw. die entspreche library verwendet...

Mir ging es um folgenden, konkreten fall: Die ersten vier stepper, die ich eingebaut habe, liefen alle schön gleichmäßig, wahrscheinlich alle aus dem gleichen fertigungslos. Nachdem eines ausgefallen war - keine ahnung warum (vielleicht doch zu billig) habe ich es ersetzt, seitdem zieht der robby beständig nach rechts.
Es müsste also eine überwachung her und zwar nicht auf der outputseite, sondern auf der seite wo die stepps entstehen. Das sehen aber die von der lib her vorgesehen funktionen offensichtlich nicht vor...

das hier wäre die funktion für den fall, dass alles gut läuft, wo man nicht eingreifen muss, wo aber auch das eingreifen relativ schwierig wird:
Code:
    for (idx = stepper_VL; idx < stepper_MAX; idx++) //alle Stepper vorwärts
    {
      stepper[idx].setRPM(12);
      stepper[idx].setSPR(4075.7728395);
      stepper[idx].setDirection(CW);
      stepper[idx].rotateDegrees(60); //rotate(1)
    }
das ist die weniger elegante variante, vo aber alle Stepper einzeln angepasst werden können:

Code:
    stepper[stepper_VL].setRPM(12);
    stepper[stepper_HL].setRPM(12);
    stepper[stepper_HR].setRPM(12);
    stepper[stepper_VR].setRPM(12);


    stepper[stepper_VL].setSPR(4075.7728395);
    stepper[stepper_HL].setSPR(4075.7728395);
    stepper[stepper_HR].setSPR(4075.7728395);
    stepper[stepper_VR].setSPR(4075.7728395);


    stepper[stepper_VL].setDirection(CW);
    stepper[stepper_VL].rotateDegrees(30);
    stepper[stepper_HL].setDirection(CW);
    stepper[stepper_HL].rotateDegrees(30);
    stepper[stepper_HR].setDirection(CW);
    stepper[stepper_HR].rotateDegrees(30);
    stepper[stepper_VR].setDirection(CW);
    stepper[stepper_VR].rotateDegrees(30);
beide varianten lassen sich aber - so wie sie sind - nicht im laufendem betrieb an eine neu entstandene situation "automatisiert" einstellen. Z.b. wenn der gyro meldet - "achtung, abweichung vom nordkurs, gegensteuern!"...
Ginge das so, dass ich die werte in den klammern durch variable ersetze und die je nach situation ändere?

frohe ostern!