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.
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 |
|---|---|
|
|
|
|
|
|
|
|
|
|
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 |
|---|---|
|
|
|
|
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 |
|---|---|
|
|
|
|
|
|
|
|
|
|
Parametr |
Opis |
|---|---|
|
Wcześniej zdefiniowana funkcja, która ma być uruchamiana za każdym razem, gdy zostanie naciśnięty określony przycisk. |
|
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 |
|---|---|
|
|
|
|
|
|
|
|
|
|
Parametr |
Opis |
|---|---|
|
Wcześniej zdefiniowana funkcja, która ma być uruchamiana za każdym razem, gdy zostanie zwolniony określony przycisk. |
|
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 |
|---|---|
|
|
|
|
Parametr |
Opis |
|---|---|
|
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. |
|
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)