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
Inertial– Crea un sensor inercial.
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 |
|---|---|
|
Opcional. La unidad de encabezado: |
# 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 |
|---|---|
|
Opcional. La unidad de rotación: |
# 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 |
|---|---|
|
El eje para devolver la velocidad del giroscopio desde:
|
|
Opcional. La unidad de velocidad del giroscopio
|
# 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 |
|---|---|
|
El ángulo de orientación a regresar:
|
|
Opcional. La unidad de orientación:
|
# 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 |
|---|---|
|
El valor de rumbo, en grados, a establecer para el sensor. Este puede ser un valor de 0 a 359,99. |
|
Opcional. La unidad de encabezado: |
# 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 |
|---|---|
|
El valor de rotación, en grados, a establecer para el sensor. Esto puede ser un número entero o un decimal (flotante). |
|
Opcional. La unidad de rotación: |
# 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 |
|---|---|
|
Una función previamente definida que se ejecuta cuando cambia el valor del sensor inercial. |
|
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 |
|---|---|
|
El eje para medir la aceleración en:
|
# 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 |
|---|---|
|
Una función previamente definida que se ejecuta cuando se detecta una colisión. |
|
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 |
|---|---|
|
El tipo de giro a establecer:
|
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 rumboRIGHT: 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 |
|---|---|
|
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)