Sensores#
Introducción#
El dron VEX AIR incluye un sensor inercial para medir el movimiento de rotación y detectar cambios de movimiento, así como un sensor de alcance para medir distancias. El dron VEX AIR también puede monitorizar el nivel de batería. Estos sensores permiten al dron rastrear su orientación, rumbo, aceleración y distancia a los objetos.
A continuación se muestra una lista de todos los métodos disponibles:
Inercial: rastrea el movimiento de rotación del dron.
get_rotation– Devuelve cuánto ha girado el dron desde que comenzó.get_heading– Devuelve el rumbo actual (0 a 359,99°).get_yaw– Devuelve el ángulo de guiñada (–180 a 180°).get_roll– Devuelve el ángulo de balanceo (–180 a 180°).get_pitch– Devuelve el ángulo de cabeceo (–180 a 180°).reset_rotation– Restablece el valor de rotación a 0.reset_heading– Establece el rumbo actual en 0.set_heading– Establece el encabezado a un valor específico.get_acceleration– Devuelve la aceleración en una dirección específica.get_turn_rate– Devuelve la velocidad de giro en grados por segundo.
Alcance: Detecta distancias mediante los sensores de alcance del dron.
get_distance— Devuelve la distancia entre el sensor de rango seleccionado y el objeto detectado más cercano.
Batería - Devuelve el porcentaje de batería del dron.
get_battery_level– Devuelve el nivel de batería del dron en porcentaje.
Inercial#
get_rotation#
get_rotation devuelve cuántos grados ha girado el dron desde que comenzó. Suma todos los giros y devuelve el total en grados: positivo para el sentido horario, negativo para el sentido antihorario.
Usage:
drone.inertial.get_rotation()
Parámetros |
Descripción |
|---|---|
Este método no tiene parámetros. |
# Display the rotation after turning
drone.take_off(climb_to=500)
drone.turn_for(LEFT, 450, 50)
print(drone.inertial.get_rotation(), end="")
drone.land()
get_heading#
get_heading devuelve el ángulo de rumbo del dron como un número flotante en el rango de 0 a 359,99 grados.
Usage:
drone.inertial.get_heading()
Parámetros |
Descripción |
|---|---|
Este método no tiene parámetros. |
# Display the drone's heading after turning
drone.take_off(climb_to=500)
drone.set_turn_velocity(100)
drone.turn(RIGHT)
wait(5, SECONDS)
controller.screen.print("Heading: ")
controller.screen.print(drone.inertial.get_heading())
drone.land()
get_yaw#
get_yaw devuelve el ángulo de guiñada del dron en el rango de -180,0 a 180,0 grados como un número flotante.
La imagen a continuación utiliza una flecha para mostrar la dirección de rotación positiva para guiñada.

Usage:
drone.inertial.get_yaw
Parámetros |
Descripción |
|---|---|
Este método no tiene parámetros. |
# Display the yaw angle as you rotate the drone by hand
while True:
controller.screen.clear_screen()
controller.screen.set_cursor(1, 1)
controller.screen.print("Yaw: ")
controller.screen.print(drone.inertial.get_yaw())
wait(0.2, SECONDS)
get_roll#
get_roll devuelve el ángulo de balanceo del dron en el rango de -180,0 a 180,0 grados como un número flotante.
La imagen a continuación utiliza una flecha para mostrar la dirección de rotación positiva para el balanceo.

Usage:
drone.inertial.get_roll()
Parámetros |
Descripción |
|---|---|
Este método no tiene parámetros. |
# Display the roll angle as you rotate the drone by hand
while True:
controller.screen.clear_screen()
controller.screen.set_cursor(1, 1)
controller.screen.print("Roll: ")
controller.screen.print(drone.inertial.get_roll())
wait(0.2, SECONDS)
get_pitch#
get_pitch devuelve el ángulo de cabeceo del dron en el rango de -180,0 a 180,0 grados como un número flotante.
La imagen a continuación utiliza una flecha para mostrar la dirección de rotación positiva del paso.

Usage:
drone.inertial.get_pitch()
Parámetros |
Descripción |
|---|---|
Este método no tiene parámetros. |
# Display the pitch angle as you rotate the drone by hand
while True:
controller.screen.clear_screen()
controller.screen.set_cursor(1, 1)
controller.screen.print("Pitch: ")
controller.screen.print(drone.inertial.get_pitch())
wait(0.2, SECONDS)
reset_rotation#
reset_rotation restablece el valor de rotación del dron a 0 grados.
Usage:
drone.inertial.reset_rotation()
Parámetros |
Descripción |
|---|---|
Este método no tiene parámetros. |
# Display the new rotation after resetting
drone.take_off(climb_to=500)
drone.turn(RIGHT)
while not drone.inertial.get_rotation() > 360:
wait(5, MSEC)
drone.hover()
drone.inertial.reset_rotation()
wait(1, SECONDS)
print(drone.inertial.get_rotation(), end="")
drone.land()
reset_heading#
reset_heading restablece la dirección del dron a 0 grados.
Uso:
drone.inertial.reset_heading()
Parámetros |
Descripción |
|---|---|
Este método no tiene parámetros. |
# Turn to a heading, reset the heading, and turn to the same heading.
drone.take_off(climb_to=500)
drone.turn_to(heading=180, velocity=50)
wait(3,SECONDS)
drone.inertial.reset_heading()
drone.turn_to(heading=180, velocity=50)
wait(3,SECONDS)
drone.land()
set_heading#
set_heading establece la dirección del dron a un valor específico en grados.
Uso:
drone.inertial.set_heading(heading)
Parámetros |
Descripción |
|---|---|
|
El valor a utilizar para el nuevo rumbo en el rango de 0 a 359,99 grados. |
# Turn to a heading, set the heading, and turn to the same heading.
drone.take_off(climb_to=500)
drone.turn_to(heading=180, velocity=50)
wait(3,SECONDS)
drone.inertial.set_heading(90)
drone.turn_to(heading=180, velocity=50)
wait(3,SECONDS)
drone.land()
get_acceleration#
get_acceleration devuelve la aceleración del dron en una dirección específica. El valor devuelto representa la tasa de cambio de velocidad, medida en unidades de g (donde 1g ≈ 9,81 m/s²), como un número flotante que va de -4,00 a 4,00.
La imagen a continuación utiliza flechas para mostrar la dirección de la aceleración positiva hacia adelante y hacia la derecha, y la aceleración negativa hacia abajo.

Uso:
drone.inertial.get_acceleration(type)
Parámetros |
Descripción |
|---|---|
|
Dirección de aceleración a reportar:
|
# Display the acceleration as the drone takes off
drone.take_off(500, wait=False)
while True:
controller.screen.clear_screen()
controller.screen.set_cursor(1, 1)
controller.screen.print(drone.inertial.get_acceleration(DOWNWARD))
wait(5, MSEC)
get_turn_rate#
get_turn_rate devuelve la velocidad a la que el dron gira sobre el eje especificado. Devuelve un valor en grados por segundo \(dps\) como un número decimal entre -1000,00 y 1000,00 dps.
La imagen a continuación utiliza flechas para mostrar la dirección de rotación positiva para balanceo, cabeceo y guiñada.

Usage:
drone.inertial.get_turn_rate(axis)
Parámetros |
Descripción |
|---|---|
|
¿Qué orientación reportar?:
|
# Display the drone turn rate as it is rotated by hand.
while True:
controller.screen.clear_screen()
controller.screen.set_cursor(7, 1)
controller.screen.print(drone.inertial.get_turn_rate(ROLL))
Rango#
get_distance#
get_distance devuelve la distancia entre el sensor de rango seleccionado y el objeto detectado más cercano.
Usage:
drone.range.get_distance(range, units)
Parámetros |
Descripción |
|---|---|
|
Sensor de rango a utilizar: |
|
Opcional. Unidad de distancia:
|
# Fly forward until close to an object
drone.take_off(climb_to=500)
drone.move_at(direction=0, velocity=50)
while not drone.range.get_distance(FORWARD_RANGE, MM) < 750:
wait(0.1, SECONDS)
drone.land()
Batería#
get_battery_level#
get_battery_level devuelve el nivel de carga de la batería del dron como un porcentaje. Esto devuelve un número entre 0 y 100.
Usage:
drone.get_battery_level()
Parámetros |
Descripción |
|---|---|
Este método no tiene parámetros. |
# Display the drone's battery level
if drone.get_battery_level() < 25:
controller.screen.print("Charge the drone Battery!")
else:
controller.screen.print("Ready to fly!")