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 – Returns how much the drone has turned since it started.

  • get_heading – Returns the current heading (0 to 359.99°).

  • get_yaw – Returns the yaw angle (–180 to 180°).

  • get_roll – Returns the roll angle (–180 to 180°).

  • get_pitch – Returns the pitch angle (–180 to 180°).

  • reset_rotation – Resets the rotation value to 0.

  • reset_heading – Sets the current heading to 0.

  • set_heading – Sets the heading to a specific value.

  • get_acceleration – Returns acceleration in a specific direction.

  • get_turn_rate – Returns turning rate in degrees per second.

Alcance: detecta distancias desde el sensor de alcance del dron.

  • get_distance – Returns the distance from a Range Sensor.

Batería - Devuelve el porcentaje de batería del dron.

Inercial#

get_rotation#

get_rotation returns how many degrees the drone has turned since it started. It adds up all turns and returns the total in degrees: positive for clockwise, negative for counterclockwise.

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 returns the drone’s heading angle as a float in the range 0 to 359.99 degrees.

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 returns the drone’s yaw angle in the range –180.0 to 180.0 degrees as a float.

La imagen a continuación utiliza una flecha para mostrar la dirección de rotación positiva para guiñada.

Se muestra un dron VEX con una flecha de color etiquetada que indica su guiñada. Una flecha azul etiquetada como Guiñada apunta directamente hacia abajo desde el centro.

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 returns the drone’s roll angle in the range –180.0 to 180.0 degrees as a float.

La imagen a continuación utiliza una flecha para mostrar la dirección de rotación positiva para el balanceo.

Se muestra un dron VEX con una flecha de color etiquetada que indica su giro. Una flecha verde etiquetada como "Rodar" apunta diagonalmente hacia abajo a la derecha.

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 returns the drone’s pitch angle in the range –180.0 to 180.0 degrees as a float.

La imagen a continuación utiliza una flecha para mostrar la dirección de rotación positiva del paso.

Se muestra un dron VEX con una flecha de color etiquetada que indica su inclinación. Una flecha roja etiquetada como Inclinación apunta diagonalmente hacia abajo, a la izquierda.

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 resets the drone’s rotation value to 0 degrees.

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 resets the drone’s heading to 0 degrees.

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 sets the drone’s heading to a specified value in degrees.

Uso:

drone.inertial.set_heading(heading)

Parámetros

Descripción

heading

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 returns the drone’s acceleration in a specified direction. The returned value represents the rate of change in velocity, measured in units of g (where 1g ≈ 9.81 m/s²), as a float ranging from -4.00 to 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.

Se muestra un dron VEX con tres flechas de colores que indican la dirección. Una flecha roja con la etiqueta HACIA LA DERECHA apunta diagonalmente hacia abajo, a la izquierda; una flecha verde con la etiqueta HACIA ADELANTE apunta diagonalmente hacia abajo, a la derecha; y una flecha azul con la etiqueta HACIA ABAJO apunta directamente hacia abajo desde el centro.

Uso:

drone.inertial.get_acceleration(type)

Parámetros

Descripción

type

The direction of acceleration to report:

  • DOWNWARD
  • FORWARD
  • RIGHTWARD

# 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 returns the rate at which the drone is rotating along the specified axis. This returns a value in degrees per second \(dps\) as a float from –1000.00 to 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.

Un dron VEX se muestra con tres flechas de colores que indican sus ejes de rotación. Una flecha roja, "Inclinación", apunta diagonalmente hacia abajo a la izquierda; una flecha verde, "Alabeo", apunta diagonalmente hacia abajo a la derecha; y una flecha azul, "Guiñada", apunta directamente hacia abajo desde el centro.

Usage:
drone.inertial.get_turn_rate(axis)

Parámetros

Descripción

axis

Which orientation to report:

  • YAW
  • ROLL
  • PITCH

# 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 returns the distance between a Range Sensor and the nearest object.

Usage:
drone.range.get_distance(range, units)

Parámetros

Descripción

range

The Range Sensor to use:

  • FORWARD_RANGE – The distance from the front of the drone.
  • DOWNWARD_RANGE – The distance from the bottom of the drone.

units

Optional. The unit that represents the distance:

  • CM – Centimeters
  • MM (default) – Millimeters
  • INCHES
# 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 returns the drone’s battery charge level as a percentage. This returns a number from 0 to 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!")