Bloki specyficzne dla robotów#
Wstęp#
Bohater Bot, Dex, ma dwa rodzaje silników: czujnik wizyjny AI, czujnik optyczny i czujnik systemu pozycjonowania gry (GPS).
Wszystkie standardowe bloki VEXcode VR są dostępne do użycia na placu zabaw V5 25-26 Push Back.
Poniżej znajduje się lista wszystkich dostępnych bloków specyficznych dla robotów:
Układ napędowy – poruszanie i obracanie robotem.
Akcje
drive — Przesuwa robota do przodu lub do tyłu w nieskończoność.
napęd — Przesuwa robota do przodu lub do tyłu na określoną odległość.
turn — Obraca robota w lewo lub prawo na zawsze.
turn for — Obraca robota w lewo lub prawo o określoną liczbę stopni.
obróć do kierunku — Obraca robota w kierunku określonego kierunku.
obróć do obrotu — Obraca robota o określoną wartość.
zatrzymaj jazdę — Zatrzymuje ruch robota.
Ustawienia
ustaw prędkość jazdy — Informuje robota, z jaką prędkością ma jechać.
ustaw prędkość skrętu — Informuje robota, jak szybko ma skręcić.
ustaw kierunek jazdy — Zmienia aktualny kierunek robota na nowy.
ustaw obrót napędu — Zmienia aktualny obrót robota na nowy obrót.
ustaw limit czasu napędu — Ustawia liczbę sekund, przez które robot będzie próbował zakończyć ruch.
Wartości
jazda zakończona — Raportuje, czy robot zakończył ruch.
napęd się porusza — Raportuje, czy robot się porusza.
kierunek jazdy — Raportuje aktualny kierunek robota w zakresie od 0 do 359,99 stopni.
obrót napędu — Raportuje aktualny obrót robota.
prędkość jazdy — Raportuje, jak szybko jedzie robot.
Ruch – poruszaj i śledź silniki robota.
Akcje
silnik obrotowy – Obraca silnik do przodu lub do tyłu w nieskończoność.
obróć silnik o – Obrót silnika o określoną odległość w stopniach lub obrotach.
obróć silnik do pozycji – Obrót silnika do określonej pozycji.
stop silnik – Zatrzymuje obracający się silnik.
Ustawienia
ustaw prędkość silnika – Informuje silnik, jak szybko ma się kręcić.
ustaw limit czasu silnika – Ustawia, jak długo silnik będzie próbował zakończyć ruch.
ustaw pozycję silnika – Zmienia aktualną pozycję silnika na nową wartość.
Wartości
silnik zakończony – Raportuje, czy silnik zakończył ruch.
silnik się kręci – Raportuje, czy silnik się kręci.
pozycja silnika – Raportuje aktualną pozycję silnika.
prędkość silnika – Raportuje, jak szybko obraca się silnik, w procentach od -100% do 100%.
Wizja AI – przechwytywanie i analiza obiektów za pomocą czujnika wizji AI.
Akcje
pobierz dane obiektu – Przechwytuje dane dla określonego podpisu, np. wykrytą klasyfikację sztucznej inteligencji.
Ustawienia
ustaw element obiektu – Wybiera konkretny obiekt z listy.
Wartości
obiekt istnieje – Zwraca informację, czy wykryto jakąkolwiek klasyfikację.
object is – Zwraca wartość, jeśli wykryto klasyfikację.
liczba obiektów – Zwraca liczbę wykrytych obiektów.
właściwość obiektu – Zwraca szczegóły, takie jak:
Czuwanie – wykorzystanie różnych czujników robota.
Optyczny
Optyczne wykrycie obiektu – Raportuje, czy czujnik wykrywa obiekt w zasięgu.
Optyczne wykrywanie koloru – Raportuje, czy czujnik optyczny wykrył określony kolor.
Jasność optyczna – Raportuje jasność wykrytą przez czujnik optyczny.
Odcień optyczny – Raportuje odcień wykryty przez czujnik optyczny.
gdy optyczny – Uruchamia dołączony stos bloków, gdy czujnik optyczny wykryje lub zgubi obiekt.
GPS
Pozycja GPS – Zwraca pozycję X lub Y z czujnika GPS.
Kierunek GPS – Zwraca kierunek, w którym aktualnie skierowany jest robot.
Przykłady na tej stronie wykorzystują domyślną pozycję startową placu zabaw.
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
[Drive forward, then stop.]
jedź [do przodu v]
czekaj (2) sekund
zatrzymaj jazdę
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
[Drive forward.]
jedź [do przodu v] przez (500) [mm 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
[Turn right, then stop.]
skręć [w prawo v]
czekaj (2) sekund
zatrzymaj jazdę
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
[Turn left, then turn around to the right.]
skręć [w lewo v] o (90) stopni ▶
skręć [w prawo v] o (180) stopni ▶
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
[Turn to face the cardinal directions.]
skręć do kursu (90) stopni ▶
czekaj (2) sekund
skręć do kursu (180) stopni ▶
czekaj (2) sekund
skręć do kursu (270) stopni ▶
czekaj (2) sekund
skręć do kursu (0) stopni ▶
czekaj (2) sekund
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
[Turn left, then spin in a circle clockwise and face right.]
skręć do obrotu (-90) stopni ▶
czekaj (2) sekund
skręć do obrotu (450) stopni ▶
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
[Drive forward, then stop.]
jedź [do przodu v]
czekaj [4] sekund
zatrzymaj jazdę
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
[Drive forward at the default velocity.]
jedź [do przodu v] przez (100) [mm v] ▶
czekaj (1) sekund
[Move slower.]
ustaw prędkość jazdy na (20) [% v]
jedź [do przodu v] przez (100) [mm v] ▶
czekaj (1) sekund
[Move faster.]
ustaw prędkość jazdy na (100) [% v]
jedź [do przodu v] przez (100) [mm v] ▶
czekaj (1) sekund
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 at default velocity.]
skręć [w prawo v] o (100) stopni ▶
czekaj (1) sekund
[Turn slower.]
ustaw prędkość obrotu na (20)%
skręć [w prawo v] o (100) stopni ▶
czekaj (1) sekund
[Turn faster.]
ustaw prędkość obrotu na (100)%
skręć [w prawo v] o (100) stopni ▶
czekaj (1) sekund
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
[Turn to the left.]
ustaw kurs jazdy na (90) 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
[Spin counterclockwise two times.]
ustaw obrót jazdy na (720) 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
[Drive forward for 1 second, then turn.]
ustaw limit czasu jazdy na (1) sekund
jedź [do przodu v] przez (25) [cale v] ▶
skręć [w prawo v] o (90) 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
[Start spinning when the drive is complete.]
jedź [do przodu v] przez (200) [mm v] ◀ i nie czekaj
czekaj dopóki <jazda zakończona?>
skręć [w prawo v] o (360) stopni ▶
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
[Print that the robot is moving while it is still driving.]
jedź [do przodu v] przez (200) [mm v] ◀ i nie czekaj
dopóki <jazda w toku?>
wydrukuj [Still Moving...] ▶
czekaj (0.1) sekund
wyczyść ekran
koniec
wydrukuj [Done!] ▶
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
[Display the heading after turning.]
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
[Display the rotation after turning.]
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
[Display the velocity after driving.]
jedź [do przodu v] przez (200) [mm v] ▶
wydrukuj (prędkość jazdy w [% v]) na ekranie ◀ i ustaw kursor na następny wiersz
Ruch#
Dex używa silnika wlotowego do wciągania bloków do robota. Silnik przenośnika przesuwa bloki z wlotu na górę robota, aby można je było wepchnąć do celu.
Każdy silnik ma własne opcje kierunku. Nazwy kierunków opisują, jak silnik porusza się na Dex.
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 [ConveyorMotor v] [w górę v]
Parametry |
Opis |
|---|---|
silnik |
Silnik wirujący: ConveyorMotor lub IntakeMotor. |
kierunek |
Kierunek obrotu silnika:
|
Przykład
gdy uruchomiony
[Pick up a second Block.]
obracaj [ConveyorMotor v] [w górę v] przez [200] [stopnie v] ▶
obracaj [IntakeMotor v] [wlot v]
jedź [do przodu v] przez [350] [mm 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 [ConveyorMotor v] [w górę v] przez (90) [stopnie v] ▶
Parametry |
Opis |
|---|---|
silnik |
Silnik wirujący: ConveyorMotor lub IntakeMotor. |
kierunek |
Kierunek obrotu silnika:
|
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
[Pick up a second Block.]
obracaj [ConveyorMotor v] [w górę v] przez [200] [stopnie v] ▶
obracaj [IntakeMotor v] [wlot v]
jedź [do przodu v] przez [350] [mm v] ▶
obróć silnik do pozycji#
Blok stosu obróć silnik do pozycji obraca silnik do określonej pozycji.
Pozycja silnika to odległość, o jaką się obrócił, mierzona w stopniach lub obrotach. Jeden obrót to 360 stopni. Na początku projektu położenie silnika jest ustawione na 0 stopni. Położenie 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 [ConveyorMotor v] do pozycji (90) [stopnie v] ▶
Parametry |
Opis |
|---|---|
silnik |
Silnik wirujący: ConveyorMotor lub IntakeMotor. |
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
[Pick up a second Block.]
obracaj [ConveyorMotor v] do pozycji [200] [stopnie v] ▶
obracaj [IntakeMotor v] [wlot v]
jedź [do przodu v] przez [350] [mm v] ▶
zatrzymaj silnik#
Blok stosu stop motor zatrzymuje wybrany silnik.
zatrzymaj [ConveyorMotor v]
Parametry |
Opis |
|---|---|
silnik |
Silnik do zatrzymania: ConveyorMotor lub IntakeMotor. |
Przykład
gdy uruchomiony
[Pick up a second Block.]
obracaj [ConveyorMotor v] [w górę v] przez [200] [stopnie v] ▶
obracaj [IntakeMotor v] [wlot v]
jedź [do przodu v] przez [350] [mm v] ▶
zatrzymaj [IntakeMotor 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ść [ConveyorMotor v] na [50] [% v]
Parametry |
Opis |
|---|---|
silnik |
Silnik do ustawiania prędkości: ConveyorMotor lub IntakeMotor. |
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
[Pick up a second Block.]
ustaw prędkość [ConveyorMotor v] na [100] [% v]
obracaj [ConveyorMotor v] [w górę v] przez [200] [stopnie v] ▶
obracaj [IntakeMotor v] [wlot v]
jedź [do przodu v] przez [400] [mm 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 [ConveyorMotor v] na [1] sekund
Parametry |
Opis |
|---|---|
silnik |
Silnik, dla którego ma zostać ustawiony limit czasu: ConveyorMotor lub IntakeMotor. |
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
[Pick up a second Block.]
ustaw limit czasu [ConveyorMotor v] na [0.5] sekund
obracaj [ConveyorMotor v] do pozycji [1000] [stopnie v] ▶
obracaj [IntakeMotor v] [wlot v]
jedź [do przodu v] przez [400] [mm 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 silnika jest ustawione na 0 stopni. Jeśli silnik wykona jeden pełny obrót do przodu, położenie będzie wynosić 360 stopni, czyli 1 obrót. Jeśli silnik obróci się w przeciwnym kierunku, położenie będzie ujemne.
(pozycja [ConveyorMotor v] w [stopnie v])
Parametry |
Opis |
|---|---|
silnik |
Silnik służący do raportowania położenia: ConveyorMotor lub IntakeMotor. |
jednostka |
Jednostka służąca do raportowania położenia silnika w: stopniach lub obrotach. |
Przykład
gdy uruchomiony
[Pick up a second Block.]
dopóki <(pozycja [ConveyorMotor v] w [stopnie v]) [math_less_than v] [200]>
obracaj [ConveyorMotor v] [w górę v]
koniec
zatrzymaj [ConveyorMotor v]
obracaj [IntakeMotor v] [wlot v]
jedź [do przodu v] przez [400] [mm 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ę [ConveyorMotor v] na (0) [stopnie v]
Parametry |
Opis |
|---|---|
silnik |
Silnik do ustawiania pozycji: ConveyorMotor lub IntakeMotor. |
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. |
Przykład
gdy uruchomiony
[Pick up a second Block.]
ustaw pozycję [ConveyorMotor v] na [-200] [stopnie v]
obracaj [ConveyorMotor v] do pozycji [0] [stopnie v] ▶
obracaj [IntakeMotor v] [wlot v]
jedź [do przodu v] przez [400] [mm 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.
<[ConveyorMotor v] zakończył?>
Parametry |
Opis |
|---|---|
silnik |
Silnik informujący o zakończeniu ruchu: ConveyorMotor lub IntakeMotor. |
Przykład
gdy uruchomiony
[Pick up a second Block.]
obracaj [ConveyorMotor v] do pozycji [300] [stopnie v] ◀ i nie czekaj
jedź [do przodu v]
obracaj [IntakeMotor v] [wlot v]
czekaj dopóki <[ConveyorMotor v] zakończył?>
zatrzymaj jazdę
zatrzymaj [IntakeMotor v]
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.
<[ConveyorMotor v] obraca się?>
Parametry |
Opis |
|---|---|
silnik |
Silnik informujący o tym, czy się obraca: ConveyorMotor lub IntakeMotor. |
Przykład
gdy uruchomiony
[Pick up a second Block.]
obracaj [ConveyorMotor v] do pozycji [300] [stopnie v] ◀ i nie czekaj
czekaj [0.1] sekund
dopóki <[ConveyorMotor v] obraca się?>
jedź [do przodu v] przez [200] [mm v] ▶
obracaj [IntakeMotor v] [wlot v]
prędkość silnika#
Blok reporterowy prędkości silnika raportuje, jak szybko obraca się silnik, w procentach od -100% do 100%.
(prędkość [ConveyorMotor v] w [% v] :: custom-motion)
Parametry |
Opis |
|---|---|
silnik |
Silnik do raportowania prędkości: ConveyorMotor lub IntakeMotor. |
jednostka |
Jednostka służąca do raportowania prędkości silnika w: %. |
Przykład
gdy uruchomiony
[Pick up a second Block.]
ustaw prędkość [ConveyorMotor v] na [100] [% v]
obracaj [ConveyorMotor v] do pozycji [300] [stopnie v] ◀ i nie czekaj
czekaj [0.2] sekund
wydrukuj (prędkość [ConveyorMotor v] w [% v] :: custom-motion) ▶
obracaj [IntakeMotor v] [wlot v]
jedź [do przodu v] przez [400] [mm v] ▶
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.
pobierz dane [Klasyfikacje AI v] z AI Vision
Parametr |
Opis |
|---|---|
podpis |
Filtruje zbiór danych, aby zawierał tylko dane o podanym podpisie. Dostępne podpisy to:
|
Przykład
gdy uruchomiony
[If an object is detected, pick it up.]
obracaj [ConveyorMotor v] [w górę v] przez [200] [stopnie v] ▶
zawsze
pobierz dane [Klasyfikacje AI v] z [AIVision v]
jeśli <obiekt [AIVision v] istnieje?> to
obracaj [IntakeMotor v] [wlot v]
jedź [do przodu v]
czekaj dopóki <[Bumper v] wciśnięty?>
zatrzymaj jazdę
przerwij
Ustawienia#
ustaw element obiektu#
Blok set object item ustawia, który element zestawu danych ma zostać użyty.
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
[Display what object is farthest away.]
zawsze
pobierz dane [Klasyfikacje AI v] z [AIVision v]
jeśli <obiekt [AIVision v] istnieje?> to
ustaw element obiektu [AIVision v] na (liczba obiektów [AIVision v])
wyczyść wszystkie wiersze
jeśli <obiekt [AIVision v] to [BlueBlock v]?> to
wydrukuj [Blue Block farthest away.] ▶
w przeciwnym razie
wydrukuj [Red Block farthest away.] ▶
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 [AIVision v] istnieje?>
Parametry |
Opis |
|---|---|
Ten blok nie ma żadnych parametrów. |
Przykład
gdy uruchomiony
[If an an object is detected, pick it up.]
obracaj [ConveyorMotor v] [w górę v] przez [200] [stopnie v] ▶
zawsze
pobierz dane [Klasyfikacje AI v] z [AIVision v]
jeśli <obiekt [AIVision v] istnieje?> to
obracaj [IntakeMotor v] [wlot v]
jedź [do przodu v]
czekaj dopóki <[Bumper v] wciśnięty?>
zatrzymaj jazdę
przerwij
obiekt jest#
Blok Obiekt AI Vision 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 [AIVision v] to [BlueBlock v]?>
Parametr |
Opis |
|---|---|
obiekt |
Z którym obiektem porównać element:
|
Przykład
gdy uruchomiony
[Display what object is farthest away.]
zawsze
pobierz dane [Klasyfikacje AI v] z [AIVision v]
jeśli <obiekt [AIVision v] istnieje?> to
ustaw element obiektu [AIVision v] na (liczba obiektów [AIVision v])
wyczyść wszystkie wiersze
jeśli <obiekt [AIVision v] to [BlueBlock v]?> to
wydrukuj [Blue Block farthest away.] ▶
w przeciwnym razie
wydrukuj [Red Block farthest away.] ▶
liczba obiektów#
Blok liczba obiektów zwraca liczbę wykrytych obiektów w zestawie danych jako liczbę całkowitą.
(liczba obiektów [AIVision])
Parametry |
Opis |
|---|---|
Ten blok nie ma żadnych parametrów. |
Przykład
gdy uruchomiony
[Display what object is farthest away.]
zawsze
pobierz dane [Klasyfikacje AI v] z [AIVision v]
jeśli <obiekt [AIVision v] istnieje?> to
ustaw element obiektu [AIVision v] na (liczba obiektów [AIVision v])
wyczyść wszystkie wiersze
jeśli <obiekt [AIVision v] to [BlueBlock v]?> to
wydrukuj [Blue Block farthest away.] ▶
w przeciwnym razie
wydrukuj [Red Block farthest away.] ▶
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.
(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.
(obiekt [AIVision v] [szerokość v])
Przykład
gdy uruchomiony
[If an an object is detected, approach and pick it up.]
obracaj [ConveyorMotor v] [w górę v] przez [200] [stopnie v] ▶
zawsze
pobierz dane [Klasyfikacje AI v] z [AIVision v]
jeśli <obiekt [AIVision v] istnieje?> to
jeśli <(obiekt [AIVision v] [szerokość v]) [math_greater_than v] [65]> to
zatrzymaj jazdę
przerwij
w przeciwnym razie
obracaj [IntakeMotor v] [wlot v]
jedź [do przodu v]
wysokość#
Właściwość height raportuje wysokość wykrytego obiektu w pikselach jako liczbę całkowitą od 1 do 240.
(obiekt [AIVision v] [wysokość v])
Przykład
gdy uruchomiony
[If an an object is detected, approach and pick it up.]
obracaj [ConveyorMotor v] [w górę v] przez [200] [stopnie v] ▶
zawsze
pobierz dane [Klasyfikacje AI v] z [AIVision v]
jeśli <obiekt [AIVision v] istnieje?> to
jeśli <(obiekt [AIVision v] [wysokość v]) [math_greater_than v] [55]> to
zatrzymaj jazdę
przerwij
w przeciwnym razie
obracaj [IntakeMotor v] [wlot v]
jedź [do przodu v]
środekX#
Właściwość centerX raportuje współrzędną x środka wykrytego obiektu w pikselach jako liczbę całkowitą od 0 do 320.
(obiekt [AIVision v] [centerX v])
Przykład
gdy uruchomiony
[Pick up a Block from the top left group.]
obracaj [ConveyorMotor v] [w górę v] przez [200] [stopnie v] ▶
skręć [w lewo v] o [80] stopni ▶
jedź [do przodu v] przez [100] [mm v] ▶
ustaw prędkość obrotu na [20] [% v]
skręć [w lewo v]
zawsze
pobierz dane [Klasyfikacje AI v] z [AIVision v]
jeśli <obiekt [AIVision v] istnieje?> to
jeśli <<[140] [math_less_than v] (obiekt [AIVision v] [centerX v])> i <(obiekt [AIVision v] [centerX v]) [math_less_than v] [180]>> to
obracaj [IntakeMotor v] [wlot v]
jedź [do przodu v]
czekaj dopóki <[Bumper v] wciśnięty?>
zatrzymaj jazdę
środek Y#
Właściwość centerY raportuje współrzędną y środka wykrytego obiektu w pikselach jako liczbę całkowitą od 0 do 240.
(obiekt [AIVision v] [centerY v])
Przykład
gdy uruchomiony
[If an an object is detected, approach and pick it up.]
obracaj [ConveyorMotor v] [w górę v] przez [200] [stopnie v] ▶
zawsze
pobierz dane [Klasyfikacje AI v] z [AIVision v]
jeśli <obiekt [AIVision v] istnieje?> to
jeśli <(obiekt [AIVision v] [centerY v]) [math_greater_than v] [140]> to
zatrzymaj jazdę
przerwij
w przeciwnym razie
obracaj [IntakeMotor v] [wlot v]
jedź [do przodu v]
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.
(obiekt [AIVision v] [originX v])
Przykład
gdy uruchomiony
[Pick up a Block from the top left group.]
obracaj [ConveyorMotor v] [w górę v] przez [200] [stopnie v] ▶
skręć [w lewo v] o [80] stopni ▶
jedź [do przodu v] przez [100] [mm v] ▶
ustaw prędkość obrotu na [20] [% v]
skręć [w lewo v]
zawsze
pobierz dane [Klasyfikacje AI v] z [AIVision v]
jeśli <obiekt [AIVision v] istnieje?> to
jeśli <<[100] [math_less_than v] (obiekt [AIVision v] [originX v])> i <(obiekt [AIVision v] [originX v]) [math_less_than v] [140]>> to
obracaj [IntakeMotor v] [wlot v]
jedź [do przodu v]
czekaj dopóki <[Bumper v] wciśnięty?>
zatrzymaj jazdę
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.
(obiekt [AIVision v] [originY v])
Przykład
gdy uruchomiony
[If an an object is detected, approach and pick it up.]
obracaj [ConveyorMotor v] [w górę v] przez [200] [stopnie v] ▶
zawsze
pobierz dane [Klasyfikacje AI v] z [AIVision v]
jeśli <obiekt [AIVision v] istnieje?> to
jeśli <[120] [math_less_than v] (obiekt [AIVision v] [originY v])> to
zatrzymaj jazdę
przerwij
w przeciwnym razie
obracaj [IntakeMotor v] [wlot v]
jedź [do przodu v]
koniec
koniec
Wyczuwanie#
Optyczny#
Obiekt został znaleziony metodą optyczną#
Blok logiczny Optyczne wykrycie obiektu informuje, czy czujnik optyczny wykrył obiekt w zasięgu.
Prawda — czujnik optyczny wykrywa obiekt.
Fałsz — Czujnik optyczny nie wykrył obiektu.
<[Optical v] znalazł obiekt?>
Parametry |
Opis |
|---|---|
Ten blok nie ma żadnych parametrów. |
Przykład
gdy uruchomiony
[Move the preloaded Block to the top of the Conveyor.]
obracaj [ConveyorMotor v] [w górę v]
czekaj dopóki <[Optical v] znalazł obiekt?>
zatrzymaj [ConveyorMotor v]
Optyka wykrywa kolor#
Blok logiczny Optyczne wykrywanie koloru informuje, czy czujnik optyczny wykrył określony kolor na podstawie wykrytej wartości odcienia.
Prawda – Czujnik wykrywa określony kolor.
Fałsz – Czujnik nie wykrył określonego koloru.
<[Optical v] wykrywa [czerwony v]?>
Parametry |
Opis |
|---|---|
kolor |
Jakiego koloru szukać:
|
Przykład
gdy uruchomiony
[Pick up and move a Blue Block to the top of the Conveyor.]
obracaj [ConveyorMotor v] [w górę v] przez [200] [stopnie v] ▶
obracaj [IntakeMotor v] [wlot v]
jedź [do przodu v] przez [360] [mm v] ▶
obracaj [ConveyorMotor v] [w górę v]
czekaj dopóki <[Optical v] wykrywa [niebieski v]?>
zatrzymaj [ConveyorMotor v]
Jasność optyczna#
Blok reporterski Jasność optyczna informuje, ile światła zostało odbite z powrotem do czujnika optycznego, w procentach od 0% do 100%.
(jasność [Optical v] w %)
Parametry |
Opis |
|---|---|
Ten blok nie ma żadnych parametrów. |
Przykład
gdy uruchomiony
[Move the preloaded Block to the top of the Conveyor.]
obracaj [ConveyorMotor v] [w górę v]
czekaj dopóki <[0] [math_less_than v] (jasność [Optical v] w %)>
zatrzymaj [ConveyorMotor v]
Odcień optyczny#
Blok reporterowy Odcień optyczny raportuje odcień wykryty przez czujnik optyczny jako liczbę od 0 do 359 stopni.
Odcień to sposób opisywania koloru za pomocą liczb znajdujących się na kole barw.

(odcień [Optical v] w stopniach)
Parametry |
Opis |
|---|---|
Ten blok nie ma żadnych parametrów. |
Przykład
gdy uruchomiony
[Pick up and move a Blue Block to the top of the Conveyor.]
obracaj [ConveyorMotor v] [w górę v] przez [200] [stopnie v] ▶
obracaj [IntakeMotor v] [wlot v]
jedź [do przodu v] przez [360] [mm v] ▶
obracaj [ConveyorMotor v] [w górę v]
czekaj dopóki <[240] [math_equal v] (odcień [Optical v] w stopniach)>
zatrzymaj [ConveyorMotor v]
kiedy optyczny#
Blok when Optical uruchamia dołączony stos bloków za każdym razem, gdy czujnik optyczny wykryje lub zgubi obiekt.
gdy [Optical v] [wykrywa v] obiekt
Parametry |
Opis |
|---|---|
państwo |
Kiedy zostanie uruchomiony dołączony stos bloków: detects jest uruchamiany, gdy zostanie wykryty niewykryty obiekt, podczas gdy loses jest uruchamiany, gdy wykryty obiekt nie jest już wykrywany. |
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ć:
|
jednostki |
Jednostka reprezentująca położenie: mm lub cale |
Przykład
gdy uruchomiony
[Pick up a second Block.]
obracaj [ConveyorMotor v] do pozycji [200] [stopnie v] ▶
obracaj [IntakeMotor v] [wlot v]
jedź [do przodu v]
czekaj dopóki <[-450] [math_greater_than v] (pozycja [GPS v] [Y v] w [mm v])>
zatrzymaj jazdę
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
[Score the preloaded Block into a Center Goal.]
skręć [w lewo v]
czekaj dopóki <[40] [math_greater_than v] (kurs [GPS v] w stopniach)>
jedź [do przodu v] przez [1000] [mm v] ▶
skręć [w prawo v]
czekaj dopóki <(kurs [GPS v] w stopniach) [math_greater_than v] [310]>
jedź [wstecz v] przez [200] [mm v] ▶
obracaj [ConveyorMotor v] [w górę v]