Python specyficzny dla robotów#

Wstęp#

Robot-bohater, Moby, obejmuje grupę silnikową, czujnik optyczny, czujnik obrotu i czujnik systemu pozycjonowania gry (GPS).

Wszystkie standardowe metody VEXcode VR są dostępne do użycia na placu zabaw V5 21-22 Tipping Point.

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ź grupę silników robota.

  • Akcje

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

    • spin_for — Obraca grupę silników na określoną odległość.

    • spin_to_position — Obraca grupę silników do określonej pozycji.

    • stop — Zatrzymuje wirowanie grupy silników.

  • Mutatory

    • set_position — Zmienia bieżącą pozycję grupy silników na nową wartość.

    • set_velocity — Informuje grupę silników, jak szybko mają się obracać.

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

  • Getterzy

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

    • is_spinning — Zwraca wartość logiczną, czy grupa silników się obraca.

    • position — Zwraca aktualną pozycję grupy silników.

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

Konsola – Drukuj do konsoli i monitoruj wartości.

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

  • Optyczny

    • is_near_object – Zwraca informację, czy czujnik optyczny wykrył obiekt w zasięgu.

    • color – Zwraca kolor wykryty przez czujnik optyczny.

    • brightness – Zwraca ilość światła odbitego od obiektu.

    • hue – Zwraca odcień wykryty przez czujnik optyczny.

    • object_detected – Rejestruje funkcję, która ma zostać wywołana, gdy czujnik optyczny wykryje obiekt.

    • object_lost – Rejestruje funkcję, która ma zostać wywołana, gdy czujnik optyczny utraci obiekt.

  • Obrót

    • set_position – Ustawia bieżącą pozycję czujnika obrotu na określoną wartość.

    • kątangle – Zwraca aktualny kąt czujnika pomiędzy 0 a 359,99 stopni.

    • position – Zwraca całkowitą pozycję obrotową w stopniach lub obrotach.

  • 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 skierowany jest robot, na podstawie odczytów czujnika GPS w zakresie od 0 do 359 stopni.

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

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():
    # Drive forward then stop
    drivetrain.drive(FORWARD)
    wait(2, SECONDS)
    drivetrain.stop()

# 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():
    # Drive forward and backward
    drivetrain.drive_for(FORWARD, 200, MM)
    drivetrain.drive_for(REVERSE, 200, MM)

# 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():
    # Turn right and left, then stop
    drivetrain.turn(RIGHT)
    wait(2, SECONDS)
    drivetrain.turn(LEFT)
    wait(2, SECONDS)
    drivetrain.stop()

# 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 obrotu: 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():
    # Turn the robot right and left
    drivetrain.turn_for(RIGHT, 90, DEGREES)
    wait(1, SECONDS)
    drivetrain.turn_for(LEFT, 90, 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 kierunek robota wynosi 0 stopni.

Projekt będzie czekał, aż robot zakończy obracanie się, zanim zostanie uruchomiony kolejny wiersz kodu.

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

Parametry

Opis

angle

Kierunek, w którym robot powinien być zwrócony, wyrażony w stopniach. Może to być liczba całkowita integer lub liczba dziesiętna (float) z zakresu od -359 do 359.

units

Opcjonalnie. Jednostka obrotu: 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():
    # Turn to face the cardinal directions
    drivetrain.turn_to_heading(90, DEGREES)
    wait(1, SECONDS)
    drivetrain.turn_to_heading(180, DEGREES)
    wait(1, SECONDS)
    drivetrain.turn_to_heading(270, DEGREES)
    wait(1, SECONDS)
    drivetrain.turn_to_heading(0, 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 można również ustawić za pomocą metody set_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 obracanie się, zanim zostanie uruchomiony kolejny wiersz kodu.

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

Parametry

Opis

angle

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

units

Opcjonalnie. Jednostka obrotu: 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():
    # Turn left, then spin in a circle
    # clockwise and face right
    drivetrain.turn_to_rotation(-90, DEGREES)
    wait(1, SECONDS)
    drivetrain.turn_to_rotation(450, 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():
    # Drive forward then stop
    drivetrain.drive(FORWARD)
    wait(2, SECONDS)
    drivetrain.stop()

# 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ść nagłówka w stopniach, którą należy ustawić dla robota. Może to być integer lub liczba dziesiętna (float).

units

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

def main():
    # Face the new 0 degrees
    drivetrain.set_heading(90, DEGREES)
    drivetrain.turn_to_heading(0, DEGREES)

# VR threads — Do not delete
vr_thread(main)

ustaw_rotację#

Obrót to wartość obrotu robota, mierzona w stopniach. Na początku projektu wartość obrotu jest ustawiona na 0 stopni. set_rotation 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ść.

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 obrotu: DEGREES (domyślnie).

def main():
    # Spin counterclockwise two times
    drivetrain.set_rotation(720, DEGREES)
    drivetrain.turn_to_rotation(0, DEGREES)

# VR threads — Do not delete
vr_thread(main)

ustaw_limit_czasu#

set_timeout ustawia, ile czasu robot będzie próbował ukończyć ruch. Jeśli robot nie zdoła ukończyć ruchu w tym czasie, przerwie próby i przejdzie do następnego wiersza kodu. Zapobiega to zablokowaniu ruchu przez robota.

Usage:
drivetrain.set_timeout(value, units)

Parametry

Opis

value

Czas, w którym robot 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():
    # Turn right after driving forward
    drivetrain.set_timeout(1, SECONDS)
    drivetrain.drive_for(FORWARD, 25, INCHES)
    drivetrain.turn_for(RIGHT, 90)

# 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():
    # Drive forward at different velocities
    # Default velocity
    drivetrain.drive_for(FORWARD, 150, MM)
    wait(1, SECONDS)
    # Drive slower
    drivetrain.set_drive_velocity(20, PERCENT)
    drivetrain.drive_for(FORWARD, 150, MM)
    wait(1, SECONDS)
    # Drive faster
    drivetrain.set_drive_velocity(100, PERCENT)
    drivetrain.drive_for(FORWARD, 150, MM)

# 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 at different velocities
    # Default velocity
    drivetrain.turn_for(RIGHT, 120, DEGREES)
    wait(1, SECONDS)
    # Turn slower
    drivetrain.set_turn_velocity(20, PERCENT)
    drivetrain.turn_for(RIGHT, 120, DEGREES)
    wait(1, SECONDS)
    # Turn faster
    drivetrain.set_turn_velocity(100, PERCENT)
    drivetrain.turn_for(RIGHT, 120, 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():
    # Display the heading after turning
    drivetrain.turn_for(RIGHT, 450, 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():
    # Display the rotation after turning
    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.

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.

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).

Przykład

def main():
    # Display the velocity after driving
    drivetrain.drive_for(FORWARD, 150, MM)
    brain.screen.print("Velocity: ")
    brain.screen.print(drivetrain.velocity(PERCENT))

Ruch#

Moby używa zespołu silników wideł do podnoszenia i opuszczania wideł, co umożliwia transport i punktowanie pierścieni i bramek mobilnych.

Opisy kierunków wyjaśniają, w jaki sposób poszczególne kierunki poruszają grupę silników widełkowych w urządzeniu Moby.

Akcje#

kręcić się#

spin obraca grupę silników do przodu lub do tyłu w nieskończoność. Grupa silników będzie się obracać, dopóki nie zostanie jej przydzielona inna czynność, np. obrót w innym kierunku lub zatrzymanie.

Usage:
fork_motor_group.spin(direction)

Parametry

Opis

direction

Kierunek, w którym obraca się grupa silników:

  • FORWARD — Podnosi widły.
  • REVERSE — Opuszcza widły.

def main():
    # Spin the motor group forward then stop
    fork_motor_group.spin(FORWARD)
    wait(0.5, SECONDS)
    fork_motor_group.stop()

# VR threads — Do not delete
vr_thread(main)

spin_for#

spin_for obraca grupę silników o określoną odległość. Obrót jest względny do bieżącej pozycji grupy silników. Projekt będzie czekał, aż grupa silników zakończy obrót, zanim zostanie uruchomiony kolejny wiersz kodu.

Usage:
fork_motor_group.spin_for(direction, distance, units, wait)

Parametry

Opis

direction

Kierunek, w którym obraca się grupa silników:

  • FORWARD — Podnosi widły.
  • REVERSE — Opuszcza widły.

distance

Odległość, o jaką obraca się grupa silników. DEGREES używa liczb całkowitych. TURNS mogą 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ż grupa silników zakończy obrót, zanim zostanie uruchomiony kolejny wiersz kodu.
  • wait=False — powoduje, że kolejny wiersz kodu zostanie uruchomiony natychmiast.

def main():
    # Spin the motor group forward then stop
    fork_motor_group.spin_for(FORWARD, 360, DEGREES)

# VR threads — Do not delete
vr_thread(main)

obrót_do_pozycji#

spin_to_position obraca grupę silników do określonej pozycji.

Pozycja grupy silników to odległość, o jaką obróciła się, mierzona w DEGREES lub TURNS. Jeden obrót to 360 stopni. Na początku projektu pozycja grupy silników jest ustawiona na 0 stopni. Pozycję grupy silników można również ustawić za pomocą metody set_position.

Wartości pozycji są bezwzględne. Oznacza to, że kierunek obrotu zależy od aktualnej pozycji grupy silników.

Na przykład, jeśli grupa silników 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.

Usage:
fork_motor_group.spin_to_position(angle, units, wait)

Parametry

Opis

angle

Wartość pozycji, do której obróci się grupa silników. DEGREES używa liczb całkowitych. TURNS mogą 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ż grupa silników zakończy obrót, zanim zostanie uruchomiony kolejny wiersz kodu.
  • wait=False — powoduje, że kolejny wiersz kodu zostanie uruchomiony natychmiast.

def main():
    # Spin the motor group forward then stop
    fork_motor_group.spin_to_position(55, DEGREES)

# VR threads — Do not delete
vr_thread(main)

zatrzymywać się#

stop zatrzymuje grupę silników przed wirowaniem.

Usage:
fork_motor_group.stop()

Parametry

Opis

Ta metoda nie ma żadnych parametrów.

def main():
    # Spin the motor group forward then stop
    fork_motor_group.spin(FORWARD)
    wait(0.5, SECONDS)
    fork_motor_group.stop()

# VR threads — Do not delete
vr_thread(main)

Mutatory#

ustaw_pozycję#

Pozycja grupy silników to odległość, na jaką się obróciła, mierzona w DEGREES lub TURNS. Jeden obrót jest równy 360 stopniom. set_position zmienia bieżącą pozycję grupy silników na nową wartość.

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

Usage:
fork_motor_group.set_position(position, units)

Parametry

Opis

position

Wartość pozycji do ustawienia dla grupy silników. DEGREES używa liczb całkowitych. TURNS mogą używać liczb całkowitych lub dziesiętnych.

units

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

def main():
    # Spin the motor group forward then stop
    fork_motor_group.set_position(90, DEGREES)
    fork_motor_group.spin_to_position(0, DEGREES)

# VR threads — Do not delete
vr_thread(main)

ustaw_prędkość#

set_velocity określa prędkość, z jaką grupa silników ma się obracać. Wyższy procent powoduje, że grupa silników obraca się szybciej, a niższy procent powoduje, że obraca się wolniej.

Każdy projekt rozpoczyna się od ustawienia, w którym każda grupa silników będzie kręcić się z domyślną prędkością 50%.

Uwaga: Większa prędkość sprawia, że ​​grupa silników obraca się szybciej, ale może być mniej precyzyjna. Niższa prędkość sprawia, że ​​grupa silników obraca się wolniej, ale może być bardziej precyzyjna.

Usage:
fork_motor_group.set_velocity(velocity, units)

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():
    # Spin the motor group forward then stop
    fork_motor_group.set_velocity(75, PERCENT)
    fork_motor_group.spin_to_position(180, DEGREES)

# VR threads — Do not delete
vr_thread(main)

ustaw_limit_czasu#

set_timeout ustawia, ile czasu grupa silników będzie próbowała zakończyć ruch. Jeśli grupa silników nie zdoła zakończyć ruchu w tym czasie, przerwie próby i przejdzie do następnego wiersza kodu. Zapobiega to zablokowaniu ruchu przez grupę silników.

Usage:
fork_motor_group.set_timeout(value, units)

Parametry

Opis

value

Czas, w którym grupa motoryczna 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():
    # Spin the motor group forward then stop
    fork_motor_group.set_timeout(2, SECONDS)
    fork_motor_group.spin_to_position(270, DEGREES)

# VR threads — Do not delete
vr_thread(main)

Getters#

jest_zrobione#

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

  • True — Grupa silników zakończyła ruch.

  • False — Grupa motoryczna 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.

Usage:
fork_motor_group.is_done()

Parametry

Opis

Ta metoda nie ma żadnych parametrów.

kręci się#

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

  • True — Grupa silników się kręci.

  • False — Grupa silnikowa nie obraca się.

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.

Usage:
fork_motor_group.is_spinning()

Parametry

Opis

Ta metoda nie ma żadnych parametrów.

pozycja#

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

Na początku projektu położenie grupy silników jest ustawione na 0 stopni. Jeśli grupa silników obróci się o jeden pełny obrót do przodu, położenie będzie wynosić 360 stopni lub 1 obrót. Jeśli grupa silników obróci się w przeciwnym kierunku, położenie będzie ujemne.

Usage:
fork_motor_group.position(units)

Parametry

Opis

units

Jednostka zwracająca pozycję grupy silników w zakresie: DEGREES lub TURNS.

prędkość#

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

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

Usage:
fork_motor_group.velocity(units)

Parametry

Opis

units

Jednostka prędkości do zwrotu: PERCENT.

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 aktualnej pozycji kursora. Działa jak print na stronie API konsoli.

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)

Konsola VEXcode z widoczną konsolą i tekstem „Witaj, robocie!”.

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)

Konsola VEXcode, pokazująca konsolę i tekst „Wiersz 1” wyświetlany w pierwszym wierszu i „Wiersz 2” w drugim wierszu.

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 amount of loops
    global loops
    monitor_variable("loops")

    # Drive in a square 3 times
    for loops in range(12):
        drivetrain.turn_for(RIGHT, 90, DEGREES)
        drivetrain.drive_for(FORWARD, 150, MM)

# 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_rpm
    • drivetrain.velocity_percent
  • Grupa silników dolotowych
    • intake_motor_group.is_done
    • intake_motor_group.is_spinning
    • intake_motor_group.position_degrees
    • intake_motor_group.position_turns
    • intake_motor_group.velocity_rpm
    • intake_motor_group.velocity_percent
  • Grupa silników widelców
    • fork_motor_group.is_done
    • fork_motor_group.is_spinning
    • fork_motor_group.position_degrees
    • fork_motor_group.position_turns
    • fork_motor_group.velocity_rpm
    • fork_motor_group.velocity_percent
  • Dolny czujnik odległości
    • bottom_distance.is_object_detected
    • bottom_distance.object_distance_mm
    • bottom_distance.object_distance_inches
  • Lewy czujnik odległości
    • left_distance.is_object_detected
    • left_distance.object_distance_mm
    • left_distance.object_distance_inches
  • Środkowy czujnik odległości
    • center_distance.is_object_detected
    • center_distance.object_distance_mm
    • center_distance.object_distance_inches
  • Prawy czujnik odległości
    • right_distance.is_object_detected
    • right_distance.object_distance_mm
    • right_distance.object_distance_inches
  • Śledzenie linii
    • bottom_line_tracker.reflectivity
    • middle_line_tracker.reflectivity
    • top_line_tracker.reflectivity
  • Czujnik optyczny rolkowy
    • roller_optical.is_near_object
    • roller_optical.color
    • roller_optical.brightness
    • roller_optical.hue
  • Czujnik optyczny
    • optical.is_near_object
    • optical.color
    • optical.brightness
    • optical.hue
  • Czujnik GPS
    • gps.position_mm
    • gps.position_inches
    • gps.heading
  • Czujnik obrotu
    • rotation.angle
    • rotation.position

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#

Optyczny#

jest_w_pobliżu_obiektu#

is_near_object zwraca wartość logiczną wskazującą, czy czujnik optyczny wykrył obiekt w zasięgu.

  • True – Czujnik optyczny wykrywa obiekt.

  • False – Czujnik optyczny nie wykrył obiektu.

Usage:
optical.is_near_object()

Parametry

Opis

Ta metoda nie ma żadnych parametrów.

kolor#

color zwraca instancję klasy Color na podstawie wykrytej wartości odcienia. Można je porównać z predefiniowanymi obiektami Color , aby utworzyć instrukcje warunkowe.

Możliwe kolory:

  • NONE

  • RED - Wartość odcienia pomiędzy 340° - 20°

  • GREEN - Wartość odcienia pomiędzy 80° - 140°

  • BLUE - Wartość odcienia pomiędzy 200° - 240°

  • YELLOW - Wartość odcienia pomiędzy 40° - 60°

  • ORANGE - Wartość odcienia pomiędzy 20° - 40°

  • PURPLE - Wartość odcienia pomiędzy 240° - 280°

  • CYAN - Wartość odcienia pomiędzy 140° - 200°

Uwaga: Czujnik optyczny wyszukuje zakresy odcieni odpowiadające określonemu kolorowi. Aby wykryć konkretne zakresy odcieni, zobacz hue.

Usage:
optical.color()

Parametry

Opis

Ta metoda nie ma żadnych parametrów.

jasność#

brightness zwraca ilość światła odbitego od obiektu jako liczbę dziesiętną (float) reprezentującą procent.

Wyższy procent oznacza, że ​​więcej światła odbija się z powrotem do czujnika optycznego. Niższy procent oznacza, że ​​mniej światła odbija się z powrotem.

Usage:
optical.brightness()

Parametry

Opis

Ta metoda nie ma żadnych parametrów.

odcień#

hue zwraca wartość odcienia wykrytego koloru jako liczbę dziesiętną (float) od 0 do 359.

Odcień to sposób opisywania koloru za pomocą liczb znajdujących się na kole barw.

Koło barw wyświetlające pełne spektrum odcieni oznaczonych wartościami stopni na obwodzie, zwiększającymi się co 30 stopni od 0° u góry do 360°.

Usage:
optical.hue()

Parametry

Opis

Ta metoda nie ma żadnych parametrów.

wykryto_obiekt#

object_detected rejestruje funkcję, która ma zostać wywołana za każdym razem, gdy czujnik optyczny wykryje nowy obiekt.

Usage:
optical.object_detected(callback, arg)

Parametry

Opis

callback

Wcześniej zdefiniowana funkcja, która jest wykonywana, gdy czujnik optyczny wykryje nowy obiekt.

arg

Opcjonalnie. Krotka krotka zawierająca argumenty do przekazania do funkcji wywołania zwrotnego. Więcej informacji można znaleźć w sekcji Używanie funkcji z parametrami.

obiekt_utracony#

object_lost rejestruje funkcję, która ma zostać wywołana za każdym razem, gdy czujnik optyczny utraci wykryty obiekt.

Usage:
optical.object_lost(callback, arg)

Parametry

Opis

callback

Wcześniej zdefiniowana funkcja, która jest wykonywana, gdy czujnik optyczny utraci wykryty obiekt.

arg

Opcjonalnie. Krotka krotka zawierająca argumenty do przekazania do funkcji wywołania zwrotnego. Więcej informacji można znaleźć w sekcji Używanie funkcji z parametrami.

Obrót#

ustaw_pozycję#

set_position ustawia aktualną pozycję czujnika obrotu na wartość w stopniach.

Usage:
rotation.set_position(position, units)

Parametry

Opis

pozycja

Pozycja, w której należy ustawić czujnik obrotu.

jednostki

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

kąt#

angle zwraca aktualny kąt czujnika jako wartość zmiennoprzecinkową.

Usage:
rotation.angle(units)

Parametry

Opis

jednostki

Opcjonalnie. Jednostka kąta:

  • DEGREES (domyślne) – od 0 do 359,99
  • TURNS

pozycja#

Pozycja position zwraca całkowitą pozycję obrotową.

Usage:
rotation.position(units)

Parametry

Opis

jednostki

Opcjonalnie. Jednostka pozycji:

  • DEGREES (domyślnie) – od 0 do 359 jako liczba całkowita
  • TURNS – jako liczba zmiennoprzecinkowa

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

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

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.