Python specyficzny dla robotów#

Wstęp#

Robot-bohater, Flex, zawiera silnik pazura, silnik ramienia, czujnik wizji AI, czujnik odległości i czujnik systemu pozycjonowania gry (GPS).

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

Poniżej znajduje się lista wszystkich dostępnych metod 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ść.

    • drive_for — 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.

    • turn_to_heading — Obraca robota w kierunku określonego kierunku od -359 do 359 stopni.

    • turn_to_rotation — Obraca robota o określoną wartość.

    • stop — Zatrzymuje ruch robota.

  • Mutatory

    • set_heading — Zmienia aktualny kierunek robota na nowy kierunek.

    • set_rotation — Zmienia aktualny obrót robota na nowy obrót.

    • set_timeout — Ustawia, ile czasu robot będzie próbował zakończyć ruch.

    • set_drive_velocity — Informuje robota, z jaką prędkością ma jechać.

    • set_turn_velocity — Informuje robota, jak szybko ma skręcić.

  • Getterzy

    • heading — Zwraca aktualny kierunek robota od 0 do 359,99 stopni.

    • rotation — Zwraca aktualny obrót robota.

    • is_done — Zwraca wartość logiczną informującą, czy robot zakończył ruch.

    • is_moving — Zwraca wartość logiczną informującą, czy robot się porusza.

    • velocity — Zwraca prędkość, z jaką porusza się robot.

Ruch – poruszaj i śledź silniki robota.

  • Akcje

    • spin — Obraca silnik do przodu lub do tyłu w nieskończoność.

    • spin_for — Obraca silnik na określoną odległość.

    • spin_to_position — Obraca silnik do określonej pozycji.

    • stop — Zatrzymuje silnik przed wirowaniem.

  • Mutatory

    • set_position — Zmienia aktualną pozycję silnika na nową wartość.

    • set_velocity — Informuje silnik, jak szybko ma się kręcić.

    • set_timeout — Ustawia, ile czasu silnik będzie próbował zakończyć ruch.

  • Getterzy

    • is_done — Zwraca wartość logiczną, czy silnik zakończył ruch.

    • is_spinning — Zwraca wartość logiczną, czy silnik się kręci.

    • position — Zwraca aktualną pozycję silnika.

    • velocity — Zwraca prędkość, z jaką obraca się silnik.

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

  • Getterzy

    • take_snapshot – Zwraca krotkę wykrytych obiektów dla określonego podpisu.

  • Właściwości

    • .width – Szerokość wykrytego obiektu w pikselach.

    • .height – Wysokość wykrytego obiektu w pikselach.

    • .centerX – Pozycja X środka obiektu w pikselach.

    • .centerY – Pozycja Y środka obiektu w pikselach.

    • .originX – Pozycja X lewego górnego rogu obiektu w pikselach.

    • .originY – Pozycja Y lewego górnego rogu obiektu w pikselach.

    • .id – Identyfikator klasyfikacji wykrytego obiektu.

Konsola – Drukuj do konsoli i monitoruj wartości.

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

  • Dystans

    • found_object – Zwraca informację, czy czujnik odległości wykrył obiekt w zasięgu.

    • object_distance – Zwraca odległość między czujnikiem odległości a najbliższym wykrytym obiektem.

  • GPS

    • x_position – Zwraca aktualną współrzędną x czujnika GPS na polu.

    • y_position – Zwraca aktualną współrzędną y czujnika GPS na polu.

    • heading – Zwraca kierunek, w którym aktualnie zwrócony jest robot, na podstawie czujnika GPS.

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ć#

Napęd 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.

Usage:
drivetrain.drive(direction)

Parametry

Opis

direction

Kierunek, w którym porusza się robot: FORWARD lub REVERSE.

def main():
    # Raise the Arm, drive to the Goal, release the Pin
    arm_motor.spin_for(FORWARD, 300, DEGREES)
    drivetrain.drive(FORWARD)
    wait(0.5, SECONDS)
    drivetrain.stop()
    claw_motor.spin_for(REVERSE, 180, DEGREES)

# VR threads — Do not delete
vr_thread(main)

drive_for#

drive_for przesuwa robota do przodu lub do tyłu o określoną odległość. Projekt będzie czekał, aż robot zakończy ruch, zanim uruchomi się kolejny wiersz kodu.

Usage:
drivetrain.drive_for(direction, distance, units, wait)

Parametry

Opis

direction

Kierunek, w którym porusza się robot: FORWARD lub REVERSE.

distance

Odległość pokonywana przez robota. Może to być liczba całkowita integer lub liczba dziesiętna (float).

units

Opcjonalnie. Jednostka odległości: INCHES (domyślnie) lub MM (milimetry).

wait

Opcjonalnie. wait=True (domyślnie) powoduje, że projekt czeka, aż robot zakończy ruch, zanim zostanie wykonany kolejny wiersz kodu. wait=False powoduje, że następny wiersz kodu zostanie wykonany natychmiast.

def main():
    # Raise the Arm, drive to the Goal, release the Pin
    arm_motor.spin_for(FORWARD, 300, DEGREES)
    drivetrain.drive_for(FORWARD, 10, INCHES)
    claw_motor.spin_for(REVERSE, 180, DEGREES)

# VR threads — Do not delete
vr_thread(main)

zakręt#

turn obraca robota w lewo lub w prawo w nieskończoność. Robot będzie się obracał, dopóki nie zostanie mu przydzielona inna czynność, taka jak jazda lub zatrzymanie.

Usage:
drivetrain.turn(direction)

Parametry

Opis

direction

Kierunek, w którym obraca się robot: LEFT lub RIGHT.

def main():
    # Score a Pin in a Neutral Goal
    drivetrain.turn(LEFT)
    wait(0.78, SECONDS)
    drivetrain.stop()
    arm_motor.spin_for(FORWARD, 800, DEGREES)
    drivetrain.drive_for(FORWARD, 25, INCHES)
    claw_motor.spin_for(REVERSE, 180, DEGREES)

# VR threads — Do not delete
vr_thread(main)

turn_for#

turn_for obraca robota w lewo lub w prawo o określoną liczbę stopni. Obrót jest względny do aktualnej pozycji robota. Projekt będzie czekał, aż robot zakończy obrót, zanim uruchomi się kolejny wiersz kodu.

Usage:
drivetrain.turn_for(direction, angle, units, wait)

Parametry

Opis

direction

Kierunek, w którym obraca się robot: LEFT lub RIGHT.

angle

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

units

Opcjonalnie. Jednostka kąta: DEGREES (domyślnie).

wait

Opcjonalnie. wait=True (domyślnie) powoduje, że projekt czeka, aż robot skończy się obracać, zanim zostanie wykonany kolejny wiersz kodu. wait=False powoduje, że następny wiersz kodu zostanie wykonany natychmiast.

def main():
    # Score a Pin in a Neutral Goal
    drivetrain.turn_for(LEFT, 110, DEGREES)
    arm_motor.spin_for(FORWARD, 800, DEGREES)
    drivetrain.drive_for(FORWARD, 25, INCHES)
    claw_motor.spin_for(REVERSE, 180, DEGREES)

# VR threads — Do not delete
vr_thread(main)

skręć_do_nagłówka#

Kurs to kierunek, w którym zwrócony jest robot, mierzony w stopniach. 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 kurs.

Początkowy kurs wynosi 0 stopni.

Usage:
drivetrain.turn_to_heading(heading, units, wait)

Parametry

Opis

heading

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

units

Opcjonalnie. Jednostka kąta: DEGREES (domyślnie).

wait

Opcjonalnie. wait=True (domyślnie) powoduje, że projekt czeka, aż robot skończy się obracać, zanim zostanie wykonany kolejny wiersz kodu. wait=False powoduje, że następny wiersz kodu zostanie wykonany natychmiast.

def main():
    # Score a Pin in a Neutral Goal
    drivetrain.turn_to_heading(-110, DEGREES)
    arm_motor.spin_for(FORWARD, 800, DEGREES)
    drivetrain.drive_for(FORWARD, 25, INCHES)
    claw_motor.spin_for(REVERSE, 180, DEGREES)

# VR threads — Do not delete
vr_thread(main)

obrót_do_obrotu#

turn_to_rotation obraca robota o określoną wartość.

Obrót to wartość obrotu robota, mierzona w stopniach. Na początku projektu wartość obrotu jest ustawiona na 0 stopni. Obrót w prawo zwiększa obrót, a w lewo zmniejsza.

Na przykład, jeśli robot rozpocznie obrót o 0 stopni i obróci się o 720 stopni, skręci w prawo dwa razy. Jeśli następnie obróci się o 360 stopni, skręci raz w lewo, ponieważ 360 stopni jest mniejsze niż 720.

Usage:
drivetrain.turn_to_rotation(rotation, units, wait)

Parametry

Opis

rotation

Wartość obrotu, w stopniach, o którą obróci się robot. Może to być integer lub liczba dziesiętna (float).

units

Opcjonalnie. Jednostka kąta: DEGREES (domyślnie).

wait

Opcjonalnie. wait=True (domyślnie) powoduje, że projekt czeka, aż robot skończy się obracać, zanim zostanie wykonany kolejny wiersz kodu. wait=False powoduje, że następny wiersz kodu zostanie wykonany natychmiast.

def main():
    # Score a Pin in a Neutral Goal
    drivetrain.turn_to_rotation(-110, DEGREES)
    arm_motor.spin_for(FORWARD, 800, DEGREES)
    drivetrain.drive_for(FORWARD, 25, INCHES)
    claw_motor.spin_for(REVERSE, 180, DEGREES)

# VR threads — Do not delete
vr_thread(main)

zatrzymywać się#

stop zatrzymuje ruch robota.

Usage:
drivetrain.stop()

Parametry

Opis

Ta metoda nie ma żadnych parametrów.

def main():
    # Score a Pin in a Neutral Goal
    drivetrain.turn(LEFT)
    wait(0.78, SECONDS)
    drivetrain.stop()
    arm_motor.spin_for(FORWARD, 800, DEGREES)
    drivetrain.drive_for(FORWARD, 25, INCHES)
    claw_motor.spin_for(REVERSE, 180, DEGREES)

# VR threads — Do not delete
vr_thread(main)

Mutatory#

ustaw_nagłówek#

Kierunek to kierunek, w którym zwrócony jest robot, mierzony w stopniach. set_heading zmienia bieżący 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.

Usage:
drivetrain.set_heading(heading, units)

Parametry

Opis

heading

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

units

Opcjonalnie. Jednostka kąta: DEGREES (domyślnie).

def main():
    # Make facing the Neutral Goal the new heading
    drivetrain.set_heading(110, DEGREES)
    drivetrain.turn_to_heading(0, DEGREES)

# VR threads — Do not delete
vr_thread(main)

ustaw_rotację#

Obrót to kąt, o jaki obrócił się robot, mierzony w stopniach. set_rotation zmienia bieżący obrót robota na nową wartość.

Usage:
drivetrain.set_rotation(rotation, units)

Parametry

Opis

rotation

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

units

Opcjonalnie. Jednostka kąta: DEGREES (domyślnie).

def main():
    # Make facing the Neutral Goal the new rotation
    drivetrain.set_rotation(110, DEGREES)
    drivetrain.turn_to_rotation(0, DEGREES)

# VR threads — Do not delete
vr_thread(main)

ustaw_limit_czasu#

set_timeout ustawia liczbę sekund, przez które robot będzie próbował zakończyć ruch. Jeśli robot nie zdoła zakończyć ruchu w tym czasie, przerwie próby i przejdzie do następnej linijki kodu. Zapobiega to zablokowaniu ruchu przez robota.

Usage:
drivetrain.set_timeout(time, units)

Parametry

Opis

time

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

units

Opcjonalnie. Jednostka czasu: SECONDS (domyślnie) lub MSEC.

def main():
    # Turn to face the Neutral Goal
    drivetrain.set_timeout(0.8, SECONDS)
    drivetrain.turn_for(LEFT, 180, DEGREES)

# VR threads — Do not delete
vr_thread(main)

ustaw_prędkość_napędu#

set_drive_velocity określa prędkość, z jaką robot 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.

Usage:
drivetrain.set_drive_velocity(velocity, units)

Parametry

Opis

velocity

Prędkość jazdy od 0% do 100%. Może to być liczba całkowita integer lub liczba dziesiętna (float).

units

Opcjonalnie. Jednostka prędkości: PERCENT (domyślnie).

def main():
    # Score a Pin in a Neutral Goal
    drivetrain.turn_for(LEFT, 110, DEGREES)
    arm_motor.spin_for(FORWARD, 800, DEGREES)
    drivetrain.set_drive_velocity(100, PERCENT)
    drivetrain.drive_for(FORWARD, 25, INCHES)
    claw_motor.spin_for(REVERSE, 180, DEGREES)

# VR threads — Do not delete
vr_thread(main)

ustaw_prędkość_obrotu#

set_turn_velocity określa, jak szybko robot 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.

Usage:
drivetrain.set_turn_velocity(velocity, units)

Parametry

Opis

velocity

Prędkość obrotu od 0% do 100%. Może to być liczba całkowita integer lub liczba dziesiętna (float).

units

Opcjonalnie. Jednostka prędkości: PERCENT (domyślnie).

def main():
    # Turn to face the Neutral Goal faster
    drivetrain.set_turn_velocity(100, PERCENT)
    drivetrain.turn_for(LEFT, 110, DEGREES)

# VR threads — Do not delete
vr_thread(main)

Getters#

nagłówek#

Kurs to kierunek, w którym zwrócony jest robot, mierzony w stopniach. heading zwraca aktualny kurs robota z zakresu od 0 do 359,99 stopnia.

Początkowy kierunek robota wynosi 0 stopni.

Usage:
drivetrain.heading(units)

Parametry

Opis

units

Opcjonalnie. Jednostka nagłówka: DEGREES (domyślna).

def main():
    # Turn to the Goal, then show heading
    drivetrain.turn_for(LEFT, 110, DEGREES)
    brain.screen.print("Heading: ")
    brain.screen.print(drivetrain.heading(DEGREES))

# VR threads — Do not delete
vr_thread(main)

obrót#

Obrót to wartość obrotu robota, mierzona w stopniach. Na początku projektu wartość obrotu jest ustawiona na 0 stopni. rotation zwraca 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 obrotów w prawo spowoduje obrót o 720 stopni.

Usage:
drivetrain.rotation(units)

Parametry

Opis

units

Opcjonalnie. Jednostka obrotu: DEGREES (domyślnie).

def main():
    # Spin to find a Pin, then show rotation
    drivetrain.turn_for(RIGHT, 450, DEGREES)
    brain.screen.print("Rotation: ")
    brain.screen.print(drivetrain.rotation(DEGREES))

# VR threads — Do not delete
vr_thread(main)

jest_zrobione#

is_done zwraca wartość logiczną, czy robot zakończył ruch. Można jej użyć do kontrolowania czasu innych zachowań na podstawie ruchu robota.

  • True — Robot zakończył ruch.

  • False — Robot nadal się porusza.

Ta metoda działa razem z następującymi metodami Drivetrain, które mają parametr wait wait : drive_for, turn_for, turn_to_heading i turn_to_rotation.

Usage:
drivetrain.is_done()

Parametry

Opis

Ta metoda nie ma żadnych parametrów.

def main():
    # Score a Pin in a Neutral Goal
    drivetrain.turn_for(LEFT, 110, DEGREES)
    arm_motor.spin_for(FORWARD, 800, DEGREES)
    drivetrain.drive_for(FORWARD, 25, INCHES, wait=False)
    wait(0.5, SECONDS)
    while not drivetrain.is_done():
        wait(5, MSEC)
    claw_motor.spin_for(REVERSE, 180, DEGREES)

# VR threads — Do not delete
vr_thread(main)

jest_poruszający się#

is_moving zwraca wartość logiczną, czy robot się porusza. Można jej użyć do kontrolowania czasu innych zachowań na podstawie ruchu robota.

  • True — Robot się porusza.

  • False — Robot się nie porusza.

Usage:
drivetrain.is_moving()

Parametry

Opis

Ta metoda nie ma żadnych parametrów.

def main():
    # Raise the Arm once stopped near the Goal
    drivetrain.turn_for(LEFT, 110, DEGREES)
    drivetrain.drive_for(FORWARD, 25, INCHES, wait=False)
    wait (0.5, SEC)
    while drivetrain.is_moving():
        wait(5, MSEC)
    arm_motor.spin_for(FORWARD, 800, DEGREES)

# VR threads — Do not delete
vr_thread(main)

prędkość#

velocity zwraca prędkość, z jaką porusza się robot, w procentach od -100% do 100%.

Usage:
drivetrain.velocity(units)

Parametry

Opis

units

Opcjonalnie. Jednostka prędkości: PERCENT (domyślnie).

def main():
    # Show speed while driving to the Goal
    drivetrain.drive_for(FORWARD, 150, MM)
    brain.screen.print("Velocity: ")
    brain.screen.print(drivetrain.velocity(PERCENT))

# VR threads — Do not delete
vr_thread(main)

Ruch#

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

Każdy silnik ma swój własny kierunek. Opisy kierunków wyjaśniają, jak każdy kierunek porusza silnikiem w trybie Flex.

Akcje#

kręcić się#

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

Zastosowanie:
Z tą metodą można używać jednego z dwóch dostępnych obiektów silnikowych, jak pokazano poniżej:

silnik

Rozkaz

arm_motor

arm_motor.spin(direction) — Silnik ramienia

claw_motor

claw_motor.spin(direction) — Silnik pazura

Parametry

Opis

direction

Kierunek obrotu silnika:

  • FORWARD — Przesuwa silnik ramienia w górę lub zamyka silnik pazura.
  • REVERSE — Przesuwa silnik ramienia w dół lub otwiera silnik pazura.

def main():
    # Raise the Arm before driving toward a Pin
    arm_motor.spin(FORWARD)
    wait(1, SECONDS)
    arm_motor.stop()

# VR threads — Do not delete
vr_thread(main)

spin_for#

spin_for obraca silnik na określoną odległość. Obrót jest względny do aktualnej pozycji silnika. Projekt będzie czekał, aż silnik zakończy obrót, zanim uruchomi się kolejny wiersz kodu.

Zastosowanie:
Z tą metodą można używać jednego z dwóch dostępnych obiektów silnikowych, jak pokazano poniżej:

silnik

Rozkaz

arm_motor

arm_motor.spin_for(direction, distance, units, wait) — Silnik ramienia

claw_motor

claw_motor.spin_for(direction, distance, units, wait) — Silnik pazura

Parametry

Opis

direction

Kierunek obrotu silnika:

  • FORWARD — Przesuwa silnik ramienia w górę lub zamyka silnik pazura.
  • REVERSE — Przesuwa silnik ramienia w dół lub otwiera silnik pazura.

distance

Odległość, na jaką obraca się silnik. DEGREES używa liczb całkowitych. TURNS może używać liczb całkowitych lub dziesiętnych.

units

Opcjonalnie. Jednostka odległości: DEGREES (domyślna) lub TURNS.

wait

Opcjonalnie.

  • wait=True (domyślnie) — powoduje, że projekt czeka, aż silnik zakończy pracę, zanim zostanie wykonany kolejny wiersz kodu.
  • wait=False — powoduje, że kolejny wiersz kodu zostanie wykonany natychmiast.

def main():
    # Raise the Arm to carry the Pin to the Goal
    arm_motor.spin_for(FORWARD, 800, DEGREES)

# VR threads — Do not delete
vr_thread(main)

obrót_do_pozycji#

spin_to_position obraca silnik do określonej pozycji.

Pozycja silnika to odległość, na jaką się obrócił, mierzona w DEGREES lub TURNS. Jeden obrót to 360 stopni. Na początku projektu pozycja silnika ramienia jest ustawiona na 0 stopni. Wyjątkiem jest silnik pazura — rozpoczyna się od 467 stopni (pełne zamknięcie). Pozycję silnika można również ustawić za pomocą metody set_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.

Zastosowanie:
Z tą metodą można używać jednego z dwóch dostępnych obiektów silnikowych, jak pokazano poniżej:

silnik

Rozkaz

arm_motor

arm_motor.spin_to_position(angle, units, wait=True) — Silnik ramienia

claw_motor

claw_motor.spin_to_position(angle, units, wait=True) — Silnik pazura

Parametry

Opis

angle

Wartość pozycji, do której silnik będzie się obracał. DEGREES używa liczb całkowitych. TURNS może używać liczb całkowitych lub dziesiętnych.

units

Opcjonalnie. Jednostka pozycji: DEGREES (domyślnie) lub TURNS.

wait

Opcjonalnie.

  • wait=True (domyślnie) — powoduje, że projekt czeka, aż silnik zakończy pracę, zanim zostanie wykonany kolejny wiersz kodu.
  • wait=False — powoduje, że kolejny wiersz kodu zostanie wykonany natychmiast.

def main():
    # Raise the Arm, then release the Pin
    arm_motor.spin_to_position(800, DEGREES)
    claw_motor.spin_for(REVERSE, 180, DEGREES)

# VR threads — Do not delete
vr_thread(main)

zatrzymywać się#

stop zatrzymuje silnik i uniemożliwia jego obrót.

Zastosowanie:
Z tą metodą można używać jednego z dwóch dostępnych obiektów silnikowych, jak pokazano poniżej:

silnik

Rozkaz

arm_motor

arm_motor.stop() — Silnik ramienia

claw_motor

claw_motor.stop() — Silnik pazura

Parametry

Opis

Ta metoda nie ma żadnych parametrów.

def main():
    # Raise the Arm partway to hold the Pin
    arm_motor.spin(FORWARD)
    wait(1, SECONDS)
    arm_motor.stop()

# VR threads — Do not delete
vr_thread(main)

Mutatory#

ustaw_pozycję#

Pozycja silnika to odległość, o jaką się obrócił, mierzona w DEGREES lub TURNS. Jeden obrót jest równy 360 stopniom. set_position 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.

Zastosowanie:
Z tą metodą można używać jednego z dwóch dostępnych obiektów silnikowych, jak pokazano poniżej:

silnik

Rozkaz

arm_motor

arm_motor.set_position(position, units) — Silnik ramienia

claw_motor

claw_motor.set_position(position, units) — Silnik pazura

Parametry

Opis

position

Wartość pozycji do ustawienia dla silnika. DEGREES używa liczb całkowitych. TURNS może używać liczb całkowitych lub dziesiętnych.

units

Opcjonalnie. Jednostka pozycji: DEGREES (domyślnie) lub TURNS.

def main():
    # Reset encoder, raise Arm, place Pin
    arm_motor.set_position(0, DEGREES)
    arm_motor.spin_to_position(800, DEGREES)
    claw_motor.spin_for(REVERSE, 180, DEGREES)

# VR threads — Do not delete
vr_thread(main)

ustaw_prędkość#

set_velocity określa prędkość obrotową silnika. Wyższy procent powoduje, że silnik obraca się szybciej, a niższy – 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.

Zastosowanie:
Z tą metodą można używać jednego z dwóch dostępnych obiektów silnikowych, jak pokazano poniżej:

silnik

Rozkaz

arm_motor

arm_motor.set_velocity(velocity, units) — Silnik ramienia

claw_motor

claw_motor.set_velocity(velocity, units) — Silnik pazura

Parametry

Opis

velocity

Prędkość wirowania od 0% do 100%. Może to być liczba całkowita integer lub liczba dziesiętna (float).

units

Jednostka prędkości: PERCENT.

def main():
    # Raise the Arm fast to release the Pin
    arm_motor.set_velocity(100, PERCENT)
    arm_motor.spin_for(FORWARD, 800, DEGREES)
    claw_motor.spin_for(REVERSE, 180, DEGREES)

# VR threads — Do not delete
vr_thread(main)

ustaw_limit_czasu#

set_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 wiersza kodu. Zapobiega to zablokowaniu silnika podczas ruchu.

Zastosowanie:
Z tą metodą można używać jednego z dwóch dostępnych obiektów silnikowych, jak pokazano poniżej:

silnik

Rozkaz

arm_motor

arm_motor.set_timeout(value, units) — Silnik ramienia

claw_motor

claw_motor.set_timeout(value, units) — Silnik pazura

Parametry

Opis

value

Czas, przez jaki silnik może próbować zakończyć ruch. Może to być dodatnia liczba całkowita integer lub liczba dziesiętna (float).

units

Jednostka czasu: SECONDS lub MSEC (milisekundy).

def main():
    # Score a Pin in a Neutral Goal
    drivetrain.turn_for(LEFT, 110, DEGREES)
    arm_motor.set_timeout(1, SECONDS)
    arm_motor.spin_for(FORWARD, 1800, DEGREES)
    drivetrain.drive_for(FORWARD, 25, INCHES)
    claw_motor.spin_for(REVERSE, 180, DEGREES)

# VR threads — Do not delete
vr_thread(main)

Getters#

jest_zrobione#

is_done zwraca wartość logiczną, czy silnik zakończył ruch. Można jej użyć do sterowania czasem innych zachowań na podstawie ruchu silnika.

  • True — Silnik zakończył ruch.

  • False — Silnik nadal się porusza.

Ta metoda działa w połączeniu z następującymi metodami Motion, które mają parametr wait wait : spin_for i spin_to_position.

Zastosowanie:
Z tą metodą można używać jednego z dwóch dostępnych obiektów silnikowych, jak pokazano poniżej:

silnik

Rozkaz

arm_motor

arm_motor.is_done() — Silnik ramienia

claw_motor

claw_motor.is_done() — Silnik pazura

Parametry

Opis

Ta metoda nie ma żadnych parametrów.

def main():
    # Raise the Arm while driving to the Goal
    arm_motor.spin_to_position(800, DEGREES, wait=False)
    wait(0.1, SECONDS)
    while not arm_motor.is_done():
        drivetrain.drive(FORWARD)
        wait(5, MSEC)
    drivetrain.stop()

# VR threads — Do not delete
vr_thread(main)

kręci się#

is_spinning zwraca wartość logiczną, czy silnik się obraca. Można jej użyć do sterowania czasem innych zachowań na podstawie ruchu silnika.

  • True — Silnik się kręci.

  • False — Silnik się nie obraca.

Ta metoda działa w połączeniu z następującymi metodami Motion, które mają parametr wait wait : spin_for i spin_to_position.

Zastosowanie:
Z tą metodą można używać jednego z dwóch dostępnych obiektów silnikowych, jak pokazano poniżej:

silnik

Rozkaz

arm_motor

arm_motor.is_spinning() — Silnik ramienia

claw_motor

claw_motor.is_spinning() — Silnik pazura

Parametry

Opis

Ta metoda nie ma żadnych parametrów.

def main():
    # Raise the Arm while driving to the Goal, then release the Pin
    arm_motor.spin_to_position(800, DEGREES, wait=False)
    wait(0.1, SECONDS)
    while arm_motor.is_spinning():
        drivetrain.drive_for(FORWARD, 25, MM)
    claw_motor.spin_for(REVERSE, 180, DEGREES)

# VR threads — Do not delete
vr_thread(main)

pozycja#

Pozycja silnika to odległość, na jaką wykonał obrót, mierzona w DEGREES lub TURNS. Jeden obrót jest równy 360 stopniom. position zwraca aktualną pozycję silnika.

Na początku projektu pozycja silnika ramienia jest ustawiona na 0 stopni. Wyjątkiem jest silnik pazurowy – rozpoczyna się od 467 stopni (pełne zamknięcie). Jeśli silnik wykona jeden pełny obrót do przodu, pozycja wzrasta. Jeśli silnik obróci się w przeciwnym kierunku, pozycja maleje.

Zastosowanie:
Z tą metodą można używać jednego z dwóch dostępnych obiektów silnikowych, jak pokazano poniżej:

silnik

Rozkaz

arm_motor

arm_motor.position(units) — Silnik ramienia

claw_motor

claw_motor.position(units) — Silnik pazura

Parametry

Opis

units

Jednostka przywracająca położenie silnika w zakresie: DEGREES lub TURNS.

def main():
    # Raise the Arm, then release the Pin
    while arm_motor.position(DEGREES) < 800:
        arm_motor.spin(FORWARD)
        wait(2, MSEC)
    arm_motor.stop()
    claw_motor.spin_for(REVERSE, 180, DEGREES)

# VR threads — Do not delete
vr_thread(main)

prędkość#

velocity zwraca informację o tym, jak szybko obraca się silnik.

Wartość dodatnia oznacza, że ​​silnik obraca się do przodu. Wartość ujemna oznacza, że ​​silnik obraca się do tyłu.

Zastosowanie:
Z tą metodą można używać jednego z dwóch dostępnych obiektów silnikowych, jak pokazano poniżej:

silnik

Rozkaz

arm_motor

arm_motor.velocity(units) — Silnik ramienia

claw_motor

claw_motor.velocity(units) — Silnik pazura

Parametry

Opis

units

Jednostka prędkości do zwrotu: PERCENT.

def main():
    # Show Arm Motor velocity while raising
    arm_motor.set_velocity(100, PERCENT)
    arm_motor.spin_to_position(800, DEGREES, wait=False)
    wait(0.2, SECONDS)
    brain.screen.print(arm_motor.velocity(PERCENT))

# VR threads — Do not delete
vr_thread(main)

Wizja AI#

Getters#

zrób migawkę#

take_snapshot 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 — i zwraca krotkę.

Krotka 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 jest możliwy za pomocą jego indeksu. Jeśli nie zostaną wykryte żadne pasujące obiekty, zwracana jest pusta krotka.

Usage:
ai_vision.take_snapshot(signature)

Parametry

Opis

signature

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

  • AiVision.ALL_AIOBJS – Wykrywa wszystkie elementy gry.
  • GameElements.RED_BLUE_PIN – Wykrywa elementy gry RedBluePin.
  • GameElements.BLUE_YELLOW_PIN – Wykrywa elementy gry BlueYellowPin.
  • GameElements.RED_YELLOW_PIN – Wykrywa elementy gry RedYellowPin.
  • GameElements.YELLOW_PIN – Wykrywa elementy gry YellowPin.
  • GameElements.CUP – Wykrywa elementy gry Cup.

def main():
    # Raise the Arm, drive to the Goal, release the Pin
    arm_motor.spin_for(FORWARD, 300, DEGREES)
    drivetrain.drive_for(FORWARD, 10, INCHES)
    claw_motor.spin_for(REVERSE, 180, DEGREES)

    drivetrain.turn_for(LEFT, 70, DEGREES)

    # Turn to face the Pin
    drivetrain.set_turn_velocity(30, PERCENT)
    while True:
        ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
        if ai_objects:
            if ai_objects[0].centerX < 140:
                drivetrain.turn(LEFT)
            elif ai_objects[0].centerX > 180:
                drivetrain.turn(RIGHT)
            else:
                drivetrain.stop()
                break

# VR threads — Do not delete
vr_thread(main)

Właściwości#

Każdy obiekt przechowywany w krotce zawiera siedem właściwości po użyciu take_snapshot.

Wszystkie wartości właściwości z wyjątkiem .id opisują położenie i rozmiar wykrytego obiektu w polu widzenia czujnika AI Vision w momencie użycia polecenia take_snapshot Wartości te są mierzone w pikselach, w oparciu o rozdzielczość czujnika wynoszącą 320 na 240 pikseli.

.szerokość#

.width zwraca szerokość wykrytego obiektu w pikselach, która jest liczbą całkowitą z przedziału od 1 do 320.

def main():
    # Raise the Arm, drive to the Goal, release the Pin
    arm_motor.spin_for(FORWARD, 300, DEGREES)
    drivetrain.drive_for(FORWARD, 10, INCHES)
    claw_motor.spin_for(REVERSE, 180, DEGREES)

    drivetrain.turn_for(LEFT, 70, DEGREES)

    # Approach the next Cup and Pin
    drivetrain.set_drive_velocity(30, PERCENT)
    while True:
        ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
        if ai_objects:
            if ai_objects[0].width > 140:
                drivetrain.stop()
                break
            else:
                drivetrain.drive(FORWARD)

# VR threads — Do not delete
vr_thread(main)

.wysokość#

.height zwraca wysokość wykrytego obiektu w pikselach, która jest liczbą całkowitą z przedziału od 1 do 240.

def main():
    # Raise the Arm, drive to the Goal, release the Pin
    arm_motor.spin_for(FORWARD, 300, DEGREES)
    drivetrain.drive_for(FORWARD, 10, INCHES)
    claw_motor.spin_for(REVERSE, 180, DEGREES)

    drivetrain.turn_for(LEFT, 70, DEGREES)

    # Approach the next Cup and Pin
    drivetrain.set_drive_velocity(30, PERCENT)
    while True:
        ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
        if ai_objects:
            if ai_objects[0].height > 200:
                drivetrain.stop()
                break
            else:
                drivetrain.drive(FORWARD)

# VR threads — Do not delete
vr_thread(main)

.centerX#

.centerX zwraca współrzędną x środka wykrytego obiektu w pikselach, która jest liczbą całkowitą z przedziału od 0 do 320.

def main():
    # Raise the Arm, drive to the Goal, release the Pin
    arm_motor.spin_for(FORWARD, 300, DEGREES)
    drivetrain.drive_for(FORWARD, 10, INCHES)
    claw_motor.spin_for(REVERSE, 180, DEGREES)

    drivetrain.turn_for(LEFT, 70, DEGREES)

    # Turn and approach the next Cup and Pin
    drivetrain.set_turn_velocity(30, PERCENT)
    while True:
        ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
        if ai_objects:
            if ai_objects[0].centerX < 140:
                drivetrain.turn_for(LEFT, 5, DEGREES)
            else: 
                drivetrain.drive_for(FORWARD, 25, INCHES)
                break

# VR threads — Do not delete
vr_thread(main)

.centerY#

.centerY zwraca współrzędną y środka wykrytego obiektu w pikselach, która jest liczbą całkowitą z przedziału od 0 do 240.

def main():
    # Raise the Arm, drive to the Goal, release the Pin
    arm_motor.spin_for(FORWARD, 300, DEGREES)
    drivetrain.drive_for(FORWARD, 10, INCHES)
    claw_motor.spin_for(REVERSE, 180, DEGREES)

    drivetrain.turn_for(LEFT, 70, DEGREES)

    # Approach the next Cup and Pin
    drivetrain.set_drive_velocity(30, PERCENT)
    while True:
        ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
        if ai_objects:
            if ai_objects[0].centerY > 230:
                drivetrain.stop()
                break
            else:
                drivetrain.drive(FORWARD)

# VR threads — Do not delete
vr_thread(main)

.originX#

.originX zwraca współrzędną x lewego górnego rogu ograniczającego pole wykrytego obiektu w pikselach. Jest to liczba całkowita z przedziału od 0 do 320.

def main():
    # Raise the Arm, drive to the Goal, release the Pin
    arm_motor.spin_for(FORWARD, 300, DEGREES)
    drivetrain.drive_for(FORWARD, 10, INCHES)
    claw_motor.spin_for(REVERSE, 180, DEGREES)

    drivetrain.turn_for(LEFT, 70, DEGREES)

    # Turn and approach the next Cup and Pin
    drivetrain.set_turn_velocity(30, PERCENT)
    while True:
        ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
        if ai_objects:
            if ai_objects[0].originX < 100:
                drivetrain.turn_for(LEFT, 5, DEGREES)
            else:
                drivetrain.drive_for(FORWARD, 25, INCHES)
                break

# VR threads — Do not delete
vr_thread(main)

.originY#

.originY zwraca współrzędną y lewego górnego rogu ograniczającego pola wykrytego obiektu w pikselach. Jest to liczba całkowita z przedziału od 0 do 240.

def main():
    # Raise the Arm, drive to the Goal, release the Pin
    arm_motor.spin_for(FORWARD, 300, DEGREES)
    drivetrain.drive_for(FORWARD, 10, INCHES)
    claw_motor.spin_for(REVERSE, 180, DEGREES)

    drivetrain.turn_for(LEFT, 70, DEGREES)

    # Approach the next Cup and Pin
    drivetrain.set_drive_velocity(30, PERCENT)
    while True:
        ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
        if ai_objects:
            if ai_objects[0].originY > 140:
                drivetrain.stop()
                break
            else:
                drivetrain.drive(FORWARD)

# VR threads — Do not delete
vr_thread(main)

.id#

.id zwraca identyfikator wykrytej klasyfikacji AI jako liczbę całkowitą.

Klasyfikacja AI

id

Podpis

RedBluePin

0

GameElements.RED_BLUE_PIN

Niebiesko-żółta szpilka

1

GameElements.BLUE_YELLOW_PIN

RedYellowPin

2

GameElements.RED_YELLOW_PIN

YellowPin

3

GameElements.YELLOW_PIN

Filiżanka

4

GameElements.CUP

def main():
    # Raise the Arm, drive to the Goal, release the Pin
    arm_motor.spin_for(FORWARD, 300, DEGREES)
    drivetrain.drive_for(FORWARD, 10, INCHES)
    claw_motor.spin_for(REVERSE, 180, DEGREES)

    drivetrain.turn_for(LEFT, 70, DEGREES)

    # Display the ID of the next closest object
    while True:
        ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
        if ai_objects:
            brain.screen.print(ai_objects[0].id)
            break

# VR threads — Do not delete
vr_thread(main)

Konsola#

Konsola wyświetla tekst, liczby i wartości zmiennych podczas działania projektu. Metody konsoli mogą również przenosić kursor do nowego wiersza, czyścić konsolę oraz dodawać zmienne lub wartości czujników do karty Monitor.

Wydrukować#

mózg.ekran.druk#

brain.screen.print wyświetla tekst, liczby lub wartości zmiennych w konsoli, używając bieżącej pozycji kursora.

Użyj brain.screen.next_row, jeśli chcesz, aby następna wydrukowana wartość zaczynała się w nowym wierszu.

Usage:
brain.screen.print(value)

Parametry

Opis

value

Tekst, liczba lub wartość zmiennej do wyświetlenia w konsoli.

def main():
    # Display a message in the Console
    brain.screen.print("Hello, robot!")

# VR threads — Do not delete
vr_thread(main)

brain.screen.next_row#

brain.screen.next_row przenosi kursor do kolumny 1 w następnym wierszu w konsoli. Kolejna wydrukowana wartość pojawi się w tym wierszu.

Usage:
brain.screen.next_row()

Parametry

Opis

Ta metoda nie ma żadnych parametrów.

def main():
    # Print on two rows
    brain.screen.print("Row 1")
    brain.screen.next_row()
    brain.screen.print("Row 2")

# VR threads — Do not delete
vr_thread(main)

brain.screen.clear_screen#

brain.screen.clear_screen czyści wszystkie wiersze z konsoli i przenosi kursor z powrotem do wiersza 1.

Usage:
brain.screen.clear_screen()

Parametry

Opis

Ta metoda nie ma żadnych parametrów.

def main():
    # Display text, then clear it after two seconds
    brain.screen.print("This will disappear...")
    wait(2, SECONDS)
    brain.screen.clear_screen()

# VR threads — Do not delete
vr_thread(main)

Monitor#

zmienna_monitora#

monitor_variable dodaje jedną lub więcej predefiniowanych zmiennych do zakładki Monitor w VEXcode. Pozwala to obserwować zmiany wartości zmiennej podczas działania projektu.

Zmienne muszą być globalne dla wartości monitor_variable aby można je było prawidłowo monitorować. Podaj nazwę każdej zmiennej jako ciąg znaków.

Usage:
monitor_variable(“variable”)
monitor_variable(“variable1”, “variable2”)

Parametry

Opis

variable

Nazwa predefiniowanej zmiennej globalnej do monitorowania, podana jako ciąg znaków. Aby monitorować więcej niż jedną zmienną, oddziel każdą nazwę zmiennej przecinkiem.

def main():
    # Monitor the number of loops
    global loops
    monitor_variable("loops")

    # Turn in a full circle 3 times
    for loops in range(12):
        drivetrain.turn_for(RIGHT, 90, DEGREES)

# VR threads — Do not delete
vr_thread(main)

czujnik_monitora#

monitor_sensor dodaje jedną lub więcej wartości czujników do zakładki Monitor w VEXcode. Pozwala to obserwować zmiany wartości czujników podczas działania projektu.

Podaj każdą wartość czujnika jako ciąg znaków.

Usage:
monitor_sensor(“sensor”)
monitor_sensor(“sensor1”, “sensor2”)

Parametry

Opis

sensor

Wartość czujnika do monitorowania, podana jako ciąg znaków. Aby monitorować więcej niż jedną wartość czujnika, rozdziel każdą wartość przecinkiem. Obsługiwane identyfikatory czujników obejmują:

  • Mózg
    • brain.timer.time
  • Układ napędowy
    • drivetrain.is_done
    • drivetrain.is_moving
    • drivetrain.heading
    • drivetrain.rotation
    • drivetrain.velocity
  • Silnik ramienia
    • arm_motor.is_done
    • arm_motor.is_spinning
    • arm_motor.position
    • arm_motor.velocity
  • Silnik pazura
    • claw_motor.is_done
    • claw_motor.is_spinning
    • claw_motor.position
    • claw_motor.velocity
  • Czujnik odległości
    • distance.is_object_detected
    • distance.object_distance_mm
    • distance.object_distance_inches
  • Czujnik GPS
    • gps.position_mm
    • gps.position_inches
    • gps.heading
  • Czujnik wizyjny AI
    • ai_vision.object_count
    • ai_vision.height
    • ai_vision.width
    • ai_vision.centerX
    • ai_vision.centerY
    • ai_vision.originX
    • ai_vision.originY
    • ai_vision.id

def main():
    # Monitor the robot's heading
    monitor_sensor("drivetrain.heading")
    drivetrain.turn_for(RIGHT, 450, DEGREES)

# VR threads — Do not delete
vr_thread(main)

Wyczuwanie#

Dystans#

znaleziony_obiekt#

found_object zwraca informację, czy czujnik odległości aktualnie wykrył obiekt w odległości 2000 mm.

  • True — Czujnik odległości wykrył obiekt.

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

Usage:
distance.found_object()

Parametry

Opis

Ta metoda nie ma żadnych parametrów.

def main():
    # Turn until something is detected, then release the Pin
    drivetrain.turn(RIGHT)
    while True:
        wait(5, MSEC)
        if distance.found_object():
            drivetrain.stop()
            break
    arm_motor.spin_for(FORWARD, 300, DEGREES)
    drivetrain.drive_for(FORWARD, 10, INCHES)
    claw_motor.spin_for(REVERSE, 180, DEGREES)

# VR threads — Do not delete
vr_thread(main)

odległość_obiektu#

object_distance zwraca odległość między czujnikiem odległości a najbliższym wykrytym obiektem.

Usage:
distance.object_distance(units)

Parametry

Opis

units

Jednostka odległości: MM lub INCHES.

def main():
    # Drive until 200 mm from the Goal, then release the Pin
    while distance.object_distance(MM) > 200:
        wait(5, MSEC)
        drivetrain.drive(FORWARD)
    drivetrain.stop()
    arm_motor.spin_for(FORWARD, 300, DEGREES)
    drivetrain.drive_for(FORWARD, 10, INCHES)
    claw_motor.spin_for(REVERSE, 180, DEGREES)

# VR threads — Do not delete
vr_thread(main)

GPS#

x_position#

x_position zwraca aktualną współrzędną x czujnika GPS (Game Positioning System™) na boisku.

Usage:
gps.x_position(units)

Parametry

Opis

jednostki

Jednostka wartości przesunięcia: INCHES lub MM

def main():
    # Raise the Arm, drive to the Goal, release the Pin
    arm_motor.spin_for(FORWARD, 300, DEGREES)
    drivetrain.drive(FORWARD)
    while not gps.x_position(MM) > -1370:
        wait(2, MSEC)
    drivetrain.stop()
    claw_motor.spin_for(REVERSE, 180, DEGREES)

# VR threads — Do not delete
vr_thread(main)

pozycja y#

y_position zwraca aktualną współrzędną y czujnika GPS (Game Positioning System™) na boisku.

Usage:
gps.y_position(units)

Parametry

Opis

jednostki

Jednostka wartości przesunięcia: INCHES lub MM

def main():
    # Raise the Arm, drive to the Goal, release the Pin
    arm_motor.spin_for(FORWARD, 300, DEGREES)
    drivetrain.drive(FORWARD)
    while not gps.y_position(MM) < -450:
        wait(2, MSEC)
    drivetrain.stop()
    claw_motor.spin_for(REVERSE, 180, DEGREES)

# VR threads — Do not delete
vr_thread(main)

nagłówek#

heading zwraca kierunek, w którym aktualnie zwrócony jest robot, na podstawie odczytów czujnika GPS (Game Positioning System™) w zakresie od 0 do 359 stopni.

Usage:
gps.heading()

Parametry

Opis

Ta metoda nie ma żadnych parametrów.

def main():
    # Raise the Arm, drive to the Goal, release the Pin
    monitor_sensor("gps.heading")
    arm_motor.spin_for(FORWARD, 300, DEGREES)
    drivetrain.drive_for(FORWARD, 10, INCHES)
    claw_motor.spin_for(REVERSE, 180, DEGREES)

    # Turn left to face the Neutral Goal
    drivetrain.set_turn_velocity(30, PERCENT)
    drivetrain.turn(LEFT)
    while not gps.heading() < 18:
        wait(2, MSEC)
    drivetrain.stop()


# VR threads — Do not delete
vr_thread(main)