Skip to main content

Lektion 1: Was ist ein Algorithmus?

In dieser Lektion erfahren Sie, was ein Algorithmus ist und wie Sie mithilfe von Algorithmen in VEXcode VR Python Projekte mit vielfältigeren Verhaltensweisen erstellen können. Algorithmische Projekte weisen den VR-Roboter an, auf seine Umgebung zu reagieren, was notwendig sein wird, um die Dynamic Castle Crasher Challenge zu lösen.

Lernergebnisse

  • Identifizieren Sie, dass Algorithmen aus Sequenz, Auswahl und Iteration (Schleifen) bestehen.
  • Identifizieren Sie, dass Algorithmen präzise Sequenzen von Anweisungen sind, die mit Programmiersprachen für Prozesse implementiert werden, die von einem VR-Roboter ausgeführt werden sollen.

Algorithmen

Algorithmen sind präzise Sequenzen von Anweisungen, die mithilfe von Programmiersprachen wie VEXcode VR Python implementiert werden, damit Prozesse von einem VR-Roboter ausgeführt werden können.

Die Grundelemente eines Algorithmus sind Sequenz, Auswahl und Iteration.

  • Sequenz - die Reihenfolge, in der Verhaltensweisen und Befehle in einem Projekt kombiniert werden, um ein gewünschtes Ergebnis zu erzielen.     
  • Auswahl - die Verwendung von bedingten Anweisungen in einem Projekt. Bedingte Aussagen, z. B. ob oder ob sich dies auf den Projektablauf eines Projekts auswirkt.
  • Iteration - Algorithmen verwenden oft Wiederholungen, um Schritte eine bestimmte Anzahl von Malen auszuführen oder bis eine bestimmte Bedingung erfüllt ist. Dies wird auch als "Looping" bezeichnet. Iteration kann den Projektablauf ändern, indem ein Verhalten eine bestimmte Anzahl von Malen wiederholt wird oder bis eine Bedingung erfüllt ist.  

Dieses Beispielprojekt aus der Unit 8 Challenge ist ein Beispiel für einen Algorithmus. Es enthält eine Kombination aus Schleifen, Sensordaten und Befehlen, die in einer Sequenz zusammengestellt werden, um die Disk Mover Challenge zu lösen.

def main():
	für Wert im Bereich(3):
		
		für Wert im Bereich(3):
			# 1. Drive to disk using Down Eye Sensor
			while not down_eye.near_object():
				drivetrain.drive(FORWARD)
				wait(5, MSEC
			) 			drivetrain.stop ()
			
			# 2. Nimm den Scheibenmagneten
			auf.			Errege (BOOST)
			
			# 3. Fahren Sie mit Distance Sensor drivetrain.turn_to_heading
			(180, DEGREES) zum Ziel			 ,
			während front_distance.get_distance (MM) > 200
				: 				drivetrain.drive (FORWARD)
				wait(5, MSEC
			) 			drivetrain.stop ()
			
			# 4. Scheibe ins Tor fallen
			lassenMagnet.Energieren (FALLEN
			LASSEN) 			Antriebsstrang.antreiben_für (RÜCKWÄRTS, 100, MM)
			
			# 5. Drehen Sie, um auf die nächste
			Festplattenschaltung zu blicken.turn_to_heading (0, GRAD)
			wait(5, MS)
			
		# 6. Drehen und fahren Sie zum nächsten Ziel
		Antriebsstrang.drehen_zum_Kopf(90, GRAD
		) 		Antriebsstrang.antreiben_für (VORWÄRTS, 800, MM)
		
		# 7. Drehen Sie auf
		Disks 		Drivetrain.turn_to_heading (0, GRAD)
		
	wait(5, MS)

Reihenfolge

Die Art und Weise, wie Befehle sequenziert und kombiniert werden, bestimmt das Verhalten des VR-Roboters. In diesem Beispiel wird jeder Satz von Verhaltensweisen, die zum Bewegen einer Festplatte erforderlich sind, dreimal ausgeführt, dann bewegt sich der VR-Roboter zum nächsten Satz von Festplatten und wiederholt die Verhaltensweisen, bis alle Festplatten zu den Zielen zurückkehren. Ein Flussdiagramm, das die Festplattensammelsequenz des Roboters zeigt. Auf der linken Seite zeigt der Code die Hauptschleife an, die sich dreimal wiederholt. Rote zyklische Pfeile auf der rechten Seite zeigen kontinuierliche Schleifen an, die so lange laufen, bis die Sensorbedingungen erfüllt sind (z. B. das Finden oder Greifen einer Scheibe), während grüne Pfeile die Übergänge zwischen dem Sammeln der Scheibe, dem Bewegen zum Ziel, dem Freigeben und dem Neupositionieren für den nächsten Zyklus anzeigen.

Auswahl

Dieses Projekt beinhaltet auch eine Auswahl, die die Teile des Projekts bestimmt, die basierend auf den Sensorbedingungen ausgeführt werden. Zuerst wird der Down Eye Sensor verwendet, um festzustellen, wann sich der VR-Roboter in der Nähe einer Festplatte befindet, damit die Festplatte aufgenommen werden kann. Dann wird der Abstandssensor verwendet, um festzustellen, wann der VR-Roboter über dem Ziel ist, sodass die Festplatte abgesetzt werden kann.  Das Code-Snippet von Einheit 8 enthält zwei hervorgehobene Bedingungen, die die Bewegung des Roboters auf der Grundlage von Sensormesswerten steuern. Die erste hervorgehobene Bedingung, während nicht down_eye.near_object (), weist den Roboter an, vorwärts zu fahren, bis der Down Eye Sensor ein Objekt in der Nähe erkennt, so dass er sich einer Festplatte nähern kann, bevor er anhält. Die zweite hervorgehobene Bedingung, während front_distance.get_distance (MM) > 200, weist den Roboter an, vorwärts zu fahren, bis er sich innerhalb von 200 Millimetern vom Ziel befindet, wobei der vordere Abstandssensor für die Näherungsmessung verwendet wird. Diese Bedingungen erzeugen Schleifen, die den Roboter nur stoppen lassen, wenn jede bestimmte Sensorbedingung erfüllt ist.

In der ersten  while-Schleife basiert die Auswahl der auszuführenden Befehle auf den vom Down Eye Sensor gemeldeten Sensorwerten.

  • Während kein Objekt erkannt wird, fährt der VR-Roboter vorwärts.
  • Während ein Objekt erkannt wird, stoppt der VR-Roboter.

In der zweiten  while-Schleife basiert die Auswahl, welcher Befehl ausgeführt wird, auf den vom Abstandssensor gemeldeten Sensorwerten.

  • Während der gemeldete Abstand größer als 200 Millimeter (mm) ist, fährt der VR-Roboter vorwärts.
  • Während der gemeldete Abstand weniger als 50 Millimeter (mm) beträgt, stoppt der VR-Roboter die Fahrt und bewegt sich zum nächsten Teil des Projekts, um den Elektromagneten mit Strom zu versorgen.

Iteration

Das Projekt verwendet Iterationen oder "Schleifen", um Aktionen zu wiederholen und wiederholt gemeldete Sensorwerte zu überprüfen. Dieses Projekt enthält verschachtelte Schleifen – eine Schleife, so dass der VR-Roboter alle drei Festplatten einer Farbe sammeln kann; und eine zweite Schleife, um diesen Vorgang zu wiederholen, um alle Festplatten auf dem Spielplatz zu sammeln. Der Code verwendet zwei verschachtelte Schleifen, um den Festplattensammelprozess des Roboters zu steuern. Die äußere Schleife, die als Schleife bezeichnet wird, um Festplatten jeder Farbe zu sammeln, durchläuft jede Festplattenfarbe. Darin wiederholt sich die innere Schleife, die als Schleife bezeichnet wird, um 3 Scheiben einer Farbe zu sammeln, dreimal, um drei Scheiben der aktuellen Farbe zu sammeln und zu platzieren. Diese Einstellung stellt sicher, dass der Roboter drei Festplatten jeder Farbe sammelt, bevor er zur nächsten Farbe wechselt, wobei sich jede Loop-Iteration auf die systematische Sammlung und Platzierung konzentriert.

Dieser Algorithmus wurde entwickelt, um drei Festplatten dreimal zu sammeln und zurückzugeben, um die Disk Mover Challenge abzuschließen. Die gleiche Logik, die zum wiederholten Sammeln und Verschieben von Festplatten mithilfe von Sequenz, Auswahl und Iteration angewendet wird, kann auch auf andere Herausforderungen wie die Dynamic Castle Crasher Challenge angewendet werden.

Fragen

Bitte wählen Sie unten einen Link aus, um auf das Lektionsquiz zuzugreifen.

Google Doc / .docx / .pdf