Python spécifique aux robots#
Introduction#
Le robot héros Huey propose deux options de motorisation : le capteur de vision IQ AI et le capteur optique, ainsi que la LED tactile.
Toutes les méthodes VR standard VEXcode sont disponibles pour une utilisation dans le IQ 25-26 Mix & Match Playground.
Vous trouverez ci-dessous la liste de toutes les méthodes spécifiques aux robots disponibles :
Transmission – Déplacez et faites tourner le robot.
Actes
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— Tourne le robot pour faire face à un cap spécifique de -359 à 359 degrés.turn_to_rotation— Fait tourner le robot vers une rotation spécifique.stop— Arrête le mouvement du robot.
Mutateurs
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_timeout— Définit le temps que le robot essaiera de mettre pour terminer un mouvement.set_drive_velocity— Indique au robot à quelle vitesse conduire.set_turn_velocity— Indique au robot à quelle vitesse tourner.
Attrapeurs
heading— Renvoie le cap actuel du robot de 0 à 359,99 degrés.rotation— Renvoie la rotation actuelle du robot.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.velocity— Renvoie la vitesse à laquelle le robot se déplace.
Mouvement - Déplacer et suivre les moteurs du robot.
Actes
spin— Fait tourner un moteur en avant ou en arrière indéfiniment.spin_for— Fait tourner un moteur sur une distance spécifique.spin_to_position— Fait tourner un moteur jusqu’à une position spécifique.stop— Empêche un moteur de tourner.
Mutateurs
set_position— Change la position actuelle du moteur à une nouvelle valeur.set_velocity— Indique à un moteur à quelle vitesse tourner.set_timeout— Définit le temps pendant lequel un moteur essaiera de terminer un mouvement.
Attrapeurs
is_done— Renvoie si le moteur a fini de bouger, sous forme de valeur booléenne.is_spinning— Renvoie si le moteur tourne, sous forme de valeur booléenne.position— Renvoie la position actuelle du moteur.velocity— Renvoie la vitesse de rotation du moteur.
Vision par IA - Capturez et analysez des objets à l’aide du capteur de vision par IA IQ.
Attrapeurs
take_snapshot- Renvoie un tuple d’objets détectés pour une signature spécifique.
Propriétés
width- Largeur de l’objet détecté en pixels.height- Hauteur de l’objet détecté en pixels.centerX- Position X du centre de l’objet en pixels.centerY- Position Y du centre de l’objet en pixels.originX- Position X du coin supérieur gauche de l’objet en pixels.originY- Position Y du coin supérieur gauche de l’objet en pixels.id- Classification ou identifiant d’étiquette de l’objet.
Console – Afficher les valeurs dans la console et surveiller les valeurs.
Imprimer
brain.screen.print— Affiche du texte, des nombres ou des valeurs de variables dans la console.brain.screen.next_row— Déplace le curseur de la console au début de la ligne suivante.brain.screen.clear_screen— Efface toutes les lignes de la console.
Moniteur
monitor_variable— Ajoute une ou plusieurs variables prédéfinies à l’onglet Monitor.monitor_sensor— Ajoute une ou plusieurs valeurs de capteur à l’onglet Moniteur.
Détection - Utiliser les différents capteurs du robot.
LED tactile
set_color- Définit la LED tactile sur une couleur sélectionnée.
Optique
is_near_object– Renvoie si le capteur optique détecte un objet à portée.color– Renvoie la couleur détectée par le capteur optique.brightness– Renvoie la quantité de lumière réfléchie par l’objet.hue– Renvoie la teinte détectée par le capteur optique.object_detected– Enregistre une fonction à appeler lorsque le capteur optique détecte un objet.object_lost– Enregistre une fonction à appeler lorsque le capteur optique perd un objet.
Les exemples de cette page utilisent la position de départ par défaut du Playground.
Transmission#
La transmission contrôle la façon dont le robot VR se déplace et tourne. Elle peut avancer ou reculer, tourner à gauche ou à droite, s’orienter et suivre sa rotation.
Actes#
conduire#
La commande drive fait avancer ou reculer le robot indéfiniment. Le robot continuera à se déplacer jusqu’à ce qu’une autre action, comme tourner ou s’arrêter, lui soit donnée.
Usage:
drivetrain.drive(direction)
Paramètres |
Description |
|---|---|
|
La direction dans laquelle le robot se déplace : |
def main():
# Drive forward then stop
drivetrain.drive(FORWARD)
wait(2, SECONDS)
drivetrain.stop()
# VR threads — Do not delete
vr_thread(main)
conduire_pour#
La commande drive_for déplace le robot vers l’avant ou vers l’arrière sur une distance spécifique. Le programme attendra que le robot ait terminé son déplacement avant d’exécuter la ligne de code suivante.
Usage:
drivetrain.drive_for(direction, distance, units, wait)
Paramètres |
Description |
|---|---|
|
La direction dans laquelle le robot se déplace : |
|
La distance parcourue par le robot. Cela peut être un entier |
|
Optionnel. Unité de distance : |
|
Optionnel. |
def main():
# Drive forward and backward
drivetrain.drive_for(FORWARD, 200, MM)
drivetrain.drive_for(REVERSE, 200, MM)
# VR threads — Do not delete
vr_thread(main)
tourner#
turn fait tourner le robot à gauche ou à droite en continu. Il continuera de tourner jusqu’à ce qu’on lui donne une autre instruction, comme avancer ou s’arrêter.
Usage:
drivetrain.turn(direction)
Paramètres |
Description |
|---|---|
|
Direction dans laquelle le robot tourne : |
def main():
# Turn right and left, then stop
drivetrain.turn(RIGHT)
wait(2, SECONDS)
drivetrain.turn(LEFT)
wait(2, SECONDS)
drivetrain.stop()
# VR threads — Do not delete
vr_thread(main)
tourner_pour#
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 attendra la fin de la rotation avant d’exécuter la ligne de code suivante.
Usage:
drivetrain.turn_for(direction, angle, units, wait)
Paramètres |
Description |
|---|---|
|
Direction dans laquelle le robot tourne : |
|
Le nombre de degrés de rotation du robot. Cela peut être un entier |
|
Optionnel. Unité de rotation : |
|
Optionnel. |
def main():
# Turn the robot right and left
drivetrain.turn_for(RIGHT, 90, DEGREES)
wait(1, SECONDS)
drivetrain.turn_for(LEFT, 90, DEGREES)
# VR threads — Do not delete
vr_thread(main)
tourner_vers_la_direction#
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.
Usage:
drivetrain.turn_to_heading(angle, units, wait)
Paramètres |
Description |
|---|---|
|
La direction vers laquelle le robot doit être orienté, en degrés. Cela peut être un entier |
|
Optionnel. Unité de rotation : |
|
Optionnel. |
def main():
# 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)
# VR threads — Do not delete
vr_thread(main)
tourner_à_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.
Usage:
drivetrain.turn_to_rotation(angle, units, wait)
Paramètres |
Description |
|---|---|
|
La valeur de rotation, en degrés, vers laquelle le robot tournera. Cela peut être un entier |
|
Optionnel. Unité de rotation : |
|
Optionnel. |
def main():
# 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)
# VR threads — Do not delete
vr_thread(main)
arrêt#
stop arrête le mouvement du robot.
Usage:
drivetrain.stop()
Paramètres |
Description |
|---|---|
Cette méthode ne comporte aucun paramètre. |
def main():
# Drive forward then stop
drivetrain.drive(FORWARD)
wait(2, SECONDS)
drivetrain.stop()
# VR threads — Do not delete
vr_thread(main)
Mutateurs#
définir_en-tête#
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.
Usage:
drivetrain.set_heading(heading, units)
Paramètres |
Description |
|---|---|
|
La valeur du cap, en degrés, à définir pour le robot. Cela peut être un entier |
|
Facultatif. Unité de titre : |
def main():
# Face the new 0 degrees
drivetrain.set_heading(90, DEGREES)
drivetrain.turn_to_heading(0, DEGREES)
# VR threads — Do not delete
vr_thread(main)
définir_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.
Usage:
drivetrain.set_rotation(rotation, units)
Paramètres |
Description |
|---|---|
|
La valeur de rotation, en degrés, à définir pour le robot. Cela peut être un entier |
|
Optionnel. Unité de rotation : |
def main():
# Spin counterclockwise two times
drivetrain.set_rotation(720, DEGREES)
drivetrain.turn_to_rotation(0, DEGREES)
# VR threads — Do not delete
vr_thread(main)
définir_délai#
La valeur set_timeout définit le temps imparti au robot pour terminer un mouvement. Si le robot ne parvient pas à terminer dans ce délai, il interrompt ses tentatives et passe à la ligne de code suivante. Cela évite que le robot ne se bloque sur un mouvement.
Usage:
drivetrain.set_timeout(value, units)
Paramètres |
Description |
|---|---|
|
Le temps dont dispose le robot pour tenter de terminer un mouvement. Cela peut être un entier positif |
|
L’unité de temps : |
def main():
# Turn right after driving forward
drivetrain.set_timeout(1, SECONDS)
drivetrain.drive_for(FORWARD, 25, INCHES)
drivetrain.turn_for(RIGHT, 90)
# VR threads — Do not delete
vr_thread(main)
définir_vitesse_de_conduite#
La valeur 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.
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 |
|---|---|
|
La vitesse à laquelle conduire de 0% à 100%. Cela peut être un entier |
|
Facultatif. Unité de vitesse : |
def main():
# Drive forward at different velocities
# Default velocity
drivetrain.drive_for(FORWARD, 150, MM)
wait(1, SECONDS)
# Drive slower
drivetrain.set_drive_velocity(20, PERCENT)
drivetrain.drive_for(FORWARD, 150, MM)
wait(1, SECONDS)
# Drive faster
drivetrain.set_drive_velocity(100, PERCENT)
drivetrain.drive_for(FORWARD, 150, MM)
# VR threads — Do not delete
vr_thread(main)
définir_vitesse_de_virage#
La valeur 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.
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 |
|---|---|
|
La vitesse de rotation de 0% à 100%. Cela peut être un entier |
|
Facultatif. Unité de vitesse : |
def main():
# Turn at different velocities
# Default velocity
drivetrain.turn_for(RIGHT, 120, DEGREES)
wait(1, SECONDS)
# Turn slower
drivetrain.set_turn_velocity(20, PERCENT)
drivetrain.turn_for(RIGHT, 120, DEGREES)
wait(1, SECONDS)
# Turn faster
drivetrain.set_turn_velocity(100, PERCENT)
drivetrain.turn_for(RIGHT, 120, DEGREES)
# VR threads — Do not delete
vr_thread(main)
Getters#
titre#
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é.
Usage:
drivetrain.heading(units)
Paramètres |
Description |
|---|---|
|
Facultatif. Unité de titre : |
def main():
# Display the heading after turning
drivetrain.turn_for(RIGHT, 450, DEGREES)
brain.screen.print("Heading: ")
brain.screen.print(drivetrain.heading(DEGREES))
# VR threads — Do not delete
vr_thread(main)
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.
Usage:
drivetrain.rotation(units)
Paramètres |
Description |
|---|---|
|
Optionnel. Unité de rotation : |
def main():
# Display the rotation after turning
drivetrain.turn_for(RIGHT, 450, DEGREES)
brain.screen.print("Rotation: ")
brain.screen.print(drivetrain.rotation(DEGREES))
# VR threads — Do not delete
vr_thread(main)
est_terminé#
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. |
est_en_mouvement#
La fonction is_moving renvoie is_moving , indiquant si le robot est en mouvement (valeur booléenne). 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.
Usage:
drivetrain.is_moving()
Paramètres |
Description |
|---|---|
Cette méthode ne comporte aucun paramètre. |
vitesse#
La vitesse velocity renvoie la vitesse à laquelle le robot se déplace, en pourcentage de -100 % à 100 %.
Usage:
drivetrain.velocity(units)
Paramètres |
Description |
|---|---|
|
Facultatif. Unité de vitesse : |
Exemple
def main():
# Display the velocity after driving
drivetrain.drive_for(FORWARD, 150, MM)
brain.screen.print("Velocity: ")
brain.screen.print(drivetrain.velocity(PERCENT))
Mouvement#
Huey utilise le moteur de la pince pour ouvrir et fermer celle-ci afin de saisir ou de déposer des broches et des poutres. Le moteur de levage permet de lever et d’abaisser les broches ou les poutres pour qu’elles puissent s’assembler.
Chaque moteur possède son propre comportement en fonction de sa direction. Les descriptions de direction expliquent comment chaque direction actionne le moteur correspondant sur Huey.
Actes#
rotation#
La valeur spin fait tourner le moteur en marche avant ou arrière indéfiniment. Le moteur continuera de tourner jusqu’à ce qu’une autre action lui soit donnée, comme changer de sens de rotation ou s’arrêter.
Utilisation :
L’un des deux objets moteurs disponibles peut être utilisé avec cette méthode, comme indiqué ci-dessous :
moteur |
Commande |
|---|---|
|
|
|
|
Paramètres |
Description |
|---|---|
|
Sens de rotation du moteur :
|
def main():
# Raise the lift, drive forward, then open the claw.
lift_motor.spin_for(REVERSE, 600, DEGREES)
drivetrain.drive_for(FORWARD, 140, MM)
claw_motor.spin(FORWARD)
# VR threads — Do not delete
vr_thread(main)
tourner_pour#
La fonction spin_for fait tourner un moteur sur une distance spécifique, relative à sa position actuelle. Le programme attendra la fin de la rotation avant d’exécuter la ligne de code suivante.
Utilisation :
L’un des deux objets moteurs disponibles peut être utilisé avec cette méthode, comme indiqué ci-dessous :
moteur |
Commande |
|---|---|
|
|
|
|
Paramètres |
Description |
|---|---|
|
Sens de rotation du moteur :
|
|
Distance de rotation du moteur. |
|
Facultatif. L’unité de distance : |
|
Facultatif.
|
def main():
# Raise the lift, drive forward, then open the claw.
lift_motor.spin_for(REVERSE, 600, DEGREES)
drivetrain.drive_for(FORWARD, 140, MM)
claw_motor.spin(FORWARD)
# VR threads — Do not delete
vr_thread(main)
rotation_vers_position#
spin_to_position fait tourner un moteur jusqu’à une position spécifique.
A motor’s position is how far it has spun, measured in DEGREES or TURNS. One turn is equal to 360 degrees. At the beginning of a project, the motor position is set to 0 degrees. The motor position can also be set using the set_position method.
Les valeurs de position sont absolues. Cela signifie que le sens de rotation dépend de la position actuelle du moteur.
Par exemple, si le moteur démarre à 0 degré et atteint une position de 720 degrés, il effectuera deux tours dans le sens horaire. S’il atteint ensuite une position de 360 degrés, il effectuera un tour dans le sens antihoraire, car 360 est inférieur à 720.
Utilisation :
L’un des deux objets moteurs disponibles peut être utilisé avec cette méthode, comme indiqué ci-dessous :
moteur |
Commande |
|---|---|
|
|
|
|
Paramètres |
Description |
|---|---|
|
Valeur de la position de rotation du moteur. |
|
Facultatif. L’unité de position : |
|
Facultatif.
|
def main():
# Raise the lift to a known position, drive, then open the claw
lift_motor.spin_to_position(-720, DEGREES)
drivetrain.drive_for(FORWARD, 140, MM)
claw_motor.spin(FORWARD)
# VR threads — Do not delete
vr_thread(main)
moteur d’arrêt#
stop empêche le moteur de tourner.
Utilisation :
L’un des deux objets moteurs disponibles peut être utilisé avec cette méthode, comme indiqué ci-dessous :
moteur |
Commande |
|---|---|
|
|
|
|
Paramètres |
Description |
|---|---|
Cette méthode ne comporte aucun paramètre. |
def main():
# Raise the lift for 2 seconds, then stop
lift_motor.spin(REVERSE)
wait(2, SECONDS)
lift_motor.stop()
drivetrain.drive_for(FORWARD, 140, MM)
claw_motor.spin(FORWARD)
# VR threads — Do not delete
vr_thread(main)
Mutateurs#
définir_position#
La position d’un moteur correspond à sa rotation, mesurée en degrés DEGREES ou en tours TURNS. Un tour équivaut à 360 degrés. set_position set_position` modifie la position actuelle du moteur en lui attribuant une nouvelle valeur.
Par exemple, si un moteur a effectué une rotation de 180 degrés, le fait de régler sa position à 0 degré la ramènera de 180 à 0 degré. Le moteur pourra ensuite effectuer des rotations en fonction de cette nouvelle valeur.
Utilisation :
L’un des deux objets moteurs disponibles peut être utilisé avec cette méthode, comme indiqué ci-dessous :
moteur |
Commande |
|---|---|
|
|
|
|
Paramètres |
Description |
|---|---|
|
Valeur de position à définir pour le moteur. |
|
Facultatif. L’unité de position : |
def main():
# Reset the lift position, then move to a new target.
lift_motor.set_position(100, DEGREES)
lift_motor.spin_to_position(-500, DEGREES)
drivetrain.drive_for(FORWARD, 140, MM)
claw_motor.spin(FORWARD)
# VR threads — Do not delete
vr_thread(main)
définir_vitesse#
La commande `set_velocity set_velocity indique à un moteur sa vitesse de rotation. Un pourcentage plus élevé augmente la vitesse de rotation, et un pourcentage plus faible la diminue.
Chaque projet commence avec chaque moteur tournant par défaut à 50 % de sa vitesse maximale.
Remarque : Une vitesse plus élevée fait tourner le moteur plus vite, mais sa précision peut être moindre. Une vitesse plus faible fait tourner le moteur plus lentement, mais sa précision peut être accrue.
Utilisation :
L’un des deux objets moteurs disponibles peut être utilisé avec cette méthode, comme indiqué ci-dessous :
moteur |
Commande |
|---|---|
|
|
|
|
Paramètres |
Description |
|---|---|
|
La vitesse de rotation de 0% à 100%. Cela peut être un entier |
|
L’unité de vitesse : |
def main():
# Set lift speed, then raise it.
lift_motor.set_velocity(100, PERCENT)
lift_motor.spin_for(REVERSE, 600, DEGREES)
drivetrain.drive_for(FORWARD, 140, MM)
claw_motor.spin(FORWARD)
# VR threads — Do not delete
vr_thread(main)
définir_délai#
La valeur set_timeout définit le délai maximal pendant lequel un moteur tente de terminer un mouvement. Si le moteur ne parvient pas à terminer dans ce délai, il interrompt ses tentatives et passe à la ligne de code suivante. Cela évite que le moteur ne se bloque.
Utilisation :
L’un des deux objets moteurs disponibles peut être utilisé avec cette méthode, comme indiqué ci-dessous :
moteur |
Commande |
|---|---|
|
|
|
|
Paramètres |
Description |
|---|---|
|
Le temps pendant lequel le moteur peut tenter de terminer un mouvement. Cela peut être un entier positif |
|
L’unité de temps : |
def main():
# Limit how long the lift waits to reach its target.
lift_motor.set_timeout(2, SECONDS)
lift_motor.spin_for(REVERSE, 1800, DEGREES)
drivetrain.drive_for(FORWARD, 140, MM)
claw_motor.spin(FORWARD)
# VR threads — Do not delete
vr_thread(main)
Getters#
est_terminé#
La fonction is_done renvoie is_done , indiquant si le moteur a terminé son mouvement (valeur booléenne). Cette information peut servir à contrôler le déclenchement d’autres actions en fonction de l’état du moteur.
True— Le moteur a fini de tourner.False— Le moteur tourne toujours.
Cette méthode fonctionne en collaboration avec les méthodes Motion suivantes qui ont le paramètre wait : spin_for et spin_to_position.
Utilisation :
L’un des deux objets moteurs disponibles peut être utilisé avec cette méthode, comme indiqué ci-dessous :
moteur |
Commande |
|---|---|
|
|
|
|
Paramètres |
Description |
|---|---|
Cette méthode ne comporte aucun paramètre. |
def main():
# Flash the Touch LED while the lift is moving.
lift_motor.spin_for(REVERSE, 600, DEGREES, wait=False)
wait(0.1, SECONDS)
while not lift_motor.is_done():
touchled.set_color(RED)
wait(0.5, SECONDS)
touchled.set_color(NONE)
wait(0.5, SECONDS)
# VR threads — Do not delete
vr_thread(main)
est_en_roulement#
La fonction is_spinning (valeur booléenne is_spinning indique si le moteur tourne. Cette information peut être utilisée pour synchroniser d’autres actions en fonction de l’état du moteur.
True— Le moteur tourne.False— Le moteur ne tourne pas.
Cette méthode fonctionne en collaboration avec les méthodes Motion suivantes qui ont le paramètre wait : spin_for et spin_to_position.
Utilisation :
L’un des deux objets moteurs disponibles peut être utilisé avec cette méthode, comme indiqué ci-dessous :
moteur |
Commande |
|---|---|
|
|
|
|
Paramètres |
Description |
|---|---|
Cette méthode ne comporte aucun paramètre. |
def main():
# Flash the Touch LED while the lift is spinning.
lift_motor.spin_for(REVERSE, 600, DEGREES, wait=False)
wait(0.1, SECONDS)
while lift_motor.is_spinning():
touchled.set_color(RED)
wait(0.5, SECONDS)
touchled.set_color(NONE)
wait(0.5, SECONDS)
# VR threads — Do not delete
vr_thread(main)
position#
La position d’un moteur correspond à sa rotation, mesurée en DEGREES ou TURNS. Un tour équivaut à 360 degrés. position renvoie la position actuelle du moteur.
Au début d’un projet, la position du moteur est initialement à 0 degré. Si le moteur effectue un tour complet dans un sens, la position sera de 360 degrés, soit un tour. S’il tourne dans l’autre sens, la position sera négative.
Utilisation :
L’un des deux objets moteurs disponibles peut être utilisé avec cette méthode, comme indiqué ci-dessous :
moteur |
Commande |
|---|---|
|
|
|
|
Paramètres |
Description |
|---|---|
|
L’unité pour ramener la position du moteur dans : |
def main():
# Raise the lift until it reaches roughly 600 degrees.
lift_motor.spin(REVERSE)
while not lift_motor.position(DEGREES) <= -600:
wait(2, MSEC)
lift_motor.stop()
drivetrain.drive_for(FORWARD, 140, MM)
claw_motor.spin(FORWARD)
# VR threads — Do not delete
vr_thread(main)
vitesse#
La vitesse velocity indique la vitesse de rotation du moteur.
Une valeur positive indique que le moteur tourne dans le sens horaire. Une valeur négative indique que le moteur tourne dans le sens antihoraire.
Utilisation :
L’un des deux objets moteurs disponibles peut être utilisé avec cette méthode, comme indiqué ci-dessous :
moteur |
Commande |
|---|---|
|
|
|
|
Paramètres |
Description |
|---|---|
|
L’unité de vitesse à renvoyer : |
def main():
# Print the lift velocity while it is moving.
lift_motor.set_velocity(100, PERCENT)
lift_motor.spin_for(REVERSE, 600, DEGREES, wait=False)
wait(0.5, SECONDS)
brain.screen.print(lift_motor.velocity(PERCENT))
# VR threads — Do not delete
vr_thread(main)
Vision IA#
Getters#
prendre_un_instantané#
take_snapshot filtre les données de la trame du capteur de vision IQ AI en une seule signature — une description enregistrée de quelque chose que le capteur peut reconnaître, comme un élément de jeu sur le terrain — et renvoie un tuple.
The tuple stores objects ordered from largest to smallest by width, starting at index 0. Each object’s properties can be accessed using its index. An empty tuple is returned if no matching objects are detected.
Usage:
ai_vision.take_snapshot(signature)
Paramètres |
Description |
|---|---|
|
Filtre l’ensemble de données pour n’inclure que les données de la signature spécifiée. Les signatures disponibles sont :
|
def main():
# Place the Red Pin on the top-left Blue Pin.
lift_motor.spin_for(REVERSE, 600, DEGREES)
drivetrain.turn_for(LEFT, 38, DEGREES)
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
while not ai_objects[0].width > 48:
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
drivetrain.drive(FORWARD)
drivetrain.drive_for(FORWARD, 160, MM)
claw_motor.spin(FORWARD)
# VR threads — Do not delete
vr_thread(main)
Propriétés#
Il existe sept propriétés qui sont incluses avec chaque objet stocké dans un tuple après l’utilisation de take_snapshot.
Toutes les valeurs de propriété, à l’exception .id décrivent la position et la taille de l’objet détecté dans le champ de vision du capteur IQ AI Vision au moment take_snapshot . Ces valeurs sont exprimées en pixels, selon la résolution du capteur (320 x 240 pixels).
.largeur#
.width renvoie la largeur de l’objet détecté en pixels, qui est un entier compris entre 1 et 320.
def main():
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
if len(ai_objects) > 0:
brain.screen.print(ai_objects[0].width)
# VR threads — Do not delete
vr_thread(main)
.hauteur#
.height renvoie la hauteur de l’objet détecté en pixels, qui est un entier compris entre 1 et 240.
def main():
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
if len(ai_objects) > 0:
brain.screen.print(ai_objects[0].height)
# VR threads — Do not delete
vr_thread(main)
.centreX#
.centerX renvoie la coordonnée x du centre de l’objet détecté en pixels, qui est un entier compris entre 0 et 320.
def main():
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
if len(ai_objects) > 0:
brain.screen.print(ai_objects[0].centerX)
# VR threads — Do not delete
vr_thread(main)
.centreY#
.centerY renvoie la coordonnée y du centre de l’objet détecté en pixels, qui est un entier compris entre 0 et 240.
def main():
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
if len(ai_objects) > 0:
brain.screen.print(ai_objects[0].centerY)
# VR threads — Do not delete
vr_thread(main)
.origineX#
.originX renvoie la coordonnée x du coin supérieur gauche de la boîte englobante de l’objet détecté en pixels, qui est un entier compris entre 0 et 320.
def main():
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
if len(ai_objects) > 0:
brain.screen.print(ai_objects[0].originX)
# VR threads — Do not delete
vr_thread(main)
.origine#
.originY renvoie la coordonnée y du coin supérieur gauche de la boîte englobante de l’objet détecté en pixels, qui est un entier compris entre 0 et 240.
def main():
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
if len(ai_objects) > 0:
brain.screen.print(ai_objects[0].originY)
# VR threads — Do not delete
vr_thread(main)
.identifiant#
.id renvoie l’ID de la classification IA détectée sous forme d’entier.
Classification par IA |
identifiant |
Signature |
|---|---|---|
Faisceau |
0 |
|
Épingle bleue |
1 |
|
Épingle rouge |
2 |
|
Épingle orange |
3 |
|
def main():
# Find the nearest Blue Pin in the current snapshot.
lift_motor.spin_for(REVERSE, 600, DEGREES)
object_count = 1
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
if len(ai_objects) > 0:
for repeat_count in range(len(ai_objects)):
if ai_objects[repeat_count].id == GameElements.BLUE_PIN:
brain.screen.print(str("Closest Blue Pin is ") + str(object_count))
break
object_count = object_count + 1
# VR threads — Do not delete
vr_thread(main)
Console#
La console affiche du texte, des nombres et les valeurs des variables pendant l’exécution d’un projet. Les méthodes de la console permettent également de déplacer le curseur vers une nouvelle ligne, d’effacer la console et d’ajouter des variables ou des valeurs de capteurs à l’onglet Surveillance.
Imprimer#
cerveau.écran.impression#
brain.screen.print displays text, numbers, or variable values in the Console using the current cursor position. It behaves like print on the Console API page.
Utilisez brain.screen.next_row lorsque vous souhaitez que la prochaine valeur imprimée commence sur une nouvelle ligne.
Usage:
brain.screen.print(value)
Paramètres |
Description |
|---|---|
|
Le texte, le nombre ou la valeur de variable à afficher dans la console. |
def main():
# Display a message in the Console
brain.screen.print("Hello, robot!")
# VR threads — Do not delete
vr_thread(main)

cerveau.écran.ligne_suivante#
brain.screen.next_row déplace le curseur à la première colonne de la ligne suivante dans la console. La valeur suivante affichée apparaîtra sur cette ligne.
Usage:
brain.screen.next_row()
Paramètres |
Description |
|---|---|
Cette méthode ne comporte aucun paramètre. |
def main():
# Print on two rows
brain.screen.print("Row 1")
brain.screen.next_row()
brain.screen.print("Row 2")
# VR threads — Do not delete
vr_thread(main)

cerveau.écran.effacer_écran#
brain.screen.clear_screen efface toutes les lignes de la console et déplace le curseur vers la ligne 1.
Usage:
brain.screen.clear_screen()
Paramètres |
Description |
|---|---|
Cette méthode ne comporte aucun paramètre. |
def main():
# Display text, then clear it after two seconds
brain.screen.print("This will disappear...")
wait(2, SECONDS)
brain.screen.clear_screen()
# VR threads — Do not delete
vr_thread(main)
Moniteur#
variable de surveillance#
L’option monitor_variable ajoute une ou plusieurs variables prédéfinies à l’onglet « Surveillance » de VEXcode. Cela vous permet de suivre l’évolution de la valeur d’une variable pendant l’exécution d’un projet.
Pour que la surveillance des variables fonctionne correctement, monitor_variable doivent être globales. Veuillez indiquer le nom de chaque variable sous forme de chaîne de caractères.
Usage:
monitor_variable(“variable”)
monitor_variable(“variable1”, “variable2”)
Paramètres |
Description |
|---|---|
|
Nom d’une variable globale prédéfinie à surveiller, sous forme de chaîne de caractères. Pour surveiller plusieurs variables, séparez leurs noms par une virgule. |
def main():
# Monitor the amount of loops
global loops
monitor_variable("loops")
# Drive in a square 3 times
for loops in range(12):
drivetrain.turn_for(RIGHT, 90, DEGREES)
drivetrain.drive_for(FORWARD, 150, MM)
# VR threads — Do not delete
vr_thread(main)
capteur_de_surveillance#
L’option monitor_sensor ajoute une ou plusieurs valeurs de capteur à l’onglet Moniteur de VEXcode. Cela vous permet de suivre l’évolution des valeurs des capteurs pendant l’exécution d’un projet.
Fournissez la valeur de chaque capteur sous forme de chaîne de caractères.
Usage:
monitor_sensor(“sensor”)
monitor_sensor(“sensor1”, “sensor2”)
Paramètres |
Description |
|---|---|
|
La valeur du capteur à surveiller, sous forme de chaîne de caractères. Pour surveiller plusieurs valeurs de capteur, séparez-les par une virgule. Identifiants de capteurs pris en charge :
|
def main():
# Monitor the robot's heading
monitor_sensor("drivetrain.heading")
drivetrain.turn_for(RIGHT, 450, DEGREES)
# VR threads — Do not delete
vr_thread(main)
Détection#
LED tactile#
définir_couleur#
set_color définit la couleur de la LED tactile.
Usage:
touchled.set_color(color)
Paramètres |
Description |
|---|---|
|
The color to set the Touch LED to:
|
def main():
# Light the Touch LED while placing a Pin.
touchled.set_color(RED)
lift_motor.spin_for(REVERSE, 600, DEGREES)
drivetrain.drive_for(FORWARD, 140, MM)
claw_motor.spin(FORWARD)
touchled.set_color(NONE)
# VR threads — Do not delete
vr_thread(main)
Optique#
est_proche_objet#
is_near_object renvoie une valeur booléenne indiquant si le capteur optique détecte ou non un objet à portée.
True– Le capteur optique détecte un objet.False– Le capteur optique ne détecte aucun objet.
Usage:
optical.is_near_object()
Paramètres |
Description |
|---|---|
Cette méthode ne comporte aucun paramètre. |
def main():
# Wait until the claw no longer detects an object, then lower the lift.
lift_motor.spin_for(REVERSE, 600, DEGREES)
drivetrain.drive_for(FORWARD, 140, MM)
claw_motor.spin(FORWARD)
while optical.is_near_object():
wait(2, MSEC)
lift_motor.spin_to_position(0, DEGREES)
# VR threads — Do not delete
vr_thread(main)
couleur#
La fonction color renvoie une instance d’une classe Color , en fonction de la valeur de teinte détectée. Ces instances peuvent être comparées à des objets Color prédéfinis pour créer des instructions conditionnelles.
Les couleurs possibles sont :
NONERED- Une valeur de teinte comprise entre 340° et 20°GREEN- Une valeur de teinte comprise entre 80° et 140°BLUE- Une valeur de teinte comprise entre 200° et 240°YELLOW- Une valeur de teinte comprise entre 40° et 60°ORANGE- Une valeur de teinte comprise entre 20° et 40°PURPLE- Une valeur de teinte comprise entre 240° et 280°CYAN- Une valeur de teinte comprise entre 140° et 200°
Remarque : Le capteur optique recherche des plages de teintes correspondant à la couleur spécifiée. Pour détecter des plages de teintes spécifiques, voir hue.
Usage:
optical.color()
Paramètres |
Description |
|---|---|
Cette méthode ne comporte aucun paramètre. |
def main():
# Wait until the Optical Sensor detects red, then lower the lift.
lift_motor.spin_for(REVERSE, 600, DEGREES)
drivetrain.drive_for(FORWARD, 140, MM)
claw_motor.spin(FORWARD)
while not optical.color() == RED:
wait(5, MSEC)
lift_motor.spin_to_position(0, DEGREES)
# VR threads — Do not delete
vr_thread(main)
luminosité#
brightness renvoie la quantité de lumière réfléchie par l’objet sous forme décimale (float) représentant un pourcentage.
Un pourcentage plus élevé signifie qu’une plus grande quantité de lumière est réfléchie vers le capteur optique. Un pourcentage plus faible signifie qu’une moindre quantité de lumière est réfléchie.
Usage:
optical.brightness()
Paramètres |
Description |
|---|---|
Cette méthode ne comporte aucun paramètre. |
def main():
# Lower the lift once the claw sees a darker object.
lift_motor.spin_for(REVERSE, 600, DEGREES)
drivetrain.drive_for(FORWARD, 140, MM)
claw_motor.spin(FORWARD)
while not 30 > optical.brightness():
wait(5, MSEC)
lift_motor.spin_to_position(0, DEGREES)
# VR threads — Do not delete
vr_thread(main)
teinte#
hue renvoie la valeur de teinte de la couleur détectée sous forme décimale (float) de 0 à 359.
La teinte est une façon de décrire une couleur à l’aide de nombres sur un cercle chromatique.

Usage:
optical.hue()
Paramètres |
Description |
|---|---|
Cette méthode ne comporte aucun paramètre. |
def main():
# Lower the lift once the Optical Sensor reports a hue value.
lift_motor.spin_for(REVERSE, 600, DEGREES)
drivetrain.drive_for(FORWARD, 140, MM)
claw_motor.spin(FORWARD)
while not optical.hue() > 0:
wait(5, MSEC)
lift_motor.spin_to_position(0, DEGREES)
# VR threads — Do not delete
vr_thread(main)
objet_détecté#
object_detected enregistre une fonction à appeler chaque fois que le capteur optique détecte un nouvel objet.
Usage:
optical.object_detected(callback, arg)
Paramètres |
Description |
|---|---|
|
Une fonction précédemment définie qui s’exécute lorsque le capteur optique détecte un nouvel objet. |
|
Facultatif. Un tuple contenant les arguments à transmettre à la fonction de rappel. Voir Utilisation des fonctions avec paramètres pour plus d’informations. |
def pin_in_claw():
touchled.set_color(RED)
def main():
# Change the Touch LED color when the claw detects an object.
optical.object_detected(pin_in_claw)
touchled.set_color(GREEN)
lift_motor.spin_for(REVERSE, 600, DEGREES)
drivetrain.drive_for(FORWARD, 140, MM)
claw_motor.spin(FORWARD)
# VR threads — Do not delete
vr_thread(main)
objet_perdu#
object_lost enregistre une fonction à appeler chaque fois que le capteur optique perd un objet détecté.
Usage:
optical.object_lost(callback, arg)
Paramètres |
Description |
|---|---|
|
Une fonction définie précédemment qui s’exécute lorsque le capteur optique perd un objet détecté. |
|
Facultatif. Un tuple contenant les arguments à transmettre à la fonction de rappel. Voir Utilisation des fonctions avec paramètres pour plus d’informations. |
def lower_lift():
# Lower the lift when the claw no longer holds an object.
lift_motor.spin_to_position(0, DEGREES)
def main():
optical.object_lost(lower_lift)
lift_motor.spin_for(REVERSE, 600, DEGREES)
drivetrain.drive_for(FORWARD, 140, MM)
claw_motor.spin(FORWARD)
# VR threads — Do not delete
vr_thread(main)