Inercial#
Introducción#
El IQ (2.ª generación) Cerebro incluye un sensor inercial integrado con un giroscopio de 3 ejes y un acelerómetro de 3 ejes. Esto permite al robot rastrear su orientación, rumbo y aceleración.
This page uses brain_inertial as the example Inertial Sensor name. Replace it with your own configured name as needed.
A continuación se muestra una lista de todos los métodos disponibles:
Orientación: lee y controla el rumbo, la rotación y la calibración del sensor.
heading— Returns the current heading.rotation— Returns the cumulative rotation.calibrate— Calibrates the Inertial Sensor for stable heading tracking.set_heading— Sets the Inertial Sensor’s heading to a specified value.set_rotation— Sets the Inertial Sensor’s rotation value.is_calibrating— Returns whether or not the Inertial Sensor is calibrating.reset_heading— Sets the heading of the Inertial Sensor to 0.reset_rotation— Sets the rotation of the Inertial Sensor to 0.changed— Registers a function to be called when the Inertial Sensor detects change.
Movimiento: medir la aceleración, la velocidad angular y la inclinación.
acceleration— Returns the linear acceleration along the x-, y-, or z-axis.gyro_rate— Returns the angular velocity around the x-, y-, or z-axis.orientation— Returns the roll, pitch, or yaw based on tilt and rotation.
Constructores: Inicialice y configure manualmente un sensor inercial.
Inertial— Creates an Inertial Sensor.
Orientación#
heading#
heading returns the current heading of the Inertial Sensor.
Usage:
brain_inertial.heading(units)
Parámetros |
Descripción |
|---|---|
|
Optional. The unit used to represent the heading:
|
# Display the heading after turning
drivetrain.turn_for(RIGHT, 450, DEGREES)
brain.screen.print(brain_inertial.heading())
rotation#
rotation returns the current rotation of the Inertial Sensor.
Usage:
brain_inertial.rotation(units)
Parámetros |
Descripción |
|---|---|
|
Optional. The unit used to represent the rotation:
|
# Display the rotation value after turning
drivetrain.turn_for(RIGHT, 450, DEGREES)
brain.screen.print(brain_inertial.rotation())
calibrate#
calibrate calibrates the Inertial Sensor. All subsequent lines will wait for the calibration to complete before executing. Calibration is an internal procedure that measures and compensates for sensor noise and drift over a specified period. During this time, the Brain must remain completely still (i.e., on a stable surface without any external movement). Movement during calibration will produce inaccurate results.
El VEX Brain intenta calibrarse automáticamente al inicio de cada proyecto. Sin embargo, si el robot se transporta o se mueve durante el inicio del proyecto, es posible que el sensor no se calibre correctamente o que la calibración sea incorrecta.
Usage:
brain_inertial.calibrate()
Parámetro |
Descripción |
|---|---|
Este método no tiene parámetros. |
# Start calibration
brain_inertial.calibrate()
# Print after calibration
while brain_inertial.is_calibrating():
brain.screen.clear_screen()
brain.screen.set_cursor(1, 1)
brain.screen.print("Inertial Sensor")
brain.screen.next_row()
brain.screen.print("Calibrating")
wait(50, MSEC)
brain.screen.clear_screen()
brain.screen.set_cursor(1, 1)
brain.screen.print("Done!")
set_heading#
set_heading() sets the heading of the Inertial Sensor to a specified value.
Usage:
brain_inertial.set_heading(value, units)
Parámetros |
Descripción |
|---|---|
|
El valor del encabezado a establecer. |
|
Optional. The unit used to represent the new heading:
|
# Turn the robot around
brain_inertial.set_heading(180)
drivetrain.turn_to_heading(0)
set_rotation#
set_rotation() sets the rotation of the Inertial Sensor. Rotation is automatically set to 0 at the start of a project.
Usage:
brain_inertial.set_rotation(value, units)
Parámetros |
Descripción |
|---|---|
|
El valor de rotación a establecer. |
|
Optional. The unit used to represent the new rotation value:
|
# Turn the robot around
brain_inertial.set_rotation(-180)
drivetrain.turn_to_rotation(0)
is_calibrating#
is_calibrating checks if the Inertial Sensor is currently calibrating.
True— The Inertial Sensor is calibrating.False— The Inertial Sensor is not calibrating.
Usage:
brain_inertial.is_calibrating()
Parámetro |
Descripción |
|---|---|
Este método no tiene parámetros. |
# Start calibration
brain_inertial.calibrate()
# Print while waiting for calibration
while brain_inertial.is_calibrating():
brain.screen.clear_screen()
brain.screen.set_cursor(1, 1)
brain.screen.print("Inertial Sensor")
brain.screen.next_row()
brain.screen.print("Calibrating")
wait(50, MSEC)
brain.screen.clear_screen()
brain.screen.set_cursor(1, 1)
brain.screen.print("Done!")
reset_heading#
reset_heading resets the heading of the Inertial Sensor to 0.
Usage:
brain_inertial.reset_heading()
Parámetros |
Descripción |
|---|---|
Este método no tiene parámetros. |
# Turn the robot before and after resetting the heading
drivetrain.turn_to_heading(90, DEGREES)
wait(0.5,SECONDS)
brain_inertial.reset_heading()
drivetrain.turn_to_heading(90, DEGREES)
reset_rotation#
reset_rotation resets the rotation of the Inertial Sensor to 0.
Usage:
brain_inertial.reset_rotation()
Parámetros |
Descripción |
|---|---|
Este método no tiene parámetros. |
# Turn the robot before and after resetting the rotation
drivetrain.turn_to_rotation(-90, DEGREES)
wait(0.5,SECONDS)
brain_inertial.reset_rotation()
drivetrain.turn_to_rotation(-90, DEGREES)
changed#
changed registers a function to be called when the Inertial Sensor’s heading changes.
Usage:
brain_inertial.changed(callback, arg)
Parámetros |
Descripción |
|---|---|
|
Registra una función que se llamará cuando cambie la dirección del sensor inercial. |
|
Opcional. Una tupla de argumentos para pasar a la función de devolución de llamada. |
def heading_changed():
brain.screen.set_cursor(1, 1)
brain.screen.clear_screen()
brain.screen.print("my heading ")
brain.screen.next_row()
brain.screen.print("has changed!")
wait(0.1, SECONDS)
# Call the function when the inertial heading is changed
wait(1, SECONDS)
drivetrain.turn_for(RIGHT, 90, DEGREES, wait=False)
brain_inertial.changed(heading_changed)
wait(15, MSEC)
Movimiento#
acceleration#
acceleration returns the acceleration of the Inertial Sensor as a float.
Usage:
brain_inertial.acceleration(axis)
Parámetros |
Descripción |
|---|---|
eje |
The axis to return the acceleration from:
|
# Display acceleration after moving
vexcode_brain_precision = 2
drivetrain.set_drive_velocity(100,PERCENT)
brain.screen.print("Resting: ")
brain.screen.next_row()
brain.screen.print(brain_inertial.acceleration(XAXIS))
brain.screen.next_row()
wait(1, SECONDS)
drivetrain.drive_for(FORWARD, 500, MM, wait=False)
wait(0.01,SECONDS)
brain.screen.print("Startup: ")
brain.screen.next_row()
brain.screen.print(brain_inertial.acceleration(XAXIS))
gyro_rate#
gyro_rate returns the gyro rate for one axis of the Inertial Sensor.
Usage:
brain_inertial.gyro_rate(axis, units)
Parámetros |
Descripción |
|---|---|
|
The axis to return the gyro rate from:
|
|
Optional. The unit used to represent the gyro rate:
|
# Display the z-axis gyro rate
drivetrain.turn(RIGHT)
wait(1, SECONDS)
brain.screen.print(brain_inertial.gyro_rate(ZAXIS, RPM))
drivetrain.stop()
orientation#
orientation returns the orientation for one axis of the Inertial Sensor.
Usage:
brain_inertial.orientation(axis, units)
Parámetros |
Descripción |
|---|---|
|
The axis to return the orientation from:
|
|
Optional. The unit used to represent the orientation:
|
# Display the roll, pitch, and yaw of the Brain as it
# is rotated by hand
while True:
brain.screen.clear_screen()
brain.screen.print(brain_inertial.orientation(OrientationType.ROLL))
brain.screen.next_row()
brain.screen.print(brain_inertial.orientation(OrientationType.PITCH))
brain.screen.next_row()
brain.screen.print(brain_inertial.orientation(OrientationType.YAW))
brain.screen.next_row()
brain.screen.set_cursor(1, 1)
wait(0.1,SECONDS)
Constructores#
Constructors are used to manually create Inertial objects, which are necessary for configuring an Inertial Sensor outside of VEXcode.
Inertial#
Inertial creates an Inertial Sensor.
Usage:
Inertial(smartport)
Parámetro |
Descripción |
|---|---|
|
Opcional. Si se utiliza el sensor inercial integrado del IQ (2.ª generación) Brain, no se necesita un puerto inteligente. Si se conecta un sensor inercial externo, especifique el puerto inteligente al que está conectado, escrito como PORTx, donde x es el número del puerto. |
# Create a new object "brain_inertial" with the
# Inertial class
brain_inertial = Inertial()
left_drive_smart = Motor(Ports.PORT1, 1.0, False)
right_drive_smart = Motor(Ports.PORT6, 1.0, True)
drivetrain = SmartDrive(left_drive_smart, right_drive_smart, brain_inertial, 200)
brain_inertial.set_heading(180)
drivetrain.turn_to_heading(0)


