Zum Hauptinhalt

Sensoren

Website: Lernplattform ALP
Kurs: Open Roberta 2.0
Buch: Sensoren
Gedruckt von: Gast
Datum: Dienstag, 22. Oktober 2024, 18:28

Beschreibung

1. Allgemeines

Grundlagen

Sensoren machen das Tüfteln und Programmieren mit deinem Roboter erst richtig interessant. Sensoren ermöglichen es Roberta, mit ihrer Umwelt zu interagieren und auf bestimmte Ereignisse und Zustände zu reagieren.

Die Kategorie "Sensoren" beinhaltet Blöcke für alle Standardsensoren des EV3-Systems:

  • Berührungssensor
  • Lichtsensor
  • Ultraschallsensor
  • Infrarotsensor
  • Drehsensor (Motor-Encoder)
  • Kreiselsensor (Gyroskop)
  • Tasten
  • Zeitgeber

Eine Besonderheit der "Sensor-Blöcke" im Unterschied zu den "Aktion-Blöcken" ist, dass alle "Sensor-Blöcke" einen "Wert" zurückgeben oder den Sensor zurücksetzen. Den Wert-Typ, den ein Sensor-Block zurückgibt, erkennst du an der Farbe des Konnektors. Der Konnektor ist das Verbindungsstück, mit denen NEPO-Blöcke in andere Blöcke eingefügt werden können.


Robertakonfiguration

Im Menüpunkt "Robertakonfiguration" kannst du dir anzeigen lassen, welcher Sensor an welchem Port angeschlossen ist:

Sensor Statusanzeige

Programmiert man einen Sensor (z. B. den Farbsensor) ist es oft hilfreich die gemessenen Werte direkt im Display des Roboters angezeigt zu bekommen. Dies kann einem beispielsweise dabei helfen einen Linienfolge-Roboter zu programmieren oder den korrekten Abstand zu einem Objekt zu messen.





In den nachfolgenden Kapiteln erklären wir die Funktion des Berührungssensors, des Kreiselsensors, des Lichtsensors und des Ultraschallsensors, da diese im Roberta Basismodell (und der Simulationsumgebung) vorhanden sind.
Weitergehende Informationen zu den restlichen Sensoren findest du hier.

2. Berührungssensor

Mit dem Block "Berührungssensor" kannst du einem anderen Block mitteilen,  ob der Berührungssensor gedrückt wurde oder nicht. Dieser Block gibt die logischen Werte true (entspricht: gedrückt) oder false (entspricht: nicht gedrückt) zurück.


Sensorblock als Bedingung im Wenn-Dann-Block


Ein Sensorblock steht in der Regel nie alleine, sondern wird mit einem Konnektor in einen anderen Block eingefügt. Im untenstehenden Beispiel ist der Sensor als Bedingung in einen "Wenn-Dann-Sonst-Block" integriert.

Das Programm prüft, ob der Berührungssensor gedrückt wurde:

  • Falls ja (true), fährt Roberta rückwärts und stoppt anschließend für 3 Sekunden
  • Falls nein (false), fährt Roberta in Tempo 30 vorwärts

Program mit Berührungssensor

Sensorblock als Bedingung im Warte-Block

Open Roberta bietet dir mit dem Warte-Block eine einfache Möglichkeit Sensorblöcke in ein sequentielles Programm zu integrieren.
In untenstehendem Programm fährt Roberta solange vorwärts, bis der Berührungssensor gedrückt wurde und stoppt anschließend.

weiteres Programm mit dem Berührungssensor

3. Kreiselsensor

Mit dem Block "Gib Winkel/Drehrate Kreiselsensor" kannst du einem anderen Block mitteilen, um welchen Winkel der Kreiselsensor um seine vertikale Achse gedreht wurde. Der Winkel wird als Zahl übermittelt. Zudem kann dieser Block im Auswahlmenü auf »Drehrate« gestellt werden. Mit dieser Einstellung wird statt des Winkels die Drehung des Sensor in "Grad pro Sekunde" übermittelt. Dieser Block ist nur in Verbindung mit einem anderen Block nutzbar, der eine Zahl als Input-Parameter benötigt.






4. Farbsensor

Mit dem Block "Gib Farbe" kannst du einem anderen Block mitteilen, welche Farbe der Lichtsensor misst. Die Farbe wird als Typ "Farbe" übermittelt. Zudem kann dieser Block im Auswahlmenü auf "Licht", "RGB" und "Umgebungslicht" gestellt werden. Die drei zusätzlichen Typen übermitteln jeweils den Typ "Zahl". Die Zahlenwerte liegen dabei zwischen 0 (Schwarz) und 255 (Weiß)100. Mit diesen verschiedenen Einstellung kann dieser Block je nach Anforderung konfiguriert werden.

Im Modus "Farbe" sendet der Lichtsensor Licht aus und erkennt, welche Grundfarbe unter dem Lichtsensor erkannt wurde. Die Grundfarbwerte sind BLACK, WHITE, GREY, RED, GREEN, BLUE, YELLOW, BROWN.

Im Modus "Licht" sendet der Lichtsensor mittels seiner roten LED Licht aus und misst die reflektierte Lichtstärke auf einer Skala von 0 bis 100.

Im Modus "RGB" sendet der Lichtsensor rotes, grünes und blaues Licht aus und misst das reflektierte Licht entsprechend der Anteile Rot, Grün und Blau auf einer Skala von 0 bis 100 pro Farbe. Es wird eine Liste mit drei Werten für die jeweiligen Farben ausgegeben.

Im Modus "Umgebungslicht" wird dieselbe Skala (0-100) wie im Modus Licht verwendet. Dabei wird das ins Sensorfenster einfallende Umgebungslicht gemessen.

Beispiel: In vorliegendem Programm fährt Roberta solange vorwärts, bis der Farbsensor die Farbe rot erkennt. Dann stoppt er.

Tipp: In der Simulationsumgebung "Einfache Umgebung" kannst du den Farbsensor wunderbar testen. Ändere dazu die Farben und teste dein Programm in der Umgebung.





5. Ultraschallsensor

Mit dem Block "Gib Abstand/Anwesenheit" kannst du einem anderen Block mitteilen, welchen Abstand der Ultraschallsensor misst. 

  • Der Abstand wird als Zahl (in cm) übermittelt. 
  • Dieser Block ist nur in Verbindung mit einem anderen Block nutzbar, der eine Zahl oder einen logischen Wert als Input-Parameter benötigt.

In vorliegendem Programm fährt Roberta solange vorwärts, bis der Ultraschallsensor ein Hindernis mit Abstand < 30 Zentimeter erkennt.

6. Zeig was du kannst

Roberta trotzt dem Abgrund

Baue Roberta so um, dass der Ultraschallsensor nach unten zeigt. Fahre nun mit Roberta auf einen Abgrund (Tischkante) zu und stoppe die Motoren, sobald der Sensor über den Abgrund zeigt.

Open Roberta Lab: Roberta trotzt dem Abgrund from Franz Dippl on Vimeo.


Für Tüftler: Du kannst die Aufgabe auch mit Hilfe des Farbsensors lösen. Überlege dir wie du dein Programm diesbezüglich ändern musst.

Für Experten: Sobald Roberta einen Abgrund erkennt, fährt sie rückwärts, dreht und fährt vorwärts in die entgegengesetzte Richtung weiter. Diese Aktion soll solange wiederholt werden, bis du Roberta abschaltest.

Roberta stoppt vor einer Wand

Fahre mit Roberta auf eine Wand zu und halte an, sobald der Berührungssensor gedrückt wird.

Roberta tanzt zur Berührung

Stelle Roberta in den Raum und lasse sie tanzen (du darfst dein Programm aus dem vorherigen Kapitel verwenden), sobald der Berührungssensor berührt wird.

Tipp: Um das Tanzprogramm zu verkürzen, darfst du gerne Wiederholungsblöcke verwenden.