Skip to main content

Lektion 3: Mehrfacher Sensoreingang

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.

Das VEXcode VR-Projekt aus der vorherigen Lektion, das den Abstandssensor am Roboter verwendet, um Schlösser zu erkennen und sie dann zum Absturz zu bringen, wird auf der linken Seite angezeigt. Auf der rechten Seite befindet sich das Spielplatz-Fenster, das ein laufendes Projekt zeigt, bei dem mehrere Schlösser abgestürzt sind, aber der VR-Roboter kurz davor ist, vom Rand des Spielplatzes zu fahren.

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 Seitenansicht des VR-Roboters auf dem Dynamic Castle Crasher Playground, der ein Stück einer Burg von der Seite schiebt und dabei ist, vom Rand selbst wegzufahren.

Ein weiterer Sensor wird benötigt, damit der VR-Roboter feststellen kann, ob er sich in der Nähe des Spielplatzrandes befindet oder nicht. Das Verhalten, vorwärts zu fahren und zu drehen, muss nur so lange wiederholt werden, bis die rote Grenze erkannt wird. Somit kann der [Forever] -Block durch den [Repeat until] -Block ersetzt werden, um die Verhaltensweisen des Vorwärtsfahrens und Drehens zu wiederholen, bis die Bedingung der Erkennung der roten Grenze erfüllt ist. 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.

Ein VEXcode VR Farberfassungsblock liest Down Eye erkennt rot?.
  • Laden Sie das Unit9Lesson2-Projekt aus der vorherigen Lektion.
Das Lektion 9 Lektion 2 Projekt. Das Projekt beginnt mit einem Wenn gestartet-Block mit einem für immer angehängten Block. Innerhalb des Forever-Blocks befindet sich ein Wenn-dann-Block mit dem vorderen Abstand, der ein Objekt als Parameter gefunden hat. Der Zweig If hat dann einen Kommentar, der Klopfen über das Gebäude liest, das mit dem Abstandssensor und einem Vorwärtsfahrblock gefunden wurde. Der andere Zweig hat einen Kommentar mit dem Titel Turn to find a building using the Distance Sensor and a turn right block.
  • Benennen Sie das Projekt Unit9Lesson3 um.
Das Projektnamenfeld in der Mitte der VEXcode VR-Symbolleiste, mit einem roten Feld hervorgehoben, links neben der Schaltfläche Playground auswählen. Der Projektname lautet Einheit 9 Lektion 3.
  • Ein Block ist erforderlich, um den Down Eye Sensor kontinuierlich zu überprüfen. Der VR-Roboter muss diese Verhaltensweisen wiederholen, bis der Down Eye Sensor die Farbe Rot erkennt. Entfernen Sie zuerst den [Forever] -Block.
Eine Übersicht über das Entfernen des Forever-Blocks aus dem Projekt. Das neue Projekt wechselt vom Block When started zum Block If then else, ohne dass die Forever-Schleife vorhanden ist.
  • Fügen Sie einen [Wiederholen bis] -Block hinzu.
Eine Übersicht über das Hinzufügen des Blocks Wiederholen bis um die Gesamtheit des Blocks Wenn dann sonst. Das neue Projekt beginnt mit einem "When Started" -Block und hat dann einen "Repeat until" -Block mit dem offenen Parameter. Innerhalb des C des Blocks Repeat until (Wiederholen bis) ist der Block If then else (Wenn dann sonst).
  • Fügen Sie einen <Color sensing> Block innerhalb des Blocks [Wiederholen bis] hinzu und stellen Sie die Parameter auf ‘DownEye’ erkennt ‘rot’.
Das gleiche Projekt mit dem unteren Auge erkennt rot als Parameter des Blocks Wiederholen bis.

In diesem Projekt wird ein Block [Wiederholen bis] anstelle eines Blocks [Warten bis] verwendet. Dies liegt daran, dass ein [Warten bis] -Block ein wartender Block ist, der den Projektfluss pausiert, bis die Bedingung erfüllt ist. Wenn ein [Wait until] -Block verwendet wird, wird der [If then else] -Block erst ausgeführt, wenn die Bedingung des [Wait until] erfüllt ist und der [If then else] -Block nur einmal ausgeführt wird.

Ein Diagramm des Projektablaufs, wenn ein Warten bis -Block anstelle einer Wiederholen bis -Schleife verwendet wurde. Das Projekt würde beim Warten bis zum Block warten, bis die Bedingung als wahr gemeldet wurde, und erst dann zum Block Wenn dann sonst übergehen.

Durch die Verwendung eines [Repeat until] -Blocks wird die Bedingung [If then else] ständig überprüft und ausgeführt.

Ein Diagramm des Projektablaufs mit dem Block Repeat Until (Wiederholen bis), das zeigt, dass die Bedingung des Blocks If then else kontinuierlich überprüft und basierend darauf ausgeführt wird, ob das Objekt gefunden (True) oder nicht gefunden (false) wurde.
  • Fügen Sie einen Kommentar hinzu, um den Zweck der Verwendung des Blocks [Wiederholen bis] zu vermerken.
Das gleiche Projekt wie zuvor erstellt, mit einem Kommentarblock zwischen dem Block Beim Start und dem Block Wiederholen bis. Der Kommentar lautet: "Suchen Sie nach Gebäuden, bis der rote Rand erkannt wird."
  • Öffne den Dynamic Castle Crasher Playground und führe das Projekt aus.
  • 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 das Dynamic Castle Crasher Playground-Fenster, während das Projekt läuft, wobei mehrere Schlösser abgestürzt sind und der VR-Roboter auf der Suche nach einem Schlossstück vom oberen rechten Rand des Spielplatzes fährt.

Sobald die Bedingung des Blocks [Wiederholen bis] erfüllt ist, wird der Projektablauf aus dem Block [Wiederholen bis] ausgeführt.

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