Programmierbeispiel (Abstand zweier Linien)
Aus Informatik
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.
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:
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 ...
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:
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 ...



