Robotspecifieke blokken#

Invoering#

De Hero Bot, Flex, bevat een ClawMotor, een ArmMotor, een AI Vision Sensor, een Distance Sensor en een Game Positioning System (GPS) Sensor.

Alle standaard VEXcode VR-blokken zijn beschikbaar voor gebruik in de V5 26-27 Override Playground.

Hieronder vindt u een lijst met alle beschikbare robotspecifieke bouwblokken:

Aandrijving – Beweeg en stuur de robot.

Beweging – Beweeg en volg de motoren van de robot.

AI Vision – Leg objecten vast en analyseer ze met behulp van de AI Vision-sensor.

  • Acties

    • get object data – Legt gegevens vast voor een specifieke signatuur, zoals een gedetecteerde AI-classificatie.

  • Instellingen

  • Waarden

    • object bestaat – Geeft aan of er een classificatie is gedetecteerd.

    • object is – Geeft aan of er een classificatie is gedetecteerd.

    • object is AprilTag – Geeft aan of het gedetecteerde object een AprilTag is die overeenkomt met een specifieke ID.

    • object count – Geeft aan hoeveel objecten er zijn gedetecteerd.

    • object property – Geeft details terug zoals:

      • breedte & hoogte – Grootte van het object.

      • centerX & centerY – Coördinaten van de middenpositie in het gezichtsveld van de sensor.

      • originX & originY – Positiecoördinaten van de linkerbovenhoek in het gezichtsveld van de sensor.

Waarneming – Gebruik de verschillende sensoren van de robot.

  • Afstand

    • Afstand gevonden object – Rapporteert of de afstandssensor een object binnen bereik detecteert.

    • objectafstand – Geeft de afstand weer tussen de afstandssensor en het dichtstbijzijnde gedetecteerde object.

  • GPS

    • GPS-positie – Geeft de X- of Y-positie van de GPS-sensor terug.

    • GPS-richting – Geeft de richting weer waarin de robot momenteel kijkt.

De voorbeelden op deze pagina gebruiken startlocatie C uit de checklist voor de voorbereiding op de wedstrijd op het speelveld.

Aandrijving#

De aandrijving bepaalt hoe de VR-robot rijdt en stuurt. De aandrijving kan vooruit of achteruit bewegen, naar links of rechts draaien, koersen volgen en zijn rotatie bijhouden.

Acties#

drijfveer#

Het drive-blok zorgt ervoor dat de robot oneindig vooruit of achteruit beweegt. De robot blijft bewegen totdat er een andere actie wordt uitgevoerd, zoals draaien of stoppen.

rijd [vooruit v]

Parameters

Beschrijving

richting

De richting waarin de robot beweegt: vooruit of achteruit.

Voorbeeld

wanneer gestart :: hat events
[Raise the Arm, drive to the Goal, release the Pin.]
draai [ArmMotor v] [omhoog v] voor (300) [graden v] ▶
rijd [vooruit v]
wacht (0.5) seconden
stop rijden
draai [ClawMotor v] [open v] voor (180) [graden v] ▶

rijden voor#

Het aandrijfblok in de stapel beweegt de robot vooruit of achteruit over een bepaalde afstand. Het project wacht totdat de robot klaar is met bewegen voordat het volgende blok in de stapel wordt uitgevoerd.

rijd [vooruit v] voor (200) [mm v] ▶

Parameters

Beschrijving

richting

De richting waarin de robot beweegt: vooruit of achteruit.

afstand

De afstand die de robot aflegt. Dit kan een geheel getal of een decimaal getal zijn.

eenheid

De afstandseenheid: mm (millimeter) of inches

en wacht niet

Selecteer de pijl ( ▶ ) om het blok uit te breiden naar en niet te wachten, zodat het volgende blok in de stapel direct wordt uitgevoerd.

Voorbeeld

wanneer gestart :: hat events
[Raise the Arm, drive to the Goal, release the Pin.]
draai [ArmMotor v] [omhoog v] voor (300) [graden v] ▶
rijd [vooruit v] voor (10) [inches v] ▶
draai [ClawMotor v] [open v] voor (180) [graden v] ▶

draai#

Het draai-blok zorgt ervoor dat de robot continu naar links of rechts draait. De robot blijft draaien totdat er een andere actie wordt uitgevoerd, zoals rijden of stoppen.

draai [rechts v]

Parameters

Beschrijving

richting

De richting waarin de robot draait: links of rechts.

Voorbeeld

wanneer gestart :: hat events
[Score a Pin in a Neutral Goal.]
draai [links v]
wacht (0.78) seconden
stop rijden
draai [ArmMotor v] [omhoog v] voor (800) [graden v] ▶
rijd [vooruit v] voor (25) [inches v] ▶
draai [ClawMotor v] [open v] voor (180) [graden v] ▶

draai voor#

Het draai voor-blok in de stapel laat de robot een specifiek aantal graden naar links of rechts draaien. De draai is relatief ten opzichte van de huidige positie van de robot. Het project wacht tot de robot klaar is met draaien voordat het volgende blok in de stapel wordt uitgevoerd.

draai [rechts v] voor (90) graden ▶

Parameters

Beschrijving

richting

De richting waarin de robot draait: links of rechts.

hoek

Het aantal graden dat de robot draait. Dit kan een geheel getal of een decimaal getal zijn.

en wacht niet

Selecteer de pijl ( ▶ ) om het blok uit te breiden naar en niet te wachten, zodat het volgende blok in de stapel direct wordt uitgevoerd.

Voorbeeld

wanneer gestart :: hat events
[Score a Pin in a Neutral Goal.]
draai [links v] voor (110) graden ▶
draai [ArmMotor v] [omhoog v] voor (800) [graden v] ▶
rijd [vooruit v] voor (25) [inches v] ▶
draai [ClawMotor v] [open v] voor (180) [graden v] ▶

naar koptekst#

Een koers is de richting waarin de robot kijkt, gemeten in graden. Het draai naar koers-blok zorgt ervoor dat de robot in een specifieke koers kijkt, van -359 tot 359 graden. De robot draait in de kortste richting om de gewenste koers te bereiken.

De beginrichting is 0 graden.

Het project wacht tot de robot klaar is met draaien voordat het volgende blok in de stapel wordt uitgevoerd.

draai naar koers (90) graden ▶

Parameters

Beschrijving

kop

De richting waarin de robot moet kijken, ligt tussen -359 en 359 graden.

en wacht niet

Selecteer de pijl ( ▶ ) om het blok uit te breiden naar en niet te wachten, zodat het volgende blok in de stapel direct wordt uitgevoerd.

Voorbeeld

wanneer gestart :: hat events
[Score a Pin in a Neutral Goal.]
draai naar koers (-110) graden ▶
draai [ArmMotor v] [omhoog v] voor (800) [graden v] ▶
rijd [vooruit v] voor (25) [inches v] ▶
draai [ClawMotor v] [open v] voor (180) [graden v] ▶

overschakelen naar rotatie#

Het stapelblok draaien naar rotatie zorgt ervoor dat de robot in een specifieke rotatierichting draait.

Rotatie is de mate waarin de robot is gedraaid, gemeten in graden. Aan het begin van een project wordt de rotatiewaarde ingesteld op 0 graden. Rotatie kan ook worden ingesteld met behulp van het blok set drive rotation.

De rotatiewaarden zijn absoluut. Dit betekent dat de draairichting afhangt van de huidige rotatie van de robot. Naar rechts draaien vergroot de rotatie, naar links draaien verkleint de rotatie.

Als de robot bijvoorbeeld begint bij 0 graden en je draait hem 720 graden, dan draait hij twee keer naar rechts. Als je hem vervolgens 360 graden draait, draait hij één keer naar links, omdat 360 minder is dan 720.

Het project wacht tot de robot klaar is met draaien voordat het volgende blok in de stapel wordt uitgevoerd.

draai naar rotatie (90) graden ▶

Parameters

Beschrijving

rotatie

De rotatiewaarde, in graden, waarnaar de robot zal draaien. Dit kan een geheel getal of een decimaal getal zijn.

en wacht niet

Selecteer de pijl ( ▶ ) om het blok uit te breiden naar en niet te wachten, zodat het volgende blok in de stapel direct wordt uitgevoerd.

Voorbeeld

wanneer gestart :: hat events
[Score a Pin in a Neutral Goal.]
draai naar rotatie (-110) graden ▶
draai [ArmMotor v] [omhoog v] voor (800) [graden v] ▶
rijd [vooruit v] voor (25) [inches v] ▶
draai [ClawMotor v] [open v] voor (180) [graden v] ▶

stop met rijden#

Het stop rijden-blok stopt de beweging van de robot.

stop rijden

Parameters

Beschrijving

Dit blok heeft geen parameters.

Voorbeeld

wanneer gestart :: hat events
[Score a Pin in a Neutral Goal.]
draai [ArmMotor v] [omhoog v] voor (300) [graden v] ▶
rijd [vooruit v]
wacht (0.5) seconden
stop rijden
draai [ClawMotor v] [open v] voor (180) [graden v] ▶

Instellingen#

stel aandrijfsnelheid in#

Het stackblok set drive velocity vertelt de robot hoe snel hij moet rijden. Een hoger percentage zorgt ervoor dat de robot sneller rijdt en een lager percentage zorgt ervoor dat de robot langzamer rijdt.

Elk project begint standaard met de robot die op 50% van zijn maximale snelheid rijdt.

Let op: Een hogere snelheid zorgt ervoor dat de robot sneller rijdt, maar mogelijk minder nauwkeurig. Een lagere snelheid zorgt ervoor dat de robot langzamer rijdt, maar mogelijk nauwkeuriger.

stel rijsnelheid in op (50) [% v]

Parameters

Beschrijving

snelheid

De snelheid waarmee gereden wordt, varieert van 0% tot 100%.

eenheid

De snelheidseenheid: %

Voorbeeld

wanneer gestart :: hat events
[Score a Pin in a Neutral Goal.]
draai [links v] voor (110) graden ▶
draai [ArmMotor v] [omhoog v] voor (800) [graden v] ▶
stel rijsnelheid in op (100) [% v]
rijd [vooruit v] voor (25) [inches v] ▶
draai [ClawMotor v] [open v] voor (180) [graden v] ▶

ingestelde draaisnelheid#

Het stapelblok set turn velocity vertelt de robot hoe snel hij moet draaien. Een hoger percentage zorgt ervoor dat de robot sneller draait en een lager percentage zorgt ervoor dat de robot langzamer draait.

Elk project begint standaard met de robot die met 50% snelheid draait.

Let op: Een hogere snelheid zorgt ervoor dat de robot sneller draait, maar mogelijk minder nauwkeurig. Een lagere snelheid zorgt ervoor dat de robot langzamer draait, maar mogelijk nauwkeuriger.

stel draaisnelheid in op (50) [% v]

Parameters

Beschrijving

snelheid

De draaisnelheid varieert van 0% tot 100%.

eenheid

De snelheidseenheid: %

Voorbeeld

wanneer gestart :: hat events
[Turn to face the Neutral Goal faster.]
stel draaisnelheid in op (100) [% v]
draai [links v] voor (110) graden ▶

stuurrichting instellen#

Een koers is de richting waarin de robot kijkt, gemeten in graden. Het stackblok set drive heading verandert de huidige koers van de robot naar een nieuwe koerswaarde.

Als de robot bijvoorbeeld naar rechts is gedraaid, zorgt het instellen van de richting op 0 graden ervoor dat die naar rechts gerichte positie de nieuwe 0 graden wordt. Vervolgens kan de robot zich op basis van die nieuwe richting naar andere posities draaien.

stel rijkoers in op (0) graden

Parameters

Beschrijving

kop

De richtingswaarde, in graden, die voor de robot moet worden ingesteld.

Voorbeeld

wanneer gestart :: hat events
[Make facing the Neutral Goal the new heading.]
stel rijkoers in op (110) graden
draai naar koers (0) graden ▶

stel de aandrijfrotatie in#

Rotatie geeft aan hoeveel de robot is gedraaid, gemeten in graden. Aan het begin van een project wordt de rotatiewaarde ingesteld op 0 graden. Het stackblok set drive rotation wijzigt de huidige rotatie van de robot naar een nieuwe waarde.

Als de robot bijvoorbeeld twee volledige draaien naar rechts heeft gemaakt, is de rotatiewaarde 720 graden. Door de rotatie op 0 graden te zetten, wordt die rotatiewaarde gereset van 720 naar 0 graden. De robot kan vervolgens draaien op basis van die nieuwe waarde.

stel rijrotatie in op (0) graden

Parameters

Beschrijving

rotatie

De rotatiewaarde in graden die voor de robot moet worden ingesteld. Dit kan een geheel getal of een decimaal getal zijn.

Voorbeeld

wanneer gestart :: hat events
[Make facing the Neutral Goal the new rotation.]
stel rijrotatie in op (110) graden
draai naar rotatie (0) graden ▶

schijftime-out instellen#

Het stackblok set drive timeout bepaalt hoeveel seconden de robot mag proberen een beweging te voltooien. Als de robot de beweging niet binnen die tijd kan voltooien, stopt hij met proberen en gaat hij verder met het volgende blok in de stack. Dit voorkomt dat de robot vast komt te zitten tijdens een beweging.

stel rijtime-out in op (1) seconden

Parameters

Beschrijving

tijd

Het aantal seconden dat de robot de tijd heeft om een ​​beweging te voltooien. Dit kan een geheel getal of een decimaal getal zijn.

Voorbeeld

wanneer gestart :: hat events
[Turn to face the Neutral Goal.]
stel rijtime-out in op (0.8) seconden
draai [links v] voor (180) graden ▶

Waarden#

De rit is voltooid.#

Het Booleaanse blok rijden is klaar geeft aan of de robot klaar is met bewegen. Dit kan worden gebruikt om de timing van andere acties te regelen op basis van de beweging van de robot.

  • Klopt — De robot is klaar met bewegen.

  • Onjuist — De robot beweegt nog steeds.

Dit blok werkt samen met aandrijflijnblokken die de parameter en niet wachten hebben.

<rijden klaar?>

Parameters

Beschrijving

Dit blok heeft geen parameters.

Voorbeeld

wanneer gestart :: hat events
[Score a Pin in a Neutral Goal.]
draai [links v] voor (110) graden ▶
draai [ArmMotor v] [omhoog v] voor (800) [graden v] ▶
rijd [vooruit v] voor (25) [inches v] ◀ en niet wachten
wacht totdat <rijden klaar?>
draai [ClawMotor v] [open v] voor (180) [graden v] ▶

De aandrijving beweegt.#

Het Booleaanse blok aandrijving beweegt geeft aan of de robot beweegt. Dit kan worden gebruikt om de timing van andere gedragingen te regelen op basis van de beweging van de robot.

  • Klopt — De robot beweegt.

  • Onjuist — De robot beweegt niet.

Dit blok werkt samen met aandrijflijnblokken die de parameter en niet wachten hebben.

<rijden in beweging?>

Parameters

Beschrijving

Dit blok heeft geen parameters.

Voorbeeld

wanneer gestart :: hat events
[Raise the Arm once stopped near the Goal.]
draai [links v] voor (110) graden ▶
rijd [vooruit v] voor (25) [inches v] ◀ en niet wachten
zolang <rijden in beweging?>
wacht (0.005) seconden
einde
draai [ArmMotor v] [omhoog v] voor (800) [graden v] ▶

rijrichting#

Een koers is de richting waarin de robot kijkt, gemeten in graden. Het rijrichting-rapportageblok geeft die koers weer van 0 tot 359,99 graden.

De beginrichting van de robot is 0 graden.

(rijkoers in graden)

Parameters

Beschrijving

Dit blok heeft geen parameters.

Voorbeeld

wanneer gestart :: hat events
[Turn to the Goal, then show heading.]
draai [rechts v] voor (450) graden ▶
druk (rijkoers in graden) af op scherm ◀ en cursor naar volgende rij

aandrijfrotatie#

Rotatie geeft aan hoeveel de robot is gedraaid, gemeten in graden. Aan het begin van een project wordt de rotatiewaarde ingesteld op 0 graden. Het drive rotation-rapportageblok geeft de huidige rotatie van de robot weer.

Naar rechts draaien vergroot de rotatie, en naar links draaien verkleint de rotatie. Twee volledige draaien naar rechts resulteren bijvoorbeeld in een rotatie van 720 graden.

(rijrotatie in graden)

Parameters

Beschrijving

Dit blok heeft geen parameters.

Voorbeeld

wanneer gestart :: hat events
[Spin to find a Pin, then show rotation.]
draai [rechts v] voor (450) graden ▶
druk (rijrotatie in graden) af op scherm ◀ en cursor naar volgende rij

aandrijfsnelheid#

Het rijsnelheid-rapportageblok geeft aan hoe snel de robot rijdt.

(rijsnelheid in [% v])

Parameters

Beschrijving

eenheid

De snelheidseenheid: %

Voorbeeld

wanneer gestart :: hat events
[Show speed while driving to the Goal.]
rijd [vooruit v] voor (150) [mm v] ▶
druk (rijsnelheid in [% v]) af op scherm ◀ en cursor naar volgende rij

Beweging#

Flex gebruikt de ArmMotor om de arm omhoog en omlaag te bewegen, en de ClawMotor om de grijper te openen en te sluiten.

Elke motor heeft zijn eigen richtingsopties. De richtingsnamen beschrijven hoe die motor op de Flex beweegt.

Acties#

draaimotor#

Het stapelblok spinmotor laat een motor continu in één van twee richtingen draaien. De motor blijft draaien totdat er een andere actie wordt ondernomen, zoals in een andere richting draaien of stoppen.

draai [ArmMotor v] [omhoog v]

Parameters

Beschrijving

motor

De motor om te draaien: ArmMotor of ClawMotor.

richting

De draairichting van de motor:

  • Armmotor — omhoog of omlaag
  • Klauwmotor — openen of sluiten

Voorbeeld

wanneer gestart
[Raise the Arm before driving toward a Pin.]
draai [ArmMotor v] [omhoog v]
wacht (1) seconden
stop [ArmMotor v]

draaimotor voor#

De draaimotor voor het stapelblok laat een motor een bepaalde afstand draaien. De draaiing is relatief ten opzichte van de huidige positie van de motor. Het project wacht totdat de motor is uitgedraaid voordat het volgende blok in de stapel wordt uitgevoerd.

draai [ArmMotor v] [omhoog v] voor (90) [graden v] ▶

Parameters

Beschrijving

motor

De motor om te draaien: ArmMotor of ClawMotor.

richting

De draairichting van de motor:

  • Armmotor — omhoog of omlaag
  • Klauwmotor — openen of sluiten

afstand

De afstand die de motor aflegt. Graden worden uitgedrukt in gehele getallen. Omwentelingen kunnen worden uitgedrukt in gehele getallen of decimalen.

eenheid

De afstandseenheid: graden of omwentelingen.

en wacht niet

Selecteer de pijl ( ▶ ) om het blok uit te breiden naar en niet te wachten, zodat het volgende blok in de stapel direct wordt uitgevoerd.

Voorbeeld

wanneer gestart
[Raise the Arm to carry the Pin to the Goal.]
draai [ArmMotor v] [omhoog v] voor (800) [graden v] ▶

draai de motor naar de juiste positie.#

Het stapelblok motor naar positie draaien draait een motor naar een specifieke positie.

De positie van een motor geeft aan hoeveel graden deze heeft gedraaid, gemeten in graden of omwentelingen. Eén omwenteling is gelijk aan 360 graden. Aan het begin van een project is de positie van de ArmMotor ingesteld op 0 graden. De ClawMotor is hierop een uitzondering: deze begint op 467 graden (volledig gesloten). De motorpositie kan ook worden ingesteld met behulp van het blok set motor position.

Positiewaarden zijn absoluut. Dit betekent dat de draairichting afhangt van de huidige positie van de motor.

Als de motor bijvoorbeeld begint bij 0 graden en draait naar een positie van 720 graden, draait hij twee omwentelingen vooruit. Als hij vervolgens draait naar een positie van 360 graden, draait hij één omwenteling achteruit, omdat 360 minder is dan 720.

draai [ArmMotor v] naar positie (90) [graden v] ▶

Parameters

Beschrijving

motor

De motor om te draaien: ArmMotor of ClawMotor.

positie

De positiewaarde waarnaar de motor zal draaien. Graden worden weergegeven met gehele getallen. Omwentelingen kunnen met gehele getallen of decimalen worden weergegeven.

eenheid

De positie-eenheid: graden of omwentelingen.

en wacht niet

Selecteer de pijl ( ▶ ) om het blok uit te breiden naar en niet te wachten, zodat het volgende blok in de stapel direct wordt uitgevoerd.

Voorbeeld

wanneer gestart
[Raise the Arm, then release the Pin.]
draai [ArmMotor v] naar positie (800) [graden v] ▶
draai [ClawMotor v] [open v] voor (180) [graden v] ▶

stop motor#

Het stapelblok stop motor stopt de geselecteerde motor.

stop [ArmMotor v]

Parameters

Beschrijving

motor

De motor die moet stoppen: ArmMotor of ClawMotor.

Voorbeeld

wanneer gestart
[Raise the Arm partway to hold the Pin.]
draai [ArmMotor v] [omhoog v]
wacht (1) seconden
stop [ArmMotor v]

Instellingen#

stel de motorsnelheid in#

Het stackblok set motor velocity geeft een motor de gewenste draaisnelheid. Een hoger percentage zorgt ervoor dat de motor sneller draait en een lager percentage zorgt ervoor dat de motor langzamer draait.

Elk project begint standaard met elke motor op 50% snelheid.

Let op: Een hogere snelheid zorgt ervoor dat de motor sneller draait, maar de precisie kan lager zijn. Een lagere snelheid zorgt ervoor dat de motor langzamer draait, maar de precisie kan hoger zijn.

stel [ArmMotor v] snelheid in op [50] [% v]

Parameters

Beschrijving

motor

De motor waarmee de snelheid wordt ingesteld is: ArmMotor of ClawMotor.

snelheid

De snelheid waarmee de motor draait. Procenten gebruiken hele getallen van 0% tot 100%.

eenheid

De snelheidseenheid: %.

Voorbeeld

wanneer gestart
[Raise the Arm fast to release the Pin.]
stel [ArmMotor v] snelheid in op [100] [% v]
draai [ArmMotor v] [omhoog v] voor (800) [graden v] ▶
draai [ClawMotor v] [open v] voor (180) [graden v] ▶

stel de time-out van de motor in#

Het stackblok set motor timeout bepaalt hoeveel tijd een motor krijgt om een ​​beweging te voltooien. Als de motor de beweging niet binnen die tijd kan voltooien, stopt hij met proberen en gaat hij verder met het volgende blok in de stack. Dit voorkomt dat de motor vastloopt tijdens een beweging.

stel [ArmMotor v] timeout in op [1] seconden

Parameters

Beschrijving

motor

De motor waarvan de time-out moet worden ingesteld: ArmMotor of ClawMotor.

tijd

Het aantal seconden dat de motor de tijd heeft om een ​​beweging te voltooien. Dit kan een geheel getal of een decimaal getal zijn.

Voorbeeld

wanneer gestart
[Score a Pin in a Neutral Goal.]
draai [links v] voor (110) graden ▶
stel [ArmMotor v] timeout in op [1] seconden
draai [ArmMotor v] [omhoog v] voor (1800) [graden v] ▶
rijd [vooruit v] voor (25) [inches v] ▶
draai [ClawMotor v] [open v] voor (180) [graden v] ▶

Positie#

motorpositie#

De positie van een motor geeft aan hoeveel graden of omwentelingen deze heeft gemaakt. Eén omwenteling is gelijk aan 360 graden. Het blok dat de motorpositie weergeeft, rapporteert de huidige positie van de motor.

Aan het begin van een project wordt de positie van de ArmMotor ingesteld op 0 graden. De ClawMotor vormt hierop een uitzondering: deze begint op 467 graden (volledig gesloten). Als de motor één volledige slag vooruit draait, neemt de positie toe. Als de motor de andere kant op draait, neemt de positie af.

([ArmMotor v] positie in [graden v])

Parameters

Beschrijving

motor

De motor die de positie rapporteert van: ArmMotor of ClawMotor.

eenheid

De eenheid waarin de motorpositie wordt weergegeven: graden of omwentelingen.

Voorbeeld

wanneer gestart
[Raise the Arm, then release the Pin.]
zolang <([ArmMotor v] positie in [graden v]) < (800)>
draai [ArmMotor v] [omhoog v]
wacht (0.002) seconden
einde
stop [ArmMotor v]
draai [ClawMotor v] [open v] voor (180) [graden v] ▶

stel de motorpositie in#

De positie van een motor geeft aan hoeveel graden of omwentelingen deze heeft gemaakt. Eén omwenteling is gelijk aan 360 graden. Het stackblok motorpositie instellen wijzigt de huidige positie van de motor naar een nieuwe waarde.

Als een motor bijvoorbeeld 180 graden heeft gedraaid, zal het instellen van de positie op 0 graden die positie resetten van 180 naar 0 graden. Vervolgens kan de motor naar posities draaien op basis van die nieuwe waarde.

stel [ArmMotor v] positie in op (0) [graden v]

Parameters

Beschrijving

motor

De motor om de positie in te stellen is: ArmMotor of ClawMotor.

positie

De positiewaarde die voor de motor moet worden ingesteld. Graden worden met gehele getallen weergegeven. Omwentelingen kunnen met gehele getallen of decimalen worden weergegeven.

eenheid

De positie-eenheid: graden of omwentelingen.

Voorbeeld

wanneer gestart
[Reset encoder, raise Arm, place Pin.]
stel [ArmMotor v] positie in op (0) [graden v]
draai [ArmMotor v] naar positie (800) [graden v] ▶
draai [ClawMotor v] [open v] voor (180) [graden v] ▶

Waarden#

De motor is klaar.#

Het Booleaanse blok motor is klaar geeft aan of de motor klaar is met bewegen. Dit kan worden gebruikt om de timing van andere acties te regelen op basis van de beweging van de motor.

  • Klopt — De motor is gestopt met bewegen.

  • Onjuist — De motor draait nog steeds.

Dit blok werkt samen met de volgende bewegingsblokken die de parameter en niet wachten hebben: motor laten draaien voor en motor laten draaien naar positie.

<[ArmMotor v] klaar?>

Parameters

Beschrijving

motor

De motor die aangeeft of de beweging is voltooid: ArmMotor of ClawMotor.

Voorbeeld

wanneer gestart
[Raise the Arm while driving to the Goal.]
draai [ArmMotor v] naar positie (800) [graden v] ◀ en niet wachten
wacht (0.1) seconden
zolang <niet <[ArmMotor v] klaar?>>
rijd [vooruit v]
wacht (0.005) seconden
einde
stop rijden

De motor draait#

Het Booleaanse blok motor draait geeft aan of de motor draait. Dit kan worden gebruikt om de timing van andere acties te regelen op basis van de beweging van de motor.

  • Klopt — De motor draait.

  • Onjuist — De motor draait niet.

Dit blok werkt samen met de volgende bewegingsblokken die de parameter en niet wachten hebben: motor laten draaien voor en motor laten draaien naar positie.

<[ArmMotor v] draait?>

Parameters

Beschrijving

motor

De motor die aangeeft of hij draait: ArmMotor of ClawMotor.

Voorbeeld

wanneer gestart
[Raise the Arm while driving to the Goal, then release the Pin.]
draai [ArmMotor v] naar positie (800) [graden v] ◀ en niet wachten
wacht (0.1) seconden
zolang <[ArmMotor v] draait?>
rijd [vooruit v] voor (20) [mm v] ▶
einde
draai [ClawMotor v] [open v] voor (180) [graden v] ▶

motorsnelheid#

Het motorsnelheid-rapportageblok geeft aan hoe snel de motor draait, als een percentage van -100% tot 100%.

([ArmMotor v] snelheid in [% v] :: custom-motion)

Parameters

Beschrijving

motor

De motor die de snelheid rapporteert is: ArmMotor of ClawMotor.

eenheid

De eenheid waarin de motorsnelheid wordt weergegeven: %.

Voorbeeld

wanneer gestart
[Show Arm Motor velocity while raising.]
stel [ArmMotor v] snelheid in op [100] [% v]
draai [ArmMotor v] naar positie (800) [graden v] ◀ en niet wachten
wacht (0.2) seconden
druk ([ArmMotor v] snelheid in [% v] :: custom-motion) af op scherm ◀ en cursor naar volgende rij

AI-visie#

Acties#

objectgegevens ophalen#

Het objectgegevens ophalen-blok filtert gegevens uit het frame van de AI Vision Sensor tot één enkele signatuur: een opgeslagen beschrijving van iets dat de sensor kan herkennen, zoals een spelelement op het veld.

De dataset bevat objecten die van groot naar klein zijn gesorteerd op breedte, beginnend bij index 0. De eigenschappen van elk object kunnen worden opgevraagd via het blok AI Vision object property. Er wordt een lege dataset geretourneerd als er geen overeenkomende objecten worden gevonden.

Het Get object data stack-blok.#
haal [AI-classificaties v] gegevens op van [AIVision v]

Parameter

Beschrijving

handtekening

Filtert de dataset zodat alleen gegevens met de opgegeven signatuur worden opgenomen. Beschikbare signaturen zijn:

  • AI-classificaties - Detecteert RedBluePin, BlueYellowPin, RedYellowPin, YellowPin en Cup-spelelementen.
  • AprilTags - Detecteert de AprilTag-ID’s die op het veld worden gevonden.

Voorbeeld

wanneer gestart
[Raise the Arm, drive to the Goal, release the Pin.]
draai [ArmMotor v] [omhoog v] voor (300) [graden v] ▶
rijd [vooruit v] voor (10) [inches v] ▶
draai [ClawMotor v] [open v] voor (180) [graden v] ▶
draai [links v] voor (70) graden ▶
[Turn to face the Pin.]
stel draaisnelheid in op (30) [% v]
altijd
haal [AI-classificaties v] gegevens op van [AIVision v]
als <[AIVision v] object bestaat?> dan
if <([AIVision v] object [centerX v]) < (140)> then
draai [links v]
else if <([AIVision v] object [centerX v]) > (180)> then
draai [rechts v]
anders
stop rijden
onderbreek
einde
einde
einde

Instellingen#

stel objectitem in#

Het set object item-blok bepaalt welk item in de dataset gebruikt moet worden.

Het Set AI Vision object item stack block.#
stel [AIVision v] object-item in op [1]

Parameters

Beschrijving

item

Het nummer van het item in de dataset dat gebruikt moet worden.

Voorbeeld

wanneer gestart
[Raise the Arm, drive to the Goal, release the Pin.]
draai [ArmMotor v] [omhoog v] voor (300) [graden v] ▶
rijd [vooruit v] voor (10) [inches v] ▶
draai [ClawMotor v] [open v] voor (180) [graden v] ▶
draai [links v] voor (70) graden ▶
haal [AI-classificaties v] gegevens op van [AIVision v]
[Check if any AI Classifications were detected in the last snapshot.]
als <[AIVision v] object bestaat?> dan
[If any AI Classification is detected, check if any of them are a specific game element.]
als <[AIVision v] object is [RedBluePin v]?> dan
druk [RedBluePin detected.] af ▶
anders
druk [No RedBluePin detected.] af ▶
einde
einde

Waarden#

object bestaat#

Het blok object bestaat retourneert een Booleaanse waarde die aangeeft of er een object in de dataset is gedetecteerd.

  • Klopt – De dataset bevat een gedetecteerd object.

  • Onjuist – De dataset bevat geen gedetecteerde objecten.

Het AI Vision-object bestaat in een Booleaanse blok.#
<[AIVision v] object bestaat?>

Parameters

Beschrijving

Dit blok heeft geen parameters.

Voorbeeld

wanneer gestart
[Raise the Arm, drive to the Goal, release the Pin.]
draai [ArmMotor v] [omhoog v] voor (300) [graden v] ▶
rijd [vooruit v] voor (10) [inches v] ▶
draai [ClawMotor v] [open v] voor (180) [graden v] ▶
draai [links v] voor (70) graden ▶
haal [AI-classificaties v] gegevens op van [AIVision v]
[Check if any AI Classifications were detected in the last snapshot.]
als <[AIVision v] object bestaat?> dan
druk ([AIVision v] object aantal) af ◀ en cursor naar volgende rij
einde

object is#

Het blok object is retourneert een Booleaanse waarde die aangeeft of een gedetecteerd object overeenkomt met een specifieke classificatie.

  • Klopt – Het item in de dataset is het specifieke object.

  • Onjuist – Het item in de dataset is niet het specifieke object.

Het AI Vision-object is een Booleaanse blok.#
<[AIVision v] object is [RedBluePin v]?>

Parameter

Beschrijving

voorwerp

Met welk object moet het item vergeleken worden?

  • Rode blauwe speld
  • Blauwe gele speld
  • Rode gele speld
  • Gele speld
  • Beker

Voorbeeld

wanneer gestart
[Raise the Arm, drive to the Goal, release the Pin.]
draai [ArmMotor v] [omhoog v] voor (300) [graden v] ▶
rijd [vooruit v] voor (10) [inches v] ▶
draai [ClawMotor v] [open v] voor (180) [graden v] ▶
draai [links v] voor (70) graden ▶
haal [AI-classificaties v] gegevens op van [AIVision v]
als <[AIVision v] object bestaat?> dan
als <[AIVision v] object is [RedBluePin v]?> dan
druk [RedBluePin detected.] af ▶
anders
druk [No RedBluePin detected.] af ▶
einde
einde

object is AprilTag#

Het blok object is AprilTag retourneert een Booleaanse waarde die aangeeft of het gedetecteerde object een AprilTag is die overeenkomt met een specifieke ID.

  • Klopt – Het gedetecteerde object is een AprilTag met de opgegeven ID.

  • Onjuist – Het gedetecteerde object is geen AprilTag met de opgegeven ID.

Het object is een Booleaanse waardeblok genaamd AprilTag.#
<[AIVision v] object is AprilTag [0]?>

Parameter

Beschrijving

AprilTag ID

Het ID-nummer ter vergelijking met de gedetecteerde AprilTag.

Voorbeeld

wanneer gestart
[Report if AprilTag 3 is detected.]
haal [AprilTags v] gegevens op van [AIVision v]
als <[AIVision v] object bestaat?> dan
als <[AIVision v] object is AprilTag [3]?> dan
druk [That is 3!] af ▶
anders
druk [That isn't 3!] af ▶
einde
einde

aantal objecten#

Het blok object count retourneert het aantal gedetecteerde objecten in de dataset als een geheel getal.

Het Set AI Vision object item stack block.#
([AIVision] object aantal)

Parameters

Beschrijving

Dit blok heeft geen parameters.

Voorbeeld

wanneer gestart
[Raise the Arm, drive to the Goal, release the Pin.]
draai [ArmMotor v] [omhoog v] voor (300) [graden v] ▶
rijd [vooruit v] voor (10) [inches v] ▶
draai [ClawMotor v] [open v] voor (180) [graden v] ▶
draai [links v] voor (70) graden ▶
haal [AI-classificaties v] gegevens op van [AIVision v]
als <[AIVision v] object bestaat?> dan
druk ([AIVision v] object aantal) af ◀ en cursor naar volgende rij
einde

objecteigenschap#

Er zijn zes eigenschappen die bij elk object worden meegeleverd (zie hieronder) en die worden opgeslagen nadat het get object data blok is gebruikt.

Het objecteigenschaprapportageblok van AI Vision.#
([AIVision v] object [breedte v])

Alle eigenschapswaarden beschrijven de positie en grootte van het gedetecteerde object in het gezichtsveld van de AI Vision Sensor op het moment dat het objectgegevens ophalen-blok werd gebruikt. Deze waarden worden gemeten in pixels, gebaseerd op de resolutie van de sensor van 320 bij 240 pixels.

Parameter

Beschrijving

eigendom

Welke eigenschap van het gedetecteerde object te gebruiken:

breedte#

De eigenschap width geeft de breedte van het gedetecteerde object in pixels weer als een geheel getal van 1 tot 320.

Het eigenschappenblok van het AI Vision-object met de parameter ingesteld op breedte.#
([AIVision v] object [breedte v])

Voorbeeld

wanneer gestart
[Raise the Arm, drive to the Goal, release the Pin.]
draai [ArmMotor v] [omhoog v] voor (300) [graden v] ▶
rijd [vooruit v] voor (10) [inches v] ▶
draai [ClawMotor v] [open v] voor (180) [graden v] ▶
draai [links v] voor (70) graden ▶
[Approach the next Cup and Pin.]
stel rijsnelheid in op (30) [% v]
altijd
haal [AI-classificaties v] gegevens op van [AIVision v]
als <[AIVision v] object bestaat?> dan
if <([AIVision v] object [width v]) > (140)> then
stop rijden
onderbreek
anders
rijd [vooruit v]
einde
einde
einde
hoogte#

De eigenschap hoogte geeft de hoogte van het gedetecteerde object in pixels weer als een geheel getal van 1 tot 240.

Het eigenschappenblok van het AI Vision-object met de parameter ‘height’ ingesteld.#
([AIVision v] object [hoogte v])

Voorbeeld

wanneer gestart
[Raise the Arm, drive to the Goal, release the Pin.]
draai [ArmMotor v] [omhoog v] voor (300) [graden v] ▶
rijd [vooruit v] voor (10) [inches v] ▶
draai [ClawMotor v] [open v] voor (180) [graden v] ▶
draai [links v] voor (70) graden ▶
[Approach the next Cup and Pin.]
stel rijsnelheid in op (30) [% v]
altijd
haal [AI-classificaties v] gegevens op van [AIVision v]
als <[AIVision v] object bestaat?> dan
if <([AIVision v] object [height v]) > (200)> then
stop rijden
onderbreek
anders
rijd [vooruit v]
einde
einde
einde
centrumX#

De eigenschap centerX geeft de x-coördinaat van het middelpunt van het gedetecteerde object in pixels weer als een geheel getal van 0 tot 320.

Het eigenschappenblok van het AI Vision-object met de parameter ingesteld op centerX.#
([AIVision v] object [centerX v])

Voorbeeld

wanneer gestart
[Raise the Arm, drive to the Goal, release the Pin.]
draai [ArmMotor v] [omhoog v] voor (300) [graden v] ▶
rijd [vooruit v] voor (10) [inches v] ▶
draai [ClawMotor v] [open v] voor (180) [graden v] ▶
draai [links v] voor (70) graden ▶
[Turn and approach the next Cup and Pin.]
stel draaisnelheid in op (30) [% v]
altijd
haal [AI-classificaties v] gegevens op van [AIVision v]
als <[AIVision v] object bestaat?> dan
if <([AIVision v] object [centerX v]) < (140)> then
draai [links v] voor (5) graden ▶
anders
rijd [vooruit v] voor (25) [inches v] ▶
onderbreek
einde
einde
einde
centrumY#

De eigenschap centerY geeft de y-coördinaat van het middelpunt van het gedetecteerde object in pixels weer als een geheel getal van 0 tot 240.

Het eigenschappenblok van het AI Vision-object met de parameter ingesteld op centerY.#
([AIVision v] object [centerY v])

Voorbeeld

wanneer gestart
[Raise the Arm, drive to the Goal, release the Pin.]
draai [ArmMotor v] [omhoog v] voor (300) [graden v] ▶
rijd [vooruit v] voor (10) [inches v] ▶
draai [ClawMotor v] [open v] voor (180) [graden v] ▶
draai [links v] voor (70) graden ▶
[Approach the next Cup and Pin.]
stel rijsnelheid in op (30) [% v]
altijd
haal [AI-classificaties v] gegevens op van [AIVision v]
als <[AIVision v] object bestaat?> dan
if <([AIVision v] object [centerY v]) > (230)> then
stop rijden
onderbreek
anders
rijd [vooruit v]
einde
einde
einde
oorsprongX#

De eigenschap originX geeft de x-coördinaat van de linkerbovenhoek van het begrenzingskader van het gedetecteerde object weer in pixels als een geheel getal van 0 tot 320.

Het eigenschappenblok van het AI Vision-object met de parameter ingesteld op originX.#
([AIVision v] object [originX v])

Voorbeeld

wanneer gestart
[Raise the Arm, drive to the Goal, release the Pin.]
draai [ArmMotor v] [omhoog v] voor (300) [graden v] ▶
rijd [vooruit v] voor (10) [inches v] ▶
draai [ClawMotor v] [open v] voor (180) [graden v] ▶
draai [links v] voor (70) graden ▶
[Turn and approach the next Cup and Pin.]
stel draaisnelheid in op (30) [% v]
altijd
haal [AI-classificaties v] gegevens op van [AIVision v]
als <[AIVision v] object bestaat?> dan
if <([AIVision v] object [originX v]) < (100)> then
draai [links v] voor (5) graden ▶
anders
rijd [vooruit v] voor (25) [inches v] ▶
onderbreek
einde
einde
einde
oorsprong#

De eigenschap originY geeft de y-coördinaat van de linkerbovenhoek van het begrenzingskader van het gedetecteerde object weer in pixels als een geheel getal van 0 tot 240.

Het eigenschappenblok van het AI Vision-object met de parameter ingesteld op originY.#
([AIVision v] object [originY v])

Voorbeeld

wanneer gestart
[Raise the Arm, drive to the Goal, release the Pin.]
draai [ArmMotor v] [omhoog v] voor (300) [graden v] ▶
rijd [vooruit v] voor (10) [inches v] ▶
draai [ClawMotor v] [open v] voor (180) [graden v] ▶
draai [links v] voor (70) graden ▶
[Approach the next Cup and Pin.]
stel rijsnelheid in op (30) [% v]
altijd
haal [AI-classificaties v] gegevens op van [AIVision v]
als <[AIVision v] object bestaat?> dan
if <([AIVision v] object [originY v]) > (140)> then
stop rijden
onderbreek
anders
rijd [vooruit v]
einde
einde
einde

Waarneming#

Afstand#

Afstand gemeten tot een object#

Het Booleaanse blok Afstand gevonden object geeft aan of de afstandssensor momenteel een object detecteert binnen een straal van 2000 mm.

  • Waar — De afstandssensor detecteert een object.

  • Onjuist — De afstandssensor detecteert geen object.

<[FrontDistance v] object gevonden?>

Parameters

Beschrijving

afstandssensor

De te gebruiken afstandssensor. Kies uit de beschikbare afstandssensoren voor Flex.

Voorbeeld

wanneer gestart :: hat events
[Turn until something is detected, then release the Pin.]
draai [rechts v]
wacht totdat <[FrontDistance v] object gevonden?>
stop rijden
draai [ArmMotor v] [omhoog v] voor (300) [graden v] ▶
rijd [vooruit v] voor (10) [inches v] ▶
draai [ClawMotor v] [open v] voor (180) [graden v] ▶

objectafstand#

Het objectafstand-rapportageblok geeft de afstand weer tussen de afstandssensor en het dichtstbijzijnde gedetecteerde object.

([FrontDistance v] afstand in [mm v])

Parameters

Beschrijving

afstandssensor

De te gebruiken afstandssensor. Kies uit de beschikbare afstandssensoren voor Flex.

eenheid

De afstandseenheid: mm of inches.

Voorbeeld

wanneer gestart :: hat events
[Drive until 200 mm from the Goal, then release the Pin.]
rijd [vooruit v]
wacht totdat <([FrontDistance v] afstand in [mm v]) < (200)>
stop rijden
draai [ArmMotor v] [omhoog v] voor (300) [graden v] ▶
rijd [vooruit v] voor (10) [inches v] ▶
draai [ClawMotor v] [open v] voor (180) [graden v] ▶

GPS#

GPS-positie#

Het GPS-positie-blok geeft de positieafwijking weer van het draaipunt van de robot ten opzichte van het midden van een veld, gemeten met de GPS-sensor (Game Positioning System™).

([GPS v] positie [X v] in [mm v])

Parameters

Beschrijving

as

Welke as moet worden gerapporteerd:

  • X
  • Y

eenheden

De eenheid die de positie aangeeft: mm of inches

Voorbeeld

wanneer gestart :: hat events
[Raise the Arm, drive to the Goal, release the Pin.]
draai [ArmMotor v] [omhoog v] voor (300) [graden v] ▶
rijd [vooruit v]
wait until <([GPS v] position [X v] in [mm v]) > (-1370)>
stop rijden
draai [ClawMotor v] [open v] voor (180) [graden v] ▶

GPS-richting#

Het GPS-richting-blok geeft de huidige kijkrichting van de robot weer, gebaseerd op de metingen van de GPS-sensor (Game Positioning System™) uit de VEX GPS-veldcode, van 0,00 tot 359,99 graden.

([GPS v] koers in graden)

Parameters

Beschrijving

Dit blok heeft geen parameters.

Voorbeeld

wanneer gestart :: hat events
[Raise the Arm, drive to the Goal, release the Pin.]
draai [ArmMotor v] [omhoog v] voor (300) [graden v] ▶
rijd [vooruit v] voor (10) [inches v] ▶
draai [ClawMotor v] [open v] voor (180) [graden v] ▶
[Turn left to face the Neutral Goal.]
stel draaisnelheid in op (30) [% v]
draai [links v]
wacht totdat <([GPS v] koers in graden) < (18)>
stop rijden