EV3 (Lego Roboter) richtige programmierung?
Link zum EV3 den wir nutzen: https://education.lego.com/de-de/products/lego-mindstorms-education-ev3-pakete/45544
Wir bräuchten ein wenig Hilfe bei einer Hausaufgabe die ein bisschen übertrieben gestellt wurde... PS: Ich nutze gutefrage.net normalerweise NIE für Hausaufgaben oder ähnliches, aber das hier ist auf längere Sicht was anderes (lange story). Außerdem sollte man bedenken, dass meine Gruppe und ich mit dem Programm bis jetzt am weitesten gekommen sind!
Unser Programm könnt ihr euch unten angucken :) (Das beigelegte Bild)
Wir sind schon ziemlich weit gekommen, aber es gibt noch einen kleinen Fehler und wir begreifen nicht, was wir ändern müssen.
Arbeitsauftrag:
Der Roboter soll entlang einer Wand laufen: - Die Wand ist immer rechts - Es gibt Abbiegungen von 90° - Es können Wände vorne auftauchen. Dann soll ein akustischer Hinweis ertönen und der Roboter eine 90°-Drehung nach links aufführen. - Das Ende ist erreicht, wenn rechts keine Wand mehr ist. Dann soll der Roboter stehen bleiben und einen weiteren akustischen Hinweis geben. - Auf dem Boden können Farbmarkierungen aufgeklebt sein. Abhängig von der Farbe soll der Roboter folgendes tun: o Er soll bei jeder Farbe auf der Anzeige die Farbe schreiben o Bei Rot soll er sich einmal um sich selbst drehen o Bei Grün soll er eine Melodie abspielen o Bei Blau soll er drei Sekunden stehen bleiben
Bitte vergleicht dies mit dem Bild und helft uns D: D:
:(
DANKE & LG!

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:
- Der Roboter soll an einer Wand entlang fahren bis diese nicht mehr da ist.
- 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.