Inercial#

Introducción#

Un sensor inercial mide cómo se mueve y gira el robot.

El sensor inercial utiliza dos partes para hacer esto. El giroscopio mide el giro, como el rumbo, la rotación, la velocidad y la orientación del giroscopio. El acelerómetro mide los cambios en el movimiento, como la aceleración o la desaceleración a lo largo de los ejes x, y y z.

Para que los comandos inerciales aparezcan en VEXcode V5, se debe configurar un sensor inercial en la ventana Dispositivos.

A continuación se muestra una lista de los métodos disponibles:

Orientación: lea y controle el rumbo, la rotación y la calibración del sensor.

  • heading — Devuelve la dirección en la que mira el sensor, de 0 a 359,99 grados.

  • rotation — Devuelve hasta dónde ha girado el sensor.

  • gyro_rate — Devuelve qué tan rápido está girando el sensor en el eje seleccionado.

  • orientation — Devuelve el ángulo de balanceo, cabeceo o guiñada del sensor de inercia.

  • set_heading — Establece el rumbo actual del sensor de inercia en un nuevo valor de rumbo.

  • set_rotation — Establece la rotación actual del sensor inercial en un nuevo valor de rotación.

  • calibrate — Calibra el sensor inercial.

  • reset_heading — Restablece el rumbo actual del sensor de inercia a 0 grados.

  • reset_rotation — Restablece la rotación actual del sensor inercial a 0 grados.

  • is_calibrating — Devuelve si el sensor inercial se está calibrando actualmente.

  • changed — Registra una función para que se ejecute cuando cambie el valor del sensor inercial.

  • installed — Comprueba si el sensor inercial está instalado.

Movimiento: mide la aceleración, las colisiones y el comportamiento de la dirección de giro.

  • acceleration: devuelve la rapidez con la que el sensor se acelera o ralentiza en el eje seleccionado.

  • collision: registra una función para que se ejecute cuando el sensor inercial detecta una colisión.

  • set_turn_type — Establece qué dirección de giro devuelve valores de rumbo positivos.

  • get_turn_type — Devuelve la dirección de giro que devuelve valores de rumbo positivos.

Constructor

Orientación#

heading#

Un rumbo es la dirección hacia la que se dirige el sensor, medida en grados de 0 a 359,99. El heading devuelve el rumbo actual del sensor como un flotador.

El rumbo inicial es 0 grados. Si el sensor gira más de 359,99 grados, el rumbo vuelve a 0 grados.

Usage:
inertial_1.heading(units)

Parámetros

Descripción

units

Opcional. La unidad de encabezado: DEGREES (predeterminado) o TURNS

# Display the heading after turning
drivetrain.turn_for(RIGHT, 450, DEGREES)
brain.screen.print(inertial_1.heading())

rotation#

La rotación es cuánto ha girado el sensor, medida en grados. A diferencia del rumbo, la rotación puede aumentar más de 359,99 grados o disminuir por debajo de 0 grados. Al comienzo de un proyecto, el valor de rotación se establece en 0 grados. La rotation devuelve la rotación actual del sensor inercial como un flotador.

Girar a la derecha aumenta la rotación y girar a la izquierda disminuye la rotación. Por ejemplo, hacer dos giros completos a la derecha devolverá una rotación de 720 grados. Girar una vuelta completa a la izquierda desde 0 grados devolverá una rotación de -360 grados.

Usage:
inertial_1.rotation(units)

Parámetros

Descripción

units

Opcional. La unidad de rotación: DEGREES (por defecto) o TURNS

# Display the rotation after turning
drivetrain.turn_for(RIGHT, 450, DEGREES)
brain.screen.print(inertial_1.rotation())

gyro_rate#

La velocidad del giroscopio es la velocidad de rotación del sensor gyro_rate devuelve la velocidad de rotación actual del sensor inercial en el eje seleccionado como un flotador.

El valor puede ser positivo o negativo dependiendo de la dirección en la que gire el sensor en ese eje.

Usage:
inertial_1.gyro_rate(axis, units)

Parámetros

Descripción

axis

El eje para devolver la velocidad del giroscopio desde:

  • AxisType.XAXIS
  • AxisType.YAXIS
  • AxisType.ZAXIS

units

Opcional. La unidad de velocidad del giroscopio

  • VelocityUnits.DPS VelocityUnits.DPS (predeterminado)
  • VelocityUnits.RPM
  • VelocityUnits.PERCENT

# Display the rate of change of
# rotation while turning
drivetrain.turn(RIGHT)
wait(1, SECONDS)
brain.screen.print(inertial_1.gyro_rate(AxisType.ZAXIS, VelocityUnits.DPS))
drivetrain.stop()

orientation#

La orientación es el ángulo actual del sensor inercial en un eje de giro seleccionado. La orientation devuelve el balanceo, cabeceo o guiñada del sensor inercial, de -180.00 a 180.00 grados, como un flotador.

El balanceo, cabeceo y guiñada describen diferentes formas en que el sensor puede inclinarse o girar.

Usage:
inertial_1.orientation(type, units)

Parámetros

Descripción

type

El ángulo de orientación a regresar:

  • AxisType.PITCH
  • AxisType.ROLL
  • AxisType.YAW

units

Opcional. La unidad de orientación:

  • DEGREES (predeterminado)
  • RotationUnits.TURNS

# Display the roll, pitch, and yaw of the Brain as it
# is rotated by hand
while True:
    brain.screen.clear_screen()
    brain.screen.print(inertial_1.orientation(AxisType.ROLL, DEGREES))
    brain.screen.next_row()
    brain.screen.print(inertial_1.orientation(AxisType.PITCH, DEGREES))
    brain.screen.next_row()
    brain.screen.print(inertial_1.orientation(AxisType.YAW, DEGREES))
    brain.screen.next_row()
    brain.screen.set_cursor(1, 1)
    wait(0.1, SECONDS)

set_heading#

Un rumbo es la dirección hacia la que mira el sensor, medida en grados de 0 a 359.99. set_heading cambia el rumbo actual del sensor inercial a un nuevo valor de rumbo.

Por ejemplo, si el sensor ha girado hacia la derecha, establecer el rumbo en 0 grados hace que esa posición orientada hacia la derecha sea de los nuevos 0 grados. Luego, el sensor puede rastrear otros encabezados en función de esa nueva dirección.

Usage:
inertial_1.set_heading(value, units)

Parámetros

Descripción

value

El valor de rumbo, en grados, a establecer para el sensor. Este puede ser un valor de 0 a 359,99.

units

Opcional. La unidad de encabezado: DEGREES (predeterminado) o TURNS

# Turn the robot around
inertial_1.set_heading(180, DEGREES)
drivetrain.turn_to_heading(0)

set_rotation#

La rotación es cuánto ha girado el sensor, medida en grados. A diferencia del rumbo, la rotación puede aumentar más de 359,99 grados o disminuir por debajo de 0 grados. Al comienzo de un proyecto, el valor de rotación se establece en 0 grados. set_rotation cambia la rotación actual del sensor inercial a un nuevo valor.

Por ejemplo, si el sensor ha realizado dos giros completos a la derecha, su valor de rotación será de 720 grados. Ajustar la rotación a 0 grados restablecerá esa rotación de 720 a 0 grados. Luego, el sensor puede rastrear las rotaciones en función de ese nuevo valor.

Usage:
inertial_1.set_rotation(value, units)

Parámetros

Descripción

value

El valor de rotación, en grados, a establecer para el sensor. Esto puede ser un número entero o un decimal (flotante).

units

Opcional. La unidad de rotación: DEGREES (por defecto) o TURNS

# Turn the robot around
inertial_1.set_rotation(-180, DEGREES)
drivetrain.turn_to_rotation(0)

calibrate#

calibrate calibra el sensor inercial.

La calibración ayuda al sensor a medir los giros correctamente. Mantenga el sensor quieto durante la calibración. Si el sensor se mueve durante la calibración, es posible que los valores de rumbo, rotación, velocidad de giro y orientación no se midan correctamente.

El proyecto esperará hasta que se realice la calibración antes de que se ejecute la siguiente línea de código.

Usage:
inertial_1.calibrate()

Parámetros

Descripción

Este método no tiene parámetros.

# Start calibration.
inertial_1.calibrate()
# Print that the Inertial Sensor is calibrating while
# waiting for it to finish calibrating.
while inertial_1.is_calibrating():
    brain.screen.clear()
    brain.screen.print("Inertial Sensor Calibrating")
    wait(50, MSEC)

reset_heading#

reset_heading restablece el rumbo actual del sensor inercial a 0 grados.

Después de utilizar este método, la dirección actual del sensor se convierte en el nuevo rumbo de 0 grados.

Usage:
inertial_1.reset_heading()

Parámetros

Descripción

Este método no tiene parámetros.

reset_rotation#

reset_rotation restablece la rotación actual del sensor inercial a 0 grados.

Después de utilizar este método, el sensor rastrea los giros futuros desde el nuevo valor de rotación de 0 grados.

Usage:
inertial_1.reset_rotation()

Parámetros

Descripción

Este método no tiene parámetros.

is_calibrating#

is_calibrating devuelve si el sensor inercial está calibrando actualmente.

  • True : el sensor inercial se está calibrando.

  • False — El sensor inercial no se está calibrando.

Usage:
inertial_1.is_calibrating()

Parámetros

Descripción

Este método no tiene parámetros.

changed#

changed registra una función que se llamará cada vez que cambie el valor del sensor inercial.

Usage:
inertial_1.changed(callback, arg)

Parámetros

Descripción

callback

Una función previamente definida que se ejecuta cuando cambia el valor del sensor inercial.

arg

Opcional. Una tupla que contiene argumentos para pasar a la función de devolución de llamada. Consulte Uso de funciones con parámetros para obtener más información.

def my_function():
  brain.screen.print("Value changed!!")

# Call my_function whenever inertial_1's value changes
inertial_1.changed(my_function)

installed#

installed verifica si el sensor inercial está instalado.

  • True : el sensor de inercia está instalado.

  • False — El sensor inercial no está instalado.

Usage:
inertial_1.installed()

Parámetros

Descripción

Este método no tiene parámetros.

Movimiento#

acceleration#

La aceleración es la rapidez con la que el sensor se acelera o desacelera. La acceleration devuelve la aceleración del sensor inercial en el eje seleccionado, de -4,0 G a 4,0 G, como un flotador.

Una G es una unidad utilizada para medir la aceleración. 1 G se refiere a la aceleración que sientes por la gravedad mientras estás sentado quieto.

El valor puede ser positivo o negativo dependiendo de la dirección de aceleración en el eje seleccionado. Las opciones del eje AxisType.XAXISAxisType.XAXIS AxisType.YAXIS, AxisType.YAXIS y AxisType.ZAXIS.

Usage:
inertial_1.acceleration(type)

Parámetros

Descripción

type

El eje para medir la aceleración en:

  • AxisType.XAXIS
  • AxisType.YAXIS
  • AxisType.ZAXIS

# Return the acceleration for the Z axis of the Inertial Sensor
zaccel = inertial_1.acceleration(AxisType.ZAXIS)

collision#

la collision registra una función que se llamará cada vez que el sensor inercial detecte un impacto o colisión repentina.

Usage:
inertial_1.collision(callback, arg)

Parámetros

Descripción

callback

Una función previamente definida que se ejecuta cuando se detecta una colisión.

arg

Opcional. Una tupla que contiene argumentos para pasar a la función de devolución de llamada. Consulte Uso de funciones con parámetros para obtener más información.

def my_function():
  brain.screen.print("Collision!")

# Call my_function whenever a collision is detected
inertial_1.collision(my_function)

set_turn_type#

set_turn_type establece que la dirección de giro devuelve valores de rumbo positivos.

Usage:
inertial_1.set_turn_type(turntype)

Parámetros

Descripción

turntype

El tipo de giro a establecer:

  • LEFT
  • RIGHT

get_turn_type#

get_turn_type devuelve qué dirección de giro devuelve valores de rumbo positivos.

  • LEFT : los giros a la izquierda devuelven valores de rumbo

  • RIGHT : los giros a la derecha devuelven valores de rumbo positivos

Usage:
inertial_1.get_turn_type()

Parámetros

Descripción

Este método no tiene parámetros.

Constructores#

Inertial#

Inertial crea un sensor inercial.

Usage:
Inertial(port)

Parámetros

Descripción

port

El Puerto Inteligente al que está conectado el Sensor Inercial, del 1 al 21.

# Create a new object "inertial_1" with the Inertial class.
inertial_1 = Inertial(Ports.PORT1)