Document ID: /fineweb-2-swissfilter-quality_10-filterrobots/filtered/03093.jsonl.gz/2431

Bevor wir die Fernsteuerung für den Formel EV3 programmieren können, kümmern wir uns um ein übersprungenes Kapitel und lernen die Motorumdrehungssensoren kennen.
Drehsensor verwenden
Wenn wir in einem Programm einen Roboter mit dem Bewegungslenkungsblock drei Umdrehungen vorwärts fahren lassen, misst der Drehsensor im Motor, wie weit der Motor gedreht hat und teilt dies dem EV3-Stein mit.
Ein Programm kann auch mitteilen, wie schnell der Motor dreht. Es misst, wie schnell sich die Motorenposition ändert.
Wir können die Motorenposition in Warte-, Schleifen- und Schalterblöcken verwenden (im Grad-Modus oder Umdrehungen-Modus). Ebenso kann die Motorengeschwindigkeit verwendet werden (Modus: Aktuelle Leistung).
Motorenposition
Die Motorenposition gibt an, wie weit sich ein Motor seit Programmstart gedreht hat. In der Anschlussansicht auf dem EV3-Stein sehen wir uns das an, in dem wir den Motor von Hand drehen.
- Anzeige ist 0 bei Programmstart
- Wert wird positiv bei Vorwärtsdrehung (im Uhrzeigersinn)
- Wert wird negativ bei Rückwärtsdrehung über die 0-Position hinaus
Da die Sensoren in den Motoren eingebaut sind, wird in Programmen immer der Motorenanschluss (A, B, C oder D) verwendet.
Motorposition zurücksetzen
Manchmal muss die Motorposition in Programm zurück gesetzt werden. Zum Beispiel wenn die Räder aus irgendeiner Position heraus gerade gestellt werden. Anschliessend wird der Wert für die Motorenposition auf «0» gesetzt und von dort aus gelenkt.
Drehgeschwindigkeit
Der Drehsensor errechnet die Rotationsgeschwindigkeit eines Motors als Wert zwischen -100% und 100%. Der Wert ist positiv, wenn der Motor im Uhrzeigersinn vorwärts dreht und negativ bei einer Rückwärtsdrehung.
Beim grossen Motor entspricht ein Sensorwert für «Aktuelle Leistung» von 50% einer Drehgeschwindigkeit von 85 Umdrehungen pro Min (U/min). In diesem Modus wir nicht Strom oder der Stromverbrauch gemessen.
Kennst Du U/min Mrtz? Zum Beispiel vom Quartett?
Mrtz: Nein, kenn ich nicht. Wir haben km/h im Quartett-Spiel verwendet.
Hnz: Eine Umdrehung pro Minute (U/min) ist, wenn der Motor in einer Minute einmal ganz herumdreht.
Rotationsgeschwindigkeit berechnen
Eine im Modus «Aktuelle Leistung» gemessene Drehgeschwindigkeit können wir in Umdrehungen pro Sekunde umrechnen.
Grosser Motor
Umdrehungen pro Minute U/min = Sensorwert x 1,70 (Aktuelle Leistung)
Mittlerer Motor
Umdrehungen pro Minute U/min = Sensorwert x 2,67 (Aktuelle Leistung)
1 U/min = 6°/s
Hnz: Mrtz, wieso ist 1 U/min = 6° pro Sekunde?
Mrtz: Das weiss ich nicht.
Wir erinnern uns und basteln die Formel wieder zusammen. Eine Minute hat 60 Sekunden. Eine volle Umdrehung ist ein ganzer Kreis von 360°. Wenn nun eine Drehung (360°) in 60 Sekunden vollzogen wird, lässt sich das einfach rechnen
1 U/min = 360° pro Minute = 360°/60 pro Sekunde = 6° pro Sekunde
So können wir auch die Drehgeschwindigkeit berechnen:
Drehgeschwindigkeit (Grad/s) = U/min x 6
Fahren und Lenken
Der Formel-EV3-Rennwagen verwendet zum Fahren und Steuern zwei verschiedene Mechanismen.
- Fahren: Grosse Motoren im Heck einschalten
- Lenken: Vorderräder mit dem mittleren Motor vorne nach links oder rechts drehen
Eigene Blöcke für die Lenkung
Wir bringen die Vorderräder in mittlere Position (Geradeausfahrt). Auf dem EV3-Stein beobachten wir den Sensorwert am Anschluss A, wo der mittlere Motor angeschlossen ist. Nun drehen wir die Räder ganz nach links und ganz nach rechts.
Folgende Werte lesen wir am EV3 ab:
- ca. 60° für links
- 0° für Mitte
- ca. -60° für rechts
Diese Werte entsprechen der Position des Motors und nicht der Räder. Die Räder drehen wegen der Zahnräder weniger weit.
Wir brauchen für die Steuerung eigene Blöcke:
- Left
- Right
- Center
- Reset
Diese eigenen Blöcke verwenden wir später in Programmen wie zum Beispiel dem Programm für die Fernsteuerung.
Eigener Block: Reset
Die Vorderräder können sich beim Programmstart in einer beliebigen Position befinden. Wir müssen zuerst die Räder gerade ausrichten.
Hnz: Hast Du eine Idee Mrtz, wie wir das programmieren können?
Mrtz: Wir steuern den mittleren Motor, bis die Räder gerade stehen.
Hnz: Das ist richtig, nur stehen die Räder bei jedem Programmstart anders und wir wissen nicht, wie sie stehen und wie weit wir den mittleren Motor drehen müssen.
Wir können die Räder nur von einer bekannten Position aus in die Mitte ausrichten. Wir steuern die Räder vollständig nach links, in dem wir den Motor vorwärts drehen lassen, bis er blockiert. Nun haben wir eine bekannte Postion. Diese Position des blockierten Motors sollte 78° hinter der Mittelstellung liegen. Nun müssen wir den mittleren Motor 78° rückwärts drehen lassen, um die Räder gerade zu stellen. Zum Schluss setzten wir den Drehsensorwert auf 0. Von jetzt an bedeutet ein Drehsensorwert, der nahe bei 0 liegt, dass die Räder in der Mitte stehen.
Erst erstellen wir ein neues Projekt namens FormelEV3. Dieses Projekt enthält alle Programme für den Rennwagen.
Eigener Block: Left
Dieser Block lässt die Vorderräder nach links drehen. Dazu drehen wir den mittleren Motor vorwärts, bis der Drehsensorwert 60° beträgt. Das aber nur, wenn die Räder nicht schon links stehen.
Kannst Du das Flussdiagramm für diesen Block zeichnen Mrtz?
Mit einem Schalterblock fragen wir ab, ob die Räder schon links stehen. Wenn ja, wird der Motor abgeschaltet. Wenn nein, dreht der Motor vorwärts, bis er 60° erreicht.
Die Einstellung «Am Ende bremsen» ist auf «wahr» gesetzt, so dass der Motor in dieser Position bleibt, bis er eine andere Bewegung ausführt.
Eigener Block: Center
Wenn der Sensor einen Wert von 0 hat, stehen die Räder genau in der Mitte. Für unser Programm reicht eine Toleranz zwischen -5 und 5, damit die Motoren nicht immer wieder darüber hinaus drehen.
Auf die folgenden Fragen reagiert das Programm:
- Stehen die Räder schon mittig? Dann Motor ausschalten
- Stehen die Räder links (Wert > 5°)? Dann nach rechts drehen, bis Wert < 5°
- Stehen die Räder rechts (Wert < -5°)? Dann nach links drehen, bis Wert > -5°
Im Programm entscheiden wir mit zwei Schalterblöcken, wo die Räder respektive der Motor steht.
Eigene Blöcke testen
Bevor wir die eigenen Blöcke in einem Programm verwenden, testen wir diese mit verschiedenen Startpositionen der Vorderräder. Dazu erstellen wir dieses kleine Programm:
Das Fernsteuerprogramm
Mit diesem Programm kann der Formel EV3 mit der Infrarot-Fernsteuerung gesteuert werden. Zuerst schauen wir uns die IR-Fernsteuerung genauer an.
Der Infrarotsensor erkennt 12 Knopfkombinationen der IR-Fernsteuerung.
Zusätzlich können wir mit dem kleinen roten Schalter die Fernsteuerung auf einen der Kanäle 1-4 einstellen. So können verschiedene Roboter unterschieden und gesteuert werden, ohne dass sich die Fernsteuerungen gegenseitig stören.
Zurück zu unserer Formel EV3-Fernsteuerung. Bei jeder Tastenkombination führt der Roboter einen eigenen Block aus, um die Vorderräder zu drehen und einen Hebellenkungsblock, um die Motoren der Hinterräder einzuschalten. Mit einem Hebellenkungsblock lässt sich die Geschwindigkeit der Hinterräder getrennt regeln.
Weisst Du, weshalb die Hinterräder in Kurven getrennt geregelt werden sollen, Mrtz?
In einer Kurve ist der äussere Weg weiter. Deshalb lassen wir das äussere Rad schneller drehen. Wir verwenden folgende Geschwindigkeiten:
- geradeaus: Beide Motoren mit 75% Geschwindigkeit
- in Kurven: innen 70% Geschwindigkeit, aussen 80% Geschwindigkeit
- um vorwärts zu fahren verwenden wir negative Werte (-75), weil die Motoren umgekehrt eingebaut sind
Hinweis: Fährt der Roboter nicht gerade aus, können die Gradwerte im Reset-Block angepasst werden:
- > 78°, wenn der Roboter nach links fährt
- < 78°, wenn der Roboter nach rechts fährt
Jetzt haben wir alles beisammen und erstellen das komplette Programm für alle Knopfkombinationen der IR-Fernsteuerung.
Wir haben jetzt ein ferngesteuertes Fahrzeug von A-Z komplett gebaut und programmiert. Wir wissen jetzt alles und können selber Fahrzeuge gestalten, bauen und dazu Fernsteuerungen programmieren. Das finde ich richtig cool.