Skip to main content
Portail des enseignants

Connexion à la concurrence : point tournant - Python

Turning Point VEX Robotics Competition Field avec des éléments de jeu et des zones de score dans les positions de départ pour le début du match. Le long du mur arrière se trouve un filet avec une série de drapeaux basculants devant lui. Champ de point de virage
VRC 2018-2019

Capacités du robot

Le jeu Turning Point de la compétition de robotique VEX 2018 - 2019 demandait aux joueurs de basculer les drapeaux parmi d'autres éléments du jeu. Il y avait neuf drapeaux au total : trois drapeaux du bas qui pouvaient être basculés par le robot, et les six drapeaux hauts qui ne pouvaient être basculés qu'en les frappant avec des pièces de jeu de balle de compétition. Les équipes de compétition devaient trouver un moyen de frapper les drapeaux les plus hauts à l'aide d'un lanceur de balles. Si vous pouvez imaginer, programmer le robot pour frapper les drapeaux à l'aide de pièces de jeu de balle en mesurant peut ne pas toujours être précis. Si le robot fait un mauvais virage pendant la période autonome, il est possible qu'aucun des drapeaux ne soit touché car les calculs seraient désactivés. De même, pour le défi des compétences de conduite, il peut être difficile pour les équipes d'aligner manuellement le robot suffisamment pour lancer la balle correctement. Ainsi, des équipes compétentes programmeraient le robot à l'aide du capteur de vision pour détecter les drapeaux, puis aligneraient correctement le robot afin de prendre des photos précises.

Icône Étendre votre apprentissage Étendez votre apprentissage

Pour développer cette activité, demandez à vos élèves de concevoir et de décrire un projet qui permettra au robot de se déplacer vers les objets jaunes détectés qu'ils pourraient potentiellement utiliser pour ce jeu de compétition !
Demandez à vos élèves de faire ce qui suit :

  • Ouvrez le projet d'exemple de modèle Clawbot (groupe motopropulseur, 2 moteurs, pas de gyroscope).

    VEXcode V5 Exemple de sélection de projet avec le filtre Template sélectionné en haut et l'icône Clawbot Drivetrain 2 motor no gyro project surlignée dans une case rouge.

  • Utilisez l'exemple de projet Détection d'objets (Vision) comme référence lors de la programmation du capteur de vision. Utilisez l'exemple de projet Détection d'objets (Vision) comme référence lors de la programmation du capteur de vision (Google Doc / .v5python).
  • Ajoutez le capteur de vision à la configuration Clawbot (transmission, 2 moteurs, pas de gyroscope), puis configurez le capteur de vision pour détecter les objets rouges et bleus. Reportez-vous à l'article Configuration du capteur de vision pour plus d'informations.

    VEXcode V5 Périphériques Fenêtre ouverte avec les options d'ajout d'un périphérique affichées. La fenêtre indique Sélectionner un appareil et l'option Vision est mise en surbrillance avec une case rouge. Les autres options comprennent le contrôleur, le groupe motopropulseur, le moteur et 3 fils.

  • Programmez le Clawbot pour qu'il se déplace vers l'objet détecté. Le Clawbot peut même être programmé pour lever le bras comme s'il devait basculer un drapeau !
  • Téléchargez et exécutez le projet pour observer si le capteur de vision peut détecter des objets jaunes comme les boules jaunes dans le jeu VRC Turning Point. Si le capteur de vision peut détecter des objets, le robot se déplace-t-il en fonction de ces objets détectés ? Pour obtenir de l'aide sur le téléchargement et l'exécution d'un projet, consultez cet article.
  • Si le temps le permet, configurez un champ de jeu similaire au champ Point de virage. Entraînez-vous à utiliser le capteur de vision pour permettre au robot de se déplacer pour marquer des points !

Voir l'échantillon de solution ci-dessous :

# Library imports
from vex import *

# Begin project code

check_yellow = Event()

def check_yellow_callback() :
    brain.screen.set_font (FontType.MONO40
    ) brain.screen.clear_row (3
    ) brain.screen.set_cursor (3, 1)
    vision_5_objects = vision_5.take_snapshot (vision_5__ YELLOWBOX)

    if (vision_5_objects)
        : arm_motor.spin_for (FORWARD, 300, DEGREES
        ) claw_motor.spin_for (FORWARD, 100, DEGREES
        ) drivetrain.drive_for (FORWARD, 12,
        INCHES) arm_motor.spin_for (REVERSE, 300,
        DEGREES) claw_motor.spin_for (REVERSE, 100, DEGREES)
    

        else : brain.screen.print ("No Yellow Object")

# system event handlers
check_yellow(check_yellow_callback)

# small delay to ensure that the event handlers are ready
to be used (15, MSEC)

# runs constantly to check for new sensor data
while
    True : check_blue.roadband_wait
    (105, MSEC) #