Skip to main content

Lektion 3: Hinzufügen des Down-Eye-Sensors

In der vorherigen Lektion wurde der Abstandssensor verwendet, um festzustellen, ob der VR-Roboter ein Objekt erkannt hat oder nicht, und wenn ja, fuhr er vorwärts auf das Objekt zu. Es wurden jedoch keine Sensorwerte verwendet, um festzustellen, ob sich der VR-Roboter in der Nähe des Randes des Spielplatzes befand, um ihn zu stoppen. Das Anhalten des VR-Roboters, wenn er sich in der Nähe des Randes des Spielplatzes befand, würde verhindern, dass er von der Seite wegfährt.Der Code des Projekts befindet sich auf der linken Seite, während der Spielplatz auf der rechten Seite angezeigt wird. Der VR-Roboter befindet sich über der roten Grenze des Spielplatzes und hat aufgehört, sich zu bewegen, damit er nicht vom Rand des Spielplatzes fällt.

 

So wie es ist, wiederholt das Projekt die Verhaltensweisen des Vorwärtsfahrens und Wendens für immer. Es gibt jedoch keine Bedingung, um nach dem roten Rand um den Spielplatz zu suchen. So kann der VR-Roboter beim Vorwärtsfahren vom Spielplatz fallen.

Eine schräge Ansicht des Dynamic Castle Crasher Playground, die den VR-Roboter zeigt, der den Block eines Schlosses schiebt. Der VR-Roboter hat angehalten, bevor der Schlossblock vom Rand des Spielplatzes geschoben wurde.

Hinzufügen des Down-Eye-Sensors

Ein weiterer Sensor wird benötigt, damit der VR-Roboter feststellen kann, ob er sich in der Nähe des Spielplatzrandes befindet oder nicht. Der Down Eye Sensor kann verwendet werden, um festzustellen, ob sich der VR-Roboter in der Nähe des Randes des Spielplatzes befindet, indem der rote Rand um den Spielplatz erkannt wird.Eine Ansicht der Unterseite des VR-Roboters, wobei der untere Augensensor des VR-Roboters hervorgehoben ist.

Das Verhalten des Vorwärtsfahrens und Drehens muss nur wiederholt werden, bis der Down Eye Sensor meldet, dass die rote Grenze erkannt wird. Somit kann die unendliche while-Schleife durch eine while-Schleife mit einer NICHT-Bedingung ersetzt werden , um die Verhaltensweisen des Vorwärtsfahrens und Drehens zu wiederholen, bis die Bedingung des Erkennens der roten Grenze erfüllt ist.

  • Laden Sie das Unit9Lesson2-Projekt aus der vorherigen Lektion.

    def main():
    	while True:
    		# Erkennt der Abstandssensor eine Burg?
    		
    		wenn front_distance.found_object():
    			# Aufprallschloss vom Abstandssensor Antriebsstrang erkannt.antreiben 			(
    			VORWÄRTS)
    		
    		sonst:
    			# Drehen, um ein Schloss mit dem Abstandssensor Antriebsstrang 			zu
    			finden.drehen(RECHTS)
    			
    		warten(5, MS)
  • Benennen Sie das Projekt Unit9Lesson3 um.
    Die VEXcode VR-Symbolleiste zeigt die Projektnamen, die mit einem roten Kästchen hervorgehoben sind. Der Name des Projekts lautet Einheit 9 Lektion 3.
  • Fügen Sie einen Kommentar hinzu, um zu vermerken, wie die  while-Schleife mit dem Down Eye Sensor verwendet wird. Ihr Projekt sollte nun so aussehen:

    def main():
    	# Suchen Sie nach einem Gebäude, während der rote Rand nicht erkannt wird,
    	während True:
    		# Erkennt der Abstandssensor eine Burg?
    		
    		wenn front_distance.found_object():
    			# Aufprallschloss vom Abstandssensor Antriebsstrang erkannt.antreiben 			(
    			VORWÄRTS)
    		
    		sonst:
    			# Drehen, um ein Schloss mit dem Abstandssensor Antriebsstrang 			zu
    			finden.drehen(RECHTS)
    			
    		warten(5, MS)
  • Ein Befehl ist erforderlich, um den Down Eye Sensor kontinuierlich zu überprüfen. Der VR-Roboter muss diese Verhaltensweisen wiederholen, während der Down Eye Sensor die Farbe Rot nicht erkennt. Ändern Sie die while-Schleifenbedingung, indem  Sie das NOT-Schlüsselwort vor die Bedingung setzen. 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 wahr:
    		# Erkennt der Abstandssensor eine Burg?
    		
    		wenn front_distance.found_object():
    			# Aufprallschloss vom Abstandssensor Antriebsstrang erkannt.antreiben 			(
    			VORWÄRTS)
    		
    		sonst:
    			# Drehen, um ein Schloss mit dem Abstandssensor Antriebsstrang 			zu
    			finden.drehen(RECHTS)
    			
    		warten(5, MS)
  • Ändern Sie dann die Bedingung von True in den  Befehl down_eye.detect. Setzen Sie den Parameter auf 'ROT'. 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?
    		
    		wenn front_distance.found_object():
    			# Aufprallschloss vom Abstandssensor Antriebsstrang erkannt.antreiben 			(
    			VORWÄRTS)
    		
    		sonst:
    			# Drehen, um ein Schloss mit dem Abstandssensor Antriebsstrang 			zu
    			finden.drehen(RECHTS)
    			
    		warten(5, MS)
  • Ö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, fährt der VR-Roboter auf ein erkanntes Objekt zu und biegt andernfalls nach rechts ab. Obwohl der Down Eye Sensor nach der roten Grenze sucht, wird dem VR-Roboter nicht gesagt, was er tun soll, sobald er Rot erkennt, also fährt er weiter und fällt schließlich vom Spielplatz.

    Eine Draufsicht auf den Dynamic Castle Crasher-Spielplatz zeigt den VR-Roboter, der eine Burg vom Rand des Spielplatzes schiebt, aber auch nicht vom Spielplatz fällt.

Sobald die Bedingung der  while-Schleife erfüllt ist, wird der Projektablauf außerhalb der while-Schleife ausgeführt.

Wählen Sie die Schaltfläche Weiter um mit dem Rest dieser Lektion fortzufahren.