Skip to main content

Motor

Der Starte jedes mal-Block

Der Starte jedes mal-Block bietet die Möglichkeit ein Programm ablaufen zulassen, wenn eine Bedingung erfüllt ist. Er funktioniert also ähnlich wie eine Fallunterscheidung wird aber nicht nur einmal durchlaufen, sondern jedes mal, wenn die Bedingung erfüllt ist, während des gesamten Ablauf des Programms. Der Starte jedes mal-Block:

image-1623672133513.png

Ist eine Abkürzung für folgendes Konstrukt:

image-1638372436179.png

Man kann in den Starte jedes mal-Block der Kategorie Motor alle Bedingungen aus eben dieser Kategorie einsetzten.

Hinweis: Der Programmabschnitt innerhalb des Starte jedes mal-Block sollte kurz gehalten werden und keine blockierenden Aufrufe oder Endlosschleifen enthalten, so dass dieser Teil des Programms schnell abgearbeitet werden kann.

Motor 

Das Symbol auf den Motorblöcken steht stellvertretend für alle Motoren, die nicht Encoder- oder Servomotoren sind.

Setzen

Mit den Block setze Motorgeschwindigkeit auf [] ... kann man die Geschwindigkeit eines Motors auf einen bestimmten Wert (von 0 bis 512) setzen. Über das Dropdown-Menü (kleines Dreieck) kann die Drehrichtung gewählt werden.

Abrufen

Mit dem Block hole Motorgeschwindigkeit lässt sich die Geschwindigkeit eines Motors abrufen und als Wert weiterverarbeiten.

Abfragen

Mit den Blöcken läuft Motor  und ist Motorgeschwindigkeit ... kann man die Aktivität beziehungsweise die Geschwindigkeit eines Motor als Bedingung nutzen.

Stoppen

Mit dem Block stoppe Motor [] ist es möglich einen Motor zu stoppen. Dabei bietet der Block stoppe Motor [] die Optionen, einen Motor direkt oder auslaufend zu stoppen. Die gewünschte Option kann über das Dropdown-Menü (kleines Dreieck) ausgewählt werden:                                                                                          

image-1623613980654.51.51.png

 

Servomotor

image-1623746331741.42.25.png

Setzen

Mit den Block setze Position auf ... kann man die Position eines Servomotors auf einen bestimmten Wert (von 0-512) setzen. 0 und 512 sind die Werte für die maximale Auslenkung rechts und links. Bei dem Wert 256 steht der Servomotor dementsprechend in der Mitte. 

Abrufen

Mit dem Block rufe Position ab lässt sich die Position eines Servomotors abrufen und als Wert weiterverarbeiten.

Encodermotor

image-1623746341213.40.14.png

Der Encodermotor hat die gleichen Funktionen wie ein normaler Motor, bietet aber zusätzlich die Möglichkeit, die Umdrehungen zu zählen und mehrere Motoren synchron anzusteuern. Eine Umdrehung wird dabei in ~64 Schritte unterteilt.

Setzen

Mit dem Block 

image-1623517764162.png

kann man die Geschwindigkeit eines Motors auf einen bestimmten Wert (von 0-512) setzen. Über das Dropdown-Menü (kleines Dreieck) kann die Drehrichtung gewählt werden. Zusätzlich kann man die Anzahl an Schritten eingeben, die der Motor zurücklegen soll. In diesem Beispiel dreht sich der Motor 100 Schritte, also eine und eine drittel Umdrehungen. Wie am Bespiel zu sehen hat dieser Block ein Pluszeichen, mit Hilfe dessen sich mehrere Motoren synchron ansteuern lassen. Es ist möglich Motoren am Master oder an einer Extension zu synchronisieren, eine übergreifenden Synchronisierung bspw. zwischen Motoren des Master und einer Extension ist nicht möglich.

Hinweis: Schnell aufeinanderfolgende Synchronisierungsaufrufe, wie sie z.B. durch eine Schleife möglich sind (siehe Beispiel), können die Synchronität beeinträchtigen oder sogar komplett verhindern.

image-1638196438212.png

Stoppen

Mit dem Block stoppe Motor … stoppt man einen Motor. Möchte man mehrere Motoren gleichzeitig stoppen, kann man über das Plus links am Block bis zu drei weitere Motoren hinzufügen.

image-1623517630278.05.46.png

Abfragen

Der Block hat Position erreicht wird genutzt, um das Erreichen der Position als Bedingung zu nutzen. Mit Position ist hier die Endposition eines Encodermotors nach vollendeter Schrittweite gemeint.