EV3 und Monorail

      EV3 und Monorail

      Hallo Zusammen!

      Auf meinem MoRaSt Modul würde ich gerne Züge kontrolliert fahren lassen.
      Dabei habe ich mir das EV3 zu Hilfe genommen.
      Zug 1 ist auf "Halt" bis Zug 2 den Farbsensor passiert hat. Sobald Zug 1 weggefahren ist, wird der Stopper wieder auf "Halt" gestellt.
      Grundsätzlich funktioniert mein System jedoch gibt es ein kleines Problem mit dem Farbsensor. Da der Zug bedingt durch Wagen und Motor Unterbüche/Lücken hat, sendet der Sensor mehrfach ein Signal an den Motor (Halt, Los, Halt, los,...)
      Weiss jemand von Euch wie ich den Farbsensor einstellen muss, um kurzfristig keine Aktivität zu haben?

      MoRaStige Grüsse
      Martin
      [/url]Lego Monorail + EV3 by n3t3rb©, auf Flickr[/img][/url]Lego Monorail + EV3 by n3t3rb©, auf Flickr[/img][/url]Lego Monorail + EV3 by n3t3rb©, auf Flickr[/img]
      [url=''][/url]">[/url]Lego Monorail + EV3 by n3t3rb©, auf Flickr[/img]

      Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „n3t3rb“ ()

      Hallo Matze

      Auch wenn ich nur gleiche Zugkompositionen auf der Strecke fahren, haben diesen bautechnisch lücken (Wagen - Motor - Wagen).
      Das mit dem Bewegungsmelder (Lichtstärke) könnte ich noch probieren. Wo bei dort vermutlich das gleiche passiert wie mit dem Farbsensor.
      Sobald ein Zug in die Nähe (Sensor) des stehenden Zuges kommt, fährt der stehende ab. Anschliessend stellt der Motor den Stopper wieder auf "Halt".
      Es gibt zwei weitere Möglichkeiten:
      1. an einen Zugabschnitt zwei farbige Marken (Anfang und Ende), dann weisst du das der Zug durch den Sensor gefahren ist und du kannst gleichzeitig noch die Geschwindigkeit berechnen :)
      2. du nimmst einen 4Bit-Code als Marke (0101), dann sind sämtliche anderen Hell/Dunkel-Wechsel ungültig und du weisst sogar noch welcher Zug genau gerade durchgefahren ist.
      Direkt helfen kann ich dir leider nicht, da ich (noch) kein Mindstorms in meinem Bestand habe, aber Tipps kann ich dir geben:

      Zu 1: Am Anfang des Zuges hast du eine "Blaue" Marke und am Ende eine "Rote". Wenn der Sensor die Blaue Marke sieht, startest du die Zeitmessung.
      Sieht der Sensor die Rote, dann stoppst du die Zeitmessung und kannst anhand der Zeit und dem bekannten Abstand der Marken die Geschwindigkeit berechnen.
      Wenn die Rote Marke länger als X-Sekunden benötigt (Muss man ausprobieren), dann ist die Messung bzw Erkennung ungültig.

      Zu 2. Dieses ist schon schwieriger, da ich wie gesagt nicht weiß was du mit der EV3 alle genaumachen kannst und auch z.B. die zeitliche Auflösung des Farbsensors nicht kenne.

      Du hast also ein Muster aus normalerweisen weißen und Schwarzen Flächen. Sprich 0010 (weiss, weiss, schwarz,weiss) entspricht dann einer logischen zwei. Der Einfachheit halber
      würde ich natürlich anstatt Schwarz eine andere Farbe nutzen, wie z.B. Blau, damit hättest du sofort auch die Zwischenräume zwischen den Triebwagen als Fehlerquelle ausgeschlossen.
      Sinnvollerweise nutzt man sogar noch ein "Start" und ein "Stop"-Zeichen, sprich eine eigene Markierung damit das EV3 weiss, wann es anfängt:

      ■■

      Also z.B. "Grün","Weiß", "Blau", "Weiß", Weiß", "Grün" in Leserichtung. Wenn der Sensor die Grüne Markierung sieht, dann lässt du wiederum einen Taktgeber mit festen Zeiteinheiten mitlaufen und nach einem (evtl auch mehr; hängt von der Geschwindigkeit des Zuges und der Software ab) Takt, schreibst du die zurückgegebene Farbe in einen Speicher, danach hast du deinen 4 Bit-Wert in der Software und kannst ihn weiter nutzen. NAch dem letzten "Grün" weisst du, dass der Code zuende ist und der Zug durchgefahren. Fehlt "grün" nach X-Takten, ist der Code ungültig.

      Dieser Aufwand hat halt den Vorteil, dass du 16 unterschiedliche Züge adressieren bzw feststellen kannst, wenn du wolltest. Ich hoffe, dass es ein wenig Verständlich ist. Ich persönlich habe auch schon recht lange nicht mehr Programmiert (Da ist vieles in den Dark-Ages, nicht nur an Lego, verloren gegangen)
      Ich verwende ein ähnliches Steuersystem bei meiner Seilbahn. Da habe ich das Problem, dass die Berührungssensoren manchmal eine Laufrolle der Gondeln doppelt zählen (das sind bei dir die Lücken zwischen den Zügen). Ich habe die Steuerung mit dem alten RCX umgesetzt und das Problem wie folgt gelöst: Sobald der Sensor aktiviert wird (in deinem Fall erkennt der Sensor die Front des Zuges) wartet das Programm x Sekunden, eben solange bis der Zug vorbeigefahren ist. Das Warten deaktiviert den Sensor für die gewünschte Zeit, der Rest vom Pogramm läuft normal weiter.
      Das sollte auch mit dem EV3 umsetzbar sein.
      Bleibt also noch das Problem mit den unterschiedlich langen Zügen. Da könnte man je nach Länge einen farbigen Stein in der Front einbauen, welcher vom Sensor erkannt wird und eine bestimmte Wartezeit auslöst. Beispielsweise nen gelber Stein an einem kurzen Zug = 10 Sekunden Wartezeit; ein grüner Stein am langen Zug = 15 Sekunden Wartezeit. Nach dieser Zeit ist der Sensor wieder aktiv und wartet auf den nächsten Zug.
      Ich hoffe das ist verständlich ausgedrückt, sonst einfach nachfragen :)

      Ps: Aus Interesse: wie hast du die Kupplungen an den langen Zügen gebaut? Könntest du da mal ein Bild einstellen?
      Schöne Grüße, Dennis
      Hallo Dennis

      Danke für das Teilen Deiner Erfahrungen.
      Ich habe noch nicht herausgefunden wie ich den Sensor nach erfassen des Zuges für x Sekunden inaktiv bliebt.
      Ich bin erst seit 3 Tagen damit beschäftigt.

      Auf dem Bild ist mein zusammengestellter Ablauf zu sehen. Am Freitag sollte ich wieder einige Stunden Zeit finden.
      Bilder
      • Bildschirmfoto 2016-03-02 um 13.03.53.png

        103,22 kB, 2.036×652, 93 mal angesehen
      Ps: Aus Interesse: wie hast du die Kupplungen an den langen Zügen gebaut? Könntest du da mal ein Bild einstellen?


      Dennis, ich kann auch gerne die komplette Bauanleitung mailen
      Bilder
      • Bildschirmfoto 2016-03-02 um 13.30.28.png

        146,24 kB, 726×442, 75 mal angesehen
      • Bildschirmfoto 2016-03-02 um 13.30.23.png

        26,15 kB, 320×192, 67 mal angesehen
      • Bildschirmfoto 2016-03-02 um 13.30.11.png

        192,59 kB, 804×500, 77 mal angesehen
      • Bildschirmfoto 2016-03-02 um 13.29.54.png

        22,99 kB, 236×120, 397 mal angesehen

      n3t3rb schrieb:

      Hallo Dennis

      Ich habe noch nicht herausgefunden wie ich den Sensor nach erfassen des Zuges für x Sekunden inaktiv bliebt.

      Auf dem Bild ist mein zusammengestellter Ablauf zu sehen. Am Freitag sollte ich wieder einige Stunden Zeit finden.


      Hey,

      du nutzt die Funktion Warten (die Sanduhr) ja schon, einfach am Ende nochmal warten lassen bevor dein Durchgang endet.

      Gruß Lars

      DosmiL schrieb:

      n3t3rb schrieb:

      Hallo Dennis

      Ich habe noch nicht herausgefunden wie ich den Sensor nach erfassen des Zuges für x Sekunden inaktiv bliebt.

      Auf dem Bild ist mein zusammengestellter Ablauf zu sehen. Am Freitag sollte ich wieder einige Stunden Zeit finden.


      Hey,

      du nutzt die Funktion Warten (die Sanduhr) ja schon, einfach am Ende nochmal warten lassen bevor dein Durchgang endet.

      Gruß Lars


      Genau, dann sollte das gehen.

      Danke für die Bilder der Kupplung. Leider taugt diese Variante für meinen ICE nicht, da ich die Längsdrehung unterbinden muss (sonst entgleist der Zug in Kurven). Ich bleibe dann erstmal bei den Kardangelenken, auch wenn da die Kurvenfahrt sehr merkwürdig aussieht, soweit wie der Zug ausschwenkt.
      Schöne Grüße, Dennis