Funktionsweise der Sensoren und Motoren

Um es später einfacher zu haben beim Programmieren und Verwenden der Sensoren und Motoren, habe ich mich am Anfang meines Projektes mit deren Funktionsweise auseinander gesetzt. Das Grundgerüst, mit dem ich programmiert habe, war eine Java-Klasse zu haben,die alle Funktionen für die Motoren beinhaltet, eine Klasse für das Abfragen der Sensoren sowie eine Klasse, die beim Start des Roboters unter Verwendung der beiden anderen Klassen eine Aufgabe erledigt. Die Motoren haben drei wesentliche Methoden: sich mit einer Geschwindigkeit nach Vorne oder Hinten bewegen, die Motoren um einen bestimmten Grad nach vorne oder hinten drehen und die Geschwindigkeit festlegen.

Beim geradeaus fahren oder zurück fahren tritt ein Problem auf. Die zwei Motoren fahren nicht gleichzeitig los, so dass der Roboter schief fährt. Ein Motor fängt schon an zu fahren bevor der Andere überhaupt los fährt. Das Problem ist bei dem NXT Lego Roboter, einem älteren Modell von den Lego Robotern, nur schwer zu lösen, aber das EV3 Modell, welches wir im Projektkurs nutzten, hat bereits Methoden, mit denen sich das Problem einfach lösen lässt.

Dabei muss man die Motoren miteinander synchronisieren, die Synchronisierung starten, Befehle an die Motoren geben und dann die Synchronisierung beenden. Anschließend werden alle Befehle, die innerhalb der Synchronisierung geschrieben wurden, gleichzeitig ausgeführt.

 

 

 

Kommen wir nun zu den Sensoren von meinem Roboter ich habe nur den Lagesensor benutzt und den Drucksensor. Die Methoden, die ich dafür genutzt habe sind folgende:

Lagesensor

 

 

 

 

Drucksensor

Die Methode des Drucksensors gibt mir an,ob der Drucksensor gerade nicht gedrückt wird. Mit der ersten Methode des Lagesensors kann ich den Winkel und die Geschwindigkeit mit der, der Winkel sich verändert , abrufen. Die zweite Methode des Lagesensors bezieht sich auf den kalibrierten Winkel, der mit der Methode auf den momentanen Winkel geändert werden kann.

Beim Testlauf erhielt ich das Ergebnis, dass beim Fallen des Roboters nach vorne ein Winkel und eine Winkelgeschwindigkeit wiedergegeben wurden, die im negativem Bereich lagen .Bei dem Fall nach hinten hatte ich einen positiven Winkel und Winkelgeschwindigkeit. Ich habe auch ausprobiert bei welchem Winkel der Roboter den Boden berührt. Vorne konnte der Roboter maximal einen Winkel von 53° erreichen und hinten einen Winkel von Maximal -74°.