Roboterspezifische Blöcke#
Einführung#
Der Hero Bot, Flop, umfasst einen Ansaugmotor, einen Armmotor und einen IQ AI Vision Sensor.
Alle Standard-VEXcode-VR-Blöcke können im IQ 26-27 Level Up Playground verwendet werden.
Nachfolgend finden Sie eine Liste aller verfügbaren roboterspezifischen Blöcke:
Bewegung – Die Motoren des Roboters bewegen und verfolgen.
Aktionen
Motor drehen – Dreht einen Motor unendlich lange in eine seiner Richtungen.
Motor drehen für – Dreht einen Motor um eine bestimmte Strecke in Grad oder Umdrehungen.
Motor in Position drehen – Dreht einen Motor in eine bestimmte Position.
Motor stoppen – Stoppt den Motor.
Einstellungen
Motorgeschwindigkeit einstellen – Gibt dem Motor die Drehzahl vor.
set motor timeout – Legt fest, wie lange ein Motor versucht, eine Bewegung abzuschließen.
Position
Motorposition – Gibt die aktuelle Position des Motors an.
Motorposition einstellen – Ändert die aktuelle Position des Motors auf einen neuen Wert.
Werte
Motor ist fertig – Meldet, ob der Motor seine Bewegung beendet hat.
Motor dreht sich – Meldet, ob sich der Motor dreht.
Motorgeschwindigkeit – Gibt an, wie schnell sich der Motor dreht, als Prozentsatz von -100% bis 100%.
KI-Vision – Objekte mithilfe des IQ KI-Vision-Sensors erfassen und analysieren.
Aktionen
Objektdaten abrufen - Erfasst Daten für eine bestimmte Signatur, z. B. eine erkannte KI-Klassifizierung.
Einstellungen
set object item - Wählt ein bestimmtes Objekt aus der Liste aus.
Werte
object exists - Gibt zurück, ob eine Klassifizierung erkannt wurde.
object is - Gibt zurück, ob eine bestimmte Klassifizierung erkannt wurde.
object is AprilTag - Gibt zurück, ob das erkannte Objekt ein AprilTag ist, das einer bestimmten ID entspricht.
Objektanzahl - Gibt zurück, wie viele Objekte erkannt wurden.
Objekteigenschaft - Gibt Breite, Höhe, MittelpunktX, MittelpunktY, UrsprungX oder UrsprungY zurück.
Die Beispiele auf dieser Seite verwenden die standardmäßige Startposition des Playgrounds.
Bewegung#
Flop nutzt den Einzugsmotor, um Spielelemente aufzunehmen und auszuwerfen. Der Armmotor hebt und senkt den Arm.
Jeder Motor verfügt über eigene Richtungsoptionen. Die Richtungsbezeichnungen beschreiben, wie sich der jeweilige Motor auf dem Flop bewegt.
Aktionen#
Spinmotor#
Der Drehmotor-Stapelblock lässt einen Motor sich endlos in eine von zwei Richtungen drehen. Der Motor dreht sich so lange, bis er eine andere Aktion auslöst, z. B. die Drehrichtung ändert oder anhält.
drehe [IntakeMotor v] [intake v]
Parameter |
Beschreibung |
|---|---|
Motor |
Der zu drehende Motor: IntakeMotor oder ArmMotor. |
Richtung |
Die Drehrichtung des Motors:
|
Beispiel
wenn gestartet
[Score a Bean Bag in a Blue Goal.]
drehe [links v] für (90) Grad ▶
fahre [vorwärts v] für (35) [Zoll v] ▶
drehe [rechts v] für (90) Grad ▶
drehe [ArmMotor v] [hoch v] für (1) [Umdrehungen v] ▶
fahre [vorwärts v] für (40) [Zoll v] ▶
drehe [IntakeMotor v] [outtake 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 (500) [Grad v] ▶
Parameter |
Beschreibung |
|---|---|
Motor |
Der zu drehende Motor: IntakeMotor oder ArmMotor. |
Richtung |
Die Drehrichtung des Motors:
|
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
[Score a Bean Bag in a Blue Goal.]
drehe [links v] für (90) Grad ▶
fahre [vorwärts v] für (35) [Zoll v] ▶
drehe [rechts v] für (90) Grad ▶
drehe [ArmMotor v] [hoch v] für (1) [Umdrehungen v] ▶
fahre [vorwärts v] für (40) [Zoll v] ▶
drehe [IntakeMotor v] [outtake 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.
Wenn der Motor beispielsweise bei 0 Grad startet und sich bis zu einer Position von 720 Grad dreht, dreht er sich zwei Umdrehungen vorwärts. Dreht er sich anschließend bis zu einer Position von 360 Grad, dreht er sich eine Umdrehung rückwärts, da 360 kleiner als 720 ist.
drehe [ArmMotor v] zu Position (500) [Grad v] ▶
Parameter |
Beschreibung |
|---|---|
Motor |
Der zu drehende Motor: IntakeMotor oder ArmMotor. |
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
[Score a Bean Bag in a Blue Goal.]
drehe [links v] für (90) Grad ▶
fahre [vorwärts v] für (35) [Zoll v] ▶
drehe [rechts v] für (90) Grad ▶
drehe [ArmMotor v] zu Position (1) [Umdrehungen v] ▶
fahre [vorwärts v] für (40) [Zoll v] ▶
drehe [IntakeMotor v] [outtake v]
Motor stoppen#
Der Motorstopp-Block stoppt den ausgewählten Motor.
stoppe [IntakeMotor v]
Parameter |
Beschreibung |
|---|---|
Motor |
Der Motor, der gestoppt werden soll: IntakeMotor oder ArmMotor. |
Beispiel
wenn gestartet
[Score a Bean Bag in a Blue Goal.]
drehe [links v] für (90) Grad ▶
fahre [vorwärts v] für (35) [Zoll v] ▶
drehe [rechts v] für (90) Grad ▶
drehe [ArmMotor v] [hoch v] für (1) [Umdrehungen v] ▶
fahre [vorwärts v] für (40) [Zoll v] ▶
drehe [IntakeMotor v] [outtake v]
warte (1) Sekunden
stoppe [IntakeMotor v]
Einstellungen#
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 [IntakeMotor v] Geschwindigkeit auf [50] [% v]
Parameter |
Beschreibung |
|---|---|
Motor |
Der Motor, dessen Drehzahl eingestellt werden soll: IntakeMotor oder ArmMotor. |
Geschwindigkeit |
Die Drehzahl des Motors. Prozent werden in ganzen Zahlen von 0 % bis 100 % angegeben. |
Einheit |
Die Geschwindigkeitseinheit: %. |
Beispiel
wenn gestartet
[Score a Bean Bag in a Blue Goal.]
drehe [links v] für (90) Grad ▶
fahre [vorwärts v] für (35) [Zoll v] ▶
drehe [rechts v] für (90) Grad ▶
drehe [ArmMotor v] [hoch v] für (1) [Umdrehungen v] ▶
fahre [vorwärts v] für (40) [Zoll v] ▶
setze [IntakeMotor v] Geschwindigkeit auf [100] [% v]
drehe [IntakeMotor v] [outtake v]
Motor-Timeout einstellen#
Der Block „Motor-Timeout festlegen“ bestimmt, wie lange ein Motor versucht, eine Bewegung abzuschließen. Schafft er es nicht, die Bewegung innerhalb dieser Zeit zu beenden, 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 eingestellt werden soll: IntakeMotor oder ArmMotor. |
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
[Score a Bean Bag in a Blue Goal.]
drehe [links v] für (90) Grad ▶
fahre [vorwärts v] für (35) [Zoll v] ▶
drehe [rechts v] für (90) Grad ▶
setze [ArmMotor v] Zeitlimit auf [2] Sekunden
drehe [ArmMotor v] [hoch v] für (1) [Umdrehungen v] ▶
fahre [vorwärts v] für (40) [Zoll v] ▶
drehe [IntakeMotor v] [outtake v]
Position#
Motorposition#
Die Position eines Motors wird in Grad oder Umdrehungen gemessen und gibt an, wie weit er sich gedreht hat. Eine Umdrehung entspricht 360 Grad. Der Block zur Meldung der Motorposition gibt die aktuelle Position des Motors aus.
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])
Parameter |
Beschreibung |
|---|---|
Motor |
Der Motor, der die Position von IntakeMotor oder ArmMotor meldet. |
Einheit |
Die Einheit, in der die Motorposition angegeben werden soll: Grad oder Umdrehungen. |
Beispiel
wenn gestartet
[Score a Bean Bag in a Blue Goal.]
drehe [links v] für (90) Grad ▶
fahre [vorwärts v] für (35) [Zoll v] ▶
drehe [rechts v] für (90) Grad ▶
solange <([ArmMotor v] Position in [Grad v]) [math_less_than v] [360]>
drehe [ArmMotor v] [hoch v]
warte (0.002) Sekunden
Ende
stoppe [ArmMotor v]
fahre [vorwärts v] für (40) [Zoll v] ▶
drehe [IntakeMotor v] [outtake v]
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, der die Position von IntakeMotor oder ArmMotor einstellt. |
Position |
Der einzustellende Positionswert. Gradangaben werden als ganze Zahlen angegeben. Drehungen können als ganze Zahlen oder Dezimalzahlen angegeben werden. |
Einheit |
Die Positionseinheit: Grad oder Umdrehungen. |
Beispiel
wenn gestartet
[Score a Bean Bag in a Blue Goal.]
drehe [links v] für (90) Grad ▶
fahre [vorwärts v] für (35) [Zoll v] ▶
drehe [rechts v] für (90) Grad ▶
setze [ArmMotor v] Position auf [0] [Grad v]
drehe [ArmMotor v] [hoch v] für (1) [Umdrehungen v] ▶
fahre [vorwärts v] für (40) [Zoll v] ▶
drehe [IntakeMotor v] [outtake v]
Werte#
Der Motor ist fertig.#
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, der meldet, ob er seine Bewegung beendet hat: IntakeMotor oder ArmMotor. |
Beispiel
wenn gestartet
[Score a Bean Bag in a Blue Goal.]
drehe [links v] für (90) Grad ▶
fahre [vorwärts v] für (35) [Zoll v] ▶
drehe [rechts v] für (90) Grad ▶
drehe [ArmMotor v] zu Position (1) [Umdrehungen v] ◀ und nicht warten
warte bis <[ArmMotor v] abgeschlossen?>
fahre [vorwärts v] für (40) [Zoll v] ▶
drehe [IntakeMotor v] [outtake v]
Der Motor dreht sich#
Der boolesche Block „Motor dreht sich“ meldet, 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.
<[IntakeMotor v] dreht?>
Parameter |
Beschreibung |
|---|---|
Motor |
Der Motor, der meldet, ob er sich dreht: IntakeMotor oder ArmMotor. |
Beispiel
wenn gestartet
[Score a Bean Bag in a Blue Goal.]
drehe [links v] für (90) Grad ▶
fahre [vorwärts v] für (35) [Zoll v] ▶
drehe [rechts v] für (90) Grad ▶
drehe [ArmMotor v] [hoch v] für (1) [Umdrehungen v] ▶
fahre [vorwärts v] für (40) [Zoll v] ▶
drehe [IntakeMotor v] [outtake v]
warte bis <nicht <[IntakeMotor v] dreht?>>
stoppe [IntakeMotor v]
Motorgeschwindigkeit#
Der Motorgeschwindigkeits-Reporterblock gibt an, wie schnell sich der Motor dreht, und zwar als Prozentsatz von -100% bis 100%.
([IntakeMotor v] Geschwindigkeit in [% v] :: custom-motion)
Parameter |
Beschreibung |
|---|---|
Motor |
Der Motor, der die Geschwindigkeit von IntakeMotor oder ArmMotor melden soll. |
Einheit |
Die Einheit, in der die Motorgeschwindigkeit angegeben werden soll: %. |
Beispiel
wenn gestartet
[Score a Bean Bag in a Blue Goal.]
drehe [links v] für (90) Grad ▶
fahre [vorwärts v] für (35) [Zoll v] ▶
drehe [rechts v] für (90) Grad ▶
drehe [ArmMotor v] [hoch v] für (1) [Umdrehungen v] ▶
fahre [vorwärts v] für (40) [Zoll v] ▶
drehe [IntakeMotor v] [outtake v]
warte [0.2] Sekunden
drucke ([IntakeMotor v] Geschwindigkeit in [% v] :: custom-motion) ▶
KI-Vision#
Aktionen#
Objektdaten abrufen#
Der Block Objektdaten abrufen filtert Daten aus dem IQ AI Vision Sensor-Frame zu einer einzigen Signatur – einer gespeicherten Beschreibung von etwas, das der Sensor erkennen kann, wie zum Beispiel ein Spielelement auf dem Spielfeld.
Der Datensatz speichert Objekte, sortiert nach ihrer Breite von groß nach klein, beginnend bei Index 0. Auf die Eigenschaften jedes Objekts kann über den Block Objekteigenschaft zugegriffen werden. Wird kein passendes Objekt gefunden, wird ein leerer Datensatz zurückgegeben.
hole [KI-Klassifikationen v] Daten von [AIVision v]
Parameter |
Beschreibung |
|---|---|
Unterschrift |
Filtert den Datensatz, sodass nur Daten der angegebenen Signatur enthalten sind. Verfügbare Signaturen:
|
Beispiel
wenn gestartet :: hat events
[Drop the preloaded Bean Bag.]
drehe [IntakeMotor v] [outtake v] für (180) [Grad v] ▶
drehe [links v] für (90) Grad ▶
[Find and face the nearest red Bean Bag.]
setze Drehgeschwindigkeit auf (30) [% v]
setze [object_counter v] auf [1]
hole [KI-Klassifikationen v] Daten von [AIVision v]
wiederhole ([AIVision v] Objektanzahl)
setze [AIVision v] Objektelement auf (object_counter)
wenn <[AIVision v] Objekt ist [RedBeanBag v]?> dann
if <([AIVision v] Objekt [centerX v]) < (140)> then
drehe [links v]
else if <([AIVision v] object [centerX v]) > (180)> then
drehe [rechts v]
sonst
Fahren stoppen
Ende
Abbruch
Ende
ändere [object_counter v] um [1]
Ende
Einstellungen#
Objektelement festlegen#
Der Block set object item legt fest, welches Element im Datensatz verwendet werden soll.
setze [AIVision v] Objektelement auf [1]
Parameter |
Beschreibung |
|---|---|
Artikel |
Die Nummer des zu verwendenden Elements im Datensatz. |
Beispiel
wenn gestartet :: hat events
[Drop the preloaded Bean Bag.]
drehe [IntakeMotor v] [outtake v] für (180) [Grad v] ▶
drehe [links v] für (90) Grad ▶
[Find the index of the nearest red Bean Bag.]
setze [object_counter v] auf [1]
hole [KI-Klassifikationen v] Daten von [AIVision v]
wiederhole ([AIVision v] Objektanzahl)
setze [AIVision v] Objektelement auf (object_counter)
wenn <[AIVision v] Objekt ist [RedBeanBag v]?> dann
drucke (verbinde [Nearest Red Bean Bag is ] (object_counter)) ▶
Abbruch
sonst
ändere [object_counter v] um [1]
Ende
Ende
Werte#
Objekt existiert#
Der Objekt existiert-Block gibt einen booleschen Wert zurück, der angibt, ob im Datensatz ein Objekt gefunden wurde.
Wahr – Der Datensatz enthält ein erkanntes Objekt.
Falsch – Der Datensatz enthält keine erkannten Objekte.
<[AIVision v] Objekt vorhanden?>
Parameter |
Beschreibung |
|---|---|
Dieser Block hat keine Parameter. |
Beispiel
wenn gestartet :: hat events
[Drop the preloaded Bean Bag.]
drehe [IntakeMotor v] [outtake v] für (180) [Grad v] ▶
drehe [links v] für (90) Grad ▶
[Turn until a Bean Bag is detected.]
setze Drehgeschwindigkeit auf (30) [% v]
drehe [rechts v]
wiederhole bis <[AIVision v] Objekt vorhanden?>
hole [KI-Klassifikationen v] Daten von [AIVision v]
Ende
Fahren stoppen
Objekt ist#
Der Objekt ist-Block gibt einen booleschen Wert zurück, der angibt, ob ein erkanntes Objekt einer bestimmten Klassifizierung entspricht.
Wahr – Das Element im Datensatz ist das spezifische Objekt.
Falsch – Das Element im Datensatz ist nicht das angegebene Objekt.
<[AIVision v] Objekt ist [RedBeanBag v]?>
Parameter |
Beschreibung |
|---|---|
Objekt |
Mit welchem Objekt soll der Artikel verglichen werden: RoterSitzsack, BlauerSitzsack oder GelberSitzsack? |
Beispiel
wenn gestartet :: hat events
[Drop the preloaded Bean Bag.]
drehe [IntakeMotor v] [outtake v] für (180) [Grad v] ▶
drehe [links v] für (90) Grad ▶
[Find the index of the nearest red Bean Bag.]
setze [object_counter v] auf [1]
hole [KI-Klassifikationen v] Daten von [AIVision v]
wiederhole ([AIVision v] Objektanzahl)
setze [AIVision v] Objektelement auf (object_counter)
wenn <[AIVision v] Objekt ist [RedBeanBag v]?> dann
drucke (verbinde [Nearest Red Bean Bag is ] (object_counter)) ▶
Abbruch
sonst
ändere [object_counter v] um [1]
Ende
Ende
Objekt ist AprilTag#
Der Block object is AprilTag gibt einen booleschen Wert zurück, der angibt, ob es sich bei dem erkannten Objekt um einen AprilTag handelt, der einer bestimmten ID entspricht.
True - Das erkannte Objekt ist ein AprilTag mit der angegebenen ID.
Falsch – Das erkannte Objekt ist kein AprilTag mit der angegebenen ID.
<[AIVision v] Objekt ist AprilTag [0]?>
Parameter |
Beschreibung |
|---|---|
AprilTag ID |
Die ID-Nummer zum Vergleich mit dem erkannten AprilTag. |
Beispiel
wenn gestartet :: hat events
[Stop when you see the Red Goal!]
setze Drehgeschwindigkeit auf (30) [% v]
drehe [rechts v]
wiederhole bis <[AIVision v] Objekt ist AprilTag [1]?>
hole [AprilTags v] Daten von [AIVision v]
Ende
Fahren stoppen
drucke [Found the Red Goal!] ▶
Objektanzahl#
Der Objektanzahl-Block gibt die Anzahl der im Datensatz erkannten Objekte als ganze Zahl zurück.
([AIVision v] Objektanzahl)
Parameter |
Beschreibung |
|---|---|
Dieser Block hat keine Parameter. |
Beispiel
wenn gestartet :: hat events
[Drop the preloaded Bean Bag.]
drehe [IntakeMotor v] [outtake v] für (180) [Grad v] ▶
drehe [links v] für (90) Grad ▶
[Print how many Bean Bags are detected.]
hole [KI-Klassifikationen v] Daten von [AIVision v]
drucke ([AIVision v] Objektanzahl) ▶
Objekteigenschaft#
Es gibt sechs Eigenschaften, die zu jedem Objekt hinzugefügt werden, das nach der Verwendung des Blocks get object data gespeichert wird.
([AIVision v] Objekt [Breite v])
Alle Eigenschaftswerte beschreiben Position und Größe des erkannten Objekts im Sichtfeld des IQ AI Vision Sensors zum Zeitpunkt der Verwendung des Blocks „Objektdaten abrufen“. Die Werte werden in Pixeln gemessen, basierend auf der Auflösung des Sensors von 320 x 240 Pixeln.
Parameter |
Beschreibung |
|---|---|
Eigentum |
Welche Eigenschaft des erkannten Objekts soll verwendet werden: Breite, Höhe, MitteX, MitteY, UrsprungX oder UrsprungY? |
Breite#
Die width-Eigenschaft gibt die Breite des erkannten Objekts in Pixeln als ganze Zahl von 1 bis 320 an.
([AIVision v] Objekt [Breite v])
Beispiel
wenn gestartet
[Drop the preloaded Bean Bag.]
drehe [IntakeMotor v] [outtake v] für (180) [Grad v] ▶
drehe [links v] für (90) Grad ▶
[Approach the Bean Bag, then pick it up.]
setze Fahrgeschwindigkeit auf (30) [% v]
für immer
hole [KI-Klassifikationen v] Daten von [AIVision v]
wenn <[AIVision v] Objekt vorhanden?> dann
setze [AIVision v] Objektelement auf [1]
wenn <[AIVision v] Objekt ist [RedBeanBag v]?> dann
if <([AIVision v] object [width v]) > (180)> then
fahre [vorwärts v] für [50] [mm v] ▶
drehe [IntakeMotor v] [intake v] für [90] [Grad v] ▶
Abbruch
sonst
fahre [vorwärts v]
Ende
Ende
Ende
Ende
Höhe#
Die height-Eigenschaft gibt die Höhe des erkannten Objekts in Pixeln als ganze Zahl von 1 bis 240 an.
([AIVision v] Objekt [Höhe v])
Beispiel
wenn gestartet
[Drop the preloaded Bean Bag.]
drehe [IntakeMotor v] [outtake v] für (180) [Grad v] ▶
drehe [links v] für (90) Grad ▶
[Approach the Bean Bag, then pick it up.]
setze Fahrgeschwindigkeit auf (30) [% v]
für immer
hole [KI-Klassifikationen v] Daten von [AIVision v]
wenn <[AIVision v] Objekt vorhanden?> dann
setze [AIVision v] Objektelement auf [1]
wenn <[AIVision v] Objekt ist [RedBeanBag v]?> dann
if <([AIVision v] object [height v]) > (100)> then
fahre [vorwärts v] für [50] [mm v] ▶
drehe [IntakeMotor v] [intake v] für [90] [Grad v] ▶
Abbruch
sonst
fahre [vorwärts v]
Ende
Ende
Ende
Ende
centerX#
Die centerX-Eigenschaft gibt die x-Koordinate des Mittelpunkts des erkannten Objekts in Pixeln als ganze Zahl von 0 bis 320 an.
([AIVision v] Objekt [centerX v])
Beispiel
wenn gestartet
[Drop the preloaded Bean Bag.]
drehe [IntakeMotor v] [outtake v] für (180) [Grad v] ▶
drehe [links v] für (90) Grad ▶
[Steer to keep the Bean Bag centered while approaching.]
setze Drehgeschwindigkeit auf (30) [% v]
setze Fahrgeschwindigkeit auf (30) [% v]
für immer
hole [KI-Klassifikationen v] Daten von [AIVision v]
wenn <[AIVision v] Objekt vorhanden?> dann
setze [AIVision v] Objektelement auf [1]
wenn <[AIVision v] Objekt ist [RedBeanBag v]?> dann
if <([AIVision v] Objekt [centerX v]) < (140)> then
drehe [links v] für (5) Grad ▶
sonst
fahre [vorwärts v] für (150) [mm v] ▶
drehe [IntakeMotor v] [intake v]
Abbruch
Ende
Ende
Ende
Ende
ZentrumY#
Die centerY-Eigenschaft gibt die y-Koordinate des Mittelpunkts des erkannten Objekts in Pixeln als ganze Zahl von 0 bis 240 an.
([AIVision v] Objekt [centerY v])
Beispiel
wenn gestartet
[Drop the preloaded Bean Bag.]
drehe [IntakeMotor v] [outtake v] für (180) [Grad v] ▶
drehe [links v] für (90) Grad ▶
[Print the y-position of the Bean Bag.]
hole [KI-Klassifikationen v] Daten von [AIVision v]
wenn <[AIVision v] Objekt vorhanden?> dann
setze [AIVision v] Objektelement auf [1]
wenn <[AIVision v] Objekt ist [RedBeanBag v]?> dann
drucke ([AIVision v] Objekt [centerY v]) ▶
Ende
Ende
originX#
Die originX-Eigenschaft gibt die x-Koordinate der oberen linken Ecke des Begrenzungsrahmens des erkannten Objekts in Pixeln als ganze Zahl von 0 bis 320 an.
([AIVision v] Objekt [originX v])
Beispiel
wenn gestartet
[Drop the preloaded Bean Bag.]
drehe [IntakeMotor v] [outtake v] für (180) [Grad v] ▶
drehe [links v] für (90) Grad ▶
[Steer to keep the left edge centered.]
setze Drehgeschwindigkeit auf (30) [% v]
setze Fahrgeschwindigkeit auf (30) [% v]
für immer
hole [KI-Klassifikationen v] Daten von [AIVision v]
wenn <[AIVision v] Objekt vorhanden?> dann
setze [AIVision v] Objektelement auf [1]
wenn <[AIVision v] Objekt ist [RedBeanBag v]?> dann
if <([AIVision v] Objekt [originX v]) < (100)> then
drehe [links v] für (5) Grad ▶
sonst
fahre [vorwärts v] für (150) [mm v] ▶
drehe [IntakeMotor v] [intake v]
Abbruch
Ende
Ende
Ende
Ende
UrsprungY#
Die originY-Eigenschaft gibt die y-Koordinate der oberen linken Ecke des Begrenzungsrahmens des erkannten Objekts in Pixeln als ganze Zahl von 0 bis 240 an.
([AIVision v] Objekt [originY v])
Beispiel
wenn gestartet
[Drop the preloaded Bean Bag.]
drehe [IntakeMotor v] [outtake v] für (180) [Grad v] ▶
drehe [links v] für (90) Grad ▶
[Print the y-position of the Bean Bag's top edge.]
hole [KI-Klassifikationen v] Daten von [AIVision v]
wenn <[AIVision v] Objekt vorhanden?> dann
setze [AIVision v] Objektelement auf [1]
wenn <[AIVision v] Objekt ist [RedBeanBag v]?> dann
drucke ([AIVision v] Objekt [originY v]) ▶
Ende
Ende