Inertiel#

Introduction#

Un capteur inertiel mesure les mouvements et les virages du robot.

Le capteur inertiel utilise deux éléments pour cela. Le gyroscope mesure les mouvements de rotation, tels que le cap, la rotation, la vitesse angulaire et l’orientation. L’accéléromètre mesure les variations de mouvement, comme l’accélération ou le ralentissement selon les axes x, y et z.

Pour que les commandes inertielles apparaissent dans VEXcode V5, un capteur inertiel doit être configuré dans la fenêtre Appareils.

Vous trouverez ci-dessous une liste des méthodes disponibles :

Orientation — Lire et contrôler le cap, la rotation et l’étalonnage des capteurs.

  • heading — Renvoie la direction vers laquelle le capteur est orienté, de 0 à 359,99 degrés.

  • rotation — Renvoie la distance de rotation du capteur.

  • gyro_rate — Renvoie la vitesse de rotation du capteur sur l’axe sélectionné.

  • orientation — Renvoie l’angle de roulis, de tangage ou de lacet du capteur inertiel.

  • set_heading — Définit le cap actuel du capteur inertiel sur une nouvelle valeur de cap.

  • set_rotation — Définit la rotation actuelle du capteur inertiel sur une nouvelle valeur de rotation.

  • calibrate — Calibre le capteur inertiel.

  • reset_heading — Réinitialise le cap actuel du capteur inertiel à 0 degré.

  • reset_rotation — Réinitialise la rotation actuelle du capteur inertiel à 0 degré.

  • is_calibrating — Renvoie si le capteur inertiel est actuellement en cours d’étalonnage.

  • changed — Enregistre une fonction à exécuter lorsque la valeur du capteur inertiel change.

  • installed — Vérifie si le capteur inertiel est installé.

Mouvement — Mesure de l’accélération, des collisions et du comportement en virage.

  • acceleration — Renvoie la vitesse à laquelle le capteur accélère ou ralentit sur l’axe sélectionné.

  • collision — Enregistre une fonction à exécuter lorsque le capteur inertiel détecte une collision.

  • set_turn_type — Définit la direction de virage qui renvoie des valeurs de cap positives.

  • get_turn_type — Renvoie quelle direction de virage renvoie des valeurs de cap positives.

Constructeur

  • Inertial – Crée un capteur inertiel.

Orientation#

heading#

Le cap est la direction vers laquelle le capteur est orienté, mesurée en degrés de 0 à 359,99. heading renvoie le cap actuel du capteur sous forme de nombre flottant.

Le cap initial est de 0 degré. Si le capteur dépasse 359,99 degrés, le cap revient à 0 degré.

Usage:
inertial_1.heading(units)

Paramètres

Description

units

Optionnel. Unité de cap : DEGREES (par défaut) ou TURNS

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

rotation#

La rotation correspond à l’angle de rotation du capteur, mesuré en degrés. Contrairement au cap, la rotation peut dépasser 359,99 degrés ou être inférieure à 0 degré. Au début d’un projet, la valeur de rotation est fixée à 0 degré. La commande rotation renvoie la rotation actuelle du capteur inertiel sous forme de nombre flottant.

Tourner à droite augmente la rotation, et tourner à gauche la diminue. Par exemple, deux tours complets à droite correspondent à une rotation de 720 degrés. Un tour complet à gauche, à partir de 0 degré, correspond à une rotation de -360 degrés.

Usage:
inertial_1.rotation(units)

Paramètres

Description

units

Optionnel. Unité de rotation : DEGREES (par défaut) ou TURNS

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

gyro_rate#

La fréquence du gyroscope correspond à la vitesse de rotation du capteur inertiel. La valeur gyro_rate renvoie la vitesse de rotation actuelle du capteur inertiel sur l’axe sélectionné, sous forme de nombre flottant.

La valeur peut être positive ou négative selon le sens de rotation du capteur sur cet axe.

Usage:
inertial_1.gyro_rate(axis, units)

Paramètres

Description

axis

Axe de retour de la vitesse du gyroscope :

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

units

Optionnel. Unité de vitesse du gyroscope :

  • VelocityUnits.DPS (par défaut)
  • 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#

L’orientation correspond à l’angle actuel du capteur inertiel sur un axe de rotation sélectionné. La valeur orientation renvoie le roulis, le tangage ou le lacet du capteur inertiel, compris entre -180,00 et 180,00 degrés, sous forme de nombre flottant.

Le roulis, le tangage et le lacet décrivent différentes façons dont le capteur peut s’incliner ou tourner.

Usage:
inertial_1.orientation(type, units)

Paramètres

Description

type

Angle d’orientation à renvoyer :

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

units

Optionnel. Unité d’orientation :

  • DEGREES (par défaut)
  • 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#

Le cap est la direction vers laquelle le capteur est orienté, mesurée en degrés de 0 à 359,99. set_heading modifie le cap actuel du capteur inertiel à une nouvelle valeur de cap.

Par exemple, si le capteur est orienté vers la droite, le fait de régler son cap à 0 degré définit cette position comme le nouveau cap zéro. Le capteur peut alors suivre d’autres caps en fonction de cette nouvelle direction.

Usage:
inertial_1.set_heading(value, units)

Paramètres

Description

value

Valeur du cap, en degrés, à définir pour le capteur. Cette valeur peut être comprise entre 0 et 359,99.

units

Optionnel. Unité de cap : DEGREES (par défaut) ou TURNS

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

set_rotation#

La rotation correspond à l’angle de rotation du capteur, mesuré en degrés. Contrairement au cap, la rotation peut dépasser 359,99 degrés ou être inférieure à 0 degré. Au début d’un projet, la valeur de rotation est fixée à 0 degré. La commande set_rotation modifie la rotation actuelle du capteur inertiel.

Par exemple, si le capteur a effectué deux tours complets vers la droite, sa valeur de rotation sera de 720 degrés. Régler la rotation à 0 degré la remettra à zéro. Le capteur pourra ensuite suivre les rotations en fonction de cette nouvelle valeur.

Usage:
inertial_1.set_rotation(value, units)

Paramètres

Description

value

Valeur de rotation, en degrés, à définir pour le capteur. Il peut s’agir d’un entier ou d’un nombre décimal (flottant).

units

Optionnel. Unité de rotation : DEGREES (par défaut) ou TURNS

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

calibrate#

calibrate calibre le capteur inertiel.

L’étalonnage permet au capteur de mesurer correctement les virages. Veillez à ce que le capteur reste immobile pendant l’étalonnage. Si le capteur bouge pendant cette opération, les valeurs de cap, de rotation, de vitesse radiale et d’orientation risquent d’être erronées.

Le projet attendra la fin de l’étalonnage avant d’exécuter la ligne de code suivante.

Usage:
inertial_1.calibrate()

Paramètres

Description

Cette méthode ne comporte aucun paramètre.

# 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 réinitialise le cap actuel du capteur inertiel à 0 degré.

Après utilisation de cette méthode, la direction actuelle du capteur devient le nouveau cap à 0 degré.

Usage:
inertial_1.reset_heading()

Paramètres

Description

Cette méthode ne comporte aucun paramètre.

reset_rotation#

reset_rotation réinitialise la rotation actuelle du capteur inertiel à 0 degré.

Une fois cette méthode utilisée, le capteur suit les virages futurs à partir de la nouvelle valeur de rotation de 0 degré.

Usage:
inertial_1.reset_rotation()

Paramètres

Description

Cette méthode ne comporte aucun paramètre.

is_calibrating#

is_calibrating indique si le capteur inertiel est actuellement en cours d’étalonnage.

  • True — Le capteur inertiel est en cours d’étalonnage.

  • False — Le capteur inertiel n’est pas en cours d’étalonnage.

Usage:
inertial_1.is_calibrating()

Paramètres

Description

Cette méthode ne comporte aucun paramètre.

changed#

changed enregistre une fonction à appeler chaque fois que la valeur du capteur inertiel change.

Usage:
inertial_1.changed(callback, arg)

Paramètres

Description

callback

Une fonction définie précédemment qui s’exécute lorsque la valeur du capteur inertiel change.

arg

Facultatif. Un tuple contenant les arguments à transmettre à la fonction de rappel. Voir Utilisation des fonctions avec paramètres pour plus d’informations.

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

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

installed#

installed vérifie si le capteur inertiel est installé.

  • True — Le capteur inertiel est installé.

  • False — Le capteur inertiel n’est pas installé.

Usage:
inertial_1.installed()

Paramètres

Description

Cette méthode ne comporte aucun paramètre.

Mouvement#

acceleration#

L’accélération correspond à la vitesse à laquelle le capteur accélère ou ralentit. Une accélération acceleration renvoie l’accélération du capteur inertiel sur l’axe sélectionné, de -4,0 G à 4,0 G, sous forme de nombre flottant.

G est une unité de mesure de l’accélération. 1 G correspond approximativement à l’accélération due à la gravité que l’on ressent en position assise immobile.

La valeur peut être positive ou négative selon la direction de l’accélération sur l’axe sélectionné. Les options d’axe sont AxisType.XAXIS, AxisType.YAXISet AxisType.ZAXIS.

Usage:
inertial_1.acceleration(type)

Paramètres

Description

type

Axe de mesure de l’accélération :

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

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

collision#

collision enregistre une fonction à appeler chaque fois que le capteur inertiel détecte un impact ou une collision soudaine.

Usage:
inertial_1.collision(callback, arg)

Paramètres

Description

callback

Une fonction définie précédemment qui s’exécute lorsqu’une collision est détectée.

arg

Facultatif. Un tuple contenant les arguments à transmettre à la fonction de rappel. Voir Utilisation des fonctions avec paramètres pour plus d’informations.

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 définit quelle direction de virage renvoie des valeurs de cap positives.

Usage:
inertial_1.set_turn_type(turntype)

Paramètres

Description

turntype

Type de virage à sélectionner :

  • LEFT
  • RIGHT

get_turn_type#

get_turn_type renvoie la direction de virage qui renvoie des valeurs de cap positives.

  • LEFT — Les virages à gauche renvoient des valeurs de cap positives.

  • RIGHT — Les virages à droite renvoient des valeurs de cap positives.

Usage:
inertial_1.get_turn_type()

Paramètres

Description

Cette méthode ne comporte aucun paramètre.

Constructeurs#

Inertial#

Inertial crée un capteur inertiel.

Usage:
Inertial(port)

Paramètres

Description

port

Le port intelligent auquel le capteur inertiel est connecté, de 1 à 21.

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