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 einsetzen.

Hinweis: Der Programmabschnitt innerhalb des "Starte jedes Mal"-Block sollte kurz gehalten werden und keine blockierenden Aufrufe oder Endlosschleifen enthalten, sodass 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.

image.png

Setzen

Mit dem Block "setze Motor [] Geschwindigkeit [] ..." 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 Motor [] Geschwindigkeit" lässt sich die Geschwindigkeit eines Motors abrufen und als Wert weiterverarbeiten.

Abfragen

Mit den Blöcken "läuft Motor []" und "ist Motor [] Geschwindigkeit  [] ..." kann man die Aktivität beziehungsweise die Geschwindigkeit eines Motors 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

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.png

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. 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 36/64 Umdrehungen. Wie am Beispiel zu sehen, hat dieser Block ein Pluszeichen, mithilfe 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 Masters 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 Motor [] 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.

Servomotor

image-1623746331741.42.25.png

Ein Servomotor ist ein spezieller Motor, der für präzise Steuerung seiner Position ausgelegt ist. Er kann auf exakte Winkel positioniert werden und verfügt über ein eingebautes Feedback-System, das es ermöglicht, die gewünschte Position genau zu erreichen und zu halten.

Setzen

Mit dem Block "setze Servomotor [] Position ..." kann man die Position eines Servomotors auf einen bestimmten Wert (von 0 bis 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 "hole Servomotor [] Position" lässt sich die Position eines Servomotors abrufen und als Wert weiterverarbeiten.