Programmierbeispiel (Abstand zweier Linien)

Aus Informatik

Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

Problemstellung

Mit einem Robot soll der Abstand zweier Linien gemessen werden.

Grundidee

Die Aufgabe soll schrittweise gelöst werden. Der Robot sollte die Entfernung zwischen den beiden Linien abfahren - mit Hilfe des Drehsensors kann dann die Entfernung bestimmt und berechnet werden. Das Abfahren der Strecke könnte auch zuerst durch ein Abrollen (mit der Hand) geschehen, später soll der Robot die Linien jedoch eigenständig erkennen.

Robot

Zuerst müsste darüber nachgedacht werden, wie der Robot gebaut werden muss, damit er die Aufgabe erfüllen kann. Zu Beginn genügt ein einfacher Robot, später sollte der Robot über einen Lichtsensor verfügen, um die Linien erkennen zu können.

Programmierung

Die Lösung der Aufgabe soll hier schrittweise erfolgen ...

Messen der gefahrenen Strecke

Zuerst versuchen wir dem Robot beizubringen, die Länge einer gefahrenen Strecke anzugeben. Dazu müssten wir zu Beginn den Zähler des Rotationssensors zurücksetzen, danach die Strecke fahren, den Zähler auslesen und den Wert im Display anzeigen. Die folgende Grafik stellt diesen Algorithmus in einem PAP (Programmablaufplan) dar.

NXT Abstand PAP01.jpg

Die Anweisung "beliebige Strecke fahren" kann z. B. bedeuten "5 Sekunden fahren." oder auch "Fahre bis zur Wand.". Der Rotationssensor kann die gefahrene Strecke in Umdrehungen oder in Winkeln angeben.

Für eine Fahrt von 5 Sekunden könnte das folgende Programm entstehen:

NXT-Programm

Gefahrene Strecke in cm

Der Rotationssensor misst die gefahrenen Umdrehungen bzw. Winkel seit dem letzten Zurücksetzen. Möchte man nun die wirkliche gefahrene Strecke haben, kann man die Durchmesser bzw. den Umfang der Räder des Robots messen und damit die genaue Länge berechnen.

Das folgende Programmbeispiel zeigt den entsprechenden Ausschnitt, für den Wert von B muss der jeweilige Faktor noch gefunden werden ...

NXT-Programm - Berechnung der Länge

Abstand zweier Linien

Um nun den Abstand zweier Linien zu bestimmen, muss der Algorithmus für den Robot (im Unterschied zur oben durchgeführten Messung) noch etwas abgeändert werden:

NXT Abstand PAP02.jpg

Erweiterung der Aufgabe

Das hier gelöste Problem könnte nun noch erweitert werden, z. B. auf die Berechnung der Fläche eines beliebigen Rechtecks oder das Finden der Mitte einer Strecke ...

Persönliche Werkzeuge
Navigation