Projekt Camera-Slider, Schrittmotor und der EasyDriver

Hallo Freunde,

ich suche einen Ansatz - oder mehr - um meinem Schrittmotor das behäbige Abbremsen und Beschleunigen bei zu bringen.
Bislang nutze ich die AccelStepper-Class, nur ist da die "Ramp" sehr unsauber.

Als Motortreiber haben ich den EasyDriver 4.3, also beschränkt sich meine Ansteuerung auf HIGH/LOW, alles weiter übernimmt der easyDriver.

Hat jemand so etwas schon mal umgesetzt oder kann mir mit einer lustigen Formel auf die Sprünge helfen?
Hintergrund: Ich baue gerade einen Kamera-Slider, also eine Schiene auf der ein motorisierter Schlitten fährt (ja, ich weiss - etwas ganz neues)...

Stand der Dinge: Mechanik ist fertig: DIY - camSlider - Making of - Part I - Mechanics on Vimeo

Hallo derHerrKohler
Wollte mal eine S-förmige Geschwindigkeitkurfe in der Beschleunigungsfase programmieren ( Parabelförmige Geschwindigkeitskurve bis zur Mitte der beschleunigung dann umgekehrte Parabel bis zur Sollgeschwindigkeit). Das dann eine lineare Beschleunigungzunahme bis zur Hälfte der Beschleunigungsphase ist und dann nimmt die Beschleunigungszunahme wieder bis zum sollwert ab. Bin dann aber stecken geblieben. Mal sehen ob Deine Frage mir eine Geistesblitz bringt und mir eine Lösung einfällt.
Viele Grüße Uwe

Hallo!
Hab leider nix zum Testen hier, aber ich hab mal was zusammengehauen.
Eine Beschleunigung bekommst du ja hin, indem du die Pausen zwischen den Schritten verkürzt.
Das könnte so relativ einfach gehen:

// step_pin = pin connected to EasyDriver->step
// steps = steps to make while accelerating
// max_delay = longest time to pause between steps (depends on your final speed...)

void function accelerate(int step_pin, int steps, int max_delay)
{
  float ttp = 50; // ttp = time to pause
  
  for(int i=steps; i>0; i--)
  {
    ttp = ((max_delay/steps)*i);
    digitalWrite(step_pin, LOW);
    delay(ttp);
    digitalWrite(step_pin, HIGH);
    delay(ttp);
  }
}

Vielleicht ist das auch totaler Murks, fiel mir nur gerade so ein.

Bin immer noch angetan von dem schönen Schlitten... :smiley:

Hallo Uwe, hallo another_one,

danke für Eure Denkanstöße,
ich werde das am Wochenende mal testen - s-curve wäre natürlich eine feine Sache, das werde ich für die Version 2 auch andenken.

@another_one: Danke, ich finde den Schlitten auch schön, aber warte mal auf die Steuerungsbox, die ist wirklich schön geworden :wink:

So, der nächste Schritt ist getan, alles verkabelt und in ein Gehäuse gebaut.

Wow, sehr schönes Gehäuse... :smiley:

Und der gute "Racing" Sprühlack. Hast du den auch vom Penny? ;-D

haha, danke.

Ich muss dich enttäuschen, der Rally-Lack ist von Hagebau. Trotzdem recht schwarz.

Hast Du schon mal das hier angeschaut: Loading...?

OpenMoco kenne ich, eh klar!
so, ich habe mal ein paar Tests gemacht, falls es interessiert gibt's was zum gucken...

Hallo Frau Kohler !

Ich möchte mich über Ihren Mann beschweren, der Schrumpf-Schläuche mit dem Feuerzeug bearbeitet !
Dabei geht die innere Isolierung flöten, und im Falle einer Scheidung haben Sie nix außer einem abgebrannten Haus zu erwarten.

:smiley:

MfG

( Aber die Videos sind schon cool ! - Scheiß auf das Haus ! )

Ich hielt das für sicherer als mit meinem Binfort 2000 Heißluftföhn.

Mehr Power Herr Taylor !!!

Ich benutze dazu einen Fön mit 5 Stufen, auf Stufe 5 ( und meine Braut findet das gut ! )

Mit "Besser als dieser Farb-Brenner" meint sie Brüder Mannesmann 49500 Heißluftpistole | Testberichte.de eine Heißluft-Pistole ( nicht von Binfort )
die allerdings stinkt ( ist mir egal, ich bin Pfeifen-Raucher ).

MfG

Ich werde das weiter mit meinem Feuerzeug machen, das ist irgendwie mehr Rock'n'Roll.

Das klingt so wie:

Ein Ostfriese wettet bei "Wetten Das ?", dass er 11 Bayern-München-Spieler innerhalb einer Minute mit seinem Tee-Löffel erschlagen kann.
Gottschalk: "Und wenn du es nicht schaffst ?"
Ostfriese: "Dann nehme ich den Spaten."

MfG: Deine Videos sind schon Rock'N Roll !

Hahaha, das ist schön.
ps: Danke... vielleicht werde ich demnächst mal ein "weniger Rock'n'nRoll video" machen.

So, für die interessierten unter Euch:
Ich habe mal ein paar Fahrten gemacht, gerade im unteren Geschwindigkeitsbereich war es ja sehr kritisch. Jetzt ist das alles schön sauber wie ich finde:

Sehr cool, funktioniert ja wirklich prima.

Ich hoffe wir bekommen irgendwie, irgendwo noch mehr Ergebnisse mit dem Schlitten zu sehen...

Ja, ich bin auch ganz glücklich - jetzt fehlt nur noch die Acceleration/Deacceleration-Kurve...
Da beiss ich mir aber die Zähne dran aus, zickiges Biest, zickiges!

Hallo Herr Kohler, hallo Kumpane von Herrn Kohler,

erstmal will ich loswerden, daß ich Euer Projekt und insbesondere die Offenlegung als Openhardware klasse finde.

Ihr habt das sehr schick realisiert, mit allem drum und dran....

Echt, habt meinen Respekt dafür!!!

Nu zum Thema.... ist ja langsam wieder Wochenende....
http://www.arduino.cc/playground/Main/DigitalSmooth

digitalsmooth ist eine Library... eigentlich nur eine Funktion, die ursprünglich Sensormesswerte schön smooth zusammenkochen soll. (Also den Sensorjitter flachbügelt).
Das schöne... man kann die "smoothness" über einen Parameter einstellen.... und dafür sorgen, daß der Istwert sich nur langsam an den sollwert annähert ... smooth einfach gaaaanz hoch....

was bei rauskommt ist eine butterweiche messwertkurve....

Weshalb ich das alles schreibe... -wenn man nicht einen Sensorwert füttert sondern die Soll-Positionsdaten,
hat man mit dieser verhältnismäßig überschaubaren Funktion eine schöne weiche positive oder nagative Beschleunigung....

Ihr kennt sicher die Flash Mauszeigerverfolger aus den 90ern. das ist eigentlich das gleiche Prinzip... Maus nach Position XY reißen, und die verfolgenden Objekte nähern sich smoooth an die Zeigerposition an....

Wie das bei mir manuell ohne digitalsmooth aussah kannst Du in meinem alten Thread ansehen,
zum experimentieren würde ich in der Tat Logview empfehlen... man sieht einfach das Resultat besser wenn es als Kurve dargestellt wird.....
http://arduino.cc/forum/index.php/topic,29950.0.html

Macht weiter so....

Lieber Gruß
Chris