Skip to main content

Leçon 1 : Qu'est-ce qu'un algorithme ?

Dans cette leçon, vous apprendrez ce qu'est un algorithme et comment l'utilisation d'algorithmes dans VEXcode VR Python vous permet de créer des projets avec des comportements plus divers. Les projets algorithmiques demandent au robot VR de répondre à son environnement, ce qui sera nécessaire pour résoudre le défi du crash de château dynamique.

Résultats d'apprentissage

  • Identifiez que les algorithmes sont composés de séquences, de sélections et d'itérations (boucles).
  • Identifiez que les algorithmes sont des séquences précises d'instructions, mises en œuvre à l'aide de langages de programmation, pour les processus à effectuer par un robot VR.

Algorithmes

Les algorithmes sont des séquences précises d'instructions, mises en œuvre à l'aide de langages de programmation, comme VEXcode VR Python, pour les processus à effectuer par un robot VR.

Les éléments de base d'un algorithme sont la séquence, la sélection et l'itération.

  • Séquence - l'ordre dans lequel les comportements et les commandes sont combinés dans un projet afin de produire un résultat souhaité.     
  • Sélection - l'utilisation d'énoncés conditionnels dans un projet. Déclarations conditionnelles, telles que si ou si autrement affecter le flux de projet d'un projet.
  • Itération - les algorithmes utilisent souvent la répétition pour exécuter des étapes un certain nombre de fois, ou jusqu'à ce qu'une certaine condition soit remplie. Ceci est également connu sous le nom de « bouclage ». L'itération peut modifier le flux du projet en répétant un comportement un nombre spécifié de fois ou jusqu'à ce qu'une condition soit remplie.  

Cet exemple de projet du défi de l'unité 8 est un exemple d'algorithme. Il comprend une combinaison de boucles, de données de capteur et de commandes regroupées dans une séquence pour résoudre le défi du déménageur de disque.

def main() :
	pour la valeur dans la plage(3) :
		
		pour la valeur dans la plage(3) :
			# 1. Drive to disk using Down Eye Sensor
			while not down_eye.near_object() :
				drivetrain.drive(FORWARD)
				wait(5, MSEC)
			drivetrain.stop()
			
			# 2. Ramassez l'aimant à
			disque.			Énergisez (BOOST)
			
			# 3. Conduisez jusqu'au but à l'aide
			du capteur de distance 			drivetrain.turn_to_heading (180, DEGRÉS)
			tandis que front_distance.get_distance (MM
				) > 200 : 				DRIVETRAIN.DRIVE (FORWARD)
				wait(5, MSEC
			) 			drivetrain.stop ()
			
			# 4. Déposez le disque dans l'
			objectif 			magnet.energize (DROP
			) 			drivetrain.drive_for (REVERSE, 100, MM)
			
			# 5. Tournez pour faire face au prochain
			drivetrain.turn_to_heading(0, DEGRÉS),
			attendez(5, MSEC)
			
		# 6. Tournez et conduisez jusqu'au prochain objectif
		drivetrain.turn_to_heading(90, DEGRÉS)
		drivetrain.drive_for(AVANT, 800, MM)
		
		# 7. Tourner à disques
		drivetrain.turn_to_heading(0, DEGRÉS)
		
	attendre(5, MSEC)

Séquence

La façon dont les commandes sont séquencées et combinées détermine les comportements du robot VR. Dans cet exemple, chaque ensemble de comportements nécessaires pour déplacer un disque est exécuté trois fois, puis le robot VR se déplace vers l'ensemble de disques suivant et répète les comportements, jusqu'à ce que tous les disques soient retournés aux objectifs. Un organigramme montrant la séquence de collecte des disques du robot. Sur la gauche, le code affiche la boucle principale qui se répète trois fois. Les flèches cycliques rouges à droite indiquent des boucles continues qui fonctionnent jusqu'à ce que les conditions du capteur soient remplies (comme trouver ou saisir un disque), tandis que les flèches vertes indiquent les transitions entre la collecte du disque, son déplacement vers l'objectif, son relâchement et son repositionnement pour le cycle suivant.

Sélection

Ce projet comprend également une sélection qui détermine les parties du projet qui sont exécutées en fonction des conditions du capteur. Tout d'abord, le capteur Down Eye est utilisé pour déterminer quand le robot VR est près d'un disque, de sorte que le disque peut être ramassé. Ensuite, le capteur de distance est utilisé pour déterminer quand le robot VR est au-dessus de l'objectif, de sorte que le disque peut être déposé.  L'extrait de code de l'unité 8 comprend deux conditions en surbrillance qui contrôlent le mouvement du robot en fonction des lectures du capteur. La première condition en surbrillance, bien qu'elle ne soit pas down_eye.near_object (), indique au robot d'avancer jusqu'à ce que le capteur Down Eye détecte un objet à proximité, ce qui lui permet de s'approcher d'un disque avant de s'arrêter. La deuxième condition mise en évidence, alors quefront_distance.get_distance (MM) > 200, dirige le robot vers l'avant jusqu'à ce qu'il soit à moins de 200 millimètres du but, en utilisant le capteur de distance avant pour la mesure de proximité. Ces conditions créent des boucles qui font que le robot ne s'arrête que lorsque chaque condition spécifique du capteur est remplie.

Dans la première boucle while , la sélection des commandes à exécuter est basée sur les valeurs du capteur signalées par le capteur Down Eye.

  • Lorsqu'aucun objet n'est détecté, le robot VR avance.
  • Lorsqu'un objet est détecté, le robot VR s'arrête.

Dans la deuxième boucle while , la sélection de la commande à exécuter est basée sur les valeurs du capteur signalées par le capteur de distance.

  • Lorsque la distance signalée est supérieure à 200 millimètres (mm), le robot VR avance.
  • Bien que la distance signalée soit inférieure à 50 millimètres (mm), le robot VR cessera de conduire et passera à la partie suivante du projet pour activer l'électroaimant.

Itération

Le projet utilise l'itération, ou « boucles », pour répéter les actions et vérifier à plusieurs reprises les valeurs de capteur signalées. Ce projet contient des boucles imbriquées – une boucle pour que le robot VR puisse collecter les trois disques d'une même couleur ; et une deuxième boucle pour répéter ce processus pour collecter tous les disques sur le terrain de jeu. Le code utilise deux boucles imbriquées pour contrôler le processus de collecte des disques du robot. La boucle externe, étiquetée Boucle pour collecter les disques de toutes les couleurs, itère à travers chaque couleur de disque. À l'intérieur, la boucle interne, étiquetée Boucle pour collecter 3 disques d'une couleur, se répète trois fois pour collecter et placer trois disques de la couleur actuelle. Cette configuration garantit que le robot collecte trois disques de chaque couleur avant de passer à la couleur suivante, chaque itération de boucle se concentrant sur la collecte et le placement systématiques.

Cet algorithme est conçu pour collecter et renvoyer trois disques, trois fois, pour compléter le Disk Mover Challenge. La même logique qui est appliquée pour collecter et déplacer des disques à plusieurs reprises à l'aide de la séquence, de la sélection et de l'itération peut également être appliquée à d'autres défis, comme le Défi Dynamic Castle Crasher.

Questions

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

Google Doc / .docx / .pdf