Robotspecifika block#
Introduktion#
Hjälteboten Flop inkluderar en insugsmotor, en armmotor och en IQ AI-visionssensor.
Alla vanliga VEXcode VR-block finns tillgängliga för användning i IQ 26-27 Nivå upp Playground.
Nedan finns en lista över alla tillgängliga robotspecifika block:
Rörelse – Flytta och spåra robotens motorer.
Åtgärder
snurra motorn – Snurrar en motor i en av sina riktningar för alltid.
snurra motorn i – Snurrar en motor ett visst avstånd i grader eller varv.
snurra motorn till position – Snurrar en motor till en specifik position.
stoppa motorn – Stoppar en motor från att snurra.
Inställningar
ställ in motorhastighet – Anger hur snabbt motorn ska snurra.
ställ in motortimeout – Ställer in hur länge en motor ska försöka slutföra en rörelse.
Placera
motorposition – Rapporterar motorns aktuella position.
ställ in motorposition – Ändrar motorns aktuella position till ett nytt värde.
Värden
motorn är klar – Rapporterar om motorn är klar med att röra sig.
motorn snurrar – Rapporterar om motorn snurrar.
motorhastighet – Rapporterar hur snabbt motorn snurrar, i procent från -100 % till 100 %.
AI Vision – Fånga och analysera objekt med hjälp av IQ AI Vision-sensorn.
Åtgärder
hämta objektdata – Samlar in data för en specifik signatur, till exempel en detekterad AI-klassificering.
Inställningar
ställ in objektpost - Väljer ett specifikt objekt från listan.
Värden
objektet finns - Returnerar om någon klassificering upptäcktes.
objektet är – Returnerar om en specifik klassificering har upptäckts.
objektet är AprilTag – Returnerar om det upptäckta objektet är en AprilTag som matchar ett specifikt ID.
antal objekt – Returnerar hur många objekt som upptäcktes.
objektegenskap - Returnerar bredd, höjd, centrumX, centrumY, ursprungX eller ursprungY.
Exemplen på den här sidan använder standardstartpositionen för Playground.
Rörelse#
Floppen använder insugningsmotorn för att samla in och mata ut spelelement. Armmotorn höjer och sänker armen.
Varje motor har sina egna riktningsalternativ. Riktningsnamnen beskriver hur motorn rör sig på floppen.
Å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 [IntakeMotor v] [intag v]
Parametrar |
Beskrivning |
|---|---|
motor |
Motorn som ska snurra: Insugningsmotor eller Armmotor. |
riktning |
Motorns rotationsriktning:
|
Exempel
när startad
[Score a Bean Bag in a Blue Goal.]
sväng [vänster v] i (90) grader ▶
kör [framåt v] i (35) [tum v] ▶
sväng [höger v] i (90) grader ▶
snurra [ArmMotor v] [upp v] i (1) [varv v] ▶
kör [framåt v] i (40) [tum v] ▶
snurra [IntakeMotor v] [uttag 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 (500) [grader v] ▶
Parametrar |
Beskrivning |
|---|---|
motor |
Motorn som ska snurra: Insugningsmotor eller Armmotor. |
riktning |
Motorns rotationsriktning:
|
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
[Score a Bean Bag in a Blue Goal.]
sväng [vänster v] i (90) grader ▶
kör [framåt v] i (35) [tum v] ▶
sväng [höger v] i (90) grader ▶
snurra [ArmMotor v] [upp v] i (1) [varv v] ▶
kör [framåt v] i (40) [tum v] ▶
snurra [IntakeMotor v] [uttag 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 sätts motorpositionen till 0 grader. Motorpositionen 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 (500) [grader v] ▶
Parametrar |
Beskrivning |
|---|---|
motor |
Motorn som ska snurra: Insugningsmotor eller Armmotor. |
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
[Score a Bean Bag in a Blue Goal.]
sväng [vänster v] i (90) grader ▶
kör [framåt v] i (35) [tum v] ▶
sväng [höger v] i (90) grader ▶
snurra [ArmMotor v] till position (1) [varv v] ▶
kör [framåt v] i (40) [tum v] ▶
snurra [IntakeMotor v] [uttag v]
stoppa motorn#
Stackblocket stoppa motor stoppar den valda motorn.
stoppa [IntakeMotor v]
Parametrar |
Beskrivning |
|---|---|
motor |
Motorn som ska stoppas: Insugningsmotor eller Armmotor. |
Exempel
när startad
[Score a Bean Bag in a Blue Goal.]
sväng [vänster v] i (90) grader ▶
kör [framåt v] i (35) [tum v] ▶
sväng [höger v] i (90) grader ▶
snurra [ArmMotor v] [upp v] i (1) [varv v] ▶
kör [framåt v] i (40) [tum v] ▶
snurra [IntakeMotor v] [uttag v]
vänta (1) sekunder
stoppa [IntakeMotor 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 [IntakeMotor v] hastighet till [50] [% v]
Parametrar |
Beskrivning |
|---|---|
motor |
Motorn för att ställa in hastigheten för: Insugningsmotor eller Armmotor. |
hastighet |
Den hastighet som motorn snurrar med. Procent använder heltal från 0 % till 100 %. |
enhet |
Hastighetsenheten: %. |
Exempel
när startad
[Score a Bean Bag in a Blue Goal.]
sväng [vänster v] i (90) grader ▶
kör [framåt v] i (35) [tum v] ▶
sväng [höger v] i (90) grader ▶
snurra [ArmMotor v] [upp v] i (1) [varv v] ▶
kör [framåt v] i (40) [tum v] ▶
ställ in [IntakeMotor v] hastighet till [100] [% v]
snurra [IntakeMotor v] [uttag 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: Insugningsmotor eller Armmotor. |
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 Bean Bag in a Blue Goal.]
sväng [vänster v] i (90) grader ▶
kör [framåt v] i (35) [tum v] ▶
sväng [höger v] i (90) grader ▶
ställ in [ArmMotor v] timeout till [2] sekunder
snurra [ArmMotor v] [upp v] i (1) [varv v] ▶
kör [framåt v] i (40) [tum v] ▶
snurra [IntakeMotor v] [uttag 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 motorpositionen inställd på 0 grader. Om motorn snurrar ett helt varv framåt blir positionen 360 grader eller 1 varv. Om motorn snurrar åt andra hållet blir positionen negativ.
([ArmMotor v] position i [grader v])
Parametrar |
Beskrivning |
|---|---|
motor |
Motorn som ska rapportera positionen för: Insugningsmotor eller Armmotor. |
enhet |
Enheten att rapportera motorpositionen i: grader eller varv. |
Exempel
när startad
[Score a Bean Bag in a Blue Goal.]
sväng [vänster v] i (90) grader ▶
kör [framåt v] i (35) [tum v] ▶
sväng [höger v] i (90) grader ▶
medan <([ArmMotor v] position i [grader v]) [math_less_than v] [360]>
snurra [ArmMotor v] [upp v]
vänta (0.002) sekunder
avsluta
stoppa [ArmMotor v]
kör [framåt v] i (40) [tum v] ▶
snurra [IntakeMotor v] [uttag 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: Insugningsmotor eller Armmotor. |
placera |
Positionsvärdet som ska ställas in. Grader använder heltal. Vändningar kan använda heltal eller decimaler. |
enhet |
Positionsenheten: grader eller varv. |
Exempel
när startad
[Score a Bean Bag in a Blue Goal.]
sväng [vänster v] i (90) grader ▶
kör [framåt v] i (35) [tum v] ▶
sväng [höger v] i (90) grader ▶
ställ in [ArmMotor v] position till [0] [grader v]
snurra [ArmMotor v] [upp v] i (1) [varv v] ▶
kör [framåt v] i (40) [tum v] ▶
snurra [IntakeMotor v] [uttag 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 att röra sig: Insugningsmotor eller Armmotor. |
Exempel
när startad
[Score a Bean Bag in a Blue Goal.]
sväng [vänster v] i (90) grader ▶
kör [framåt v] i (35) [tum v] ▶
sväng [höger v] i (90) grader ▶
snurra [ArmMotor v] till position (1) [varv v] ◀ och vänta inte
vänta tills <[ArmMotor v] klar?>
kör [framåt v] i (40) [tum v] ▶
snurra [IntakeMotor v] [uttag v]
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.
<[IntakeMotor v] snurrar?>
Parametrar |
Beskrivning |
|---|---|
motor |
Motorn som rapporterar om den snurrar: Insugningsmotor eller Armmotor. |
Exempel
när startad
[Score a Bean Bag in a Blue Goal.]
sväng [vänster v] i (90) grader ▶
kör [framåt v] i (35) [tum v] ▶
sväng [höger v] i (90) grader ▶
snurra [ArmMotor v] [upp v] i (1) [varv v] ▶
kör [framåt v] i (40) [tum v] ▶
snurra [IntakeMotor v] [uttag v]
vänta tills <inte <[IntakeMotor v] snurrar?>>
stoppa [IntakeMotor v]
motorhastighet#
Blocket motorhastighet rapporterar hur snabbt motorn snurrar, som en procentandel från -100 % till 100 %.
([IntakeMotor v] hastighet i [% v] :: custom-motion)
Parametrar |
Beskrivning |
|---|---|
motor |
Motorn som ska rapportera hastigheten för: Insugningsmotor eller Armmotor. |
enhet |
Enheten att rapportera motorhastigheten i: %. |
Exempel
när startad
[Score a Bean Bag in a Blue Goal.]
sväng [vänster v] i (90) grader ▶
kör [framåt v] i (35) [tum v] ▶
sväng [höger v] i (90) grader ▶
snurra [ArmMotor v] [upp v] i (1) [varv v] ▶
kör [framåt v] i (40) [tum v] ▶
snurra [IntakeMotor v] [uttag v]
vänta [0.2] sekunder
skriv ut ([IntakeMotor v] hastighet i [% v] :: custom-motion) ▶
AI-vision#
Åtgärder#
hämta objektdata#
Blocket hämta objektdata filtrerar data från IQ 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 object property. En tom dataset returneras om inga matchande objekt upptäcks.
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:
|
Exempel
när startad :: hat events
[Drop the preloaded Bean Bag.]
snurra [IntakeMotor v] [uttag v] i (180) [grader v] ▶
sväng [vänster v] i (90) grader ▶
[Find and face the nearest red Bean Bag.]
ställ in svänghastighet till (30) [% v]
ställ in [object_counter v] till [1]
hämta [AI-klassificeringar v]-data från [AIVision v]
upprepa (antal [AIVision v]-objekt)
ställ in [AIVision v]-objektpost till (object_counter)
om <[AIVision v]-objekt är [RedBeanBag v]?> 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
avsluta
bryt
avsluta
ändra [object_counter v] med [1]
avsluta
Inställningar#
ange objektobjekt#
Blocket set object item anger vilket objekt i datamängden som ska användas.
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 :: hat events
[Drop the preloaded Bean Bag.]
snurra [IntakeMotor v] [uttag v] i (180) [grader v] ▶
sväng [vänster v] i (90) grader ▶
[Find the index of the nearest red Bean Bag.]
ställ in [object_counter v] till [1]
hämta [AI-klassificeringar v]-data från [AIVision v]
upprepa (antal [AIVision v]-objekt)
ställ in [AIVision v]-objektpost till (object_counter)
om <[AIVision v]-objekt är [RedBeanBag v]?> då
skriv ut (sätt ihop [Nearest Red Bean Bag is ] (object_counter)) ▶
bryt
annars
ändra [object_counter v] med [1]
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 upptäckta objekt.
<[AIVision v]-objekt finns?>
Parametrar |
Beskrivning |
|---|---|
Det här blocket har inga parametrar. |
Exempel
när startad :: hat events
[Drop the preloaded Bean Bag.]
snurra [IntakeMotor v] [uttag v] i (180) [grader v] ▶
sväng [vänster v] i (90) grader ▶
[Turn until a Bean Bag is detected.]
ställ in svänghastighet till (30) [% v]
sväng [höger v]
upprepa tills <[AIVision v]-objekt finns?>
hämta [AI-klassificeringar v]-data från [AIVision v]
avsluta
stoppa körning
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.
<[AIVision v]-objekt är [RedBeanBag v]?>
Parameter |
Beskrivning |
|---|---|
objekt |
Vilket objekt att jämföra föremålet med: RödBönpåse, BlåBönpåse eller GulBönpåse. |
Exempel
när startad :: hat events
[Drop the preloaded Bean Bag.]
snurra [IntakeMotor v] [uttag v] i (180) [grader v] ▶
sväng [vänster v] i (90) grader ▶
[Find the index of the nearest red Bean Bag.]
ställ in [object_counter v] till [1]
hämta [AI-klassificeringar v]-data från [AIVision v]
upprepa (antal [AIVision v]-objekt)
ställ in [AIVision v]-objektpost till (object_counter)
om <[AIVision v]-objekt är [RedBeanBag v]?> då
skriv ut (sätt ihop [Nearest Red Bean Bag is ] (object_counter)) ▶
bryt
annars
ändra [object_counter v] med [1]
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 upptäckta objektet är en AprilTag med det angivna ID:t.
Falskt - Det detekterade objektet är inte en AprilTag med det angivna ID:t.
<[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 :: hat events
[Stop when you see the Red Goal!]
ställ in svänghastighet till (30) [% v]
sväng [höger v]
upprepa tills <[AIVision v]-objekt är AprilTag [1]?>
hämta [AprilTags v]-data från [AIVision v]
avsluta
stoppa körning
skriv ut [Found the Red Goal!] ▶
objektantal#
Blocket objektantal returnerar antalet detekterade objekt i datamängden som ett heltal.
(antal [AIVision v]-objekt)
Parametrar |
Beskrivning |
|---|---|
Det här blocket har inga parametrar. |
Exempel
när startad :: hat events
[Drop the preloaded Bean Bag.]
snurra [IntakeMotor v] [uttag v] i (180) [grader v] ▶
sväng [vänster v] i (90) grader ▶
[Print how many Bean Bags are detected.]
hämta [AI-klassificeringar v]-data från [AIVision v]
skriv ut (antal [AIVision v]-objekt) ▶
objektegenskap#
Det finns sex egenskaper som ingår i varje objekt som lagras efter att blocket get object data har använts.
([AIVision v]-objekt [bredd v])
Alla egenskapsvärden beskriver det detekterade objektets position och storlek i IQ AI Vision Sensors 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, höjd, centrumX, centrumY, ursprungX eller ursprungY. |
bredd#
Egenskapen width rapporterar bredden på det detekterade objektet i pixlar som ett heltal från 1 till 320.
([AIVision v]-objekt [bredd v])
Exempel
när startad
[Drop the preloaded Bean Bag.]
snurra [IntakeMotor v] [uttag v] i (180) [grader v] ▶
sväng [vänster v] i (90) grader ▶
[Approach the Bean Bag, then pick it up.]
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å
ställ in [AIVision v]-objektpost till [1]
om <[AIVision v]-objekt är [RedBeanBag v]?> då
if <([AIVision v] object [width v]) > (180)> then
kör [framåt v] i [50] [mm v] ▶
snurra [IntakeMotor v] [intag v] i [90] [grader v] ▶
bryt
annars
kör [framåt v]
avsluta
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.
([AIVision v]-objekt [höjd v])
Exempel
när startad
[Drop the preloaded Bean Bag.]
snurra [IntakeMotor v] [uttag v] i (180) [grader v] ▶
sväng [vänster v] i (90) grader ▶
[Approach the Bean Bag, then pick it up.]
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å
ställ in [AIVision v]-objektpost till [1]
om <[AIVision v]-objekt är [RedBeanBag v]?> då
if <([AIVision v] object [height v]) > (100)> then
kör [framåt v] i [50] [mm v] ▶
snurra [IntakeMotor v] [intag v] i [90] [grader v] ▶
bryt
annars
kör [framåt v]
avsluta
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.
([AIVision v]-objekt [centerX v])
Exempel
när startad
[Drop the preloaded Bean Bag.]
snurra [IntakeMotor v] [uttag v] i (180) [grader v] ▶
sväng [vänster v] i (90) grader ▶
[Steer to keep the Bean Bag centered while approaching.]
ställ in svänghastighet till (30) [% v]
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å
ställ in [AIVision v]-objektpost till [1]
om <[AIVision v]-objekt är [RedBeanBag v]?> då
if <([AIVision v]-objekt [centerX v]) < (140)> then
sväng [vänster v] i (5) grader ▶
annars
kör [framåt v] i (150) [mm v] ▶
snurra [IntakeMotor v] [intag v]
bryt
avsluta
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.
([AIVision v]-objekt [centerY v])
Exempel
när startad
[Drop the preloaded Bean Bag.]
snurra [IntakeMotor v] [uttag v] i (180) [grader v] ▶
sväng [vänster v] i (90) grader ▶
[Print the y-position of the Bean Bag.]
hämta [AI-klassificeringar v]-data från [AIVision v]
om <[AIVision v]-objekt finns?> då
ställ in [AIVision v]-objektpost till [1]
om <[AIVision v]-objekt är [RedBeanBag v]?> då
skriv ut ([AIVision v]-objekt [centerY v]) ▶
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.
([AIVision v]-objekt [originX v])
Exempel
när startad
[Drop the preloaded Bean Bag.]
snurra [IntakeMotor v] [uttag v] i (180) [grader v] ▶
sväng [vänster v] i (90) grader ▶
[Steer to keep the left edge centered.]
ställ in svänghastighet till (30) [% v]
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å
ställ in [AIVision v]-objektpost till [1]
om <[AIVision v]-objekt är [RedBeanBag v]?> då
if <([AIVision v]-objekt [originX v]) < (100)> then
sväng [vänster v] i (5) grader ▶
annars
kör [framåt v] i (150) [mm v] ▶
snurra [IntakeMotor v] [intag v]
bryt
avsluta
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.
([AIVision v]-objekt [originY v])
Exempel
när startad
[Drop the preloaded Bean Bag.]
snurra [IntakeMotor v] [uttag v] i (180) [grader v] ▶
sväng [vänster v] i (90) grader ▶
[Print the y-position of the Bean Bag's top edge.]
hämta [AI-klassificeringar v]-data från [AIVision v]
om <[AIVision v]-objekt finns?> då
ställ in [AIVision v]-objektpost till [1]
om <[AIVision v]-objekt är [RedBeanBag v]?> då
skriv ut ([AIVision v]-objekt [originY v]) ▶
avsluta
avsluta