Controlador#
Introducción#
El controlador One Stick cuenta con 4 botones y un joystick que funciona como entrada analógica y botón pulsable. Estas entradas permiten al robot detectar las pulsaciones de botones y los movimientos del joystick, lo que permite un control interactivo y sensible. A continuación, se muestra una lista de todos los métodos disponibles:
Getters: botón de lectura, joystick y estado de conexión.
.pressing – Returns whether the specified button is being pressed.
.position – Returns the position of the joystick’s specified axis.
is_connected – Returns whether the controller is connected.
get_battery_level – Returns the controller’s battery level as a percentage.
Devoluciones de llamadas: responden a cambios en la entrada del botón o del joystick.
Captadores#
.pressing#
.pressing
devuelve un entero que indica si un botón específico del controlador está presionado. Este método debe llamarse en un objeto de botón específico, como button_up
(ver la lista completa de objetos de botón a continuación).
1
- Se está presionando el botón especificado.0
- No se está presionando el botón especificado.
Uso:
Se puede usar uno de los cinco objetos de botón disponibles con este método, como se muestra a continuación:
botón |
Dominio |
---|---|
|
|
|
|
|
|
|
|
|
|

Parámetros |
Descripción |
---|---|
Este método no tiene parámetros. |
# Move forwards while the Up button is being pressed
while True:
if controller.button_up.pressing():
robot.move_at(0)
else:
robot.stop_all_movement()
.position#
.position
devuelve la posición del eje especificado del joystick como un entero de –100 a 100, que representa un porcentaje.
Uso:
Se puede utilizar uno de los dos ejes disponibles con este método, como se muestra a continuación:
botón |
Dominio |
---|---|
|
|
|
|

Parámetros |
Descripción |
---|---|
Este método no tiene parámetros. |
while True:
if controller.axis1.position() > 0:
# Move forward when the joystick is moved up
robot.move_at(0)
else:
# Stop moving when the joystick is centered
robot.stop_all_movement()
is_connected#
is_connected
devuelve un valor booleano que indica si el controlador está conectado.
True
: el controlador está conectado.False
: el controlador no está conectado.
Uso:
controller.is_connected()
Parámetros |
Descripción |
---|---|
Este método no tiene parámetros. |
# Start moving forward.
# When the Controller disconnects, the robot stops.
robot.move_at(0)
while True:
if not controller.is_connected():
robot.stop_all_movement()
wait(100, MSEC)
get_battery_level#
get_battery_level
devuelve el nivel de batería del controlador como un entero de 0 a 100, que representa un porcentaje.
Uso:
controller.get_battery_level()
Parámetros |
Descripción |
---|---|
Este método no tiene parámetros. |
# Display the Controller's battery level.
robot.screen.print(controller.get_battery_level())
Devoluciones de llamadas#
.pressed#
.pressed
registra una función que se llamará al presionar un botón específico del controlador. Este método debe llamarse en un objeto de botón específico, como button_up
(ver la lista completa de objetos de botón a continuación).
Uso:
Se puede usar uno de los cinco objetos de botón disponibles con este método, como se muestra a continuación:
botón |
Dominio |
---|---|
|
|
|
|
|
|
|
|
|
|

Parámetros |
Descripción |
---|---|
llamar de vuelta |
A function that is previously defined to execute when the specified button is being pressed. |
arg |
Optional. A tuple containing arguments to pass to the callback function. See Using Events with Parameters for more information. |
# Kick hard when Up button is pressed
def kick_object():
robot.kicker.kick(HARD)
controller.button_up.pressed(kick_object)
.released#
.released
registra una función que se llamará al soltar un botón específico del controlador. Este método debe llamarse en un objeto de botón específico, como button_up
(ver la lista completa de objetos de botón a continuación).
Uso:
Se puede usar uno de los cinco objetos de botón disponibles con este método, como se muestra a continuación:
botón |
Dominio |
---|---|
|
|
|
|
|
|
|
|
|
|

Parámetros |
Descripción |
---|---|
llamar de vuelta |
A function that is previously defined to execute when the specified button is released. |
arg |
Optional. A tuple containing arguments to pass to the callback function. See Using Events with Parameters for more information. |
# Clear the text after the Up button is released
def clear_screen():
robot.screen.clear_screen(BLUE)
controller.button_up.released(clear_screen)
robot.screen.print("Press Up, then")
robot.screen.next_row()
robot.screen.print("Release Up!")
.changed#
.changed
registra una función que se llamará cuando cambie la posición del joystick.
Uso:
Se puede utilizar uno de los dos ejes disponibles con este método, como se muestra a continuación:
botón |
Dominio |
---|---|
|
|
|
|

Parámetros |
Descripción |
---|---|
llamar de vuelta |
A function that is previously defined to execute when the axis’ value changes. |
arg |
Optional. A tuple containing arguments to pass to the callback function. See Using Events with Parameters for more information. |
# Function to display an emoji when the joystick is moved
def move_joystick():
robot.screen.show_emoji(CONFUSED)
# Run the function when the joystick is moved up or down
controller.axis1.changed(move_joystick)