Bewegung#
Einführung#
Motors control how parts of a robot move. Motors can be used to raise an arm, turn a claw, spin a wheel, or move another part of a build. Two motors can work together as a drivetrain to move and turn the whole robot.
Jeder Motor wird im Gerätefenster konfiguriert. Je nach Konfiguration können die Motornamen und Drehrichtungen variieren. Beispielsweise verfügt die Version Competition Advanced 2.0 über einen Motor namens ArmMotor mit den Drehrichtungen oben und unten. Ein benutzerdefinierter Roboter kann andere Motornamen oder Drehrichtungen verwenden.
Standardmäßig dreht sich ein Motor im Vorwärtsmodus gegen den Uhrzeigersinn und im Rückwärtsmodus im Uhrzeigersinn. Wenn im Gerätefenster die Drehrichtung eines Motors auf Umkehrung eingestellt ist, werden diese Richtungen vertauscht.
Es gibt viele Möglichkeiten, Motoren zu programmieren. Nachfolgend finden Sie eine Liste aller Bewegungsblöcke:
Aktionen – Motoren anhalten und drehen.
Motor drehen — Dreht einen Motor unendlich lange vorwärts oder rückwärts.
Motor drehen für — Lässt einen Motor eine bestimmte Strecke drehen.
Motor in Position drehen — Dreht einen Motor in eine bestimmte Position.
Motor stoppen — Stoppt die Drehung eines Motors.
Einstellungen – Motoreinstellungen anpassen.
Motorposition festlegen — Ändert die aktuelle Position des Motors auf einen neuen Wert.
Motorgeschwindigkeit einstellen — Gibt dem Motor die Drehzahl vor.
Motorstopp einstellen — Legt fest, wie ein Motor zum Stillstand kommt: durch Bremsen, Auslaufen oder Halten.
Maximales Drehmoment des Motors einstellen — Legt fest, wie stark ein Motor beim Drehen drücken darf.
set motor timeout — Legt fest, wie viele Sekunden ein Motor versucht, eine Bewegung abzuschließen.
Werte – Motorstatus prüfen.
Motor ist fertig — Meldet, ob der Motor seine Bewegung beendet hat.
Motor dreht sich? — Meldet, ob sich der Motor dreht.
Motorposition — Gibt die aktuelle Position des Motors an.
Motorgeschwindigkeit — Gibt an, wie schnell sich der Motor dreht, als Prozentsatz von -100% bis 100%.
Motorstrom — Zeigt an, wie viel Leistung der Motor von der Batterie bezieht, als Prozentsatz von 0% bis 100%.
Aktionen#
Spinmotor#
Der Drehmotor-Stapelblock lässt einen Motor endlos vorwärts oder rückwärts laufen. Der Motor dreht sich so lange, bis er eine andere Aktion auslöst, z. B. in eine andere Richtung dreht oder anhält.
drehe [ArmMotor v] [hoch v]
Parameter |
Beschreibung |
|---|---|
Motor |
Der zu drehende Motor. Wählen Sie einen der im Gerätefenster konfigurierten Motoren aus. |
Richtung |
Die Drehrichtung des Motors. Standardmäßig stehen die Optionen vorwärts und rückwärts zur Verfügung. Die Drehrichtung kann je nach Motorkonfiguration variieren. |
Beispiel
wenn gestartet :: hat events
[Build Used: Competition Advanced 2.0]
[Raise the ArmMotor, then stop.]
drehe [ArmMotor v] [hoch v]
warte [1] Sekunden
stoppe [ArmMotor v]
Spinmotor für#
Der Drehmotor für den Stapelblock lässt einen Motor eine bestimmte Strecke drehen. Die Drehung erfolgt relativ zur aktuellen Position des Motors. Das Projekt wartet, bis der Motor seine Drehung beendet hat, bevor der nächste Block im Stapel ausgeführt wird.
drehe [ArmMotor v] [hoch v] für [90] [Grad v] ▶
Parameter |
Beschreibung |
|---|---|
Motor |
Der zu drehende Motor. Wählen Sie einen der im Gerätefenster konfigurierten Motoren aus. |
Richtung |
Die Drehrichtung des Motors. Standardmäßig stehen die Optionen vorwärts und rückwärts zur Verfügung. Die Drehrichtung kann je nach Motorkonfiguration variieren. |
Distanz |
Die Strecke, die der Motor zurücklegt. Gradangaben werden als ganze Zahlen angegeben. Umdrehungen können als ganze Zahlen oder Dezimalzahlen angegeben werden. |
Einheit |
Die Entfernungseinheit: Grad oder Umdrehungen. |
und warte nicht |
Wählen Sie den Pfeil ( ▶ ), um den Block zu erweitern und und warten Sie nicht anzuzeigen, damit der nächste Block im Stapel sofort ausgeführt wird. |
Beispiel
wenn gestartet :: hat events
[Build Used: Competition Advanced 2.0]
[Raise and lower the ArmMotor.]
drehe [ArmMotor v] [hoch v] für [180] [Grad v] ▶
warte [1] Sekunden
drehe [ArmMotor v] [runter v] für [180] [Grad v] ▶
Drehmotor in Position#
Der Drehmotor-Positionierungsblock dreht einen Motor in eine bestimmte Position.
Die Position eines Motors gibt an, wie weit er sich gedreht hat, gemessen in Grad oder Umdrehungen. Eine Umdrehung entspricht 360 Grad. Zu Beginn eines Projekts ist die Motorposition auf 0 Grad eingestellt. Die Motorposition kann auch mit dem Block Motorposition festlegen eingestellt werden.
Positionswerte sind absolut. Das bedeutet, dass die Drehrichtung von der aktuellen Position des Motors abhängt.
drehe [ArmMotor v] zu Position (90) [Grad v] ▶
Parameter |
Beschreibung |
|---|---|
Motor |
Der zu drehende Motor. Wählen Sie einen der im Gerätefenster konfigurierten Motoren aus. |
Position |
Der Positionswert, bis zu dem sich der Motor dreht. Grad werden als ganze Zahlen angegeben. Umdrehungen können als ganze Zahlen oder Dezimalzahlen angegeben werden. |
Einheit |
Die Positionseinheit: Grad oder Umdrehungen. |
und warte nicht |
Wählen Sie den Pfeil ( ▶ ), um den Block zu erweitern und und warten Sie nicht anzuzeigen, damit der nächste Block im Stapel sofort ausgeführt wird. |
Beispiel
wenn gestartet :: hat events
[Build Used: Competition Advanced 2.0]
[Return ArmMotor to 0 degrees after raising.]
drehe [ArmMotor v] [hoch v] für [180] [Grad v] ▶
warte [1] Sekunden
drehe [ArmMotor v] zu Position [0] [Grad v] ▶
Motor stoppen#
Der Motorstopp-Block verhindert das Drehen eines Motors.
stoppe [ArmMotor v]
Parameter |
Beschreibung |
|---|---|
Motor |
Der zu stoppende Motor. Wählen Sie einen der im Gerätefenster konfigurierten Motoren aus. |
Beispiel
wenn gestartet :: hat events
[Build Used: Competition Advanced 2.0]
[Raise the ArmMotor.]
drehe [ArmMotor v] [hoch v]
warte [1] Sekunden
stoppe [ArmMotor v]
Einstellungen#
Motorposition einstellen#
Die Position eines Motors gibt an, wie weit er sich gedreht hat, gemessen in Grad oder Umdrehungen. Eine Umdrehung entspricht 360 Grad. Der Block „Motorposition festlegen“ ändert die aktuelle Motorposition auf einen neuen Wert.
Hat sich ein Motor beispielsweise um 180 Grad gedreht, wird durch Einstellen der Position auf 0 Grad diese Position von 180 auf 0 Grad zurückgesetzt. Anschließend kann sich der Motor basierend auf diesem neuen Wert in verschiedene Positionen drehen.
setze [ArmMotor v] Position auf (0) [Grad v]
Parameter |
Beschreibung |
|---|---|
Motor |
Der Motor, für den die Position festgelegt werden soll. Wählen Sie einen der im Gerätefenster konfigurierten Motoren aus. |
Position |
Der für den Motor einzustellende Positionswert. Grad werden als ganze Zahlen angegeben. Umdrehungen können als ganze Zahlen oder Dezimalzahlen angegeben werden. |
Einheit |
Die Positionseinheit: Grad oder Umdrehungen. |
Beispiel
wenn gestartet :: hat events
[Build Used: Competition Advanced 2.0]
[Return ArmMotor to 0 degrees after raising.]
setze [ArmMotor v] Position auf [0] [Grad v]
drehe [ArmMotor v] [hoch v] für [180] [Grad v] ▶
warte [1] Sekunden
drehe [ArmMotor v] zu Position [0] [Grad v] ▶
Motorgeschwindigkeit einstellen#
Der Motorgeschwindigkeit einstellen-Block legt fest, wie schnell sich ein Motor drehen soll. Ein höherer Prozentwert beschleunigt die Drehung, ein niedrigerer Prozentwert verlangsamt sie.
Jedes Projekt beginnt standardmäßig damit, dass jeder Motor mit 50 % Drehzahl läuft.
Hinweis: Eine höhere Drehzahl lässt den Motor schneller drehen, kann aber die Präzision verringern. Eine niedrigere Drehzahl lässt den Motor langsamer drehen, kann aber die Präzision erhöhen.
setze [ArmMotor v] Geschwindigkeit auf [50] %
Parameter |
Beschreibung |
|---|---|
Motor |
Der Motor, für den die Drehzahl eingestellt werden soll. Wählen Sie einen der im Gerätefenster konfigurierten Motoren aus. |
Geschwindigkeit |
Die Drehzahl, mit der die Maschine rotiert, von 0 % bis 100 %. |
Beispiel
wenn gestartet :: hat events
[Build Used: Competition Advanced 2.0]
[Move the ArmMotor at different velocities.]
drehe [ArmMotor v] [hoch v] für [180] [Grad v] ▶
warte [1] Sekunden
[Move slow.]
setze [ArmMotor v] Geschwindigkeit auf [20] %
drehe [ArmMotor v] [runter v] für [180] [Grad v] ▶
warte [1] Sekunden
[Move fast.]
setze [ArmMotor v] Geschwindigkeit auf [100] %
drehe [ArmMotor v] [hoch v] für [180] [Grad v] ▶
Motorstopp einstellen#
Der Motorstopp-Block legt fest, wie ein Motor zum Stillstand kommt: durch Bremsen, Auslaufen oder Halten.
setze [ArmMotor v] Stopp auf [Bremsen v]
Parameter |
Beschreibung |
|---|---|
Motor |
Der Motor, für den das Stoppverhalten festgelegt werden soll. Wählen Sie einen der im Gerätefenster konfigurierten Motoren aus. |
Stoppverhalten |
So stoppt der Motor:
|
Wird beispielsweise ein Competition Advanced 2.0-Build verwendet und der Armmotor auf „Halten“ eingestellt, hält der Motor den Arm in seiner aktuellen Position, bis eine weitere Armbewegung erfolgt. Das bedeutet, dass der Motor entgegen der Schwerkraft arbeitet, um den Arm in der Luft zu halten, falls er bei angehobenem Arm gestoppt wurde.
Wenn dieser Block nicht verwendet wird, betätigt der Motor beim Anhalten die Bremse.
Beispiel
wenn gestartet :: hat events
[Build Used: Competition Advanced 2.0]
[Move the ArmMotor, then coast to a stop.]
setze [ArmMotor v] Geschwindigkeit auf [20] %
setze [ArmMotor v] Stopp auf [Auslaufen v]
drehe [ArmMotor v] [hoch v]
warte [1] Sekunden
stoppe [ArmMotor v]
Maximales Drehmoment des Motors einstellen#
Das Drehmoment ist eine Drehkraft. Es zeigt an, wie stark ein Motor beim Drehen drücken oder ziehen kann.
Der set motor max torque-Block legt das maximale Drehmoment fest, das ein Motor verwenden darf.
Ein höherer Prozentsatz ermöglicht es dem Motor, stärker zu drücken, beispielsweise beim Anheben eines schweren Gegenstands. Ein niedrigerer Prozentsatz begrenzt die maximale Schubkraft. Dies kann den Roboter schützen, falls der Motor blockiert oder seinen maximalen Bewegungsradius erreicht.
Jedes Projekt beginnt standardmäßig mit einem Drehmoment von 50 % für jeden Motor.
setze [ArmMotor v] Maximaldrehmoment auf (50) %
Parameter |
Beschreibung |
|---|---|
Motor |
Der Motor, für den das maximale Drehmoment eingestellt werden soll. Wählen Sie einen der im Gerätefenster konfigurierten Motoren aus. |
Drehmoment |
Das maximale Drehmoment, das der Motor von 0 % bis 100 % nutzen kann. |
Beispiel
wenn gestartet :: hat events
[Build Used: Competition Advanced 2.0]
[Move the ArmMotor at different torques.]
drehe [ArmMotor v] [hoch v] für [180] [Grad v] ▶
warte [1] Sekunden
[Move with less torque.]
setze [ArmMotor v] Maximaldrehmoment auf [20] %
drehe [ArmMotor v] [runter v] für [180] [Grad v] ▶
warte [1] Sekunden
[Move with maximum torque.]
setze [ArmMotor v] Maximaldrehmoment auf [100] %
drehe [ArmMotor v] [hoch v] für [180] [Grad v] ▶
Motor-Timeout einstellen#
Der Block „Motor-Timeout festlegen“ bestimmt, wie viele Sekunden ein Motor versucht, eine Bewegung abzuschließen. Gelingt ihm dies nicht, bricht er den Versuch ab und fährt mit dem nächsten Block im Stapel fort. Dadurch wird verhindert, dass der Motor bei einer Bewegung hängen bleibt.
setze [ArmMotor v] Zeitlimit auf (1) Sekunden
Parameter |
Beschreibung |
|---|---|
Motor |
Der Motor, für den das Timeout festgelegt werden soll. Wählen Sie einen der im Gerätefenster konfigurierten Motoren aus. |
Zeit |
Die Anzahl der Sekunden, die der Motor versuchen kann, eine Bewegung abzuschließen. Dies kann eine ganze Zahl oder eine Dezimalzahl sein. |
Beispiel
wenn gestartet :: hat events
[Build Used: Competition Advanced 2.0]
[Move ArmMotor as far as possible for 1 second before resetting.]
setze [ArmMotor v] Position auf [0] [Grad v]
setze [ArmMotor v] Zeitlimit auf [1] Sekunden
drehe [ArmMotor v] [hoch v] für [180] [Grad v] ▶
drehe [ArmMotor v] zu Position [0] [Grad v] ▶
Werte#
Ist der Motor kaputt?#
Der boolesche Block Motor beendet meldet, ob der Motor seine Bewegung abgeschlossen hat. Dies kann genutzt werden, um den Zeitpunkt anderer Aktionen basierend auf der Motorbewegung zu steuern.
Wahr — Der Motor hat seine Bewegung beendet.
Falsch — Der Motor dreht sich noch.
Dieser Block arbeitet mit den folgenden Motion-Blöcken zusammen, die den Parameter und nicht warten haben: Motor drehen für und Motor drehen zu Position.
<[ArmMotor v] abgeschlossen?>
Parameter |
Beschreibung |
|---|---|
Motor |
Der Motor soll melden, ob er seine Bewegung beendet hat. Wählen Sie einen der im Gerätefenster konfigurierten Motoren aus. |
Beispiel
wenn gestartet :: hat events
[Build Used: Competition Advanced 2.0]
[Turn the Eye Sensor's light on while ArmMotor is moving.]
drehe [ArmMotor v] [hoch v] für [180] [Grad v] ◀ und nicht warten
warte [0.1] Sekunden
für immer
wenn <[ArmMotor v] abgeschlossen?> dann
setze Augenlicht [aus v]
sonst
setze Augenlicht [ein v]
Der Motor dreht sich?#
Der boolesche Block dreht sich der Motor? gibt an, ob sich der Motor dreht. Dies kann genutzt werden, um den Zeitpunkt anderer Aktionen basierend auf der Motorbewegung zu steuern.
Wahr — Der Motor dreht sich.
Falsch — Der Motor dreht sich nicht.
Dieser Block arbeitet mit den folgenden Motion-Blöcken zusammen, die den Parameter und nicht warten haben: Motor drehen für und Motor drehen zu Position.
<[ArmMotor v] dreht?>
Parameter |
Beschreibung |
|---|---|
Motor |
Der Motor, der melden soll, ob er sich dreht. Wählen Sie einen der im Gerätefenster konfigurierten Motoren aus. |
Beispiel
wenn gestartet :: hat events
[Build Used: Competition Advanced 2.0]
[Turn the Eye Sensor's light on while ArmMotor is moving.]
drehe [ArmMotor v] [hoch v] für [180] [Grad v] ◀ und nicht warten
warte [0.1] Sekunden
für immer
wenn <[ArmMotor v] dreht?> dann
setze Augenlicht [ein v]
sonst
setze Augenlicht [aus v]
Motorposition#
Die Position eines Motors gibt an, wie weit er sich gedreht hat, gemessen in Grad oder Umdrehungen. Der Motorpositions-Reporterblock meldet die aktuelle Position des Motors.
Zu Beginn eines Projekts wird die Motorposition auf 0 Grad eingestellt. Dreht sich der Motor eine volle Umdrehung vorwärts, beträgt die Position 360 Grad bzw. eine Umdrehung. Dreht sich der Motor in die andere Richtung, ist die Position negativ.
([ArmMotor v] Position in [Grad v] :: custom-motion)
Parameter |
Beschreibung |
|---|---|
Motor |
Der Motor, dessen Position gemeldet werden soll. Wählen Sie einen der im Gerätefenster konfigurierten Motoren aus. |
Einheit |
Die Einheit, in der die Motorposition angegeben werden soll: Grad oder Umdrehungen. |
Beispiel
wenn gestartet :: hat events
[Build Used: Competition Advanced 2.0]
[Display how far the ArmMotor moves after one second.]
setze [ArmMotor v] Position auf [0] [Grad v]
drucke [Start: ] ▶
drucke ([ArmMotor v] Position in [Grad v] :: custom-motion) ▶
setze Cursor in nächste Zeile
drehe [ArmMotor v] [hoch v]
warte [1] Sekunden
stoppe [ArmMotor v]
drucke [After: ] ▶
drucke ([ArmMotor v] Position in [Grad v] :: custom-motion) ▶
Motorgeschwindigkeit#
Der Motorgeschwindigkeits-Reporterblock gibt an, wie schnell sich der Motor dreht, und zwar als Prozentsatz von -100% bis 100%.
Ein positiver Wert bedeutet, dass sich der Motor vorwärts dreht. Ein negativer Wert bedeutet, dass sich der Motor rückwärts dreht.
([ArmMotor v] Geschwindigkeit in %)
Parameter |
Beschreibung |
|---|---|
Motor |
Der Motor, dessen Drehzahl gemeldet werden soll. Wählen Sie einen der im Gerätefenster konfigurierten Motoren aus. |
Beispiel
wenn gestartet :: hat events
[Build Used: Competition Advanced 2.0]
[Display the ArmMotor's velocity when it moves.]
drucke [Resting: ] ▶
drucke ([ArmMotor v] Geschwindigkeit in %) ▶
setze Cursor in nächste Zeile
drehe [ArmMotor v] [hoch v]
warte [1] Sekunden
drucke [Moving: ] ▶
drucke ([ArmMotor v] Geschwindigkeit in %) ▶
stoppe [ArmMotor v]
Motorstrom#
Der Motorstrom-Reporterblock meldet, wie viel Leistung der Motor von der Batterie bezieht, als Prozentsatz von 0 % bis 100 %.
Ein höherer Stromwert bedeutet, dass der Motor mehr Energie verbraucht. Dies kann vorkommen, wenn der Motor etwas Schweres anhebt, gegen ein Hindernis drückt oder versucht, sich aus einer Blockade zu bewegen.
([ArmMotor v] Strom in %)
Parameter |
Beschreibung |
|---|---|
Motor |
Der Motor, dessen Stromstärke gemessen werden soll. Wählen Sie einen der im Gerätefenster konfigurierten Motoren aus. |
Beispiel
wenn gestartet :: hat events
[Build Used: Competition Advanced 2.0]
[Display the motor's current when it moves.]
drucke [Resting: ] ▶
drucke ([ArmMotor v] Strom in %) ▶
setze Cursor in nächste Zeile
drehe [ArmMotor v] [hoch v]
warte [1] Sekunden
drucke [Moving: ] ▶
drucke ([ArmMotor v] Strom in %) ▶
stoppe [ArmMotor v]