AccelStepper Befehle in Deutsch

Hallo miteinander,

ich befasse mich gerade mit der LIB AccelStepper, da mein Englisch sehr schlecht ist, muss ich alles übersetzen das ich es verstehe, damit sich nicht alle die Arbeit machen müssen dachte ich mir das ich hier Stück für Stück alles übersäten werde.

Beweis der Befehl und dessen Bedeutung. Wer Lust hat darf mich gerne dabei unterstützen :wink: ich versuche das dann alles in einen Beitrag zu packen.

Gruß Mücke

[b][u][i]Definieren und Konfigurieren von Motoren[/i][/u][/b]

AccelStepper mystepper(1, pinStep, pinDirection);
Ein Schrittmotor gesteuert von einem dedizierten Treiber.

AccelStepper mystepper(2, pinA, pinB);
Ein bipolarer Schrittmotor, der von einer H-Bridge-Schaltung gesteuert wird.

AccelStepper mystepper(4, pinA1, pinA2, pinB1, pinB2);
Ein unipolar Schrittmotor, gesteuert durch 4 Transistoren.

mystepper.[u]setMaxSpeed/u;
Legt die maximale Geschwindigkeit fest. Der Standardwert ist sehr langsam, so dass dieser konfiguriert werden muss. Wenn Sie durch die Einstellung von Position gesteuert wird, beschleunigt sich der Stepper mit dieser maximalen Geschwindigkeit und verlangsamt sich, wenn er das Ziel erreicht.

mystepper.[u]setAcceleration/u;
Legt die zu verwendende Beschleunigung in Schritten pro Sekunde fest.

[u][i][b]Position Basiert Steuerelement[/b][/i][/u]

mystepper.[u]moveTo/u;
Zielposition einstellen. Die run () Funktion wird versuchen, den Motor (höchstens einen Schritt pro Aufruf) von der aktuellen Position zur Zielposition zu bewegen, die durch den letzten Aufruf dieser Funktion festgelegt wurde. Achtung: moveTo () berechnet auch die Geschwindigkeit für den nächsten Schritt neu. Wenn Sie versuchen, konstante Geschwindigkeitsbewegungen zu verwenden, sollten Sie setSpeed () nach dem Aufruf von moveTo () aufrufen.

mystepper.[u]move/u;
Bewegen Sie den Motor (entweder positiv oder negativ) relativ zur aktuellen Position. Dieser kehrt sofort zurück. Tatsächliche Bewegung wird durch die Run ()-Funktion verursacht.

mystepper.[u]currentPosition/u;
Lesen Sie die aktuelle Absolution Position des Motors.

mystepper.[u]distanceToGo/u;
Lesen Sie den Abstand der Motor ist von seiner Destination Position. Dies kann verwendet werden, um zu überprüfen, ob der Motor seine endgültige Position erreicht hat.

mystepper.[u]run/u;
Aktualisiert den Motor wenn ein Schritt fällig ist, um die Zielposition zu erreichen. Sie müssen diese so oft wie möglich aufrufen, aber mindestens einmal pro Mindestschrittzeitintervall, vorzugsweise in Ihrer Hauptschleife. Beachten Sie, dass jeder Aufruf von run () höchstens einen Schritt ausführt, und zwar nur dann, wenn ein Schritt fällig ist, basierend auf der aktuellen Geschwindigkeit und der Zeit seit dem letzten Schritt.

[b][u][i]Geschwindigkeit Basiert Steuerelement[/i][/u][/b]

mystepper.[u]setSpeed/u;
Legen Sie die Geschwindigkeit in Schritten pro Sekunde fest. Diese Funktion wird sofort zurückgegeben. Tatsächliche Bewegung wird durch sogenannte runSpeed () verursacht.

mystepper.[u]runSpeed/u;
Aktualisieren Sie den Motor. Dies muss wiederholt aufgerufen werden, um den Motor zu bewegen.

Kennst Du DeepL? Beim überfliegen der ersten paar Zeilen übersetzt das den Text eigentlich ganz gut.

Am Beispiel boolean run(): Sehe ich diese Original-Dokumentation:

http://www.airspayce.com/mikem/arduino/AccelStepper/classAccelStepper.html:
Poll the motor and step it if a step is due, implementing accelerations and decelerations to acheive the target position. You must call this as frequently as possible, but at least once per minimum step time interval, preferably in your main loop. Note that each call to run() will make at most one step, and then only when a step is due, based on the current speed and the time since the last step.
Returns
true if the motor is still running to the target position.

Muecke:
Aktualisieren Sie den Motor. Dies muss wiederholt aufgerufen werden, um den Motor zu bewegen.

Wenn du dir schon die Mühe machst, dann lass lieber die Finger von einer nichtssagenden Kurzfassung...

ElCaron:
Kennst Du DeepL? Beim überfliegen der ersten paar Zeilen übersetzt das den Text eigentlich ganz gut.

bisher noch nicht, ich verwende bisher immer Google und BING bin aber für neues immer Offen.

Manchmal ist auch nicht das Englisch das Problem, sondern die Spezielle Programmire Ausdrucks weise.
Einfaches Deutsch wäre manchmal schon nicht schlecht :wink:

michael_x:
Am Beispiel boolean run(): Sehe ich diese Original-Dokumentation:
Wenn du dir schon die Mühe machst, dann lass lieber die Finger von einer nichtssagenden Kurzfassung...

ist der Text denn besser?

Übersetzt:

Poll den Motor ab und stufe ihn, wenn ein Schritt fällig ist, um die Zielposition zu erreichen. Sie müssen diese so oft wie möglich aufrufen, aber mindestens einmal pro Mindestschrittzeitintervall, vorzugsweise in Ihrer Hauptschleife. Beachten Sie, dass jeder Aufruf von run () höchstens einen Schritt ausführt, und zwar nur dann, wenn ein Schritt fällig ist, basierend auf der aktuellen Geschwindigkeit und der Zeit seit dem letzten Schritt.
Retouren
true, wenn der Motor noch in die Zielposition läuft.

Jedoch bin ich nicht Fix mit meinen Texten ich nehme gerne, Änderungen entgegen und ersetze in meinem Beitrag Texte. Umschreiben bessere Beschreibungen etc. sind immer willkommen in Deutsch. :wink:

EDIT. Habe die Befehls Beschreibung von run editiert. Danke für den Hinweis.

Manchmal ist auch nicht das Englisch das Problem, sondern die Spezielle Programmire Ausdrucks weise

Ja, oft wird etwas durch Übersetzen ins Deutsche nicht besser verständlich.
Manchmal sogar schlechter :wink:

Ab und zu hilft raten, was vermutlich im englischen Original stand, um etwas Deutsches zu verstehen.
"Position Basiert Steuerelement" war aber auch als "position based control" auf englisch schon Schrott...

Poll den Motor ab und stufe ihn, wenn ein Schritt fällig ist

Was bedeutet, einen Motor abpollen und ihn stufen ?

Ich denke, du bist mit dem Originaltext besser bedient, und aus der maschinellen Übersetzung sparst du dir, z.B. das Word "due" bei Leo nachzuschlagen. ( "fällig" hat google super gefunden. )

Was poll und step bedeutet, sollte hingegen eher klar bleiben, wenn man einfach bei den englischen Ausdrücken bleibt.

Vieleicht ist es doch besser ein wenig (technisches) Englisch zu lernen. Auf die Dauer hilft das besser.
Grüße Uwe

Hallo,

ich bin auch der Überzeugung das eine maschinelle Übersetzung bzw. 1:1 mit Wörterbuch nichts besser macht.
Ich bin sicher das es zu der Lib auch eine ausführliche Dokumentation gibts. Selbst wenn die ebenfalls in Englisch ist, kann man daraus mehr entnehmen wie die Funktionsnamen stur zu übersetzen.

Mein englisch ist auch nicht perfekt. Ich schreibe zum Bsp. in Datenblättern die Übersetzung mancher Wörter mit Bleistift dazu. Aus dem Text heraus ergibt sich dann der gesamte Sinn, so wie immer. Das ist genauer und hilfreicher wie eine 1:1 Übersetzung die dann Sinn entstellt ist.

Bsp. fire engine, du würdest das bestimmt 1:1 mit Feuer oder Flammen Energie übersetzen, in Wirklichkeit ist das nichts weiter wie das gute alte Feuerwehrauto. :slight_smile:

deepl übersetzt es richtig.

Gruß Tommy

Hallo,

meinst du das mit dem Bsp. fire engine? Das sollte ja nun auch keine Kunst sein. Ist ja sicherlich einprogrammiert und steht in jedem Wörterbuch richtig drin. Ich meinte was anderes, wenn man anfängt jedes Wort einzeln zu übersetzen um selbst daraus den Sinn zu erfassen, kann und wird das in die Hose gehen. Um das zu verdeutlichen. Dein deppl übersetzt fire mit schießen und engine mit Lokomotive. Verstehste? :slight_smile:

Ja einzelne Worte aus dem Sinn gerissen bringt nichts.
Bei vollständigen Texten habe ich bei deepl das Gefühl, dass die Übersetzung besser geworden ist.
Sie ersetzt aber nicht das eigene Denken.

Gruß Tommy

@Alle: hmmm, das war jetzt so nicht beabsichtigt von mir, das ich euch so auf die Füße tretet mit dem Englisch.
Auch wenn ich euren Rat immer wider sehr schätze und imemr wider danach frage da ich bei vielen Dingen nicht weiter komme ohne eure Hilfe, werde ich in diesem Fall weiterhin mir die einzelnen Befehle übersäten, sorry dafür.

Und ja einzelne Worte dürfen gerne im Englisch bleiben! Ihr seit dennoch alle herzlichst eingeladen mir dabei zu helfen, die LIB zu verstehen. Da ich immer noch eine Funktionierende Steuerung für meine CNC Maschine hin bekommen möchte.

Da sich das alles in eine Andere Richtung entwickelt hat wie von mir vorgesehen, werde ich wenn meine Frau mich heute noch mal an den Rechner lässt ein paar Dinge testen und ein Paar fragen stellen, denn bei eine Kleinen Test habe ich schon was festgestellt das ich nicht nachvollziehen kann, und in der DOC nicht gefunden habe. dazu aber mehre wenn meine Frau mich wider dran lässt.

Gruß Mücke

Meine Frau und ich können uns alles teilen aber keinen Rechner. Da hat jeder seinen Eigenen.
Da solltest Du drüber nachdenken. Das entspannt unheimlich.

Gruß Tommy

Tommy56:
Meine Frau und ich können uns alles teilen aber keinen Rechner. Da hat jeder seinen Eigenen.
Da solltest Du drüber nachdenken. Das entspannt unheimlich.

Gruß Tommy

von der Theorie her richtig, eigendlich steht auch ein echt Teurer WIN PC neben mir, leider hat der kein Internet :frowning: da ich noch keinen Virenscanner für den WIN Rechner habe.

Gruß Mücke

ps. Ich teile mein Auto nicht mit meiner Frau!, das geht gar nicht.

Muecke:
von der Theorie her richtig, eigendlich steht auch ein echt Teurer WIN PC neben mir, leider hat der kein Internet :frowning: da ich noch keinen Virenscanner für den WIN Rechner habe.

Ich weiß, dass dieser Thread damit endgültig hin ist, aber: Wenn Du meinst, dass Du einen Windows-PC nur mit Virenscanner benutzen kannst, hilft Dir der Virenscanner auch nicht.
Der einzig wirksame Schutz ist, sein Hirn anzuschalten und nicht jeden Unsinn zu klicken. Wenn man das nicht kann, KANN einen mal ein Virenscanner retten, muss es aber bei weitem nicht. Umgedreht haben Virenscanner auch schon gefährliche Lücken gerissen, so dass ich sie überhaupt nicht generell empfehlen würde.

Ich nutze jedenfalls - wenn ich mal Windows nutze - bewusst keinen bzw. nur den Windows Defender (und bis man den rutnergeladen hat, gibt es derzeit keinen Angriffsvektor auf ein modernes Windows hinter einem SOHO-Router), meine betagten Eltern haben generell nur Linux, weil ich weiß, dass die auch ein Scanner nicht sicher schützen würde. Irgendwo gibt's sicher ein Band dazwischen, wo ein Virenscanner sinnvoll sein kann, aber wenn man eint, dass es ohne gar nicht geht, ist man da nicht drin.

ElCaron:
Ich weiß, dass dieser Thread damit endgültig hin ist, aber:

Oh ja das ist sehr OT ;-).

Zum teil gebe ich dir ja recht, da ich in der regle nicht auf Schmuddelseiten unterwegs bin, wird das Risiko wahrscheinlich deutlich geringer sein, denn wenn ein Virus auf den Großen Seiten wie Web.de Chip.de etc. vorhanden ist dann ist das eine der in der regle auch erst ein mal durch die Virenscanner Firewall etc. durch kommt, denn das ist dann sehr bewusst gemacht um Daten zu sammeln, etc.
Auf meinem Mac habe ich bis heute noch nicht eine solche Software installiert.

Naja, egal, der WIN Rechner wird aktuell in erster Linie dafür verwendet, 3D Zeichnungen zu erstellen Excel, Word PPT zu bearbeiten etc.

Beim Programmiren muss ich jedoch immer so viel im Netz nachlesen und suchen das mir die Internet Verbindung am WIN Rechner doch sehr stark fehlt. :frowning:
Die kommt aber auch noch :-), brauche auch noch eine W-Lan Karte für das gute Stück :wink:

So das ich jetzt nicht ganz OT bleibe mit meinen Beitrag, ich habe es geschafft den Befehl moveTo und move besser zu verstehen, und habe daher den Text bei moveTo abgeändert :wink:
Da ich jetzt meinen Motor drehen kann wie ich lustig bin, (vor zurück) muss ich mich jetzt dran machen, heraus zu finden wie ich ihn in Dauerbetrieb, sprich Fahre so lange in eine Richtung bis Sensor bla auslöst, laufen lassen kann. (noch passiert ja nichts sie sind ja nicht eingebaut, und die Sensoren liegen alle neben mir :wink:

Wenn ich das habe muss ich auch noch raus bekommen wie ich mehrere Motoren gleichzeitig laufen lassen kann, den Umrechnungsfaktor für die Drehzahl muss ich auch noch herausfinden, Oh man da habe ich noch einiges was ich machen muss :frowning:

gruß Mücke

Der Golemartikel hat allerdings ganz gut dargestellt, wie gerade ein ein Virenscanner Dir eine Drive-By-Infektion einhandeln kann.
Ich traue Google deutlich eher zu, eine 0-day-Lücke schnell zu schließen, als einem Virenscanner, der von außen versucht, meinen Browser aufzubohren um da zu "scannen", dabei alles richtig zu machen.
Alle Angriffe der letzten Jahre steckten in ausführbaren Dateien, die der User anklicken musste. Dagegen schützt am Besten, das Gehirn anzuschalten.

ElCaron:
Der Golemartikel hat allerdings ganz gut dargestellt, wie gerade ein ein Virenscanner Dir eine Drive-By-Infektion einhandeln kann.
Ich traue Google deutlich eher zu, eine 0-day-Lücke schnell zu schließen, als einem Virenscanner, der von außen versucht, meinen Browser aufzubohren um da zu "scannen", dabei alles richtig zu machen.
Alle Angriffe der letzten Jahre steckten in ausführbaren Dateien, die der User anklicken musste. Dagegen schützt am Besten, das Gehirn anzuschalten.

So intensiv habe ich mich damit nicht beschäftigt, was man jedoch immer so Hört ist, das Leute irgend einen Unsinn Oft per Mail geöffnet haben, da frage ich mich immer wie das geht, wenn mir jemand Geld sendet, und das per Mail kommt per EXE Datei oder PDF, dann stimmt was nicht, oder auch gut ist, es konnte eine Nachricht bei Facebook / Whatsapp / SMS etc. nicht zugestellt werden, bitte melde dich auf der Webseite ... an damit du die verpasste Nachricht bekommst. Da frage ich mich manchmal schon, warum man auf so einen Schwachsinn Klicken tut. Naja, ist nun mal so. ... Leider.

Dagegen schützt am Besten, das Gehirn anzuschalten.

;D da kann ich nur zustimmen.

SO jetzt aber wider zurück zum Thema: Verständnis der befehle, da ich das in Deutsch wohl nicht richtig verstehe.

Ich möchte einen Motor mit Konstanter Geschwindigkeit die ich vorher definiere eine bestimmte Anzahl an Schritten machen lassen.

Dazu habe ich jetzt den Code erstellte.
bei jedem Befehl ist der Link zum original Beschreibung dabei und die deutsche Überätzung von mir.

Leider habe ich das wohl nicht richtig verstanden, denn egal was ich bei
Achse_Y.setSpeed(500); für eine Zahl eintrage, der Motor dreht so langsam das mein Drehzahl Messer dies nicht als Drehung erkennt, das niedrigste ist bei dem 2,5 rpm.

#include <AccelStepper.h>                // AccelStepper LIB installiren 

  int Baudrate = 9600;                   // Geschwindigkeit, Serielle Schnittstelle
  int Steps    = 16000;                  // Anzahl der Schritte (endspricht 40 Umdrehungen) 

    
  AccelStepper Achse_Y(1, 51, 52);  // (1, PUL, DIR);
  // http://www.airspayce.com/mikem/arduino/AccelStepper/classAccelStepper.html#a3bc75bd6571b98a6177838ca81ac39ab
  // Installiren eines Motors mit dem Namen: Achse_Y 

void setup() {
    Serial.begin(Baudrate);         // Seriellen Monitor Installiren

    Achse_Y.setAcceleration(20000);
    // http://www.airspayce.com/mikem/arduino/AccelStepper/classAccelStepper.html#adfb19e3cd2a028a1fe78131787604fd1
    // Setzt die Beschleunigungs-/Bremsgeschwindigkeit. 
    // Die gewünschte Beschleunigung in Schritten pro Sekunde pro Sekunde. 
    // Muss > 0,0 sein. Dies ist ein kostspieliger Aufruf, da eine Quadratwurzel berechnet
    // werden muss. Nicht öfter anrufen als nötig 
}

void loop() {

 if (Serial.read() == 13) {    // auf CR reagiren
   Achse_Y.move(Steps); 
   // http://www.airspayce.com/mikem/arduino/AccelStepper/classAccelStepper.html#a68942c66e78fb7f7b5f0cdade6eb7f06
   // Zielposition relativ zur aktuellen Position setzen.
   // Die gewünschte Position relativ zur aktuellen Position.
   // Negativ ist gegen den Uhrzeigersinn von der aktuellen Position.
   // Ausführende Funktion mystepper.runSpeed ().
  Steps = Steps * -1;   // Drehrichtung für den nächsten aufruf ändern, damit man am Motor eine veränderung siht. 
    Achse_Y.setSpeed(500); 
    // http://www.airspayce.com/mikem/arduino/AccelStepper/classAccelStepper.html#ae79c49ad69d5ccc9da0ee691fa4ca235
    // Setzt die gewünschte konstante Geschwindigkeit für die Verwendung mit mystepper.runSpeed ().
    // Die gewünschte konstante Geschwindigkeit in Schritten pro Sekunde. Positiv ist im Uhrzeigersinn. 
    // Geschwindigkeiten von mehr als 1000 Schritten pro Sekunde sind unzuverlässig. Sehr langsame 
    // Geschwindigkeiten können eingestellt werden (z. B. 0,00027777 für einmal pro Stunde, ungefähr.
    // Die Genauigkeit der Geschwindigkeit hängt vom Arduino-Quarz ab. Ausführende Funktion mystepper.runSpeed ().
 
  Serial.println("CR wurde gedrückt");   // Debugausgabe 
 } // if Serial
 
 Achse_Y.runSpeed();
 // http://www.airspayce.com/mikem/arduino/AccelStepper/classAccelStepper.html#aa4a6bdf99f698284faaeb5542b0b7514
 // Führt einen Schritt aus, wenn ein Schritt fällig ist und implementiere eine konstante Geschwindigkeit,
 // wie sie durch den letzten Aufruf von setSpeed () eingestellt wurde. Sie müssen diese so oft wie möglich, aber 
 // mindestens einmal pro Schritt-Intervall aufrufen. 
} // loop

Wenn Ihr mir weiter helfen würden wäre ich euch sehr dankbar, leider hat da nichts geklappt :frowning:

Gruß Mücke