Transmission#

Introduction#

Le robot VEX V5 utilise une transmission pour se déplacer et tourner. Une transmission est composée de moteurs et de roues qui fonctionnent ensemble pour déplacer le robot.

A configured drivetrain can use an Inertial Sensor, GPS Sensor, Gyro Sensor, or no sensor. When a sensor is used, the drivetrain uses it to help the robot move and turn precisely. At the start of each project, the drivetrain calibrates the sensor automatically. Keep the robot still during calibration, so the robot can move and turn correctly.

Il existe plusieurs façons de coder la transmission. Cette page utilise drivetrain comme exemple. Remplacez ce nom par celui que vous avez configuré.

Vous trouverez ci-dessous la liste de toutes les méthodes de transmission :

Actions — Déplacer et faire pivoter le robot.

  • drive — Déplace le robot vers l’avant ou vers l’arrière en permanence.

  • drive_for — Déplace le robot vers l’avant ou vers l’arrière sur une distance spécifique.

  • turn — Fait tourner le robot à gauche ou à droite indéfiniment.

  • turn_for — Tourne le robot à gauche ou à droite d’un nombre spécifique de degrés.

  • turn_to_heading — Oriente le robot vers un cap spécifique compris entre -359 et 359 degrés. Le robot empruntera le chemin le plus court pour atteindre le cap cible.

  • turn_to_rotation — Fait tourner le robot vers une rotation spécifique.

  • stop — Arrête le mouvement du robot.

  • calibrate_drivetrain – Calibre le capteur configuré avec la transmission.

Modificateurs — Ajustez les paramètres de la transmission.

  • set_drive_velocity — Indique au robot à quelle vitesse conduire.

  • set_turn_velocity — Indique au robot à quelle vitesse tourner.

  • set_stopping — Indique comment le robot s’arrêtera de bouger : en freinant, en roulant sur sa roue ou en maintenant.

  • set_timeout — Définit le nombre de secondes pendant lesquelles le robot essaiera de terminer un mouvement.

  • set_heading — Change le cap actuel du robot en un nouveau cap.

  • set_rotation — Change la rotation actuelle du robot en une nouvelle rotation.

  • set_turn_threshold – Indique à quelle distance le robot doit se rapprocher d’un angle cible avant qu’un virage ne soit terminé.

  • set_turn_constant – Modifie la force avec laquelle le robot corrige ses virages.

  • set_turn_direction_reverse – Modifie si le sens de rotation de la transmission intelligente est inversé.

Getters — Vérifiez l’état de la transmission.

  • is_done — Renvoie si le robot a fini de se déplacer, sous forme de valeur booléenne.

  • is_moving — Renvoie si le robot est en mouvement, sous forme de valeur booléenne.

  • heading — Renvoie le cap actuel du robot de 0 à 359,99 degrés.

  • rotation — Renvoie la rotation actuelle du robot.

  • velocity — Renvoie la vitesse à laquelle le robot se déplace.

  • current — Renvoie la quantité de courant électrique utilisée par la transmission.

  • power — Renvoie la vitesse à laquelle la transmission utilise l’énergie.

  • torque — Renvoie la quantité de couple utilisée par la transmission.

  • efficiency — Renvoie l’efficacité avec laquelle la transmission utilise la puissance.

  • temperature — Renvoie la température de la transmission.

  • get_timeout – Renvoie le paramètre de délai d’attente actuel.

Constructeurs – Créez et configurez manuellement la transmission.

Actes#

drive#

La position drive permet au robot d’avancer ou de reculer indéfiniment. Il continuera son mouvement jusqu’à ce qu’une autre action, comme tourner ou s’arrêter, lui soit donnée. La vitesse (en tours par minute ou en degrés par seconde) est limitée par le rapport de transmission.

Usage:
drivetrain.drive(direction, velocity, units)

Paramètres

Description

direction

La direction dans laquelle le robot se déplace : FORWARD ou REVERSE.

velocity

Optional. The velocity to drive with from 0% to 100% when using PERCENT, from 0 to 600 rpm when using RPM, or from 0 to 3600 degrees per second when using VelocityUnits.DPS. This can be an integer or decimal (float). If no velocity is provided, the robot drives at the current drive velocity.

units

Facultatif. L’unité de vitesse : RPM (rotations par minute, par défaut), PERCENTou VelocityUnits.DPS (degrés par seconde).

# Drive forward, then stop
drivetrain.drive(FORWARD)
wait(2, SECONDS)
drivetrain.stop()

# Drive forward at 360 degrees per second
drivetrain.drive(FORWARD, 360.0, VelocityUnits.DPS)

drive_for#

La commande drive_for déplace le robot en avant ou en arrière sur une distance précise. Le programme attendra la fin du déplacement avant d’exécuter la ligne de code suivante. La limite de vitesse (en tours par minute ou en degrés par seconde) est déterminée par le rapport de transmission.

Usage:
drivetrain.drive_for(direction, distance, units, velocity, units_v, wait)

Paramètres

Description

direction

La direction dans laquelle le robot se déplace : FORWARD ou REVERSE.

distance

La distance parcourue par le robot. Cela peut être un entier integer ou un nombre décimal (float).

units

Optionnel. Unité de distance : INCHES (par défaut) ou MM (millimètres).

velocity

Optional. The velocity to drive with from 0% to 100% when using PERCENT, from 0 to 600 rpm when using RPM, or from 0 to 3600 degrees per second when using VelocityUnits.DPS. This can be an integer or decimal (float). If no velocity is provided, the robot drives at the current drive velocity.

units_v

Facultatif. L’unité de vitesse : RPM (rotations par minute, par défaut), PERCENTou VelocityUnits.DPS (degrés par seconde).

wait

Optionnel. wait=True (par défaut) : le programme attend que le robot ait fini de se déplacer avant d’exécuter la ligne de code suivante. wait=False  : la ligne de code suivante s’exécute immédiatement.

# Drive forwards and backwards
drivetrain.drive_for(FORWARD, 5)
wait(1, SECONDS)
drivetrain.drive_for(REVERSE, 5)

turn#

turn fait tourner le robot à gauche ou à droite en continu. Il continuera de tourner jusqu’à ce qu’une autre action lui soit donnée, comme avancer ou s’arrêter. La vitesse de rotation (en tours par minute ou en degrés par seconde) est limitée par le rapport de transmission.

Usage:
drivetrain.turn(direction, velocity, units)

Paramètres

Description

direction

Direction dans laquelle le robot tourne : LEFT ou RIGHT.

velocity

Facultatif. La vitesse de rotation, de 0 % à 100 % avec PERCENT, de 0 à 600 tr/min avec RPM, ou de 0 à 3 600 degrés par seconde avec VelocityUnits.DPSIl peut s’agir d’un integer ou d’un nombre décimal (float). Si aucune vitesse n’est spécifiée, le robot tourne à la vitesse de rotation actuelle.

units

Facultatif. L’unité de vitesse : RPM (rotations par minute, par défaut), PERCENTou VelocityUnits.DPS (degrés par seconde).

# Turn right, then stop
drivetrain.turn(RIGHT)
wait(2, SECONDS)
drivetrain.stop()

turn_for#

La commande turn_for fait pivoter le robot vers la gauche ou la droite d’un nombre précis de degrés. La rotation est relative à la position actuelle du robot. Le programme attend la fin de la rotation avant d’exécuter la ligne de code suivante. Pour les tours par minute (RPM) ou les degrés par seconde, la limite est ajustée en fonction du rapport de transmission.

Usage:
drivetrain.turn_for(direction, angle, units, velocity, units_v, wait)

Paramètres

Description

direction

Direction dans laquelle le robot tourne : LEFT ou RIGHT.

angle

Le nombre de degrés de rotation du robot. Cela peut être un entier integer ou un nombre décimal (float).

units

Optionnel. Unité de rotation : DEGREES (par défaut) ou TURNSUn tour équivaut à 360 degrés.

velocity

Facultatif. La vitesse de rotation, de 0 % à 100 % avec PERCENT, de 0 à 600 tr/min avec RPM, ou de 0 à 3 600 degrés par seconde avec VelocityUnits.DPSIl peut s’agir d’un integer ou d’un nombre décimal (float). Si aucune vitesse n’est spécifiée, le robot tourne à la vitesse de rotation actuelle.

units_v

Facultatif. L’unité de vitesse : RPM (rotations par minute, par défaut), PERCENTou VelocityUnits.DPS (degrés par seconde).

wait

Optionnel. wait=True (par défaut) : le programme attend que le robot ait terminé sa rotation avant d’exécuter la ligne de code suivante. wait=False  : la ligne de code suivante s’exécute immédiatement.

# Turn left, then turn around to the right
drivetrain.turn_for(LEFT, 90)
drivetrain.turn_for(RIGHT, 180)

turn_to_heading#

Le cap est la direction vers laquelle le robot est orienté, mesurée en degrés. turn_to_heading oriente le robot vers un cap spécifique compris entre -359 et 359 degrés. Le robot empruntera le chemin le plus court pour atteindre le cap cible.

Le cap initial du robot est de 0 degré.

Le projet attendra que le robot ait fini de tourner avant d’exécuter la ligne de code suivante.

Remarque : Cette fonction n’est disponible que si la transmission est configurée avec un capteur inertiel, un capteur GPS ou un capteur gyroscopique dans la fenêtre Appareils.

Usage:
drivetrain.turn_to_heading(angle, units, velocity, units_v, wait)

Paramètres

Description

angle

La direction vers laquelle le robot doit être orienté, en degrés. Cela peut être un entier integer ou un nombre décimal (float) compris entre -359 et 359.

units

Facultatif. Unité de titre : DEGREES (par défaut).

velocity

Facultatif. La vitesse de rotation, de 0 % à 100 % avec PERCENT, de 0 à 600 tr/min avec RPM, ou de 0 à 3 600 degrés par seconde avec VelocityUnits.DPSIl peut s’agir d’un integer ou d’un nombre décimal (float). Si aucune vitesse n’est spécifiée, le robot tourne à la vitesse de rotation actuelle.

units_v

Facultatif. L’unité de vitesse : RPM (rotations par minute, par défaut), PERCENTou VelocityUnits.DPS (degrés par seconde).

wait

Optionnel. wait=True (par défaut) : le programme attend que le robot ait terminé sa rotation avant d’exécuter la ligne de code suivante. wait=False  : la ligne de code suivante s’exécute immédiatement.

# Turn to face the cardinal directions
drivetrain.turn_to_heading(90, DEGREES)
wait(1, SECONDS)
drivetrain.turn_to_heading(180, DEGREES)
wait(1, SECONDS)
drivetrain.turn_to_heading(270, DEGREES)
wait(1, SECONDS)
drivetrain.turn_to_heading(0, DEGREES)

# Turn twice slowly
drivetrain.turn_to_heading(90, DEGREES, 20, PERCENT)
wait(1, SECONDS)
drivetrain.turn_to_heading(180, DEGREES, 20, PERCENT)

turn_to_rotation#

turn_to_rotation fait tourner le robot dans une rotation spécifique.

La rotation correspond à l’angle de rotation du robot, mesuré en degrés. Au début d’un projet, la valeur de rotation est fixée à 0 degré. La rotation peut également être définie à l’aide de la méthode set_rotation.

Les valeurs de rotation sont absolues. Cela signifie que le sens de rotation dépend de la rotation actuelle du robot. Tourner à droite augmente la rotation, et tourner à gauche la diminue.

Par exemple, si le robot démarre à 0 degré et que vous effectuez une rotation de 720 degrés, il tournera deux fois à droite. Si vous effectuez ensuite une rotation de 360 ​​degrés, il tournera une fois à gauche, car 360 est inférieur à 720.

Le projet attendra que le robot ait fini de tourner avant d’exécuter la ligne de code suivante.

Remarque : Cette méthode n’est disponible que si la transmission est configurée avec un capteur inertiel, un capteur GPS ou un capteur gyroscopique dans la fenêtre Appareils.

Usage:
drivetrain.turn_to_rotation(angle, units, velocity, units_v, wait)

Paramètres

Description

angle

La valeur de rotation, en degrés ou en tours, vers laquelle le robot tournera. Cela peut être un entier integer ou un nombre décimal (float).

units

Optionnel. Unité de rotation : DEGREES (par défaut) ou TURNSUn tour équivaut à 360 degrés.

velocity

Facultatif. La vitesse de rotation, de 0 % à 100 % avec PERCENT, de 0 à 600 tr/min avec RPM, ou de 0 à 3 600 degrés par seconde avec VelocityUnits.DPSIl peut s’agir d’un integer ou d’un nombre décimal (float). Si aucune vitesse n’est spécifiée, le robot tourne à la vitesse de rotation actuelle.

units_v

Facultatif. L’unité de vitesse : RPM (rotations par minute, par défaut), PERCENTou VelocityUnits.DPS (degrés par seconde).

wait

Optionnel. wait=True (par défaut) : le programme attend que le robot ait terminé sa rotation avant d’exécuter la ligne de code suivante. wait=False  : la ligne de code suivante s’exécute immédiatement.

# Turn left, then spin in a circle clockwise and face right
drivetrain.turn_to_rotation(-90, DEGREES)
wait(1, SECONDS)
drivetrain.turn_to_rotation(450, DEGREES)

# Turn left then slowly spin in a circle clockwise
drivetrain.turn_to_rotation(-90, DEGREES)
wait(1, SECONDS)
drivetrain.turn_to_rotation(450, DEGREES, 20, PERCENT)

stop#

stop arrête le mouvement du robot.

Usage:
drivetrain.stop(mode)

Paramètres

Description

mode

Optionnel. Mode d’arrêt du robot : BRAKE (par défaut), BRAKEou COAST

  • COAST — Arrêt immédiat.
  • HOLD — Ralentissement jusqu’à l’arrêt.
  • HOLD — Arrêt immédiat et maintien de la position des roues.

# Drive forward, then stop
drivetrain.drive(FORWARD)
wait(2, SECONDS)
drivetrain.stop()

calibrate_drivetrain#

calibrate_drivetrain est une fonction intégrée qui calibre le capteur inertiel, le capteur GPS ou le capteur gyroscopique configuré de la transmission.

L’étalonnage permet au capteur de mesurer correctement les mouvements. Maintenez le robot immobile pendant environ 2 secondes lors de l’étalonnage. Si le robot bouge pendant cette opération, le capteur risque de ne pas mesurer correctement les mouvements.

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

Remarque : Cette fonction n’est disponible que si la transmission est configurée avec un capteur inertiel, un capteur GPS ou un capteur gyroscopique dans la fenêtre Appareils.

Usage:
calibrate_drivetrain()

Paramètres

Description

Cette fonction n’a pas de paramètres.

Mutateurs#

set_drive_velocity#

La commande set_drive_velocity indique au robot sa vitesse de déplacement. Un pourcentage plus élevé augmente la vitesse du robot, et un pourcentage plus faible la diminue. Pour les tours par minute (tr/min) ou les degrés par seconde (°/s), la limite est déterminée par le rapport de transmission.

Chaque projet commence avec le robot se déplaçant par défaut à 50 % de sa vitesse maximale.

Remarque : Une vitesse plus élevée rend le robot plus rapide, mais peut nuire à sa précision. Une vitesse plus faible le rend plus lent, mais peut améliorer sa précision.

Usage:
drivetrain.set_drive_velocity(velocity, units)

Paramètres

Description

velocity

La vitesse de déplacement de 0 % à 100 % lors de l’utilisation PERCENT, de 0 à 600 tr/min lors de l’utilisation RPM, ou de 0 à 3600 degrés par seconde lors de l’utilisation VelocityUnits.DPSCela peut être un integer ou un nombre décimal (float).

units

Facultatif. L’unité de vitesse : RPM (rotations par minute, par défaut), PERCENTou VelocityUnits.DPS (degrés par seconde).

# Drive forward at the default velocity
drivetrain.drive_for(FORWARD, 100, MM)
wait(1, SECONDS)

# Drive slower
drivetrain.set_drive_velocity(20, PERCENT)
drivetrain.drive_for(FORWARD, 100, MM)
wait(1, SECONDS)

# Drive faster
drivetrain.set_drive_velocity(100, PERCENT)
drivetrain.drive_for(FORWARD, 100, MM)
wait(1, SECONDS)

set_turn_velocity#

La commande set_turn_velocity indique au robot sa vitesse de rotation. Un pourcentage plus élevé accélère la rotation, et un pourcentage plus faible la ralentit. Pour les tours par minute (RPM) ou les degrés par seconde (DPS), la limite dépend du rapport de transmission.

Chaque projet commence par défaut avec le robot tournant à 50 % de sa vitesse maximale.

Remarque : Une vitesse plus élevée permet au robot de tourner plus vite, mais sa précision peut être moindre. Une vitesse plus faible permet au robot de tourner plus lentement, mais sa précision peut être accrue.

Usage:
drivetrain.set_turn_velocity(velocity, units)

Paramètres

Description

velocity

La vitesse de rotation de 0 % à 100 % lors de l’utilisation PERCENT, de 0 à 600 tr/min lors de l’utilisation RPM, ou de 0 à 3600 degrés par seconde lors de l’utilisation VelocityUnits.DPSCela peut être un integer ou un nombre décimal (float).

units

Facultatif. L’unité de vitesse : RPM (rotations par minute, par défaut), PERCENTou VelocityUnits.DPS (degrés par seconde).

# Turn at the default velocity
drivetrain.turn_for(RIGHT, 100)
wait(1, SECONDS)

# Turn slower
drivetrain.set_turn_velocity(20, PERCENT)
drivetrain.turn_for(RIGHT, 100)
wait(1, SECONDS)

# Turn faster
drivetrain.set_turn_velocity(100, PERCENT)
drivetrain.turn_for(RIGHT, 100)
wait(1, SECONDS)

set_stopping#

set_stopping définit comment le robot arrêtera de bouger : en freinant, en laissant le robot rouler ou en maintenant son mouvement.

Usage:
drivetrain.set_stopping(mode)

Paramètres

Description

mode

Mode d’arrêt du robot :

  • BRAKE — Arrêt immédiat.
  • COAST — Ralentissement jusqu’à l’arrêt.
  • HOLD — Arrêt immédiat et maintien de la position des roues.

Si cette méthode n’est pas utilisée, le robot utilisera BRAKE lors de l’arrêt.

set_timeout#

set_timeout définit le délai (en secondes) pendant lequel le robot tente de terminer un mouvement. S’il n’y parvient pas, il interrompt ses tentatives et passe à la ligne de code suivante. Cela évite qu’il ne se bloque.

Usage:
drivetrain.set_timeout(value, units)

Paramètres

Description

value

Le temps dont dispose le robot pour tenter de terminer un mouvement. Cela peut être un entier positif integer ou un nombre décimal (float).

units

Facultatif. L’unité de temps : MSEC (millisecondes, par défaut) ou SECONDS.

set_heading#

Le cap est la direction vers laquelle le robot est orienté, mesurée en degrés. La commande set_heading modifie le cap actuel du robot en lui attribuant une nouvelle valeur.

Par exemple, si le robot s’est tourné vers la droite, le fait de régler son cap à 0 degré fait de cette position (orientée vers la droite) le nouveau point de référence à 0 degré. Le robot peut ensuite se tourner vers d’autres positions en fonction de ce nouveau cap.

Remarque : Cette méthode n’est disponible que si la transmission est configurée avec un capteur inertiel, un capteur GPS ou un capteur gyroscopique dans la fenêtre Appareils.

Usage:
drivetrain.set_heading(heading, units)

Paramètres

Description

heading

La valeur de cap, en degrés ou en tours, à définir pour le robot. Cela peut être un entier integer ou un nombre décimal (float).

units

Optionnel. Unité de cap : DEGREES (par défaut) ou TURNSUn tour équivaut à 360 degrés.

# Face the new 0 degrees
drivetrain.set_heading(90, DEGREES)
drivetrain.turn_to_heading(0, DEGREES)

set_rotation#

La rotation correspond à l’angle de rotation du robot, mesuré en degrés. Au début d’un projet, la valeur de rotation est fixée à 0 degré. La commande set_rotation modifie la rotation actuelle du robot en lui attribuant une nouvelle valeur.

Par exemple, si le robot a effectué deux tours complets vers la droite, sa valeur de rotation sera de 720 degrés. Définir la rotation à 0 degré la réinitialisera de 720 à 0 degré. Le robot pourra ensuite effectuer des rotations en fonction de cette nouvelle valeur.

Remarque : Cette méthode n’est disponible que si la transmission est configurée avec un capteur inertiel, un capteur GPS ou un capteur gyroscopique dans la fenêtre Appareils.

Usage:
drivetrain.set_rotation(rotation, units)

Paramètres

Description

rotation

La valeur de rotation, en degrés ou en tours, à définir pour le robot. Cela peut être un entier integer ou un nombre décimal (float).

units

Optionnel. Unité de rotation : DEGREES (par défaut) ou TURNSUn tour équivaut à 360 degrés.

# Spin counterclockwise two times
drivetrain.set_rotation(720, DEGREES)
drivetrain.turn_to_rotation(0, DEGREES)

set_turn_threshold#

set_turn_threshold définit à quelle distance le robot doit se rapprocher d’un angle cible avant qu’un virage ne soit terminé.

Un seuil plus bas permet des virages plus précis, mais le robot risque de mettre plus de temps à les terminer. Un seuil plus élevé permet des virages plus rapides, mais ils risquent d’être moins précis.

Remarque : Cette méthode n’est disponible que si la transmission est configurée avec un capteur inertiel, un capteur GPS ou un capteur gyroscopique dans la fenêtre Appareils.

Usage:
drivetrain.set_turn_threshold(value)

Paramètres

Description

value

Le seuil de virage, en degrés. Il peut s’agir d’un entier integer ) ou d’un nombre décimal (float). Le seuil de virage par défaut est de 1 degré.

set_turn_constant#

set_turn_constant modifie la force avec laquelle le robot corrige ses virages.

Plus la valeur est élevée, plus le robot corrige les virages avec force. Plus la valeur est faible, plus il corrige les virages en douceur. La valeur par défaut est 1,0.

Remarque : Cette méthode n’est disponible que si la transmission est configurée avec un capteur inertiel, un capteur GPS ou un capteur gyroscopique dans la fenêtre Appareils.

Usage:
drivetrain.set_turn_constant(value)

Paramètres

Description

value

La constante de rotation. Il peut s’agir d’un nombre décimal (float) compris entre 0,1 et 4,0. La valeur par défaut est 1,0.

set_turn_direction_reverse#

set_turn_direction_reverse modifie si le sens de rotation de la transmission intelligente est inversé.

Cette méthode peut être utilisée si la transmission tourne dans le sens inverse de celui prévu après une configuration manuelle dans le code. Elle fonctionne de la même manière que la définition du paramètre reverse sur True lors de la construction d’un SmartDrive.

Remarque : Cette méthode n’est disponible que si la transmission est configurée avec un capteur inertiel, un capteur GPS ou un capteur gyroscopique dans la fenêtre Appareils.

Usage:
drivetrain.set_turn_direction_reverse(value)

Paramètres

Description

value

Inversion du sens de rotation de la transmission intelligente : True inverse le sens de rotation, et False utilise le sens de rotation par défaut.

Getters#

is_done#

La fonction is_done renvoie is_done , indiquant si le robot a terminé son déplacement (valeur booléenne). Cette information peut servir à contrôler le déclenchement d’autres actions en fonction des mouvements du robot.

  • True — Le robot a terminé son déplacement.

  • False — Le robot est toujours en mouvement.

Cette méthode fonctionne en collaboration avec les méthodes Drivetrain suivantes qui ont le paramètre wait : drive_for, turn_for, turn_to_heading, et turn_to_rotation.

Usage:
drivetrain.is_done()

Paramètres

Description

Cette méthode ne comporte aucun paramètre.

is_moving#

La fonction is_moving renvoie une valeur booléenne indiquant si le robot est en mouvement ( is_moving . Cette information peut être utilisée pour contrôler le déclenchement d’autres comportements en fonction des mouvements du robot.

  • True — Le robot est en mouvement.

  • False — Le robot ne bouge pas.

Utilisation :

drivetrain.is_moving()

Paramètres

Description

Cette méthode ne comporte aucun paramètre.

heading#

Le cap est la direction vers laquelle le robot est orienté, mesurée en degrés. La commande heading renvoie le cap actuel du robot, compris entre 0 et 359,99 degrés.

Le cap initial du robot est de 0 degré.

Remarque : Cette méthode n’est disponible que si la transmission est configurée avec un capteur inertiel, un capteur GPS ou un capteur gyroscopique dans la fenêtre Appareils.

Usage:
drivetrain.heading(units)

Paramètres

Description

units

Facultatif. Unité de retour du cap : DEGREES (par défaut) ou TURNSUn tour équivaut à 360 degrés.

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

rotation#

La rotation correspond à l’angle de rotation du robot, mesuré en degrés. Au début d’un projet, la valeur de rotation est fixée à 0 degré. La commande rotation renvoie la rotation actuelle du robot.

Tourner à droite augmente la rotation, et tourner à gauche la diminue. Par exemple, deux virages complets à droite correspondent à une rotation de 720 degrés.

Remarque : Cette méthode n’est disponible que si la transmission est configurée avec un capteur inertiel, un capteur GPS ou un capteur gyroscopique dans la fenêtre Appareils.

Usage:
drivetrain.rotation(units)

Paramètres

Description

units

Optionnel. Unité de rotation : DEGREES (par défaut) ou TURNSUn tour équivaut à 360 degrés.

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

velocity#

La vitesse velocity indiquent la vitesse de déplacement du robot.

It can return velocity as a percentage from -100% to 100%, in RPM, or in VelocityUnits.DPS (degrees per second). A positive value means the robot is driving forward. A negative value means the robot is driving in reverse.

Usage:
drivetrain.velocity(units)

Paramètres

Description

units

Facultatif. L’unité de vitesse : RPM (rotations par minute, par défaut), PERCENTou VelocityUnits.DPS (degrés par seconde).

current#

La fonction current indique l’intensité du courant électrique consommé par la transmission, mesurée en ampères. L’intensité correspond à la quantité d’électricité qui traverse la transmission.

Une intensité plus élevée signifie que la transmission consomme davantage de courant électrique. Cela peut se produire lorsque le robot pousse contre un objet ou tente de se dégager alors qu’il est bloqué.

Cela permet de vérifier si la transmission force pendant un mouvement. Si le courant reste élevé, la transmission risque de chauffer ou de consommer moins d’énergie.

Usage:
drivetrain.current(units)

Paramètres

Description

units

Facultatif. Unité de mesure du courant : CurrentUnits.AMP (ampères, par défaut).

power#

La puissance power la transmission utilise l’énergie.

Une valeur de puissance plus élevée signifie que la transmission consomme de l’énergie plus rapidement. Cela peut se produire lorsque le robot pousse contre un objet ou tente de se dégager alors qu’il est bloqué.

Cela permet de comparer les mouvements ou de vérifier si la transmission peine. Si la puissance reste élevée, la transmission risque de chauffer ou de consommer moins d’énergie.

Usage:
drivetrain.power()

Paramètres

Description

Cette méthode ne comporte aucun paramètre.

torque#

Le couple indique la force avec laquelle la transmission peut pousser ou tirer pendant que les roues tournent.

torque renvoie la quantité de couple utilisée par la transmission, mesurée en Newton-mètres (Nm) ou en pouces-livres (InLb).

Une valeur de couple plus élevée signifie que la transmission exerce une force de poussée ou de traction plus importante. Cela peut se produire lorsque le robot pousse contre un objet ou tente de se dégager alors qu’il est bloqué.

Cela peut servir à vérifier si la transmission peine ou à comparer la force de poussée nécessaire pour différents mouvements.

Usage:
drivetrain.torque(units)

Paramètres

Description

units

Optionnel. Unité de retour du couple : TorqueUnits.NM (newton-mètres, par défaut) ou TorqueUnits.INLB (pouces-livres).

efficiency#

efficiency indique l’efficacité avec laquelle la transmission utilise la puissance, en pourcentage de 0 % à 100 %.

Le rendement indique la part de la puissance de la transmission utilisée pour le mouvement. Un rendement élevé signifie qu’une plus grande partie de la puissance est utilisée pour le déplacement. Un rendement faible peut s’expliquer par un effort important de la transmission sans déplacement significatif, par exemple lorsque le robot est bloqué ou qu’il pousse contre un obstacle.

Cela peut servir à comparer des mouvements ou à vérifier si la transmission gaspille de l’énergie au lieu de l’utiliser pour le mouvement.

Usage:
drivetrain.efficiency()

Paramètres

Description

Cette méthode ne comporte aucun paramètre.

temperature#

La fonction temperature renvoie la température moyenne de la transmission dans l’unité de température sélectionnée.

La température indique le niveau de chaleur des moteurs de la transmission. Une température plus élevée signifie que les moteurs chauffent pendant leur fonctionnement. Pour un fonctionnement optimal, les moteurs doivent rester en dessous de 55 °C.

Si les moteurs surchauffent, leur courant maximal sera réduit pour se protéger. À 70 °C, les moteurs s’arrêteront complètement jusqu’à leur refroidissement.

Cela peut servir à vérifier si la transmission chauffe excessivement lors de mouvements répétés, de longues courses ou lorsqu’elle exerce une pression contre un objet.

Usage:
drivetrain.temperature(units)

Paramètres

Description

units

Facultatif. L’unité de température à renvoyer : TemperatureUnits.CELSIUS (par défaut) ou TemperatureUnits.FAHRENHEIT.

get_timeout#

get_timeout renvoie le timeout actuellement défini en millisecondes.

Usage:
drivetrain.get_timeout()

Paramètres

Description

Cette méthode ne comporte aucun paramètre.

Constructeurs#

Les constructeurs sont utilisés pour créer manuellement DriveTrain et SmartDrive , qui sont nécessaires pour configurer une transmission en dehors de VEXcode.

Au moins deux objets Motor ou MotorGroup doivent être créés avant de créer une transmission.

DriveTrain#

DriveTrain crée une transmission sans capteur inertiel, capteur GPS ou capteur gyroscopique.

Usage:
DriveTrain(lm, rm, wheelTravel, trackWidth, wheelBase, units, externalGearRatio)

Paramètre

Description

lm

Le moteur ou groupe moteur gauche.

rm

Le moteur ou le groupe de moteurs droit.

wheelTravel

Optionnel. Circonférence des roues motrices. La valeur par défaut est de 300 millimètres.

trackWidth

Optionnel. Largeur entre les roues gauche et droite. Valeur par défaut : 320 millimètres.

wheelBase

Optionnel. Distance entre les roues avant et arrière. Valeur par défaut : 320 millimètres.

units

Optionnel. L’unité pour wheelTravel, trackWidth, et wheelBase: MM (millimètres, par défaut), INCHES, ou DistanceUnits.CM (centimètres).

externalGearRatio

Optionnel. Rapport de transmission utilisé pour ajuster les distances de transmission si des engrenages sont utilisés. Peut être un entier integer ) ou un nombre décimal (float). La valeur par défaut est 1,0.

# Create the Motors
left_motor = Motor(Ports.PORT1, GearSetting.RATIO_18_1, False)
right_motor = Motor(Ports.PORT2, GearSetting.RATIO_18_1, True)

# Create a drivetrain with default values
drivetrain = DriveTrain(left_motor, right_motor)

# Create the motors
left_motor = Motor(Ports.PORT1, GearSetting.RATIO_18_1, False)
right_motor = Motor(Ports.PORT2, GearSetting.RATIO_18_1, True)

"""
Create a drivetrain with the following values:
- wheelTravel = 319.19
- trackWidth = 295
- wheelBase = 40
- units = MM (Millimeters)
- externalGearRatio - 1
"""
drivetrain = DriveTrain(left_motor, right_motor, 319.19, 295, 40, MM, 1)

SmartDrive#

SmartDrive crée une transmission configurée avec un capteur inertiel, un capteur GPS ou un capteur gyroscopique.

Usage:
SmartDrive(lm, rm, g, wheelTravel, trackWidth, wheelBase, units, externalGearRatio)

Paramètre

Description

lm

Le moteur ou groupe moteur gauche.

rm

Le moteur ou le groupe de moteurs droit.

g

Le capteur inertiel, le capteur GPS ou le capteur gyroscopique utilisé par la transmission.

wheelTravel

Optionnel. Circonférence des roues motrices. La valeur par défaut est de 300 millimètres.

trackWidth

Optionnel. Largeur entre les roues gauche et droite. Valeur par défaut : 320 millimètres.

wheelBase

Optionnel. Distance entre les roues avant et arrière. Valeur par défaut : 320 millimètres.

units

Optionnel. L’unité pour wheelTravel, trackWidth, et wheelBase: MM (millimètres, par défaut), INCHES, ou DistanceUnits.CM (centimètres).

externalGearRatio

Optionnel. Rapport de transmission utilisé pour ajuster les distances de transmission si des engrenages sont utilisés. Peut être un entier integer ) ou un nombre décimal (float). La valeur par défaut est 1,0.

# Create the Motors
left_motor = Motor(Ports.PORT1, GearSetting.RATIO_18_1, False)
right_motor = Motor(Ports.PORT2, GearSetting.RATIO_18_1, True)

# Create a Gyro Sensor in Port A
gyro_a = Gyro(brain.three_wire_port.a)


# Create a drivetrain with default values
drivetrain = SmartDrive(left_motor, right_motor, gyro_a)

# Create the Motors
left_motor = Motor(Ports.PORT1, GearSetting.RATIO_18_1, False)
right_motor = Motor(Ports.PORT2, GearSetting.RATIO_18_1, True)

# Create a Gyro Sensor in Port A
gyro_a = Gyro(brain.three_wire_port.a)

"""
Create a drivetrain with the following values:
- wheelTravel = 319.19
- trackWidth = 295
- wheelBase = 40
- units = MM (Millimeters)
- externalGearRatio - 1
"""
drivetrain = SmartDrive(left_motor, right_motor, gyro_a, 319.19, 295, 40, MM, 1)