Skip to main content

Lektion 3: Wenn die Farbe Rot erkannt wird

Es gibt keine Befehle, die dem VR-Roboter sagen, was er tun soll, sobald er die Farbe Rot erkennt. Um den roten Rand zu vermeiden, sollte der VR-Roboter umkehren und sich drehen, sobald er die Farbe Rot erkennt, wie es in diesem Video der Fall ist.

Videodatei
  • Fügen Sie am Ende der  while-Schleife einen Kommentar hinzu, um anzugeben, was passieren soll, wenn der Down Eye Sensor den roten Rand erkennt. Ihr Projekt sollte nun so aussehen:

    def main():
    	# Suchen Sie nach einem Gebäude, während der rote Rand nicht erkannt wird,
    	während nicht down_eye.detect (ROT):
    		# Erkennt der Abstandssensor eine Burg?
    		
    		if front_distance.found_object():
    			# Durch Abstandssensor-Antriebsstrang erkannte Aufprallburg.drive 			(
    			VORWÄRTS)
    		
    		else:
    			# Drehen, um eine Burg mit dem Abstandssensor-Antriebsstrang zu finden.drehen 			(
    			RECHTS)
    			
    		warten(5, MS)
    		
    	# Rückwärts und drehen, wenn rote Grenze erkannt
  • Fügen Sie einen drive_for und turn_for-Befehle unter dem Kommentar hinzu, damit der VR-Roboter rückwärts fahren und sich drehen kann, sobald der Down Eye Sensor die Farbe Rot erkennt.

    def main():
    	# Suchen Sie nach einem Gebäude, während der rote Rand nicht erkannt wird,
    	während nicht down_eye.detect (ROT):
    		# Erkennt der Abstandssensor eine Burg?
    		
    		wenn front_distance.found_object():
    			# Aufprallschloss erkannt durch Abstandssensor antriebsstrang.antrieb 			(
    			VORWÄRTS)
    		
    		sonst:
    			# Drehen, um ein Schloss zu finden mit dem Abstandssensor antriebsstrang.drehen
    			(RECHTS)
    			
    		warten(5, MS)
    		
    	# Rückwärts und drehen, wenn rote Grenze erkannt
    	antriebsstrang.antrieb_für(RÜCKWÄRTS, 300, MM)
    	antriebsstrang.drehen_für(RECHTS, 90, GRAD)
  • Öffne den Dynamic Castle Crasher Playground , wenn er noch nicht geöffnet ist, und führe das Projekt aus. Verhält sich der VR-Roboter so, wie Sie es beabsichtigt haben?
  • Wenn dieses Projekt ausgeführt wird, werden zwei Bedingungen überprüft. Der erste ist der Zustand des Down Eye Sensors, der die Farbe Rot innerhalb der while-Schleife erkennt. Beachten Sie, dass der Projektablauf NUR dann zum nächsten Zustand eines erkannten Objekts wechselt , wenn der Down Eye Sensor die Farbe Rot nicht sieht. Wenn der Down Eye Sensor Rot erkennt, überspringt der Projektablauf die if else -Anweisung und springt zum Rückwärtsfahren und Abbiegen.
    Der Python-Projektcode dieser Lektion mit einem Diagramm, das den Projektablauf auf der Seite zeigt. Es lautet First condition checked: Down Eye Sensor detects red in orange, representing the start of the loop. Es gibt eine rote Pfeilschleife, wenn der Down Eye Sensor rot erkennt, was True meldet und das Projekt den sich wiederholenden Look beendet. Wenn es false meldet, wechselt der Code zur if then -Anweisung und wird so lange wiederholt, bis der Down Eye Sensor rot erkennt.
 
  • Die zweite Bedingung, die überprüft wird, ist die if else -Anweisung. Während der Down Eye Sensor kein Rot erkennt, wird das Projekt in der  while-Schleife fortgesetzt, um den Zustand des Abstandssensors zu überprüfen. Der VR-Roboter verwendet die Daten des Abstandssensors, um eine Entscheidung zu treffen, vorwärts zu fahren oder rechts abzubiegen. Der Python-Projektcode dieser Lektion mit einem Diagramm, das den Projektablauf auf der Seite zeigt. Es lautet Zweite Bedingung überprüft: Abstandssensor erkennt Objekt. Es zeigt, was passiert, wenn die zweite Bedingung überprüft wird, und wenn es wahr meldet, fährt der VR-Roboter vorwärts, und wenn die zweite Bedingung falsch meldet, dreht der VR-Roboter nach rechts.
  • Sobald der Down Eye Sensor jedoch die Farbe Rot erkennt, fährt der VR-Roboter rückwärts, dreht sich und stoppt dann, da dies das Ende des Projektablaufs ist. Es wird keine Schleife verwendet, um die Verhaltensweisen erneut zu wiederholen.

    Eine Draufsicht auf den Spielplatz Dynamic Castle Crashed zeigt einige der umgestürzten Schlösser, wobei der VR-Roboter umgekehrt und umgedreht ist, nachdem er die rote Grenze passiert hat, sodass er wieder in die Mitte des Spielplatzes zeigt.

Hinzufügen einer unendlichen while-Schleife

  • Eine unendliche  while-Schleife ist erforderlich, damit sich die Verhaltensweisen in einer Schleife wiederholen. Ziehen oder geben Sie eine while-Schleife oben im Projekt ein, und legen Sie die Bedingung auf True fest, um eine unendliche Schleife zu erstellen. Kopieren Sie dann den vorherigen Code und fügen Sie ihn in die Endlosschleife ein. Stellen Sie sicher, dass die Befehle unter den richtigen Kopfzeilen richtig eingerückt sind, da das Projekt sonst möglicherweise nicht wie erwartet ausgeführt wird. Ihr Projekt sollte nun so aussehen:

    def main():
    
    	while True:
    		# Suchen Sie nach einem Gebäude, während der rote Rand nicht erkannt wird,
    		während nicht down_eye.detect (RED):
    			# Erkennt der Abstandssensor eine Burg?
    		
    			wenn front_distance.found_object():
    				# Aufprallschloss erkannt durch Abstandssensor antriebsstrang.antrieb 				(
    				VORWÄRTS)
    		
    			sonst:
    				# Drehen, um ein Schloss zu finden mit dem Abstandssensor antriebsstrang.drehen
    				(RECHTS)
    			
    			warten(5, MS)
    		
    		# Rückwärts und drehen, wenn rote Grenze erkannt
    		antriebsstrang.antrieb_für(RÜCKWÄRTS, 300, MM)
    		antriebsstrang.drehen_für(RECHTS, 90, GRAD)
    
  • Öffne den Dynamic Castle Crasher Playground , wenn er noch nicht geöffnet ist, und führe das Projekt aus. Verhält sich der VR-Roboter wie von Ihnen beabsichtigt? 
  • Wenn dieses Projekt ausgeführt wird, fährt der VR-Roboter auf eine erkannte Burg zu und biegt rechts ab, wenn keine Burgen gemeldet werden. Sobald der Down Eye Sensor die Farbe Rot erkennt, fährt der VR-Roboter rückwärts, dreht sich und fährt weiter auf eine andere Burg zu.

    Eine Draufsicht auf den Spielplatz Dynamic Castle Crasher zeigt, dass der VR-Roboter über mehrere Schlösser auf dem Spielplatz gekippt ist und sich nun auf die letzte stehende Burg zubewegt.

Fragen

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

Google Doc / .docx / .pdf