EV3 (Lego Roboter) richtige programmierung?

Hier unser Fortschritt. Bei den Farben klappt alles bis auf Grün iwie - (Programm, programmieren, Lego)

1 Antwort

Erstmal ist es grundsätzlich nicht gut zwei Tasks parallel laufen zu lassen, weil dann die Sensoren immer zu an- und ausgeschaltet werden und das nicht sehr schnell geht. Je nachdem wie breit eure farbigen Linien sind kann es sein, dass er einfach drüber fährt.

Außerdem würde der Roboter dann versuchen sowohl weiter gerade aus zu fahren, als auch die Aktion auszuführen die er bei der entsprechenden Farbe machen soll. Das geht schief.

Zum Grundaufbau des Programms:

  1. Der Roboter soll an einer Wand entlang fahren bis diese nicht mehr da ist.
  2. Dabei kann folgendes auftreten:
     2.1. Er fährt gegen eine Wand -> Roboter muss sich drehen
     2.2. Er fährt über einen Streifen -> Roboter muss Aktion ausführen

Eine Möglichkeit das zu realisieren:

  • Schleife mit Abbruchbedingung: keine Wand auf der rechten Seite
  • In dieser Schleife eine weitere. Hier soll der Roboter solange gerade aus fahren bis er entweder gegen eine Wand fährt, eine farbige Linie erkennt oder rechts keine Wand mehr ist.
  • Falls eine dieser 3 Bedingungen eintritt muss er anhalten und überprüfen welche eingetreten ist.
  • Falls rechts keine Wand mehr ist, ist er fertig.
  • Falls er gegen eine Wand gefahren ist muss er sich drehen.
  • Falls er auf einer farbigen Linie steht, muss er je nach Farbe bestimmte Aktionen ausführen.
  • Anschließend soll er wenn rechts noch eine Wand ist das solange wiederholen, bis rechts keine Wand mehr ist.

Ich habe mal ein Programm geschrieben, was so funktioniert. Dabei bin ich davon ausgegangen, dass der Boden auf dem er fährt weiß ist und die Linienfarben entweder rot, gelb, grün oder blau sind. Er fährt weiterhin 15cm von der Wand entfernt. Alles andere ist im Projekt auskommentiert.

https://www.file-upload.net/download-12571371/gf.ev3.html

max32168  25.06.2017, 15:13

Ups, habe vergessen, dass er bei blau 3 Sekunden stehen bleiben soll.

0