Lego Mindstorm wie schaffe ich es das das Gerät 2 unterschiedliche Farben in einen Behälter packt?

4 Antworten

Bild zum Beitrag

Bild zum Beitrag

Bild zum Beitrag

Momentan sieht es so aus. Man kann zwar momentan die Farben einscannen, aber wenn ich die Steine auf die Rutsche lege. Dann fährt der Farbsortierer immer bis zum Ende und hängt dann fest und wirft keinen Stein dabei aus. Ich dachte das liegt daran, da ich die erste Änderung von dir noch nicht vorgenommen habe, aber ich weiß einfach nicht was du damit meinst

Bild zum Beitrag

Da wo die Schere ist meine ich, der blaue Kreis und der Satz wo davor steht

 - (Computer, Technik, Technologie)  - (Computer, Technik, Technologie)  - (Computer, Technik, Technologie)  - (Computer, Technik, Technologie)
citkid  02.04.2018, 21:00

Man ist das hier inzwischen unübersichtlich geworden, habe aber die aktuellste Meldung dann wohl doch gefunden.

Im Text oberhalb des Bildes sieht es so aus als währe das Einlesen des Steins(oder mit anderen Worten die Farbe des Steins erkennen) und damit die Übernahme in mein Programmteil funktionieren. Im Text unter dem Bild steht aber deutlich, dass du hier nicht verstehst was ich dort deutlich machen wollte. Könnte also genau dein aktuelles Problem sein.

a) Der blaue Kreis ist der Hinweis auf den gelben Block mit dem Text, dass hier die Farbe des Steins ermittelt wird. (Sollte also da sein, wo du den Stein einlegst.)

b) Die grüne Schere soll verdeutlichen, dass hier dein Programmcode zum Anfahren der Holposition eingefügt werden soll. (Sofern ein anfahren überhaupt nötig ist. Eventuell brauchst du einen Programmcode der sicherstellt, dass hier immer gewartet wird bis ein Stein eingelegt wurde. Also warten bis eindeutig eine der gewünschten Farben erkannt wird. Evtl. must du auch erst den Stein einlegen und anschließend eine Starttaste drücken. Damit sichergestellt ist, dass beim Farbe einlesen der Stein auch vor dem Sensor liegt. Info zur Sache: Mein Programmteil ist in wenigen Nanosekunden fertig. Dein Programmteil muss sicherstellen, dass auf bestimmte Ereignisse, wie Stein einlegen, gewartet wird.)

Da es immer wieder zwischen uns zu Verständigungsproblemen kommt, versuche ich es in vielleicht übertriebener Gründlich-/Deutlichkeit. Komm' aber bitte nicht auf die Idee, ich wüsste irgend etwas über deine Hardware.

Stelle mir also folgendes vor:

1) Du fährst die Position zum Stein holen an. Siehe hierzu im Text die Pos b).

2) Die Farbe des Steins wird eingelesen. Siehe hierzu im Text die Pos a).

3) Mein Programmteil ermittelt die gewünschte Zielposition 1 oder 2. Siehe im Bild die roten Texte beim Schalter. Der Inhalt im Schalter bearbeitet entweder die Zielposition 1 (falsch, bzw. X) oder die Zielposition 2 (wahr, bzw. Haken)

Somit geht es so weiter:

4.1) Hat das Programm sich im eben genannten Schalter für "falsch" entschieden, wird der von dir einzufügende Programmteil "anfahren der Zielposition 2 und Stein ausspucken" abgearbeitet. Anschließend wird noch mein Programmteil abgearbeitet.

4.2) Hat das Programm sich im eben genannten Schalter für "wahr" entschieden, wir der von dir einzufügende Programmteil "anfahren der Zielposition 1 und Stein ausspucken" abgearbeitet. Von mir ist hier kein Programmcode vorgesehen.

Das wiederholt sich dann, bis alle Steine (4 Stück) verteilt wurden.

Nachtrag:

Ob du dein Stein ausspuckst, fallen lässt, oder was auch immer, ist dabei für mich egal - ist ja dein Programmteil.

Das Gleiche gilt für Stein holen. Wie du deinen Stein greifst, oder ob du ihn mitschleifst oder was auch immer, ist für mich wieder völlig egal - ist ja dein Programmteil.

Wenn also der Farbsortierer, wie von dir oben beschrieben, bis zum Ende fährt kann das viele Gründe haben. Fehler beim Abschreiben meines Programms. In deinem Programmteil kann der Motorblock auf Start gestellt sein und es gibt kein Stopp oder es sind falsche Werte im Motorblock eingetragen, oder .......

Die Fehlersuche kann ich dir nicht abnehmen. Aber einen Tipp für die Fehlersuche kann ich dir dennoch mitgeben: Mir hat es immer geholfen, wenn ich einer anderen Person das Programm Schritt für Schritt erkläre. Dabei muss die Person gar nichts von dem was ich da erzähle verstehen. Es geht vielmehr darum, dass du das Programm so deutlich Schritt für Schritt durchgehst, dass jeder Fehler dir zwangläufig auffallen muss. Du kannst es auch deinem Teddy erklären, Hauptsache du versuchst es ihm verständlich zu machen.  :-)  Schöner ist es natürlich wenn dein Freund versucht das zu verstehen, was du versuchst, im zu erklären. Er versteht vielleicht was du da machst und du findest den Fehler. Eine Win/Win-Situation.

Viel Erfolg!

0
Mamnu 
Fragesteller
 04.04.2018, 00:23
@citkid

Welche Einstellungen hast du den eigentlich, da wo die ganzen Verbindungen sind? Ich bin jetzt davon ausgegangen die sind so wie sie von vornherein eingestellt sind, aber das könnte ja auch falsch sein

0

Also, Ich weiß das ich deine Schleife irgendwo in dem Bereich des folgendes Fotos einfügen muss

Bild zum Beitrag

Aber ich weiß zum ersten nicht wo und zum anderen was soll ich den an deiner Schleife soll ich statt den Array (0,0,0,0) Den mit (4,5,4,5) füllen. Ich weiß jetzt auch was der EV3 in dieser Schleife macht und zwar bewegt er sich erst bis er an den Berührungssensor kommt und dann stopt der große Motor, anschließend fährt das Fließband bis zur vorher definierten Stelle für die jeweilige Farbe. Dann bewegt der mittlere Motor das bewegliche Auswerfteil nach unten, damit der Stein dort hineinrutschen kann. dann bewegt sich das Auswerfteil nach oben und wirft den Stein halt aus.

 - (Computer, Technik, Technologie)
Mamnu 
Fragesteller
 14.03.2018, 16:50

Wie sollen wir jetzt diese Erkenntnisse weiterhelfen?

0
citkid  14.03.2018, 18:55
@Mamnu

Schade, dass du die Funktion dieses kleinen Verteilers nicht erkennst. Ich will mal versuchen dir die Funktion zu verdeutlichen.

Das Array A am Anfang ist mit Nullen gefüllt, damit die Schleife abgefragt werden kann. Eine Abfrage auf ein unzureichend gefülltes Array führt zum Fehler. Das Array enthält immer den aktuell abgelegten Zustand der ersten Ablageposition. Noch ungenutzte Positionen enthalten eine 0. Die zweite Ablageposition benötigt kein Array, da hier alle Teile abgelegt werden die nicht in Ablageposition 1 gehören.

Schleife 01: beginnt mit Abfrage der Farbe des abzulegenden Steins. Hier ist die Position, wo von dir das Programm angepasst werden muss. (So etwas wie: Zur Position bewegen wo die Steine liegen, Stein greifen und natürlich Farbe erkennen.) Jetzt wird die Variable "gefunden" zurückgesetzt (gefunden=falsch).

Schleife 02: durchsucht das Array für Ablageposition 1 ob die gerade eingelesene Farbe bereits in dieser Ablageposition vorhanden ist. Wenn ja, wird gefunden auf wahr gesetzt und die Schleife verlassen. Natürlich auch wenn die Schleife vollständig abgefragt wurde.

gefunden=wahr - Schalter wahr wird abgearbeitet. Hier muss also das Ablegen des Steins auf Position 2 von dir eingefügt werden.

gefunden=falsch - Schalter falsch wird abgearbeitet. Der blaue Block steht für dein Programm zum Ablegen des Steins auf Position 1. Danach wird das Array A darüber informiert, dass sich jetzt die eben abgelegte Farbe nun auch auf Pos.1 befindet. Oder anders ausgedrückt, Der erste freie Platz (wird in Schleife 03 ermittelt) wird mit der aktuellen Farbe gefüllt.

Ich hoffe du kannst jetzt die Funktionsweise meines Programms verstehen und somit deine Programmteile richtig einfügen.

Würde mich freuen, wenn du mir den Erfolg mitteilst damit ich weis, die Mühe war nicht umsonst.

Nun kann ich dir nur noch viel Erfolg wünschen.

0
Mamnu 
Fragesteller
 15.03.2018, 03:02
@citkid

Ok, ich versuche es nochmal und natürlich werde ich dir, sollte ich erfolgreich sein dir das mitteilen

0
Mamnu 
Fragesteller
 15.03.2018, 04:55
@Mamnu

Ich dreh hier gleich durch, egal was ich versuch nichts funktioniert

0

Bin ich blind, oder kannst du deine Frage nicht richtig formulieren?

Ich kann keine Programmierung für einen zweiten EV3 erkennen. Des weiteren währe es nicht uninteressant wenn du noch dazuschreiben könntest, was deine Schaltung komplett anstellen soll. So könnten wir die Schaltung leichter nachvollziehen.

Woher ich das weiß:eigene Erfahrung – Coach der hiesigen LEGO-Robotik Gruppe
Mamnu 
Fragesteller
 08.03.2018, 22:09

Ist ja nur ein Ev3, der Ev 3 soll die Farbeb gelb und rot nicht jeweils in separate Behälter packen. Sondern in jeden Behälter soll jeweils eine Gelb und Rote Farbe sein.

Als erstes fährt der Ev3 in eine Standarposition. Danach scanne jeweils in beliebiger Rheinfelden gelbe und Rote Steine ein mit dem Farbsensor. Die ich dann auf die Rutsche lege. Dann fährt der Ev 3 mit der Rutsche zu den jeweils vorher festgelegten Standort der Becher.

Zurzeit trennt er die Farben Gelb und rot noch. Aber ich will es erreichen das jeweils eine Rote und Gelbe in jedem Behälter ist

0
citkid  10.03.2018, 19:18
@Mamnu

Habe mich jetzt noch einmal ausführlich mit deinen Bildern auseinandergesetzt. Sie sind leider etwas unscharf. Mal sehen ob ich die Umsetzung richtig verstanden habe.

Ist es richtig wenn ich davon ausgehe, dass du die bunten Steine beim Einlesen in ein Array einliest? Jede Position im Array enthält die Farbe von einem Stein?

Unter dieser Voraussetzung versuche ich mal ein Beispiel zu erzählen:

Du liest ein: rot, gelb, gelb, rot.

Du willst auf zwei Positionen wie folgt ausgeben: rot, gelb für Position 1 und gelb, rot für Position 2.

Lösung1: Während der Ausgabe ein Ausgabearray für Position 1 führen. Kontrollieren ob die aktuelle Farbe im Ausgabearray vorhanden. Entsprechend handeln.

Lösung2: Variable mit Farbe der letzten Ausgabe. Variablen mit wieviel Steine in jeder Position bereits ausgegeben. Variable für Ausgabeposition. Ab zweiter Ausgabe Steine testen ob Farbe gerade ausgegeben wurde, dann auf andere Position wechseln. Nach Ausgabe von zweitem Stein in einer Position, ebenfalls Position wechseln.

Habe ich dein Problem richtig erkannt?

0
Mamnu 
Fragesteller
 11.03.2018, 16:32
@citkid

Ja, aber die Rheinfolge beim Einlesen soll beliebig sein. Also es soll egal sein ob ich erst rot oder gelb einlese usw.. Welche von den 2 Lösungen wäre den nach deiner Ansicht leichter zu machen?

0
citkid  11.03.2018, 20:12
@Mamnu

Beide Lösungen sind für völlig unbekannte Reihenfolgen geeignet. Lösung1 ist einfach verständlich, benötigt aber eine Schleife die bis zu Ende abgearbeitet werden muss und ist auch für große Mengen geeignet. Lösung2 ist nicht so leicht verständlich aber schneller, weil nur erforderliche Verzweigungen abgearbeitet werden. Ob diese Methode auch für große Mengen geeignet ist??? Diese Frage erzeugt bei mir viel Rauch im Kopf und bleibt deshalb erst einmal unbeantwortet.

In deinem Fall hat du keine Zeitprobleme, weil nur 4 Steine getestet werden müssen. Du kannst also die Methode verwenden, die du besser verstehst.

Du kannst ja beide Methoden in Gedanken oder auf Papier testen und wirst erkennen wie sie arbeiten. Mögliche Eingangsvarianten sind ja nur:

rot, rot, gelb, gelb

rot, gelb, rot, gelb

rot, gelb, gelb, rot

gelb, rot, rot, gelb

gelb, rot, gelb, rot

gelb, gelb, rot, rot

1
Mamnu 
Fragesteller
 11.03.2018, 23:20
@citkid

Ok, ich werde das morgen mal mit Variante 1 probieren

0
citkid  12.03.2018, 21:04
@Mamnu

Ich schreibe an dieser Stelle weiter, weil ich deinen letzten Beitrag nicht beantworten kann. Dafür darf ich danke für eine gute Antwort sagen - Bescheuert.

Ich wollte zwei Bilder mit einer funktionierenden Programmierung einstellen. Das wird mir aber leider nicht ermöglicht.

Ich werde jetzt an einer Lösung arbeiten zum Download der Bilder von meinen Computer. Hierzu werde ich dir einen Zugang für 24 Stunden einrichten. Ich melde mich wieder, wenn der Zugang steht.

0
Mamnu 
Fragesteller
 12.03.2018, 21:18
@citkid

Ok, da scheint ein bisschen was schief gelaufen zu sein mit dem nicht beantworten können und dem danke sagen, sorry

Ok, danke

0
citkid  12.03.2018, 23:25
@Mamnu

Unter der IP http://87.184.204.99/ können die Bilder bis zum 13.03.2018 ca. 22:00 Uhr herunterladen werden. Dann wird der Zugang wieder geschlossen.

Die beiden Probleme die Bilder hier einzustellen sind nicht deine Fehler. Es sind Fehler, bzw. nicht zugelassene Funktionen von "gutefrage".

So wollen wir nicht meckern, denn die Nutzung ist hier ohne Werbung vollständig kostenlos. Nicht immer fehlerfreie Darstellung/Nutzung aber sonst ganz nett und übersichtlich gestaltet.

0
Mamnu 
Fragesteller
 13.03.2018, 09:33
@citkid

Und das soll ich jetzt an die Stelle, wo ich es bei meinem zweiten Bild eingesetzt habe, oder wie?

0
citkid  13.03.2018, 16:23
@Mamnu

Ich beabsichtige nicht dein Programm zu  schreiben und habe deshalb nur den Teil der Verteilung geschrieben. Als ich mein Programm getestet hatte, war anstelle des Farbsensors ein Array mit der Reihenfolge die ich testen wollte. Das bei dir an den richtigen Stellen Fahrzeugbewegung, Stein greifen und loslassen noch angepasst werden muss erklärt sich von selbst. Versuche das Programm in seiner Arbeitsweise zu verstehen, dann kannst du deine Frage selbst beantworten.

Ein Tipp: Habe ich ein Programm geschrieben/geändert und es läuft nicht auf anhieb, dann gehe ich Schritt für Schritt das geschriebene Programm durch und stelle mir die Aktion der Hardware vor.

0
Mamnu 
Fragesteller
 13.03.2018, 20:55
@citkid

Ok,

Wo ist den jetzt die Seite hin? Wir haben doch erst 21 Uhr

0
Mamnu 
Fragesteller
 13.03.2018, 21:10
@Mamnu

Also es muss irgendwo in die letzte schleife mitrein, die ist ja für die Ausgabe zuständig

0
citkid  13.03.2018, 21:33
@Mamnu

Mein Provider hatte mir inzwischen eine neue IP-Adresse vermacht und du hattest bereits Zugriff auf die Dateien. Hatte angenommen, dass du sie nicht mehr benötigst. Hier die neue IP http://79.233.204.134/

Der Zugriff zur IP bleibt max. bis morgen früh. Sollte der Provider heute Nacht wieder wechseln, bricht der Kontakt schon früher ab.

Ich empfehle die Bilder herunterzuladen!

0
Mamnu 
Fragesteller
 14.03.2018, 16:53
@citkid

Ich komm einfach nicht weiter. Ich mache mir jetzt fast die ganzen 20 Stunden nur Gedanken über das. Kannst du mir nicht einen weiteren Tipp geben? Meine Erkentnisse von den 20 Stunden habe ich einen Beitrag weiter oben verfasst

0

Ich kapier das nicht, was muss ich den da jetzt konkret ändern bzw, anpassen??

Bild zum Beitrag

 - (Computer, Technik, Technologie)