Kontroler#

Wstęp#

Kontroler VEX AIM One Stick ma cztery przyciski i joystick. Joystick można przesuwać w dwóch osiach, a także naciskać jak przycisk.

Metody kontrolera mogą być używane do sprawdzania naciśnięć przycisków, odczytywania ruchów joysticka, sprawdzania stanu połączenia i baterii lub uruchamiania funkcji, gdy wystąpią zdarzenia kontrolera.

Poniżej znajduje się lista wszystkich metod:

Getters — odczyt stanu przycisku, joysticka, połączenia i baterii.

  • .pressing — Zwraca informację, czy określony przycisk jest naciśnięty.

  • .position — Zwraca położenie joysticka wzdłuż określonej osi.

  • is_connected — Zwraca informację, czy kontroler jest połączony.

  • get_battery_level — Zwraca poziom naładowania baterii kontrolera.

Wywołania zwrotne — uruchamianie funkcji po zmianie sygnału wejściowego kontrolera.

  • .pressed — Uruchamia funkcję po naciśnięciu określonego przycisku.

  • .released — Uruchamia funkcję po zwolnieniu określonego przycisku.

  • .changed — Uruchamia funkcję, gdy położenie joysticka zmienia się wzdłuż określonej osi.

Getters#

.pressing#

.pressing zwraca informację, czy konkretny przycisk kontrolera jest aktualnie wciśnięty. Tę metodę należy wywołać dla konkretnego obiektu przycisku, takiego jak controller.button_up.

  • True — Naciśnięto określony przycisk.

  • False — Określony przycisk nie jest wciśnięty.

Zastosowanie:
Za pomocą tej metody można użyć jednego z pięciu dostępnych obiektów przycisku:

Przycisk

Rozkaz

button_up

controller.button_up.pressing() — Przycisk w górę

button_down

controller.button_down.pressing() — Przycisk W dół

button_left

controller.button_left.pressing() — Przycisk Lewy

button_right

controller.button_right.pressing() — Przycisk Prawy

button_stick

controller.button_stick.pressing() — Przycisk Joysticka

Kontroler VEX AIM One Stick z joystickiem po lewej stronie i czterema przyciskami po prawej. Joystick i cztery przyciski są podświetlone.

Parametry

Opis

Ta metoda nie ma żadnych parametrów.

# Move forward while the Up button is being pressed
while True:
    if controller.button_up.pressing():
        robot.move_at(0)
    else:
        robot.stop_all_movement()

    wait(20, MSEC)

.position#

.position zwraca pozycję osi joysticka jako liczbę od -100 do 100.

Tę metodę należy wywołać dla konkretnego obiektu osi, takiego jak controller.axis1.

Zastosowanie:
Z tą metodą można użyć jednego z dwóch dostępnych obiektów osi:

Oś

Rozkaz

axis1

controller.axis1.position() — Oś pionowa

axis2

controller.axis2.position() — Oś pozioma

Kontroler VEX AIM z joystickiem po lewej stronie i czterema przyciskami po prawej. Osie 1 i 2 dla joysticka są zaznaczone.

Parametry

Opis

Ta metoda nie ma żadnych parametrów.

# Move forward when the joystick is moved up
while True:
    if controller.axis1.position() > 0:
        robot.move_at(0)
    else:
        robot.stop_all_movement()

    wait(20, MSEC)

is_connected#

is_connected zwraca informację, czy kontroler jest połączony.

  • True — Kontroler jest podłączony.

  • False — Kontroler nie jest podłączony.

Usage:
controller.is_connected()

Parametry

Opis

Ta metoda nie ma żadnych parametrów.

# Stop the robot if the controller disconnects
robot.move_at(0)

while True:
    if not controller.is_connected():
        robot.stop_all_movement()

    wait(100, MSEC)

get_battery_level#

get_battery_level zwraca poziom naładowania baterii kontrolera jako liczbę od 0 do 100.

Usage:
controller.get_battery_level()

Parametry

Opis

Ta metoda nie ma żadnych parametrów.

# Display the controller's battery level
robot.screen.print(controller.get_battery_level())

Wywołania zwrotne#

.pressed#

.pressed uruchamia funkcję po naciśnięciu określonego przycisku. Po użyciu funkcja będzie uruchamiana automatycznie po każdym naciśnięciu tego przycisku.

Zastosowanie:
Za pomocą tej metody można użyć jednego z pięciu dostępnych obiektów przycisku:

Przycisk

Rozkaz

button_up

controller.button_up.pressed(callback, arg) — Przycisk W górę

button_down

controller.button_down.pressed(callback, arg) — Przycisk W dół

button_left

controller.button_left.pressed(callback, arg) — Przycisk Lewy

button_right

controller.button_right.pressed(callback, arg) — Przycisk Prawy

button_stick

controller.button_stick.pressed(callback, arg) — Przycisk Joystick

Kontroler VEX AIM One Stick z joystickiem po lewej stronie i czterema przyciskami po prawej. Joystick i cztery przyciski są podświetlone.

Parametr

Opis

callback

Wcześniej zdefiniowana funkcja, która ma być uruchamiana za każdym razem, gdy zostanie naciśnięty określony przycisk.

arg

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

# Kick hard when the Up button is pressed
def kick_object():
    robot.kicker.kick(HARD)

controller.button_up.pressed(kick_object)

.released#

.released uruchamia funkcję po zwolnieniu określonego przycisku. Po użyciu funkcja będzie uruchamiana automatycznie po każdym zwolnieniu przycisku.

Zastosowanie:
Za pomocą tej metody można użyć jednego z pięciu dostępnych obiektów przycisku:

Przycisk

Rozkaz

button_up

controller.button_up.released(callback, arg) — Przycisk W górę

button_down

controller.button_down.released(callback, arg) — Przycisk W dół

button_left

controller.button_left.released(callback, arg) — Przycisk Lewy

button_right

controller.button_right.released(callback, arg) — Przycisk Prawy

button_stick

controller.button_stick.released(callback, arg) — Przycisk Joystick

Kontroler VEX AIM One Stick z joystickiem po lewej stronie i czterema przyciskami po prawej. Joystick i cztery przyciski są podświetlone.

Parametr

Opis

callback

Wcześniej zdefiniowana funkcja, która ma być uruchamiana za każdym razem, gdy zostanie zwolniony określony przycisk.

arg

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

# Clear the screen after the Up button is released
def clear_screen():
    robot.screen.clear_screen()

controller.button_up.released(clear_screen)

robot.screen.print("Press Up, then")
robot.screen.next_row()
robot.screen.print("Release Up!")

.changed#

.changed uruchamia funkcję, gdy położenie joysticka zmienia się wzdłuż określonej osi. Po użyciu funkcja będzie uruchamiana automatycznie za każdym razem, gdy położenie joysticka zmieni się wzdłuż tej osi.

Zastosowanie:
Z tą metodą można użyć jednego z dwóch dostępnych obiektów osi:

Oś

Rozkaz

axis1

controller.axis1.changed(callback, arg) — Oś pionowa

axis2

controller.axis2.changed(callback, arg) — Oś pozioma

Kontroler VEX AIM z joystickiem po lewej stronie i czterema przyciskami po prawej. Osie 1 i 2 dla joysticka są zaznaczone.

Parametr

Opis

callback

Wcześniej zdefiniowana funkcja, która ma być uruchamiana za każdym razem, gdy położenie joysticka zmieni się wzdłuż określonej osi.

arg

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

# Show an emoji when the joystick moves up or down
def move_joystick():
    robot.screen.show_emoji(CONFUSED)

controller.axis1.changed(move_joystick)