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.
Acties
drive — Laat de robot oneindig vooruit of achteruit bewegen.
drive for — Laat de robot vooruit of achteruit bewegen over een bepaalde afstand.
draaien — Draait de robot permanent naar links of rechts.
draaien voor — Draait de robot naar links of rechts over een specifiek aantal graden.
draai naar een bepaalde richting — Draait de robot in een specifieke richting.
draaien naar rotatie — Draait de robot naar een specifieke rotatie.
stop driving — Stopt de beweging van de robot.
Instellingen
rijsnelheid instellen — Vertelt de robot hoe snel hij moet rijden.
draaisnelheid instellen — Vertelt de robot hoe snel hij moet draaien.
rijrichting instellen — Wijzigt de huidige rijrichting van de robot naar een nieuwe rijrichting.
set drive rotation — Wijzigt de huidige rotatie van de robot naar een nieuwe rotatie.
set drive timeout — Stelt in hoeveel seconden de robot zal proberen een beweging te voltooien.
Waarden
rijden is voltooid — Rapporteert of de robot klaar is met bewegen.
aandrijving beweegt — Rapporteert of de robot beweegt.
rijrichting — Rapporteert de huidige rijrichting van de robot van 0 tot 359,99 graden.
aandrijfrotatie — Rapporteert de huidige rotatie van de robot.
rijsnelheid — Geeft aan hoe snel de robot rijdt.
Beweging – Beweeg en volg de motoren van de robot.
Acties
motor laten draaien – Laat een motor oneindig lang vooruit of achteruit draaien.
motor laten draaien voor – Laat een motor een specifieke afstand in graden of omwentelingen draaien.
motor naar positie draaien – Draait een motor naar een specifieke positie.
motor stoppen – Stopt een motor met draaien.
Instellingen
motorsnelheid instellen – Vertelt een motor hoe snel hij moet draaien.
set motor timeout – Stelt in hoeveel tijd een motor nodig heeft om een beweging te voltooien.
motorpositie instellen – Wijzigt de huidige positie van de motor naar een nieuwe waarde.
Waarden
motor is klaar – Geeft aan of de motor klaar is met bewegen.
motor draait – Rapporteert of de motor draait.
motorpositie – Geeft de huidige positie van de motor weer.
motorsnelheid – Geeft aan hoe snel de motor draait, als een percentage van -100% tot 100%.
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
set object item – Selecteert een specifiek object uit de lijst.
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:
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:
|
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:
|
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.
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:
|
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.
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.
<[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.
<[AIVision v] object is [RedBluePin v]?>
Parameter |
Beschrijving |
|---|---|
voorwerp |
Met welk object moet het item vergeleken 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]
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.
<[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.
([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.
([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.
([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.
([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.
([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.
([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.
([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.
([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:
|
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