Skip to main content

Leçon 2 : Résumé post-projet

Le bloc [If then else] est utilisé pour que le robot VR puisse prendre une décision. Si la condition booléenne est VRAIE, alors les blocs à l'intérieur de la branche ‘If Then’ s'exécuteront. Si la condition booléenne est FAUSSE, les blocs à l'intérieur de la branche ‘Else’ s'exécuteront.

Un diagramme indiquant le flux de projet du bloc if then else dans la boucle forever. Au démarrage du projet, l'état du capteur de distance est vérifié. Si un objet est trouvé, cette condition est vraie, alors le bloc Drive Forward s'exécute. Si aucun objet n'est trouvé, cette condition signale faux, sinon le bloc de virage à droite s'exécute. Tout cela est répété continuellement dans la boucle Forever.

Dans ce projet, le robot VR s'est dirigé vers un bâtiment lorsque le capteur de distance a détecté un objet et le <Distance found object> bloc signalé comme VRAI. Cela a demandé à la branche « Si alors » du projet de s'exécuter. Cette branche comprend le bloc [Drive]. Le Robot VR saute ensuite la branche « Else » du projet.

Le projet est à gauche avec un surlignage vert montrant le flux de projet de la branche if then en cours d'exécution. À droite, la vue de haut en bas du terrain de jeu est affichée, avec une flèche et une boîte rouge mettant en évidence le château, ou l'objet, détecté par le capteur de distance dans ce cas.

Parce que le bloc [If then else] est placé à l'intérieur d'un bloc [Forever], le projet reboucle en haut du bloc [Forever] pour vérifier l'état du bloc [If then else]. Cette boucle se poursuivra éternellement, demandant au robot VR de vérifier continuellement l'état [If then else] des centaines de fois par seconde.

Notez que les blocs [Drive] et [Turn] à l'intérieur du bloc [If then else] sont des blocs sans attente. Les blocs non en attente n'arrêtent pas le flux d'un projet pendant qu'ils sont en cours d'exécution.  Un comportement sans attente qui est exécuté dans un bloc [If then else] (tel que Drive Forward si un objet est détecté) se poursuivra pendant que la condition est vérifiée et ne changera que lorsque la condition changera.

Le même projet VEXcode VR avec des flèches se déplaçant du bas du bloc Forever vers le haut pour indiquer le flux de projet vers le haut de la boucle Forever pour répéter toutes les commandes qu'il contient.

Si le <Distance found object> bloc est signalé comme FAUX, la branche « Autre » du projet est exécutée. La branche « Else » comprend le bloc [Turn].

Le projet est à gauche avec un surlignage rouge montrant le flux de projet de la branche else en cours d'exécution. À droite, la vue de haut en bas du terrain de jeu est affichée, avec des flèches incurvées autour du robot VR indiquant de tourner pour détecter un objet, car il n'y en a pas directement devant le capteur de distance.

Pour votre information

[Dans le cas contraire] des blocs sont utilisés pour s'assurer qu'une seule branche du projet est exécutée lorsque la condition est vérifiée. Une seule instance ou condition peut être vraie à tout moment. Cela rend le projet plus efficace.

Un diagramme indiquant le flux de projet du bloc if then else dans la boucle forever. Au démarrage du projet, l'état du capteur de distance est vérifié. Si un objet est trouvé, cette condition est vraie, alors le bloc Drive Forward s'exécute. Si aucun objet n'est trouvé, cette condition signale faux, sinon le bloc de virage à droite s'exécute. Tout cela est répété continuellement dans la boucle Forever.

Comparer le projet en cours avec le projet créé dans l'unité 7.  Le projet Unit 7 utilise quatre blocs [If then].

Un diagramme du flux de projet d'un exemple de projet de l'unité 7 avec quatre blocs If then dans l'ordre. Dans chaque cas, le paramètre If utilise le capteur oculaire avant pour détecter une couleur spécifique et effectuer un comportement en fonction de la couleur détectée. Si la couleur est détectée, cela Si alors est vrai, et le bloc à l'intérieur s'exécutera, et cela se produira à plusieurs reprises pour chaque section du code.

Lorsque vous exécutez un projet avec plusieurs blocs [If then], il est possible que plusieurs conditions soient déclarées VRAIES et que le projet exécute les commandes du bloc [Forever]. Dans ce projet, les deux conditions peuvent indiquer VRAI au cours de la même boucle [Forever]. De tels conflits pourraient entraîner l'arrêt du projet ou le ralentissement de son exécution.

Un diagramme du flux de projet de deux blocs Si alors séquencés dans une boucle perpétuelle. Au démarrage, le projet vérifiera d'abord la condition 1, le paramètre du premier bloc if then. Si cela est vrai, le virage à droite pendant 90 blocs s'exécutera. Si cette condition est fausse, le projet passe au suivant si alors bloquer pour vérifier la condition 2. Si la condition 2 est vraie, l'entraînement vers l'avant pour le bloc de 200 mm à l'intérieur fonctionnera. S'il est faux, le projet retournera en haut de la boucle Forever pour répéter le processus à nouveau.

L'utilisation d'un bloc [If then else] éviterait les bugs comme celui-ci car une seule condition peut être VRAIE à un moment donné avec ce bloc.

Un diagramme du flux de projet à l'aide d'un bloc if then else dans une boucle Forever. Au démarrage, l'état de la branche if then sera vérifié. Si c'est vrai, et que l'entraînement est en mouvement, alors le bloc dans la branche If fonctionnera, et le robot tournera à gauche de 90 degrés ; sinon, le robot avancera de 200 mm. Cette décision de vérifier une condition sera continuellement prise car le projet est dans une boucle éternelle.

Questions

Veuillez sélectionner un lien ci-dessous pour accéder au questionnaire de la leçon.

Google Doc / .docx / .pdf