Skip to main content

Icône Boîte à outils de l'enseignant Boîte à outils de l'enseignant - Aperçu de l'activité

  • Cette exploration initiera les élèves à la programmation de comportements répétitifs en utilisant des boucles répétitives ou éternelles.

  • Apprendre à programmer en utilisant des boucles répétées et éternelles permet aux élèves de gagner du temps lors de la construction d'un projet qui utilise les mêmes actions répétées. Pour plus d'informations sur les instructions utilisées dans un projet de texte, consultez les informations d' aide.

Le Clawbot V5 est prêt à bouger !

Cette exploration vous donnera les outils pour pouvoir commencer à créer des projets sympas qui utilisent des boucles.

  • Instructions VEXcode V5 Python qui seront utilisées dans cette exploration :
    • drivetrain.drive_for(AVANT, 300, MM)
    • drivetrain.turn_for(DROITE, 90, DEGRÉS)
    • claw_motor.spin_for(MARCHE ARRIÈRE, 70, DEGRÉS)
    • arm_motor.spin_for(AVANT, 360, DEGRÉS)
    • bumper_b.pressing()
    • while True : 
    • for repeat_count in range(4) : 
    • attendre(5, SECONDES)

Vous pouvez utiliser les informations d'aide à l'intérieur de VEXcode V5 pour en savoir plus sur les commandes Python individuelles. 

Image montrant l'espace de travail VEXcode V5 avec les notes d'aide pour la commande Drive ouverte

Icône Conseils pour l'enseignant Conseils à l'enseignant

Si c'est la première fois que l'étudiant utilise VEXcode V5, il peut lire une variété d'articles dans la bibliothèque VEX.

Image de la section VEXcode V5 de la bibliothèque VEX

Icône Conseils pour l'enseignant Conseils à l'enseignant - Utilisation de la saisie semi-automatique

La saisie semi-automatique est une fonctionnalité de VEXcode V5 qui prédit le reste de la commande que vous tapez. Pendant que les élèves travaillent dans VEXcode V5, encouragez-les à utiliser la fonction de saisie semi-automatique pour les aider avec la syntaxe Python. Vous remarquerez peut-être une fonction de saisie semi-automatique lorsque vous commencez à taper l'instruction. Utilisez vos touches « Haut » et « Bas » pour sélectionner le nom que vous souhaitez, puis appuyez sur « Tab » ou (Entrée/Retour) sur votre clavier pour effectuer la sélection. Pour plus d'informations sur l'utilisation de la saisie semi-automatique, consultez l'article Python.

Image de la fonctionnalité de saisie semi-automatique dans un projet Python

Assurez-vous d'avoir le matériel requis, votre ordinateur portable d'ingénierie et VEXcode V5 téléchargés et prêts.

Matériel requis :
Quantité Matériel nécessaire
1

Kit de démarrage de salle de classe VEX V5 (avec micrologiciel à jour)

1

VEXcode V5 (dernière version, Windows, macOS)

1

Carnet d'ingénierie

1

Exemple de projet Clawbot Template (Drivetrain 2-motor, No Gyro)

Étape 1 :  Commençons à programmer avec des boucles

  • Avant de commencer votre projet, sélectionnez le bon projet de modèle. L'exemple de projet Clawbot Template (Drivetrain 2-motor, No Gyro) contient la configuration du moteur du Clawbot. Si le modèle n'est pas utilisé, votre robot n'exécutera pas le projet correctement.
  • Sélectionnez Fichier et Ouvrir des exemples.

    Image montrant le menu Fichier ouvert dans VEXcode V5 montrant l'option Ouvrir des exemples

     

  • Faites défiler les différents exemples de projets. Ces projets démontrent une variété d'actions que votre Clawbot peut effectuer. Sélectionnez et ouvrez le projet d' exemple de modèle Clawbot (groupe motopropulseur 2 moteurs, pas de gyroscope).

    Image montrant l'exemple de projets avec une boîte rouge autour du projet de modèle Speedbot (groupe motopropulseur à 2 moteurs, sans gyroscope)

     

  • Nommez le projet RepeatingActions.

    Image montrant le nom du projet d'actions répétitives dans VEXcode V5

  • Tapez le code suivant :

    # Library imports
    from VEX import *
    
    # Begin project code
    # Drives forward 300mm turns 90 degrees for 4 iterations
    
    for repeat_count in range(4) :
        drivetrain.drive_for(FORWARD, 300, MM)
        drivetrain.turn_for(RIGHT, 90, DEGREES)
        wait(5, SECONDS)

Examinez le projet, puis procédez comme suit dans votre cahier d'ingénierie.

  1. Prédisez ce que le projet fera faire au Clawbot. Expliquez plus que le fait que le projet se répète.

    Qu'est-ce qu'il répète ? Que fait le Clawbot ?

  2. Écrivez votre prédiction, mais ne divisez pas le projet court en plus de deux parties.

Icône Boîte à outils de l'enseignant Boîte à outils de l'enseignant - Réponses

  1. Ce projet aura le robot : avancez de 300 millimètres , tournez à droite de 90 degrés, puis attendez 5 secondes 4 fois pour compléter un carré. Au lieu d'utiliser les mêmes 3 instructions 4 fois, l' instruction de répétition réduit la quantité à seulement 1 fois. L' instruction de répétition répète les actions consistant à avancer, puis à tourner.

  2. La prédiction pourrait simplement être « Le Clawbot se déplace dans un carré ». Ce serait un moyen succinct de capturer les mouvements répétés du Clawbot sans aucun contexte.

Les cahiers d'ingénierie des étudiants peuvent être maintenus et notés individuellement ou en équipe. Les liens précédents fournissent une rubrique différente pour chaque approche. Chaque fois qu'une rubrique est incluse dans la planification de l'éducation, il est de bonne pratique d'expliquer la rubrique ou au moins d'en donner des copies aux élèves avant le début de l'activité.

Étape 2 : Exécuter le projet et observer le robot

Une comparaison de deux extraits de code Python pour les robots VEX. L'extrait supérieur utilise l'entrée du capteur pour déterminer quand tourner, avec une boucle while vérifiant si l'interrupteur de pare-chocs est enfoncé ; s'il est enfoncé, le robot tourne à droite de 90 degrés, sinon, il avance. L'extrait du bas utilise une distance fixe pour déterminer quand tourner, avec une boucle for qui fait avancer le robot de 300 mm, tourne à droite de 90 degrés et attend 5 secondes, répétant cette séquence quatre fois

Regardez à nouveau le projet Actions répétitives (le deuxième projet). Ce projet répétera le comportement vers l'avant, puis tournera quatre fois. Une structure de boucle « répétée » (utilisant une boucle for) est utilisée lorsque vous souhaitez utiliser un ensemble de comportements un certain nombre de fois.

Si la structure de répétition est remplacée par une structure de
boucle while, le robot répétera les comportements vers l'avant puis tournera « while » la condition est vraie. Vous pouvez également définir la condition sur « true » pour que la boucle while continue pour toujours.

Dans le premier projet, l'entrée d'un capteur est utilisée pour déterminer quand commencer à tourner. Le projet de droite utilise une distance de transmission fixe pour déterminer quand commencer à tourner.

Afin de vérifier en permanence l'entrée d'un capteur, une instruction if else est utilisée ensemble pendant une boucle while. Dans le projet à gauche, le robot tournera à droite lorsque le capteur "bumper_b" est enfoncé, sinon le robot avancera pour toujours si le capteur "bumper_b" n'est pas enfoncé. Pour vérifier en permanence la valeur du capteur bumper_b, l'
instruction if est dans une boucle while.

Le premier projet est un cas d'utilisation pratique d'une structure qui se répète éternellement – en utilisant les instructions while loops et  if ensemble. Imaginez une balayeuse autonome qui continue à avancer jusqu'à ce qu'elle heurte un mur ou un objet, puis tourne avant de continuer à conduire.

Icône Étendre votre apprentissage Étendez votre apprentissage

Pour explorer davantage la façon dont vous pouvez utiliser les boucles avec des conditionnels, demandez aux élèves de créer un projet Floor Sweeper dans VEXcode V5.

  • Commencez par demander aux élèves de monter et de câbler les interrupteurs de pare-chocs.
  • Demandez aux élèves d'ouvrir le projet d' exemple de modèle Clawbot (groupe motopropulseur 2 moteurs, pas de gyroscope).

     

  • Demandez aux élèves de configurer le commutateur de pare-chocs à 3 fils dans VEXcode V5, de sélectionner le périphérique à 3 fils que vous utilisez pour le PARE-CHOCS, et de sélectionner le port sur B.Image de la configuration de l'appareil dans VEXcode V5 avec l'option Pare-chocs en surbrillanceImage de la configuration de l'appareil pour le commutateur de pare-chocs avec le port B en surbrillance
     
  • Demandez aux élèves de nommer le projet Floor Sweeper.

  • Demandez aux élèves de construire le projet suivant.

    # Library imports
    from vex import *
    
    import random
    
    # Begin project code
    while True :
        while (not bumper_b.pressing ()) :
            drivetrain.drive (FORWARD)
            wait(5, MSEC)
        
        drivetrain.stop ()
    
        #The random.randomint () method returns a random integer number between the specified range
        #Pass the min and max values of the range to the parameters
        drivetrain.turn_for (RIGHT, (90+random.randint (0, 90)),DEGREES)
        wait(5, MSEC)

Si les élèves ont besoin d'aide avec l'une des instructions, référez-les aux informations d'aide.

Demandez aux élèves de 
télécharger et d'exécuter le projet pour observer comment le robot se déplace. Ensuite, commencez une discussion en classe et demandez aux élèves d'expliquer pourquoi la structure Forever a été utilisée au lieu d'une structure répétée.

Les étudiants doivent noter qu'une structure Forever est utilisée car ce projet vérifie en permanence si l'interrupteur de pare-chocs est enfoncé.

Étape 3 : Le défi des boucles carrées !

Un diagramme montrant un chemin carré vert avec des flèches indiquant la direction du mouvement autour du carré. Flèches orange supplémentaires à l'extérieur de la pointe carrée dans différentes directions, correspondant aux virages et aux mouvements nécessaires pour suivre le chemin

  • Faites conduire votre Clawbot dans un carré.
  • Avant chaque tour, la griffe doit être ouverte et fermée, et le bras doit être levé et abaissé.
  • Le Clawbot ne peut pas rouler le long d'un côté de la place plus d'une fois.
  • Vous pouvez utiliser le projet RepeatingActions ci-dessus comme point de départ, mais l'enregistrer sous SquaredLoops  avant d'apporter des modifications.

Image montrant le nom du projet Squared Loops dans la barre d'outils dans VEXcode V5

Dans votre cahier d'ingénierie, planifiez ce qui suit :

  • Planifiez votre solution et prédisez ce que chaque instruction de votre projet fera faire au Clawbot.
  • Téléchargez et exécutez votre projet pour le tester avant de le soumettre.
  • Apportez des modifications au projet au besoin et prenez des notes sur ce qui a été modifié pendant les tests.

Icône Boîte à outils de l'enseignant Boîte à outils de l'enseignant - Solution

Voici une solution potentielle au défi des boucles carrées :

# Library imports
from VEX import *

# Begin project code
for repeat_count in range(4) :
    drivetrain.drive_for (FORWARD, 300, MM)
    claw_motor.spin_for (REVERSE, 70, DEGRÉS)
    arm_motor.spin_for (FORWARD, 360, DEGRÉS)
    claw_motor.spin_for (FORWARD, 70, DEGRÉS)
    arm_motor.spin_for (REVERSE, 360, DEGRÉS)
    drivetrain.turn_for (RIGHT, 90, DEGRÉS)
    wait(5, MSEC)

Vous pouvez fournir aux étudiants une grille de programmation pour noter leurs projets. Les cahiers d'ingénierie des
étudiants peuvent être maintenus et notés individuellement ou en équipe.