Bloki specyficzne dla robotów#

Wstęp#

Robot-bohater, Flex, zawiera silnik ClawMotor, silnik ArmMotor, czujnik wizyjny AI, czujnik odległości i czujnik systemu pozycjonowania gry (GPS).

Wszystkie standardowe bloki VEXcode VR są dostępne do użycia w V5 26-27 Override Playground.

Poniżej znajduje się lista wszystkich dostępnych bloków specyficznych dla robotów:

Układ napędowy – poruszanie i obracanie robotem.

Ruch – poruszaj i śledź silniki robota.

Wizja AI – przechwytywanie i analiza obiektów za pomocą czujnika wizji AI.

Czuwanie – wykorzystanie różnych czujników robota.

Przykłady na tej stronie odnoszą się do Lokalizacji Startowej C z listy kontrolnej przed meczem w serwisie Playground.

Układ napędowy#

Układ napędowy kontroluje sposób jazdy i skręcania robota VR. Układ napędowy może poruszać się do przodu i do tyłu, skręcać w lewo i w prawo, zmieniać kierunki i śledzić swój obrót.

Akcje#

prowadzić#

Blok stosu drive porusza robota do przodu lub do tyłu w nieskończoność. Robot będzie się poruszał, dopóki nie otrzyma innej akcji, takiej jak obrót lub zatrzymanie.

jedź [do przodu v]

Parametry

Opis

kierunek

Kierunek, w którym porusza się robot: do przodu lub do tyłu.

Przykład

gdy uruchomiony :: hat events
[Raise the Arm, drive to the Goal, release the Pin.]
obracaj [ArmMotor v] [w górę v] przez (300) [stopnie v] ▶
jedź [do przodu v]
czekaj (0.5) sekund
zatrzymaj jazdę
obracaj [ClawMotor v] [Otwarte v] przez (180) [stopnie v] ▶

jechać do#

Blok napędu przesuwa robota do przodu lub do tyłu o określoną odległość. Projekt będzie czekał, aż robot zakończy ruch, zanim zostanie uruchomiony kolejny blok w stosie.

jedź [do przodu v] przez (200) [mm v] ▶

Parametry

Opis

kierunek

Kierunek, w którym porusza się robot: do przodu lub do tyłu.

dystans

Odległość pokonywana przez robota. Może być liczbą całkowitą lub dziesiętną.

jednostka

Jednostka odległości: mm (milimetry) lub cale

i nie czekaj

Wybierz strzałkę (▶), aby rozwinąć blok i napisać i nie czekaj, dzięki czemu następny blok w stosie zostanie uruchomiony natychmiast.

Przykład

gdy uruchomiony :: hat events
[Raise the Arm, drive to the Goal, release the Pin.]
obracaj [ArmMotor v] [w górę v] przez (300) [stopnie v] ▶
jedź [do przodu v] przez (10) [cale v] ▶
obracaj [ClawMotor v] [Otwarte v] przez (180) [stopnie v] ▶

zakręt#

Blok turn obraca robota w lewo lub w prawo w nieskończoność. Robot będzie się obracał, dopóki nie otrzyma innej akcji, takiej jak jazda lub zatrzymanie.

skręć [w prawo v]

Parametry

Opis

kierunek

Kierunek, w którym robot się obraca: w lewo lub w prawo.

Przykład

gdy uruchomiony :: hat events
[Score a Pin in a Neutral Goal.]
skręć [w lewo v]
czekaj (0.78) sekund
zatrzymaj jazdę
obracaj [ArmMotor v] [w górę v] przez (800) [stopnie v] ▶
jedź [do przodu v] przez (25) [cale v] ▶
obracaj [ClawMotor v] [Otwarte v] przez (180) [stopnie v] ▶

skręcić na#

Blok obrót w stosie obraca robota w lewo lub w prawo o określoną liczbę stopni. Obrót jest względny do bieżącej pozycji robota. Projekt będzie czekał, aż robot zakończy obrót, zanim zostanie uruchomiony kolejny blok w stosie.

skręć [w prawo v] o (90) stopni ▶

Parametry

Opis

kierunek

Kierunek, w którym robot się obraca: w lewo lub w prawo.

kąt

Liczba stopni, o jaką obróci się robot. Może to być liczba całkowita lub dziesiętna.

i nie czekaj

Wybierz strzałkę (▶), aby rozwinąć blok i napisać i nie czekaj, dzięki czemu następny blok w stosie zostanie uruchomiony natychmiast.

Przykład

gdy uruchomiony :: hat events
[Score a Pin in a Neutral Goal.]
skręć [w lewo v] o (110) stopni ▶
obracaj [ArmMotor v] [w górę v] przez (800) [stopnie v] ▶
jedź [do przodu v] przez (25) [cale v] ▶
obracaj [ClawMotor v] [Otwarte v] przez (180) [stopnie v] ▶

skręć w stronę kierunku#

Kierunek to kierunek, w którym zwrócony jest robot, mierzony w stopniach. Blok stosu turn to heading obraca robota w określonym kierunku od -359 do 359 stopni. Robot obróci się w najkrótszym kierunku, aby osiągnąć docelowy kierunek.

Początkowy kurs wynosi 0 stopni.

Projekt będzie czekał, aż robot zakończy obrót, zanim zostanie uruchomiony kolejny blok ze stosu.

skręć do kursu (90) stopni ▶

Parametry

Opis

nagłówek

Kierunek, w którym powinien być skierowany robot, od -359 do 359 stopni.

i nie czekaj

Wybierz strzałkę (▶), aby rozwinąć blok i napisać i nie czekaj, dzięki czemu następny blok w stosie zostanie uruchomiony natychmiast.

Przykład

gdy uruchomiony :: hat events
[Score a Pin in a Neutral Goal.]
skręć do kursu (-110) stopni ▶
obracaj [ArmMotor v] [w górę v] przez (800) [stopnie v] ▶
jedź [do przodu v] przez (25) [cale v] ▶
obracaj [ClawMotor v] [Otwarte v] przez (180) [stopnie v] ▶

obrócić do obrotu#

Blok stosu obrót w celu wykonania obrotu powoduje obrót robota w określonym kierunku.

Obrót to wartość obrotu robota, mierzona w stopniach. Na początku projektu wartość obrotu jest ustawiona na 0 stopni. Obrót można również ustawić za pomocą bloku set drive rotation.

Wartości obrotu są bezwzględne. Oznacza to, że kierunek obrotu zależy od aktualnego obrotu robota. Skręt w prawo zwiększa obrót, a w lewo zmniejsza.

Na przykład, jeśli robot zaczyna od 0 stopni i obrócisz go o 720 stopni, skręci w prawo dwa razy. Jeśli następnie obrócisz go o 360 stopni, skręci raz w lewo, ponieważ 360 stopni to mniej niż 720.

Projekt będzie czekał, aż robot zakończy obrót, zanim zostanie uruchomiony kolejny blok ze stosu.

skręć do obrotu (90) stopni ▶

Parametry

Opis

obrót

Wartość obrotu, w stopniach, o jaką obróci się robot. Może to być liczba całkowita lub dziesiętna.

i nie czekaj

Wybierz strzałkę (▶), aby rozwinąć blok i napisać i nie czekaj, dzięki czemu następny blok w stosie zostanie uruchomiony natychmiast.

Przykład

gdy uruchomiony :: hat events
[Score a Pin in a Neutral Goal.]
skręć do obrotu (-110) stopni ▶
obracaj [ArmMotor v] [w górę v] przez (800) [stopnie v] ▶
jedź [do przodu v] przez (25) [cale v] ▶
obracaj [ClawMotor v] [Otwarte v] przez (180) [stopnie v] ▶

przestań prowadzić#

Blok stosu stop driving zatrzymuje ruch robota.

zatrzymaj jazdę

Parametry

Opis

Ten blok nie ma żadnych parametrów.

Przykład

gdy uruchomiony :: hat events
[Score a Pin in a Neutral Goal.]
obracaj [ArmMotor v] [w górę v] przez (300) [stopnie v] ▶
jedź [do przodu v]
czekaj (0.5) sekund
zatrzymaj jazdę
obracaj [ClawMotor v] [Otwarte v] przez (180) [stopnie v] ▶

Ustawienia#

ustaw prędkość napędu#

Blok stosu ustaw prędkość jazdy informuje robota, jak szybko ma jechać. Wyższy procent sprawia, że ​​robot jedzie szybciej, a niższy – wolniej.

Każdy projekt rozpoczyna się od tego, że robot domyślnie porusza się z prędkością równą 50%.

Uwaga: Większa prędkość sprawia, że ​​robot jedzie szybciej, ale może być mniej precyzyjny. Niższa prędkość sprawia, że ​​robot jedzie wolniej, ale może być bardziej precyzyjny.

ustaw prędkość jazdy na (50) [% v]

Parametry

Opis

prędkość

Prędkość jazdy od 0% do 100%.

jednostka

Jednostka prędkości: %

Przykład

gdy uruchomiony :: hat events
[Score a Pin in a Neutral Goal.]
skręć [w lewo v] o (110) stopni ▶
obracaj [ArmMotor v] [w górę v] przez (800) [stopnie v] ▶
ustaw prędkość jazdy na (100) [% v]
jedź [do przodu v] przez (25) [cale v] ▶
obracaj [ClawMotor v] [Otwarte v] przez (180) [stopnie v] ▶

ustaw prędkość skrętu#

Blok stosu ustaw prędkość skrętu informuje robota, jak szybko ma się skręcić. Wyższy procent powoduje, że robot skręca szybciej, a niższy – że skręca wolniej.

Każdy projekt rozpoczyna się od ustawienia robota tak, aby domyślnie obracał się z prędkością równą 50%.

Uwaga: Większa prędkość sprawia, że ​​robot skręca szybciej, ale może być mniej precyzyjny. Niższa prędkość sprawia, że ​​robot skręca wolniej, ale może być bardziej precyzyjny.

ustaw prędkość obrotu na (50) [% v]

Parametry

Opis

prędkość

Prędkość skrętu od 0% do 100%.

jednostka

Jednostka prędkości: %

Przykład

gdy uruchomiony :: hat events
[Turn to face the Neutral Goal faster.]
ustaw prędkość obrotu na (100) [% v]
skręć [w lewo v] o (110) stopni ▶

ustaw kierunek jazdy#

Kierunek to kierunek, w którym zwrócony jest robot, mierzony w stopniach. Blok stosu „ustaw kierunek jazdy” zmienia aktualny kierunek robota na nową wartość kierunku.

Na przykład, jeśli robot obrócił się w prawo, ustawienie kierunku na 0 stopni spowoduje, że ta pozycja skierowana w prawo stanie się nowym 0 stopniem. Następnie robot może obrócić się w inne pozycje w oparciu o ten nowy kierunek.

ustaw kurs jazdy na (0) stopni

Parametry

Opis

nagłówek

Wartość kierunku (w stopniach), którą należy ustawić dla robota.

Przykład

gdy uruchomiony :: hat events
[Make facing the Neutral Goal the new heading.]
ustaw kurs jazdy na (110) stopni
skręć do kursu (0) stopni ▶

ustaw obroty napędu#

Obrót to wartość obrotu robota, mierzona w stopniach. Na początku projektu wartość obrotu jest ustawiona na 0 stopni. Blok stosu „Ustaw obrót napędu” zmienia bieżący obrót robota na nową wartość.

Na przykład, jeśli robot wykonał dwa pełne obroty w prawo, jego wartość obrotu wyniesie 720 stopni. Ustawienie obrotu na 0 stopni zresetuje ten obrót z 720 do 0 stopni. Następnie robot może wykonać obrót w oparciu o tę nową wartość.

ustaw obrót jazdy na (0) stopni

Parametry

Opis

obrót

Wartość obrotu (w stopniach), którą należy ustawić dla robota. Może to być liczba całkowita lub dziesiętna.

Przykład

gdy uruchomiony :: hat events
[Make facing the Neutral Goal the new rotation.]
ustaw obrót jazdy na (110) stopni
skręć do obrotu (0) stopni ▶

ustaw limit czasu dysku#

Blok stosu set drive timeout ustawia liczbę sekund, przez które robot będzie próbował zakończyć ruch. Jeśli robot nie ukończy ruchu w tym czasie, przerwie próby i przejdzie do następnego bloku w stosie. Zapobiega to zablokowaniu ruchu przez robota.

ustaw limit czasu jazdy na (1) sekund

Parametry

Opis

czas

Liczba sekund, w ciągu których robot może próbować zakończyć ruch. Może to być liczba całkowita lub dziesiętna.

Przykład

gdy uruchomiony :: hat events
[Turn to face the Neutral Goal.]
ustaw limit czasu jazdy na (0.8) sekund
skręć [w lewo v] o (180) stopni ▶

Wartości#

jazda zakończona#

Blok logiczny „napęd zakończony” informuje, czy robot zakończył ruch. Można go wykorzystać do sterowania czasem innych zachowań na podstawie ruchu robota.

  • Prawda — robot zakończył ruch.

  • Fałsz — Robot nadal się porusza.

Blok ten współpracuje z blokami układu napędowego, które mają parametr i nie czekaj.

<jazda zakończona?>

Parametry

Opis

Ten blok nie ma żadnych parametrów.

Przykład

gdy uruchomiony :: hat events
[Score a Pin in a Neutral Goal.]
skręć [w lewo v] o (110) stopni ▶
obracaj [ArmMotor v] [w górę v] przez (800) [stopnie v] ▶
jedź [do przodu v] przez (25) [cale v] ◀ i nie czekaj
czekaj dopóki <jazda zakończona?>
obracaj [ClawMotor v] [Otwarte v] przez (180) [stopnie v] ▶

napęd się porusza#

Blok logiczny „napęd się porusza” informuje, czy robot się porusza. Można go użyć do sterowania czasem innych zachowań na podstawie ruchu robota.

  • Prawda — robot się porusza.

  • Fałsz — robot się nie porusza.

Blok ten współpracuje z blokami układu napędowego, które mają parametr i nie czekaj.

<jazda w toku?>

Parametry

Opis

Ten blok nie ma żadnych parametrów.

Przykład

gdy uruchomiony :: hat events
[Raise the Arm once stopped near the Goal.]
skręć [w lewo v] o (110) stopni ▶
jedź [do przodu v] przez (25) [cale v] ◀ i nie czekaj
dopóki <jazda w toku?>
czekaj (0.005) sekund
koniec
obracaj [ArmMotor v] [w górę v] przez (800) [stopnie v] ▶

kierunek jazdy#

Kierunek to kierunek, w którym zwrócony jest robot, mierzony w stopniach. Blok raportujący kierunek jazdy raportuje ten kierunek w zakresie od 0 do 359,99 stopnia.

Początkowy kierunek robota wynosi 0 stopni.

(kurs jazdy w stopniach)

Parametry

Opis

Ten blok nie ma żadnych parametrów.

Przykład

gdy uruchomiony :: hat events
[Turn to the Goal, then show heading.]
skręć [w prawo v] o (450) stopni ▶
wydrukuj (kurs jazdy w stopniach) na ekranie ◀ i ustaw kursor na następny wiersz

obrót napędu#

Obrót to wartość obrotu robota, mierzona w stopniach. Na początku projektu wartość obrotu jest ustawiona na 0 stopni. Blok raportujący Drive Rotation raportuje aktualny obrót robota.

Skręt w prawo zwiększa obrót, a skręt w lewo zmniejsza. Na przykład, wykonanie dwóch pełnych skrętów w prawo spowoduje obrót o 720 stopni.

(obrót jazdy w stopniach)

Parametry

Opis

Ten blok nie ma żadnych parametrów.

Przykład

gdy uruchomiony :: hat events
[Spin to find a Pin, then show rotation.]
skręć [w prawo v] o (450) stopni ▶
wydrukuj (obrót jazdy w stopniach) na ekranie ◀ i ustaw kursor na następny wiersz

prędkość napędowa#

Blok reporterowy prędkości jazdy informuje, jak szybko jedzie robot.

(prędkość jazdy w [% v])

Parametry

Opis

jednostka

Jednostka prędkości: %

Przykład

gdy uruchomiony :: hat events
[Show speed while driving to the Goal.]
jedź [do przodu v] przez (150) [mm v] ▶
wydrukuj (prędkość jazdy w [% v]) na ekranie ◀ i ustaw kursor na następny wiersz

Ruch#

Flex używa silnika ArmMotor do podnoszenia i opuszczania ramienia oraz silnika ClawMotor do otwierania i zamykania pazura.

Każdy silnik ma własne opcje kierunku. Nazwy kierunków opisują sposób poruszania się silnika w systemie Flex.

Akcje#

silnik wirowy#

Blok stosu Spin Motor obraca silnik w jednym z dwóch kierunków w nieskończoność. Silnik będzie się obracał, dopóki nie zostanie mu przydzielona inna czynność, np. obrót w innym kierunku lub zatrzymanie.

obracaj [ArmMotor v] [w górę v]

Parametry

Opis

silnik

Silnik wirujący: ArmMotor lub ClawMotor.

kierunek

Kierunek, w którym obraca się silnik:

  • ArmMotor — w górę lub w dół
  • ClawMotor — otwórz lub zamknij

Przykład

gdy uruchomiony
[Raise the Arm before driving toward a Pin.]
obracaj [ArmMotor v] [w górę v]
czekaj (1) sekund
zatrzymaj [ArmMotor v]

silnik wirowy do#

Blok Silnik obrotowy dla stosu obraca silnik o określoną odległość. Obrót jest względny do aktualnej pozycji silnika. Projekt będzie czekał, aż silnik zakończy obrót, zanim zostanie uruchomiony kolejny blok w stosie.

obracaj [ArmMotor v] [w górę v] przez (90) [stopnie v] ▶

Parametry

Opis

silnik

Silnik wirujący: ArmMotor lub ClawMotor.

kierunek

Kierunek, w którym obraca się silnik:

  • ArmMotor — w górę lub w dół
  • ClawMotor — otwórz lub zamknij

dystans

Odległość, jaką pokonuje silnik. Stopnie wyrażane są w liczbach całkowitych. Obroty wyrażane są w liczbach całkowitych lub dziesiętnych.

jednostka

Jednostka odległości: stopnie lub obroty.

i nie czekaj

Wybierz strzałkę (▶), aby rozwinąć blok i napisać i nie czekaj, dzięki czemu następny blok w stosie zostanie uruchomiony natychmiast.

Przykład

gdy uruchomiony
[Raise the Arm to carry the Pin to the Goal.]
obracaj [ArmMotor v] [w górę v] przez (800) [stopnie v] ▶

obróć silnik do pozycji#

Blok stosu obróć silnik do pozycji obraca silnik do określonej pozycji.

Pozycja silnika to odległość, na jaką się obrócił, mierzona w stopniach lub obrotach. Jeden obrót to 360 stopni. Na początku projektu pozycja silnika ArmMotor jest ustawiona na 0 stopni. Wyjątkiem jest silnik ClawMotor — jego położenie początkowe wynosi 467 stopni (pełne zamknięcie). Pozycję silnika można również ustawić za pomocą bloku set motor position.

Wartości położenia są bezwzględne. Oznacza to, że kierunek obrotu zależy od aktualnego położenia silnika.

Na przykład, jeśli silnik zaczyna od 0 stopni i obraca się do pozycji 720 stopni, wykona dwa obroty do przodu. Jeśli następnie obraca się do pozycji 360 stopni, wykona jeden obrót do tyłu, ponieważ 360 stopni jest mniejsze niż 720 stopni.

obracaj [ArmMotor v] do pozycji (90) [stopnie v] ▶

Parametry

Opis

silnik

Silnik wirujący: ArmMotor lub ClawMotor.

pozycja

Wartość położenia, do którego obróci się silnik. Stopnie są wyrażone w liczbach całkowitych. Obroty mogą być wyrażone w liczbach całkowitych lub dziesiętnych.

jednostka

Jednostka położenia: stopnie lub obroty.

i nie czekaj

Wybierz strzałkę (▶), aby rozwinąć blok i napisać i nie czekaj, dzięki czemu następny blok w stosie zostanie uruchomiony natychmiast.

Przykład

gdy uruchomiony
[Raise the Arm, then release the Pin.]
obracaj [ArmMotor v] do pozycji (800) [stopnie v] ▶
obracaj [ClawMotor v] [Otwarte v] przez (180) [stopnie v] ▶

zatrzymaj silnik#

Blok stosu stop motor zatrzymuje wybrany silnik.

zatrzymaj [ArmMotor v]

Parametry

Opis

silnik

Silnik do zatrzymania: ArmMotor lub ClawMotor.

Przykład

gdy uruchomiony
[Raise the Arm partway to hold the Pin.]
obracaj [ArmMotor v] [w górę v]
czekaj (1) sekund
zatrzymaj [ArmMotor v]

Ustawienia#

ustaw prędkość silnika#

Blok stosu ustaw prędkość silnika informuje silnik, jak szybko ma się obracać. Wyższy procent powoduje, że silnik obraca się szybciej, a niższy procent powoduje, że obraca się wolniej.

Każdy projekt rozpoczyna się od ustawienia silników tak, aby domyślnie kręciły się z prędkością 50%.

Uwaga: Wyższa prędkość sprawia, że ​​silnik obraca się szybciej, ale może być mniej precyzyjny. Niższa prędkość sprawia, że ​​silnik obraca się wolniej, ale może być bardziej precyzyjny.

ustaw prędkość [ArmMotor v] na [50] [% v]

Parametry

Opis

silnik

Silnik do ustawiania prędkości: ArmMotor lub ClawMotor.

prędkość

Prędkość, z jaką będzie się kręcił silnik. Procent to liczby całkowite od 0% do 100%.

jednostka

Jednostka prędkości: %.

Przykład

gdy uruchomiony
[Raise the Arm fast to release the Pin.]
ustaw prędkość [ArmMotor v] na [100] [% v]
obracaj [ArmMotor v] [w górę v] przez (800) [stopnie v] ▶
obracaj [ClawMotor v] [Otwarte v] przez (180) [stopnie v] ▶

ustaw limit czasu silnika#

Blok stosu set motor timeout ustawia, ile czasu silnik będzie próbował zakończyć ruch. Jeśli silnik nie zdoła zakończyć ruchu w tym czasie, przerwie próby i przejdzie do następnego bloku w stosie. Zapobiega to zablokowaniu silnika podczas ruchu.

ustaw limit czasu [ArmMotor v] na [1] sekund

Parametry

Opis

silnik

Silnik, dla którego należy ustawić limit czasu: ArmMotor lub ClawMotor.

czas

Liczba sekund, przez które silnik może próbować zakończyć ruch. Może to być liczba całkowita lub dziesiętna.

Przykład

gdy uruchomiony
[Score a Pin in a Neutral Goal.]
skręć [w lewo v] o (110) stopni ▶
ustaw limit czasu [ArmMotor v] na [1] sekund
obracaj [ArmMotor v] [w górę v] przez (1800) [stopnie v] ▶
jedź [do przodu v] przez (25) [cale v] ▶
obracaj [ClawMotor v] [Otwarte v] przez (180) [stopnie v] ▶

Pozycja#

pozycja silnika#

Pozycja silnika to odległość, o jaką się obrócił, mierzona w stopniach lub obrotach. Jeden obrót to 360 stopni. Blok raportujący położenie silnika raportuje aktualną pozycję silnika.

Na początku projektu położenie ArmMotor jest ustawione na 0 stopni. Wyjątkiem jest ClawMotor — rozpoczyna się od 467 stopni (pełne zamknięcie). Jeśli silnik wykona jeden pełny obrót do przodu, położenie wzrasta. Jeśli silnik obróci się w przeciwnym kierunku, położenie maleje.

(pozycja [ArmMotor v] w [stopnie v])

Parametry

Opis

silnik

Silnik do raportowania położenia: ArmMotor lub ClawMotor.

jednostka

Jednostka służąca do raportowania położenia silnika w: stopniach lub obrotach.

Przykład

gdy uruchomiony
[Raise the Arm, then release the Pin.]
dopóki <(pozycja [ArmMotor v] w [stopnie v]) < (800)>
obracaj [ArmMotor v] [w górę v]
czekaj (0.002) sekund
koniec
zatrzymaj [ArmMotor v]
obracaj [ClawMotor v] [Otwarte v] przez (180) [stopnie v] ▶

ustaw pozycję silnika#

Pozycja silnika to odległość, o jaką się obrócił, mierzona w stopniach lub obrotach. Jeden obrót to 360 stopni. Blok stosu ustaw pozycję silnika zmienia bieżącą pozycję silnika na nową wartość.

Na przykład, jeśli silnik obrócił się o 180 stopni, ustawienie pozycji na 0 stopni spowoduje zresetowanie tej pozycji ze 180 do 0 stopni. Następnie silnik może obracać się do pozycji opartych na tej nowej wartości.

ustaw pozycję [ArmMotor v] na (0) [stopnie v]

Parametry

Opis

silnik

Silnik do ustawiania pozycji: ArmMotor lub ClawMotor.

pozycja

Wartość pozycji do ustawienia dla silnika. Stopnie są wyrażone w liczbach całkowitych. Obroty mogą być wyrażone w liczbach całkowitych lub dziesiętnych.

jednostka

Jednostka położenia: stopnie lub obroty.

Przykład

gdy uruchomiony
[Reset encoder, raise Arm, place Pin.]
ustaw pozycję [ArmMotor v] na (0) [stopnie v]
obracaj [ArmMotor v] do pozycji (800) [stopnie v] ▶
obracaj [ClawMotor v] [Otwarte v] przez (180) [stopnie v] ▶

Wartości#

silnik jest gotowy#

Blok logiczny „silnik jest gotowy” informuje, czy silnik zakończył ruch. Można go użyć do sterowania czasem innych zachowań na podstawie ruchu silnika.

  • Prawda — Silnik przestał się poruszać.

  • Fałsz — Silnik nadal się porusza.

Ten blok współpracuje z następującymi blokami ruchu, które mają parametr i nie czekają: obróć silnik do i obróć silnik do pozycji.

<[ArmMotor v] zakończył?>

Parametry

Opis

silnik

Silnik informujący o zakończeniu ruchu: ArmMotor lub ClawMotor.

Przykład

gdy uruchomiony
[Raise the Arm while driving to the Goal.]
obracaj [ArmMotor v] do pozycji (800) [stopnie v] ◀ i nie czekaj
czekaj (0.1) sekund
dopóki <nie <[ArmMotor v] zakończył?>>
jedź [do przodu v]
czekaj (0.005) sekund
koniec
zatrzymaj jazdę

silnik się kręci#

Blok logiczny „Silnik się kręci” informuje, czy silnik się kręci. Można go użyć do sterowania czasem innych zachowań na podstawie ruchu silnika.

  • Prawda — Silnik się kręci.

  • Fałsz — Silnik się nie obraca.

Ten blok współpracuje z następującymi blokami ruchu, które mają parametr i nie czekają: obróć silnik do i obróć silnik do pozycji.

<[ArmMotor v] obraca się?>

Parametry

Opis

silnik

Silnik informujący, czy się obraca: ArmMotor lub ClawMotor.

Przykład

gdy uruchomiony
[Raise the Arm while driving to the Goal, then release the Pin.]
obracaj [ArmMotor v] do pozycji (800) [stopnie v] ◀ i nie czekaj
czekaj (0.1) sekund
dopóki <[ArmMotor v] obraca się?>
jedź [do przodu v] przez (20) [mm v] ▶
koniec
obracaj [ClawMotor v] [Otwarte v] przez (180) [stopnie v] ▶

prędkość silnika#

Blok reporterowy prędkości silnika raportuje, jak szybko obraca się silnik, w procentach od -100% do 100%.

(prędkość [ArmMotor v] w [% v] :: custom-motion)

Parametry

Opis

silnik

Silnik raportujący prędkość: ArmMotor lub ClawMotor.

jednostka

Jednostka służąca do raportowania prędkości silnika w: %.

Przykład

gdy uruchomiony
[Show Arm Motor velocity while raising.]
ustaw prędkość [ArmMotor v] na [100] [% v]
obracaj [ArmMotor v] do pozycji (800) [stopnie v] ◀ i nie czekaj
czekaj (0.2) sekund
wydrukuj (prędkość [ArmMotor v] w [% v] :: custom-motion) na ekranie ◀ i ustaw kursor na następny wiersz

Wizja AI#

Akcje#

pobierz dane obiektu#

Blok pobierz dane obiektu filtruje dane z ramki czujnika AI Vision do pojedynczego podpisu — zapisanego opisu czegoś, co czujnik może rozpoznać, na przykład elementu gry na boisku.

Zbiór danych przechowuje obiekty uporządkowane od największego do najmniejszego według szerokości, zaczynając od indeksu 0. Dostęp do właściwości każdego obiektu można uzyskać za pomocą bloku właściwość obiektu AI Vision. Jeśli nie zostaną wykryte żadne pasujące obiekty, zwracany jest pusty zbiór danych.

Blok stosu danych obiektu Get.#
pobierz dane [Klasyfikacje AI v] z [AIVision v]

Parametr

Opis

podpis

Filtruje zbiór danych, aby zawierał tylko dane o podanym podpisie. Dostępne podpisy to:

  • Klasyfikacje AI – Wykrywa elementy gry RedBluePin, BlueYellowPin, RedYellowPin, YellowPin i Cup.
  • AprilTags – Wykrywa identyfikatory AprilTag znalezione na boisku.

Przykład

gdy uruchomiony
[Raise the Arm, drive to the Goal, release the Pin.]
obracaj [ArmMotor v] [w górę v] przez (300) [stopnie v] ▶
jedź [do przodu v] przez (10) [cale v] ▶
obracaj [ClawMotor v] [Otwarte v] przez (180) [stopnie v] ▶
skręć [w lewo v] o (70) stopni ▶
[Turn to face the Pin.]
ustaw prędkość obrotu na (30) [% v]
zawsze
pobierz dane [Klasyfikacje AI v] z [AIVision v]
jeśli <obiekt [AIVision v] istnieje?> to
if <(obiekt [AIVision v] [centerX v]) < (140)> then
skręć [w lewo v]
else if <([AIVision v] object [centerX v]) > (180)> then
skręć [w prawo v]
w przeciwnym razie
zatrzymaj jazdę
przerwij
koniec
koniec
koniec

Ustawienia#

ustaw element obiektu#

Blok set object item ustawia, który element zestawu danych ma zostać użyty.

Blok stosu obiektów Set AI Vision.#
ustaw element obiektu [AIVision v] na [1]

Parametry

Opis

przedmiot

Numer elementu w zestawie danych, który ma zostać użyty.

Przykład

gdy uruchomiony
[Raise the Arm, drive to the Goal, release the Pin.]
obracaj [ArmMotor v] [w górę v] przez (300) [stopnie v] ▶
jedź [do przodu v] przez (10) [cale v] ▶
obracaj [ClawMotor v] [Otwarte v] przez (180) [stopnie v] ▶
skręć [w lewo v] o (70) stopni ▶
pobierz dane [Klasyfikacje AI v] z [AIVision v]
[Check if any AI Classifications were detected in the last snapshot.]
jeśli <obiekt [AIVision v] istnieje?> to
[If any AI Classification is detected, check if any of them are a specific game element.]
jeśli <obiekt [AIVision v] to [RedBluePin v]?> to
wydrukuj [RedBluePin detected.] ▶
w przeciwnym razie
wydrukuj [No RedBluePin detected.] ▶
koniec
koniec

Wartości#

obiekt istnieje#

Blok object exists zwraca wartość logiczną wskazującą, czy w zestawie danych wykryto jakikolwiek obiekt.

  • Prawda – zbiór danych zawiera wykryty obiekt.

  • Fałsz – zbiór danych nie zawiera żadnych wykrytych obiektów.

Obiekt AI Vision jest blokiem boolowskim.#
<obiekt [AIVision v] istnieje?>

Parametry

Opis

Ten blok nie ma żadnych parametrów.

Przykład

gdy uruchomiony
[Raise the Arm, drive to the Goal, release the Pin.]
obracaj [ArmMotor v] [w górę v] przez (300) [stopnie v] ▶
jedź [do przodu v] przez (10) [cale v] ▶
obracaj [ClawMotor v] [Otwarte v] przez (180) [stopnie v] ▶
skręć [w lewo v] o (70) stopni ▶
pobierz dane [Klasyfikacje AI v] z [AIVision v]
[Check if any AI Classifications were detected in the last snapshot.]
jeśli <obiekt [AIVision v] istnieje?> to
wydrukuj (liczba obiektów [AIVision v]) ◀ i ustaw kursor na następny wiersz
koniec

obiekt jest#

Blok object is zwraca wartość logiczną wskazującą, czy wykryty obiekt pasuje do określonej klasyfikacji.

  • Prawda – Element w zestawie danych jest konkretnym obiektem.

  • Fałsz – element w zestawie danych nie jest konkretnym obiektem.

Obiekt AI Vision jest blokiem boolowskim.#
<obiekt [AIVision v] to [RedBluePin v]?>

Parametr

Opis

obiekt

Z którym obiektem porównać przedmiot:

  • RedBluePin
  • BlueYellowPin
  • RedYellowPin
  • YellowPin
  • Cup

Przykład

gdy uruchomiony
[Raise the Arm, drive to the Goal, release the Pin.]
obracaj [ArmMotor v] [w górę v] przez (300) [stopnie v] ▶
jedź [do przodu v] przez (10) [cale v] ▶
obracaj [ClawMotor v] [Otwarte v] przez (180) [stopnie v] ▶
skręć [w lewo v] o (70) stopni ▶
pobierz dane [Klasyfikacje AI v] z [AIVision v]
jeśli <obiekt [AIVision v] istnieje?> to
jeśli <obiekt [AIVision v] to [RedBluePin v]?> to
wydrukuj [RedBluePin detected.] ▶
w przeciwnym razie
wydrukuj [No RedBluePin detected.] ▶
koniec
koniec

obiekt jest AprilTag#

Blok object is AprilTag zwraca wartość logiczną wskazującą, czy wykryty obiekt jest obiektem AprilTag pasującym do określonego identyfikatora.

  • Prawda – wykryty obiekt to AprilTag o podanym identyfikatorze.

  • Fałsz – wykryty obiekt nie jest obiektem AprilTag o podanym identyfikatorze.

Obiektem jest blok boolowski AprilTag.#
<obiekt [AIVision v] to AprilTag [0]?>

Parametr

Opis

Identyfikator AprilTag

Numer ID do porównania z wykrytym AprilTag.

Przykład

gdy uruchomiony
[Report if AprilTag 3 is detected.]
pobierz dane [AprilTags v] z [AIVision v]
jeśli <obiekt [AIVision v] istnieje?> to
jeśli <obiekt [AIVision v] to AprilTag [3]?> to
wydrukuj [That is 3!] ▶
w przeciwnym razie
wydrukuj [That isn't 3!] ▶
koniec
koniec

liczba obiektów#

Blok liczba obiektów zwraca liczbę wykrytych obiektów w zestawie danych jako liczbę całkowitą.

Blok stosu obiektów Set AI Vision.#
(liczba obiektów [AIVision])

Parametry

Opis

Ten blok nie ma żadnych parametrów.

Przykład

gdy uruchomiony
[Raise the Arm, drive to the Goal, release the Pin.]
obracaj [ArmMotor v] [w górę v] przez (300) [stopnie v] ▶
jedź [do przodu v] przez (10) [cale v] ▶
obracaj [ClawMotor v] [Otwarte v] przez (180) [stopnie v] ▶
skręć [w lewo v] o (70) stopni ▶
pobierz dane [Klasyfikacje AI v] z [AIVision v]
jeśli <obiekt [AIVision v] istnieje?> to
wydrukuj (liczba obiektów [AIVision v]) ◀ i ustaw kursor na następny wiersz
koniec

właściwość obiektu#

Każdy obiekt (pokazany poniżej) zawiera sześć właściwości, które są przechowywane po użyciu bloku get object data.

Blok raportujący właściwości obiektu AI Vision.#
(obiekt [AIVision v] [szerokość v])

Wszystkie wartości właściwości opisują położenie i rozmiar wykrytego obiektu w polu widzenia czujnika AI Vision w momencie użycia bloku pobierz dane obiektu. Wartości te są mierzone w pikselach, w oparciu o rozdzielczość czujnika 320 na 240 pikseli.

Parametr

Opis

nieruchomość

Którą właściwość wykrytego obiektu należy wykorzystać:

szerokość#

Właściwość szerokość raportuje szerokość wykrytego obiektu w pikselach jako liczbę całkowitą od 1 do 320.

Blok stosu właściwości obiektu AI Vision z parametrem ustawionym na szerokość.#
(obiekt [AIVision v] [szerokość v])

Przykład

gdy uruchomiony
[Raise the Arm, drive to the Goal, release the Pin.]
obracaj [ArmMotor v] [w górę v] przez (300) [stopnie v] ▶
jedź [do przodu v] przez (10) [cale v] ▶
obracaj [ClawMotor v] [Otwarte v] przez (180) [stopnie v] ▶
skręć [w lewo v] o (70) stopni ▶
[Approach the next Cup and Pin.]
ustaw prędkość jazdy na (30) [% v]
zawsze
pobierz dane [Klasyfikacje AI v] z [AIVision v]
jeśli <obiekt [AIVision v] istnieje?> to
if <([AIVision v] object [width v]) > (140)> then
zatrzymaj jazdę
przerwij
w przeciwnym razie
jedź [do przodu v]
koniec
koniec
koniec
wysokość#

Właściwość height raportuje wysokość wykrytego obiektu w pikselach jako liczbę całkowitą od 1 do 240.

Blok stosu właściwości obiektu AI Vision z parametrem ustawionym na wysokość.#
(obiekt [AIVision v] [wysokość v])

Przykład

gdy uruchomiony
[Raise the Arm, drive to the Goal, release the Pin.]
obracaj [ArmMotor v] [w górę v] przez (300) [stopnie v] ▶
jedź [do przodu v] przez (10) [cale v] ▶
obracaj [ClawMotor v] [Otwarte v] przez (180) [stopnie v] ▶
skręć [w lewo v] o (70) stopni ▶
[Approach the next Cup and Pin.]
ustaw prędkość jazdy na (30) [% v]
zawsze
pobierz dane [Klasyfikacje AI v] z [AIVision v]
jeśli <obiekt [AIVision v] istnieje?> to
if <([AIVision v] object [height v]) > (200)> then
zatrzymaj jazdę
przerwij
w przeciwnym razie
jedź [do przodu v]
koniec
koniec
koniec
środekX#

Właściwość centerX raportuje współrzędną x środka wykrytego obiektu w pikselach jako liczbę całkowitą od 0 do 320.

Blok stosu właściwości obiektu AI Vision z parametrem ustawionym na centerX.#
(obiekt [AIVision v] [centerX v])

Przykład

gdy uruchomiony
[Raise the Arm, drive to the Goal, release the Pin.]
obracaj [ArmMotor v] [w górę v] przez (300) [stopnie v] ▶
jedź [do przodu v] przez (10) [cale v] ▶
obracaj [ClawMotor v] [Otwarte v] przez (180) [stopnie v] ▶
skręć [w lewo v] o (70) stopni ▶
[Turn and approach the next Cup and Pin.]
ustaw prędkość obrotu na (30) [% v]
zawsze
pobierz dane [Klasyfikacje AI v] z [AIVision v]
jeśli <obiekt [AIVision v] istnieje?> to
if <(obiekt [AIVision v] [centerX v]) < (140)> then
skręć [w lewo v] o (5) stopni ▶
w przeciwnym razie
jedź [do przodu v] przez (25) [cale v] ▶
przerwij
koniec
koniec
koniec
środek Y#

Właściwość centerY raportuje współrzędną y środka wykrytego obiektu w pikselach jako liczbę całkowitą od 0 do 240.

Blok stosu właściwości obiektu AI Vision z parametrem ustawionym na centerY.#
(obiekt [AIVision v] [centerY v])

Przykład

gdy uruchomiony
[Raise the Arm, drive to the Goal, release the Pin.]
obracaj [ArmMotor v] [w górę v] przez (300) [stopnie v] ▶
jedź [do przodu v] przez (10) [cale v] ▶
obracaj [ClawMotor v] [Otwarte v] przez (180) [stopnie v] ▶
skręć [w lewo v] o (70) stopni ▶
[Approach the next Cup and Pin.]
ustaw prędkość jazdy na (30) [% v]
zawsze
pobierz dane [Klasyfikacje AI v] z [AIVision v]
jeśli <obiekt [AIVision v] istnieje?> to
if <([AIVision v] object [centerY v]) > (230)> then
zatrzymaj jazdę
przerwij
w przeciwnym razie
jedź [do przodu v]
koniec
koniec
koniec
pochodzenieX#

Właściwość originX raportuje współrzędną x lewego górnego rogu pola ograniczającego wykryty obiekt w pikselach jako liczbę całkowitą od 0 do 320.

Blok stosu właściwości obiektu AI Vision z parametrem ustawionym na originX.#
(obiekt [AIVision v] [originX v])

Przykład

gdy uruchomiony
[Raise the Arm, drive to the Goal, release the Pin.]
obracaj [ArmMotor v] [w górę v] przez (300) [stopnie v] ▶
jedź [do przodu v] przez (10) [cale v] ▶
obracaj [ClawMotor v] [Otwarte v] przez (180) [stopnie v] ▶
skręć [w lewo v] o (70) stopni ▶
[Turn and approach the next Cup and Pin.]
ustaw prędkość obrotu na (30) [% v]
zawsze
pobierz dane [Klasyfikacje AI v] z [AIVision v]
jeśli <obiekt [AIVision v] istnieje?> to
if <(obiekt [AIVision v] [originX v]) < (100)> then
skręć [w lewo v] o (5) stopni ▶
w przeciwnym razie
jedź [do przodu v] przez (25) [cale v] ▶
przerwij
koniec
koniec
koniec
pochodzenieY#

Właściwość originY raportuje współrzędną y lewego górnego rogu pola ograniczającego wykryty obiekt w pikselach jako liczbę całkowitą od 0 do 240.

Blok stosu właściwości obiektu AI Vision z parametrem ustawionym na originY.#
(obiekt [AIVision v] [originY v])

Przykład

gdy uruchomiony
[Raise the Arm, drive to the Goal, release the Pin.]
obracaj [ArmMotor v] [w górę v] przez (300) [stopnie v] ▶
jedź [do przodu v] przez (10) [cale v] ▶
obracaj [ClawMotor v] [Otwarte v] przez (180) [stopnie v] ▶
skręć [w lewo v] o (70) stopni ▶
[Approach the next Cup and Pin.]
ustaw prędkość jazdy na (30) [% v]
zawsze
pobierz dane [Klasyfikacje AI v] z [AIVision v]
jeśli <obiekt [AIVision v] istnieje?> to
if <([AIVision v] object [originY v]) > (140)> then
zatrzymaj jazdę
przerwij
w przeciwnym razie
jedź [do przodu v]
koniec
koniec
koniec

Wyczuwanie#

Dystans#

Odległość znaleziona dla obiektu#

Blok logiczny Odległość znalezionego obiektu informuje, czy czujnik odległości aktualnie wykrył obiekt w odległości mniejszej niż 2000 mm.

  • Prawda — Czujnik odległości wykrywa obiekt.

  • Fałsz — Czujnik odległości nie wykrył obiektu.

<[FrontDistance v] znalazł obiekt?>

Parametry

Opis

czujnik odległości

Czujnik odległości do użycia. Wybierz spośród czujników odległości dostępnych dla Flex.

Przykład

gdy uruchomiony :: hat events
[Turn until something is detected, then release the Pin.]
skręć [w prawo v]
czekaj dopóki <[FrontDistance v] znalazł obiekt?>
zatrzymaj jazdę
obracaj [ArmMotor v] [w górę v] przez (300) [stopnie v] ▶
jedź [do przodu v] przez (10) [cale v] ▶
obracaj [ClawMotor v] [Otwarte v] przez (180) [stopnie v] ▶

odległość obiektu#

Blok raportujący odległość obiektu raportuje odległość między czujnikiem odległości a najbliższym wykrytym obiektem.

(odległość [FrontDistance v] w [mm v])

Parametry

Opis

czujnik odległości

Czujnik odległości do użycia. Wybierz spośród czujników odległości dostępnych dla Flex.

jednostka

Jednostka odległości: mm lub cale.

Przykład

gdy uruchomiony :: hat events
[Drive until 200 mm from the Goal, then release the Pin.]
jedź [do przodu v]
czekaj dopóki <(odległość [FrontDistance v] w [mm v]) < (200)>
zatrzymaj jazdę
obracaj [ArmMotor v] [w górę v] przez (300) [stopnie v] ▶
jedź [do przodu v] przez (10) [cale v] ▶
obracaj [ClawMotor v] [Otwarte v] przez (180) [stopnie v] ▶

GPS#

Pozycja GPS#

Blok Pozycja GPS zwraca przesunięcie położenia punktu odniesienia obrotu robota od środka pola z czujnikiem GPS (Game Positioning System™).

(pozycja [GPS v] [X v] w [mm v])

Parametry

Opis

oś

Którą oś zgłosić:

  • X
  • Y

jednostki

Jednostka reprezentująca położenie: mm lub cale

Przykład

gdy uruchomiony :: hat events
[Raise the Arm, drive to the Goal, release the Pin.]
obracaj [ArmMotor v] [w górę v] przez (300) [stopnie v] ▶
jedź [do przodu v]
wait until <([GPS v] position [X v] in [mm v]) > (-1370)>
zatrzymaj jazdę
obracaj [ClawMotor v] [Otwarte v] przez (180) [stopnie v] ▶

Kierunek GPS#

Blok GPS heading zwraca kierunek, w którym aktualnie zwrócony jest robot, na podstawie odczytów czujnika GPS (Game Positioning System™) z kodu pola GPS VEX w zakresie od 0,00 do 359,99 stopnia.

(kurs [GPS v] w stopniach)

Parametry

Opis

Ten blok nie ma żadnych parametrów.

Przykład

gdy uruchomiony :: hat events
[Raise the Arm, drive to the Goal, release the Pin.]
obracaj [ArmMotor v] [w górę v] przez (300) [stopnie v] ▶
jedź [do przodu v] przez (10) [cale v] ▶
obracaj [ClawMotor v] [Otwarte v] przez (180) [stopnie v] ▶
[Turn left to face the Neutral Goal.]
ustaw prędkość obrotu na (30) [% v]
skręć [w lewo v]
czekaj dopóki <(kurs [GPS v] w stopniach) < (18)>
zatrzymaj jazdę