Robotspecifika block#

Introduktion#

Hero Bot, Flex, inkluderar en klomotor, en armmotor, en AI-synsensor, en avståndssensor och en GPS-sensor (spelpositioneringssystem).

Alla standard VEXcode VR-block är tillgängliga för användning i V5 26-27 Override Playground.

Nedan finns en lista över alla tillgängliga robotspecifika block:

Drivinstruktioner – Flytta och vrida roboten.

Rörelse – Flytta och spåra robotens motorer.

AI Vision – Avbilda och analysera objekt med hjälp av AI Vision-sensorn.

  • Åtgärder

    • hämta objektdata – Samlar in data för en specifik signatur, till exempel en detekterad AI-klassificering.

  • Inställningar

  • Värden

Avkänning – Använd robotens olika sensorer.

  • Avstånd

    • Avstånd hittat till objekt – Rapporterar om avståndssensorn detekterar ett objekt inom räckhåll.

    • objektavstånd – Rapporterar avståndet mellan avståndssensorn och det närmaste detekterade objektet.

  • GPS

    • GPS-position – Returnerar X- eller Y-positionen från GPS-sensorn.

    • GPS-riktning – Returnerar den riktning som roboten för närvarande är vänd mot.

Exemplen på den här sidan använder startplats C från Playgrounds checklista före match.

Drivlina#

Drivlinan styr hur VR-roboten kör och svänger. Drivlinan kan röra sig framåt eller bakåt, svänga vänster eller höger, följa kursriktningar och spåra sin rotation.

Åtgärder#

köra#

Kör-blocket flyttar roboten framåt eller bakåt för alltid. Roboten fortsätter att röra sig tills den får en annan åtgärd, som att vända eller stanna.

kör [framåt v]

Parametrar

Beskrivning

riktning

Robotens riktning: framåt eller bakåt.

Exempel

när startad :: hat events
[Raise the Arm, drive to the Goal, release the Pin.]
snurra [ArmMotor v] [upp v] i (300) [grader v] ▶
kör [framåt v]
vänta (0.5) sekunder
stoppa körning
snurra [ClawMotor v] [öppna v] i (180) [grader v] ▶

köra för#

Blocket drive for i stapeln flyttar roboten framåt eller bakåt en viss sträcka. Projektet väntar tills roboten är klar innan nästa block i stapeln körs.

kör [framåt v] i (200) [mm v] ▶

Parametrar

Beskrivning

riktning

Robotens riktning: framåt eller bakåt.

avstånd

Den sträcka roboten kör. Detta kan vara ett heltal eller ett decimaltal.

enhet

Avståndsenheten: mm (millimeter) eller tum

och vänta inte

Välj pilen ( ▶ ) för att expandera blocket till och vänta inte, så att nästa block i stapeln körs direkt.

Exempel

när startad :: hat events
[Raise the Arm, drive to the Goal, release the Pin.]
snurra [ArmMotor v] [upp v] i (300) [grader v] ▶
kör [framåt v] i (10) [tum v] ▶
snurra [ClawMotor v] [öppna v] i (180) [grader v] ▶

sväng#

Blocket sväng vrider roboten åt vänster eller höger för alltid. Roboten fortsätter att vrida tills den får en annan åtgärd, som att köra eller stanna.

sväng [höger v]

Parametrar

Beskrivning

riktning

Riktningen roboten svänger: vänster eller höger.

Exempel

när startad :: hat events
[Score a Pin in a Neutral Goal.]
sväng [vänster v]
vänta (0.78) sekunder
stoppa körning
snurra [ArmMotor v] [upp v] i (800) [grader v] ▶
kör [framåt v] i (25) [tum v] ▶
snurra [ClawMotor v] [öppna v] i (180) [grader v] ▶

vänd dig för#

Blocket sväng för vrider roboten åt vänster eller höger ett visst antal grader. Svängen är relativ till robotens aktuella position. Projektet väntar tills roboten är klar med att vrida innan nästa block i stacken körs.

sväng [höger v] i (90) grader ▶

Parametrar

Beskrivning

riktning

Riktningen roboten svänger: vänster eller höger.

vinkel

Antalet grader som roboten roterar. Detta kan vara ett heltal eller ett decimaltal.

och vänta inte

Välj pilen ( ▶ ) för att expandera blocket till och vänta inte, så att nästa block i stapeln körs direkt.

Exempel

när startad :: hat events
[Score a Pin in a Neutral Goal.]
sväng [vänster v] i (110) grader ▶
snurra [ArmMotor v] [upp v] i (800) [grader v] ▶
kör [framåt v] i (25) [tum v] ▶
snurra [ClawMotor v] [öppna v] i (180) [grader v] ▶

vänd dig till rubriken#

En kurs är den riktning roboten är vänd i, mätt i grader. Stackblocket vänd till kurs vänder roboten mot en specifik kurs från -359 till 359 grader. Roboten kommer att svänga den kortaste riktningen för att nå målkursen.

Startriktningen är 0 grader.

Projektet väntar tills roboten är klar med att snurra innan nästa block i stacken körs.

sväng till riktning (90) grader ▶

Parametrar

Beskrivning

rubrik

Robotens riktning ska vara mellan -359 och 359 grader.

och vänta inte

Välj pilen ( ▶ ) för att expandera blocket till och vänta inte, så att nästa block i stapeln körs direkt.

Exempel

när startad :: hat events
[Score a Pin in a Neutral Goal.]
sväng till riktning (-110) grader ▶
snurra [ArmMotor v] [upp v] i (800) [grader v] ▶
kör [framåt v] i (25) [tum v] ▶
snurra [ClawMotor v] [öppna v] i (180) [grader v] ▶

vrid till rotation#

Stackblocket vrid till rotation vrider roboten till en specifik rotation.

Rotation är hur mycket roboten har roterat, mätt i grader. I början av ett projekt sätts rotationsvärdet till 0 grader. Rotation kan också ställas in med hjälp av blocket set drive rotation.

Rotationsvärdena är absoluta. Det betyder att rotationsriktningen beror på robotens aktuella rotation. Att vrida åt höger ökar rotationen och att vrida åt vänster minskar rotationen.

Om roboten till exempel startar vid 0 grader och du roterar 720 grader, kommer den att svänga höger två gånger. Om du sedan roterar 360 grader, kommer den att svänga vänster en gång, eftersom 360 är mindre än 720.

Projektet väntar tills roboten är klar med att snurra innan nästa block i stacken körs.

sväng till rotation (90) grader ▶

Parametrar

Beskrivning

rotation

Rotationsvärdet, i grader, som roboten kommer att rotera till. Detta kan vara ett heltal eller ett decimaltal.

och vänta inte

Välj pilen ( ▶ ) för att expandera blocket till och vänta inte, så att nästa block i stapeln körs direkt.

Exempel

när startad :: hat events
[Score a Pin in a Neutral Goal.]
sväng till rotation (-110) grader ▶
snurra [ArmMotor v] [upp v] i (800) [grader v] ▶
kör [framåt v] i (25) [tum v] ▶
snurra [ClawMotor v] [öppna v] i (180) [grader v] ▶

sluta köra#

Stackblocket stoppa körning stoppar robotens rörelse.

stoppa körning

Parametrar

Beskrivning

Det här blocket har inga parametrar.

Exempel

när startad :: hat events
[Score a Pin in a Neutral Goal.]
snurra [ArmMotor v] [upp v] i (300) [grader v] ▶
kör [framåt v]
vänta (0.5) sekunder
stoppa körning
snurra [ClawMotor v] [öppna v] i (180) [grader v] ▶

Inställningar#

inställd drivhastighet#

Stackblocket inställd körhastighet anger hur snabbt roboten ska köra. En högre procentandel gör att roboten kör snabbare och en lägre procentandel gör att roboten kör långsammare.

Varje projekt börjar med att roboten kör med 50 % hastighet som standard.

Obs: En högre hastighet gör att roboten kör snabbare, men den kan vara mindre precis. En lägre hastighet gör att roboten kör långsammare, men den kan vara mer precis.

ställ in körhastighet till (50) [% v]

Parametrar

Beskrivning

hastighet

Hastigheten att köra med från 0 % till 100 %.

enhet

Hastighetsenheten: %

Exempel

när startad :: hat events
[Score a Pin in a Neutral Goal.]
sväng [vänster v] i (110) grader ▶
snurra [ArmMotor v] [upp v] i (800) [grader v] ▶
ställ in körhastighet till (100) [% v]
kör [framåt v] i (25) [tum v] ▶
snurra [ClawMotor v] [öppna v] i (180) [grader v] ▶

ställ in svänghastighet#

Stackblocket inställd svänghastighet anger hur snabbt roboten ska svänga. En högre procentandel gör att roboten svänger snabbare och en lägre procentandel gör att roboten svänger långsammare.

Varje projekt börjar med att roboten roterar med 50 % hastighet som standard.

Obs: En högre hastighet gör att roboten roterar snabbare, men den kan vara mindre exakt. En lägre hastighet gör att roboten roterar långsammare, men den kan vara mer exakt.

ställ in svänghastighet till (50) [% v]

Parametrar

Beskrivning

hastighet

Hastigheten att rotera med från 0 % till 100 %.

enhet

Hastighetsenheten: %

Exempel

när startad :: hat events
[Turn to face the Neutral Goal faster.]
ställ in svänghastighet till (100) [% v]
sväng [vänster v] i (110) grader ▶

ställ in körriktning#

En kurs är den riktning roboten är vänd i, mätt i grader. Stackblocket ställ in drivkurs ändrar robotens aktuella kurs till ett nytt kursvärde.

Om roboten till exempel har vänt sig åt höger och kursen ställs in på 0 grader, blir den högervända positionen den nya 0 grader. Roboten kan då vända sig till andra positioner baserat på den nya kursen.

ställ in körriktning till (0) grader

Parametrar

Beskrivning

rubrik

Kursvärdet, i grader, som ska ställas in för roboten.

Exempel

när startad :: hat events
[Make facing the Neutral Goal the new heading.]
ställ in körriktning till (110) grader
sväng till riktning (0) grader ▶

ställ in drivrotation#

Rotation är hur mycket roboten har roterat, mätt i grader. I början av ett projekt sätts rotationsvärdet till 0 grader. Stackblocket ställ in drivrotation ändrar robotens aktuella rotation till ett nytt värde.

Om roboten till exempel har gjort två hela varv åt höger blir dess rotationsvärde 720 grader. Om rotationen ställs in på 0 grader återställs den rotationen från 720 till 0 grader. Sedan kan roboten vända sig till rotationer baserat på det nya värdet.

ställ in körrotation till (0) grader

Parametrar

Beskrivning

rotation

Rotationsvärdet, i grader, som ska ställas in för roboten. Detta kan vara ett heltal eller ett decimaltal.

Exempel

när startad :: hat events
[Make facing the Neutral Goal the new rotation.]
ställ in körrotation till (110) grader
sväng till rotation (0) grader ▶

ställ in timeout för drivning#

Stackblocket set drive timeout anger hur många sekunder roboten ska försöka slutföra en rörelse. Om roboten inte kan slutföra inom den tiden kommer den att sluta försöka och gå vidare till nästa block i stacken. Detta förhindrar att roboten fastnar i en rörelse.

ställ in körtimeout till (1) sekunder

Parametrar

Beskrivning

tid

Antalet sekunder roboten kan försöka slutföra en rörelse. Detta kan vara ett heltal eller ett decimaltal.

Exempel

när startad :: hat events
[Turn to face the Neutral Goal.]
ställ in körtimeout till (0.8) sekunder
sväng [vänster v] i (180) grader ▶

Värden#

körningen är klar#

Det booleska blocket körningen är klar rapporterar om roboten är klar med sin rörelse. Detta kan användas för att styra tidpunkten för andra beteenden baserat på robotens rörelse.

  • Sant — Roboten är klar med sin rörelse.

  • Falskt — Roboten rör sig fortfarande.

Det här blocket fungerar tillsammans med drivlineblock som har parametern och vänta inte.

<körning klar?>

Parametrar

Beskrivning

Det här blocket har inga parametrar.

Exempel

när startad :: hat events
[Score a Pin in a Neutral Goal.]
sväng [vänster v] i (110) grader ▶
snurra [ArmMotor v] [upp v] i (800) [grader v] ▶
kör [framåt v] i (25) [tum v] ◀ och vänta inte
vänta tills <körning klar?>
snurra [ClawMotor v] [öppna v] i (180) [grader v] ▶

drivningen rör sig#

Det booleska blocket drivenheten rör sig rapporterar om roboten rör sig. Detta kan användas för att styra tidpunkten för andra beteenden baserat på robotens rörelse.

  • Sant — Roboten rör sig.

  • Falskt — Roboten rör sig inte.

Det här blocket fungerar tillsammans med drivlineblock som har parametern och vänta inte.

<körning pågår?>

Parametrar

Beskrivning

Det här blocket har inga parametrar.

Exempel

när startad :: hat events
[Raise the Arm once stopped near the Goal.]
sväng [vänster v] i (110) grader ▶
kör [framåt v] i (25) [tum v] ◀ och vänta inte
medan <körning pågår?>
vänta (0.005) sekunder
avsluta
snurra [ArmMotor v] [upp v] i (800) [grader v] ▶

körriktning#

En kurs är den riktning roboten är vänd i, mätt i grader. Rapporteringsblocket körkurs rapporterar den kursen från 0 till 359,99 grader.

Robotens startriktning är 0 grader.

(körriktning i grader)

Parametrar

Beskrivning

Det här blocket har inga parametrar.

Exempel

när startad :: hat events
[Turn to the Goal, then show heading.]
sväng [höger v] i (450) grader ▶
skriv ut (körriktning i grader) på skärmen ◀ och flytta markör till nästa rad

drivrotation#

Rotation är hur mycket roboten har roterat, mätt i grader. I början av ett projekt sätts rotationsvärdet till 0 grader. Rapporteringsblocket drivrotation rapporterar robotens aktuella rotation.

Att svänga åt höger ökar rotationen, och att svänga åt vänster minskar rotationen. Om man till exempel gör två hela varv åt höger rapporteras en rotation på 720 grader.

(körrotation i grader)

Parametrar

Beskrivning

Det här blocket har inga parametrar.

Exempel

när startad :: hat events
[Spin to find a Pin, then show rotation.]
sväng [höger v] i (450) grader ▶
skriv ut (körrotation i grader) på skärmen ◀ och flytta markör till nästa rad

drivhastighet#

Rapportblocket körhastighet rapporterar hur snabbt roboten kör.

(körhastighet i [% v])

Parametrar

Beskrivning

enhet

Hastighetsenheten: %

Exempel

när startad :: hat events
[Show speed while driving to the Goal.]
kör [framåt v] i (150) [mm v] ▶
skriv ut (körhastighet i [% v]) på skärmen ◀ och flytta markör till nästa rad

Rörelse#

Flex använder armmotorn för att lyfta och sänka armen och klomotorn för att öppna och stänga klon.

Varje motor har sina egna riktningsalternativ. Riktningsnamnen beskriver hur motorn rör sig på Flex.

Åtgärder#

snurrmotor#

Spinmotorns stackblock snurrar en motor i en av två riktningar för alltid. Motorn fortsätter att snurra tills den får en annan åtgärd, som att snurra i en annan riktning eller stanna.

snurra [ArmMotor v] [upp v]

Parametrar

Beskrivning

motor

Motorn som ska snurra: Armmotor eller Klomotor.

riktning

Motorns rotationsriktning:

  • Armmotor — upp eller ner
  • Klomotor — öppen eller stängd

Exempel

när startad
[Raise the Arm before driving toward a Pin.]
snurra [ArmMotor v] [upp v]
vänta (1) sekunder
stoppa [ArmMotor v]

rotationsmotor för#

Blocket snurra motor för roterar en motor en specifik sträcka. Rotationen är relativ till motorns aktuella position. Projektet väntar tills motorn har snurrat klart innan nästa block i stacken körs.

snurra [ArmMotor v] [upp v] i (90) [grader v] ▶

Parametrar

Beskrivning

motor

Motorn som ska snurra: Armmotor eller Klomotor.

riktning

Motorns rotationsriktning:

  • Armmotor — upp eller ner
  • Klomotor — öppen eller stängd

avstånd

Avståndet som motorn roterar. Grader använder heltal. Varv kan använda heltal eller decimaler.

enhet

Avståndsenheten: grader eller varv.

och vänta inte

Välj pilen ( ▶ ) för att expandera blocket till och vänta inte, så att nästa block i stapeln körs direkt.

Exempel

när startad
[Raise the Arm to carry the Pin to the Goal.]
snurra [ArmMotor v] [upp v] i (800) [grader v] ▶

snurra motorn till position#

Stackblocket snurra motorn till position snurrar en motor till en specifik position.

En motors position är hur långt den har snurrat, mätt i grader eller varv. Ett varv är lika med 360 grader. I början av ett projekt är ArmMotorns position inställd på 0 grader. ClawMotorn är undantaget – den börjar vid 467 grader (helt stängd). Motorns position kan också ställas in med hjälp av blocket set motor position.

Positionsvärdena är absoluta. Det betyder att rotationsriktningen beror på motorns aktuella position.

Om motorn till exempel startar vid 0 grader och snurrar till en position på 720 grader, snurrar den framåt två varv. Om den sedan snurrar till en position på 360 grader, snurrar den bakåt ett varv, eftersom 360 är mindre än 720.

snurra [ArmMotor v] till position (90) [grader v] ▶

Parametrar

Beskrivning

motor

Motorn som ska snurra: Armmotor eller Klomotor.

placera

Positionsvärdet som motorn roterar till. Grader använder heltal. Varv kan använda heltal eller decimaler.

enhet

Positionsenheten: grader eller varv.

och vänta inte

Välj pilen ( ▶ ) för att expandera blocket till och vänta inte, så att nästa block i stapeln körs direkt.

Exempel

när startad
[Raise the Arm, then release the Pin.]
snurra [ArmMotor v] till position (800) [grader v] ▶
snurra [ClawMotor v] [öppna v] i (180) [grader v] ▶

stoppa motorn#

Stackblocket stoppa motor stoppar den valda motorn.

stoppa [ArmMotor v]

Parametrar

Beskrivning

motor

Motorn som ska stoppas: Armmotor eller Klomotor.

Exempel

när startad
[Raise the Arm partway to hold the Pin.]
snurra [ArmMotor v] [upp v]
vänta (1) sekunder
stoppa [ArmMotor v]

Inställningar#

inställd motorhastighet#

Stackblocket inställd motorhastighet anger hur snabbt motorn ska snurra. En högre procentandel gör att motorn snurrar snabbare och en lägre procentandel gör att motorn snurrar långsammare.

Varje projekt börjar med att varje motor roterar med 50 % hastighet som standard.

Obs! En högre hastighet gör att motorn snurrar snabbare, men den kan vara mindre exakt. En lägre hastighet gör att motorn snurrar långsammare, men den kan vara mer exakt.

ställ in [ArmMotor v] hastighet till [50] [% v]

Parametrar

Beskrivning

motor

Motorn för att ställa in hastigheten på: Armmotor eller Klomotor.

hastighet

Den hastighet som motorn snurrar med. Procent använder heltal från 0 % till 100 %.

enhet

Hastighetsenheten: %.

Exempel

när startad
[Raise the Arm fast to release the Pin.]
ställ in [ArmMotor v] hastighet till [100] [% v]
snurra [ArmMotor v] [upp v] i (800) [grader v] ▶
snurra [ClawMotor v] [öppna v] i (180) [grader v] ▶

ställ in motorns timeout#

Stackblocket ställ in motortimeout anger hur lång tid en motor ska försöka slutföra en rörelse. Om motorn inte kan slutföra inom den tiden kommer den att sluta försöka och gå vidare till nästa block i stacken. Detta förhindrar att motorn fastnar i en rörelse.

ställ in [ArmMotor v] timeout till [1] sekunder

Parametrar

Beskrivning

motor

Motorn att ställa in timeout för: ArmMotor eller KloMotor.

tid

Antalet sekunder som motorn kan försöka slutföra en rörelse. Detta kan vara ett heltal eller ett decimaltal.

Exempel

när startad
[Score a Pin in a Neutral Goal.]
sväng [vänster v] i (110) grader ▶
ställ in [ArmMotor v] timeout till [1] sekunder
snurra [ArmMotor v] [upp v] i (1800) [grader v] ▶
kör [framåt v] i (25) [tum v] ▶
snurra [ClawMotor v] [öppna v] i (180) [grader v] ▶

Placera#

motorposition#

En motors position är hur långt den har snurrat, mätt i grader eller varv. Ett varv är lika med 360 grader. Rapporteringsblocket motorposition rapporterar motorns aktuella position.

I början av ett projekt är ArmMotorns position inställd på 0 grader. Undantaget är ClawMotorn – den börjar vid 467 grader (helt stängd). Om motorn snurrar ett helt varv framåt ökar positionen. Om motorn snurrar åt andra hållet minskar positionen.

([ArmMotor v] position i [grader v])

Parametrar

Beskrivning

motor

Motorn som ska rapportera positionen för: ArmMotor eller KloMotor.

enhet

Enheten att rapportera motorpositionen i: grader eller varv.

Exempel

när startad
[Raise the Arm, then release the Pin.]
medan <([ArmMotor v] position i [grader v]) < (800)>
snurra [ArmMotor v] [upp v]
vänta (0.002) sekunder
avsluta
stoppa [ArmMotor v]
snurra [ClawMotor v] [öppna v] i (180) [grader v] ▶

ställ in motorposition#

En motors position är hur långt den har snurrat, mätt i grader eller varv. Ett varv är lika med 360 grader. Stackblocket set motor position ändrar motorns aktuella position till ett nytt värde.

Om till exempel en motor har snurrat 180 grader, kommer en position som ställs in på 0 grader att återställas från 180 grader till 0 grader. Motorn kan sedan snurra till positioner baserat på det nya värdet.

ställ in [ArmMotor v] position till (0) [grader v]

Parametrar

Beskrivning

motor

Motorn för att ställa in positionen för: Armmotor eller Klomotor.

placera

Positionsvärdet som ska ställas in för motorn. Grader använder heltal. Varv kan använda heltal eller decimaler.

enhet

Positionsenheten: grader eller varv.

Exempel

när startad
[Reset encoder, raise Arm, place Pin.]
ställ in [ArmMotor v] position till (0) [grader v]
snurra [ArmMotor v] till position (800) [grader v] ▶
snurra [ClawMotor v] [öppna v] i (180) [grader v] ▶

Värden#

motorn är klar#

Det booleska blocket motorn är klar rapporterar om motorn är klar med att röra sig. Detta kan användas för att styra tidpunkten för andra beteenden baserat på motorns rörelse.

  • Sant — Motorn är klar med att röra sig.

  • Falskt — Motorn rör sig fortfarande.

Detta block fungerar tillsammans med följande rörelseblock som har parametern och vänta inte: snurra motorn för och snurra motorn till position.

<[ArmMotor v] klar?>

Parametrar

Beskrivning

motor

Motorn som rapporterar om den är klar med rörelsen: ArmMotor eller KloMotor.

Exempel

när startad
[Raise the Arm while driving to the Goal.]
snurra [ArmMotor v] till position (800) [grader v] ◀ och vänta inte
vänta (0.1) sekunder
medan <inte <[ArmMotor v] klar?>>
kör [framåt v]
vänta (0.005) sekunder
avsluta
stoppa körning

motorn snurrar#

Det booleska blocket motorn snurrar rapporterar om motorn snurrar. Detta kan användas för att styra tidpunkten för andra beteenden baserat på motorns rörelse.

  • Sant — Motorn snurrar.

  • Falskt — Motorn snurrar inte.

Detta block fungerar tillsammans med följande rörelseblock som har parametern och vänta inte: snurra motorn för och snurra motorn till position.

<[ArmMotor v] snurrar?>

Parametrar

Beskrivning

motor

Motorn som rapporterar om den snurrar: Armmotor eller Klomotor.

Exempel

när startad
[Raise the Arm while driving to the Goal, then release the Pin.]
snurra [ArmMotor v] till position (800) [grader v] ◀ och vänta inte
vänta (0.1) sekunder
medan <[ArmMotor v] snurrar?>
kör [framåt v] i (20) [mm v] ▶
avsluta
snurra [ClawMotor v] [öppna v] i (180) [grader v] ▶

motorhastighet#

Blocket motorhastighet rapporterar hur snabbt motorn snurrar, som en procentandel från -100 % till 100 %.

([ArmMotor v] hastighet i [% v] :: custom-motion)

Parametrar

Beskrivning

motor

Motorn som ska rapportera hastigheten för: ArmMotor eller ClawMotor.

enhet

Enheten att rapportera motorhastigheten i: %.

Exempel

när startad
[Show Arm Motor velocity while raising.]
ställ in [ArmMotor v] hastighet till [100] [% v]
snurra [ArmMotor v] till position (800) [grader v] ◀ och vänta inte
vänta (0.2) sekunder
skriv ut ([ArmMotor v] hastighet i [% v] :: custom-motion) på skärmen ◀ och flytta markör till nästa rad

AI-vision#

Åtgärder#

hämta objektdata#

Blocket hämta objektdata filtrerar data från AI Vision Sensor-ramen till en enda signatur – en sparad beskrivning av något som sensorn kan känna igen, till exempel ett spelelement på planen.

Datasetet lagrar objekt sorterade från störst till minst efter bredd, med början vid index 0. Varje objekts egenskaper kan nås med hjälp av blocket AI Vision object property. En tom dataset returneras om inga matchande objekt upptäcks.

Blocket Hämta objektdatastacken.#
hämta [AI-klassificeringar v]-data från [AIVision v]

Parameter

Beskrivning

signatur

Filtrerar datamängden för att endast inkludera data från den givna signaturen. Tillgängliga signaturer är:

  • AI-klassificeringar - Identifierar element för RedBluePin, BlueYellowPin, RedYellowPin, YellowPin och Cup-spel.
  • AprilTags - Identifierar AprilTag-ID:n som hittats på planen.

Exempel

när startad
[Raise the Arm, drive to the Goal, release the Pin.]
snurra [ArmMotor v] [upp v] i (300) [grader v] ▶
kör [framåt v] i (10) [tum v] ▶
snurra [ClawMotor v] [öppna v] i (180) [grader v] ▶
sväng [vänster v] i (70) grader ▶
[Turn to face the Pin.]
ställ in svänghastighet till (30) [% v]
för alltid
hämta [AI-klassificeringar v]-data från [AIVision v]
om <[AIVision v]-objekt finns?> då
if <([AIVision v]-objekt [centerX v]) < (140)> then
sväng [vänster v]
else if <([AIVision v] object [centerX v]) > (180)> then
sväng [höger v]
annars
stoppa körning
bryt
avsluta
avsluta
avsluta

Inställningar#

ange objektobjekt#

Blocket set object item anger vilket objekt i datamängden som ska användas.

Objektstackblocket Set AI Vision-objektet.#
ställ in [AIVision v]-objektpost till [1]

Parametrar

Beskrivning

punkt

Numret på objektet i datauppsättningen som ska användas.

Exempel

när startad
[Raise the Arm, drive to the Goal, release the Pin.]
snurra [ArmMotor v] [upp v] i (300) [grader v] ▶
kör [framåt v] i (10) [tum v] ▶
snurra [ClawMotor v] [öppna v] i (180) [grader v] ▶
sväng [vänster v] i (70) grader ▶
hämta [AI-klassificeringar v]-data från [AIVision v]
[Check if any AI Classifications were detected in the last snapshot.]
om <[AIVision v]-objekt finns?> då
[If any AI Classification is detected, check if any of them are a specific game element.]
om <[AIVision v]-objekt är [RedBluePin v]?> då
skriv ut [RedBluePin detected.] ▶
annars
skriv ut [No RedBluePin detected.] ▶
avsluta
avsluta

Värden#

objektet finns#

Blocket objektet finns returnerar ett booleskt värde som anger om något objekt har upptäckts i datamängden.

  • Sant – Datasetet innehåller ett detekterat objekt.

  • Falskt – Datasetet innehåller inga detekterade objekt.

AI Vision-objektet finns i ett booleskt block.#
<[AIVision v]-objekt finns?>

Parametrar

Beskrivning

Det här blocket har inga parametrar.

Exempel

när startad
[Raise the Arm, drive to the Goal, release the Pin.]
snurra [ArmMotor v] [upp v] i (300) [grader v] ▶
kör [framåt v] i (10) [tum v] ▶
snurra [ClawMotor v] [öppna v] i (180) [grader v] ▶
sväng [vänster v] i (70) grader ▶
hämta [AI-klassificeringar v]-data från [AIVision v]
[Check if any AI Classifications were detected in the last snapshot.]
om <[AIVision v]-objekt finns?> då
skriv ut (antal [AIVision v]-objekt) ◀ och flytta markör till nästa rad
avsluta

objektet är#

Blocket objektet är returnerar ett booleskt värde som anger om ett detekterat objekt matchar en specifik klassificering.

  • Sant – Objektet i datamängden är det specifika objektet.

  • Falskt – Objektet i datamängden är inte det specifika objektet.

AI Vision-objektet är ett booleskt block.#
<[AIVision v]-objekt är [RedBluePin v]?>

Parameter

Beskrivning

objekt

Vilket objekt att jämföra föremålet med:

  • RödBlåPin
  • BlåGulPin
  • RödGulPin
  • GulPin
  • Kopp

Exempel

när startad
[Raise the Arm, drive to the Goal, release the Pin.]
snurra [ArmMotor v] [upp v] i (300) [grader v] ▶
kör [framåt v] i (10) [tum v] ▶
snurra [ClawMotor v] [öppna v] i (180) [grader v] ▶
sväng [vänster v] i (70) grader ▶
hämta [AI-klassificeringar v]-data från [AIVision v]
om <[AIVision v]-objekt finns?> då
om <[AIVision v]-objekt är [RedBluePin v]?> då
skriv ut [RedBluePin detected.] ▶
annars
skriv ut [No RedBluePin detected.] ▶
avsluta
avsluta

objektet är AprilTag#

Blocket objektet är AprilTag returnerar ett booleskt värde som anger om det detekterade objektet är en AprilTag som matchar ett specifikt ID.

  • Sant – Det detekterade objektet är en AprilTag med det angivna ID:t.

  • Falskt – Det detekterade objektet är inte en AprilTag med det angivna ID:t.

Objektet är ett AprilTag Booleskt block.#
<[AIVision v]-objekt är AprilTag [0]?>

Parameter

Beskrivning

AprilTag-ID

ID-numret som ska jämföras med den upptäckta AprilTag.

Exempel

när startad
[Report if AprilTag 3 is detected.]
hämta [AprilTags v]-data från [AIVision v]
om <[AIVision v]-objekt finns?> då
om <[AIVision v]-objekt är AprilTag [3]?> då
skriv ut [That is 3!] ▶
annars
skriv ut [That isn't 3!] ▶
avsluta
avsluta

objektantal#

Blocket objektantal returnerar antalet detekterade objekt i datamängden som ett heltal.

Objektstackblocket Set AI Vision-objektet.#
(antal [AIVision]-objekt)

Parametrar

Beskrivning

Det här blocket har inga parametrar.

Exempel

när startad
[Raise the Arm, drive to the Goal, release the Pin.]
snurra [ArmMotor v] [upp v] i (300) [grader v] ▶
kör [framåt v] i (10) [tum v] ▶
snurra [ClawMotor v] [öppna v] i (180) [grader v] ▶
sväng [vänster v] i (70) grader ▶
hämta [AI-klassificeringar v]-data från [AIVision v]
om <[AIVision v]-objekt finns?> då
skriv ut (antal [AIVision v]-objekt) ◀ och flytta markör till nästa rad
avsluta

objektegenskap#

Det finns sex egenskaper som ingår i varje objekt (visas nedan) som lagras efter att blocket get object data har använts.

Rapporteringsblocket för AI Vision-objektets egenskap.#
([AIVision v]-objekt [bredd v])

Alla egenskapsvärden beskriver det detekterade objektets position och storlek i AI-visionssensorns vy vid det ögonblick då blocket hämta objektdata användes. Dessa värden mäts i pixlar, baserat på sensorns upplösning på 320 x 240 pixlar.

Parameter

Beskrivning

egendom

Vilken egenskap för det detekterade objektet som ska användas:

bredd#

Egenskapen width rapporterar bredden på det detekterade objektet i pixlar som ett heltal från 1 till 320.

AI Vision-objektets egenskapsstackblock med dess parameter inställd på width.#
([AIVision v]-objekt [bredd v])

Exempel

när startad
[Raise the Arm, drive to the Goal, release the Pin.]
snurra [ArmMotor v] [upp v] i (300) [grader v] ▶
kör [framåt v] i (10) [tum v] ▶
snurra [ClawMotor v] [öppna v] i (180) [grader v] ▶
sväng [vänster v] i (70) grader ▶
[Approach the next Cup and Pin.]
ställ in körhastighet till (30) [% v]
för alltid
hämta [AI-klassificeringar v]-data från [AIVision v]
om <[AIVision v]-objekt finns?> då
if <([AIVision v] object [width v]) > (140)> then
stoppa körning
bryt
annars
kör [framåt v]
avsluta
avsluta
avsluta
höjd#

Egenskapen höjd rapporterar höjden på det detekterade objektet i pixlar som ett heltal från 1 till 240.

AI Vision-objektets egenskapsstackblock med dess parameter inställd på höjd.#
([AIVision v]-objekt [höjd v])

Exempel

när startad
[Raise the Arm, drive to the Goal, release the Pin.]
snurra [ArmMotor v] [upp v] i (300) [grader v] ▶
kör [framåt v] i (10) [tum v] ▶
snurra [ClawMotor v] [öppna v] i (180) [grader v] ▶
sväng [vänster v] i (70) grader ▶
[Approach the next Cup and Pin.]
ställ in körhastighet till (30) [% v]
för alltid
hämta [AI-klassificeringar v]-data från [AIVision v]
om <[AIVision v]-objekt finns?> då
if <([AIVision v] object [height v]) > (200)> then
stoppa körning
bryt
annars
kör [framåt v]
avsluta
avsluta
avsluta
centerX#

Egenskapen centerX rapporterar x-koordinaten för det detekterade objektets centrum i pixlar som ett heltal från 0 till 320.

AI Vision-objektets egenskapsstackblock med dess parameter inställd på centerX.#
([AIVision v]-objekt [centerX v])

Exempel

när startad
[Raise the Arm, drive to the Goal, release the Pin.]
snurra [ArmMotor v] [upp v] i (300) [grader v] ▶
kör [framåt v] i (10) [tum v] ▶
snurra [ClawMotor v] [öppna v] i (180) [grader v] ▶
sväng [vänster v] i (70) grader ▶
[Turn and approach the next Cup and Pin.]
ställ in svänghastighet till (30) [% v]
för alltid
hämta [AI-klassificeringar v]-data från [AIVision v]
om <[AIVision v]-objekt finns?> då
if <([AIVision v]-objekt [centerX v]) < (140)> then
sväng [vänster v] i (5) grader ▶
annars
kör [framåt v] i (25) [tum v] ▶
bryt
avsluta
avsluta
avsluta
centerY#

Egenskapen centerY rapporterar y-koordinaten för det detekterade objektets centrum i pixlar som ett heltal från 0 till 240.

AI Vision-objektets egenskapsstackblock med dess parameter inställd på centerY.#
([AIVision v]-objekt [centerY v])

Exempel

när startad
[Raise the Arm, drive to the Goal, release the Pin.]
snurra [ArmMotor v] [upp v] i (300) [grader v] ▶
kör [framåt v] i (10) [tum v] ▶
snurra [ClawMotor v] [öppna v] i (180) [grader v] ▶
sväng [vänster v] i (70) grader ▶
[Approach the next Cup and Pin.]
ställ in körhastighet till (30) [% v]
för alltid
hämta [AI-klassificeringar v]-data från [AIVision v]
om <[AIVision v]-objekt finns?> då
if <([AIVision v] object [centerY v]) > (230)> then
stoppa körning
bryt
annars
kör [framåt v]
avsluta
avsluta
avsluta
ursprungX#

Egenskapen originX rapporterar x-koordinaten för det övre vänstra hörnet av det detekterade objektets avgränsningsram i pixlar som ett heltal från 0 till 320.

AI Vision-objektets egenskapsstackblock med dess parameter inställd på originX.#
([AIVision v]-objekt [originX v])

Exempel

när startad
[Raise the Arm, drive to the Goal, release the Pin.]
snurra [ArmMotor v] [upp v] i (300) [grader v] ▶
kör [framåt v] i (10) [tum v] ▶
snurra [ClawMotor v] [öppna v] i (180) [grader v] ▶
sväng [vänster v] i (70) grader ▶
[Turn and approach the next Cup and Pin.]
ställ in svänghastighet till (30) [% v]
för alltid
hämta [AI-klassificeringar v]-data från [AIVision v]
om <[AIVision v]-objekt finns?> då
if <([AIVision v]-objekt [originX v]) < (100)> then
sväng [vänster v] i (5) grader ▶
annars
kör [framåt v] i (25) [tum v] ▶
bryt
avsluta
avsluta
avsluta
ursprungY#

Egenskapen originY rapporterar y-koordinaten för det övre vänstra hörnet av det detekterade objektets avgränsningsram i pixlar som ett heltal från 0 till 240.

AI Vision-objektets egenskapsstackblock med dess parameter inställd på originY.#
([AIVision v]-objekt [originY v])

Exempel

när startad
[Raise the Arm, drive to the Goal, release the Pin.]
snurra [ArmMotor v] [upp v] i (300) [grader v] ▶
kör [framåt v] i (10) [tum v] ▶
snurra [ClawMotor v] [öppna v] i (180) [grader v] ▶
sväng [vänster v] i (70) grader ▶
[Approach the next Cup and Pin.]
ställ in körhastighet till (30) [% v]
för alltid
hämta [AI-klassificeringar v]-data från [AIVision v]
om <[AIVision v]-objekt finns?> då
if <([AIVision v] object [originY v]) > (140)> then
stoppa körning
bryt
annars
kör [framåt v]
avsluta
avsluta
avsluta

Avkänning#

Avstånd#

Avstånd hittat ett objekt#

Det booleska blocket Avstånd hittat objekt rapporterar om avståndssensorn för närvarande detekterar ett objekt inom 2000 mm.

  • Sant — Avståndssensorn detekterar ett objekt.

  • Falskt — Avståndssensorn detekterar inget objekt.

<[FrontDistance v] hittade ett objekt?>

Parametrar

Beskrivning

avståndssensor

Avståndssensorn som ska användas. Välj bland de avståndssensorer som är tillgängliga för Flex.

Exempel

när startad :: hat events
[Turn until something is detected, then release the Pin.]
sväng [höger v]
vänta tills <[FrontDistance v] hittade ett objekt?>
stoppa körning
snurra [ArmMotor v] [upp v] i (300) [grader v] ▶
kör [framåt v] i (10) [tum v] ▶
snurra [ClawMotor v] [öppna v] i (180) [grader v] ▶

objektavstånd#

Blocket objektavstånd rapporterar avståndet mellan avståndssensorn och det närmaste detekterade objektet.

([FrontDistance v] avstånd i [mm v])

Parametrar

Beskrivning

avståndssensor

Avståndssensorn som ska användas. Välj bland de avståndssensorer som är tillgängliga för Flex.

enhet

Avståndsenheten: mm eller tum.

Exempel

när startad :: hat events
[Drive until 200 mm from the Goal, then release the Pin.]
kör [framåt v]
vänta tills <([FrontDistance v] avstånd i [mm v]) < (200)>
stoppa körning
snurra [ArmMotor v] [upp v] i (300) [grader v] ▶
kör [framåt v] i (10) [tum v] ▶
snurra [ClawMotor v] [öppna v] i (180) [grader v] ▶

GPS#

GPS-position#

GPS-position-blocket returnerar positionsförskjutningen för robotens svängreferenspunkt från mitten av ett fält med GPS-sensorn (Game Positioning System™).

([GPS v] position [X v] i [mm v])

Parametrar

Beskrivning

axel

Vilken axel som ska rapporteras:

  • X
  • Y

enheter

Enheten som representerar positionen: mm eller tum

Exempel

när startad :: hat events
[Raise the Arm, drive to the Goal, release the Pin.]
snurra [ArmMotor v] [upp v] i (300) [grader v] ▶
kör [framåt v]
wait until <([GPS v] position [X v] in [mm v]) > (-1370)>
stoppa körning
snurra [ClawMotor v] [öppna v] i (180) [grader v] ▶

GPS-riktning#

GPS-riktning-blocket returnerar den riktning som roboten för närvarande är riktad mot baserat på GPS-sensorns (Game Positioning System™) avläsningar från VEX GPS-fältkoden från 0,00 till 359,99 grader.

([GPS v] riktning i grader)

Parametrar

Beskrivning

Det här blocket har inga parametrar.

Exempel

när startad :: hat events
[Raise the Arm, drive to the Goal, release the Pin.]
snurra [ArmMotor v] [upp v] i (300) [grader v] ▶
kör [framåt v] i (10) [tum v] ▶
snurra [ClawMotor v] [öppna v] i (180) [grader v] ▶
[Turn left to face the Neutral Goal.]
ställ in svänghastighet till (30) [% v]
sväng [vänster v]
vänta tills <([GPS v] riktning i grader) < (18)>
stoppa körning