• Herzlich willkommen!

    Das Team von »Doctor Brick« heißt Euch herzlich willkommen und wünscht Euch viel Spaß hier!
    »Doctor Brick« ist eine anerkannte Community (RLOC) für erwachsene LEGO Enthusiasten, auch AFOLs (= Adult Fans Of LEGO) genannt.
    Wir können uns hier über alle Belange des LEGO Hobbys austauschen wie z.B. Set- und Teilefragen, Vorstellung und Rezensionen von Legobauten.
    Bitte beachtet die Nutzungsbedingungen und den Verhaltensleitfaden.

EV3 und Monorail

n3t3rb

Mitglied
Registriert
19 März 2014
Beiträge
101
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
25032065789_0a4f20207b_z.jpg
[/url]Lego Monorail + EV3 by n3t3rb©, auf Flickr[/img]
24769041814_d5b6a04237_z.jpg
[/url]Lego Monorail + EV3 by n3t3rb©, auf Flickr[/img]
25306620701_9e9b47eb76_z.jpg
[/url]Lego Monorail + EV3 by n3t3rb©, auf Flickr[/img]
">
24769044454_79bcc11f06_z.jpg
[/url]Lego Monorail + EV3 by n3t3rb©, auf Flickr[/img]
 

#MoinMoin

Stammuser
Registriert
13 Feb. 2015
Beiträge
455
Könnte man nicht die Anzahl der Wechsel zählen oder haben die bei jedem Zug einen anderen Wert?
 

Matze2903

MoRaStafari
Registriert
18 März 2012
Beiträge
3.119
Ort
Heilbronn
Einheitsmonorails?

und bewegungsmelder statt Farberkennung? Wenn sich nix mehr bewegt dann darf der andere Zug losfahren?
 

n3t3rb

Mitglied
Registriert
19 März 2014
Beiträge
101
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".
 

#MoinMoin

Stammuser
Registriert
13 Feb. 2015
Beiträge
455
Reicht es vielleicht, wenn du nach dem Erfassen des Sensors eine Pause ins Programm setzt, so dass er die weiteren Wechsel nicht mit bekommt. Zur Not auch mit einer "Schleife voll sinnlosem Code" für die er halt einfach soviel Zeit braucht bis der längste Zug vorbei ist?
 

n3t3rb

Mitglied
Registriert
19 März 2014
Beiträge
101
Das hat nicht geklappt, da das ganze Programm in einer Schlaufe ist.
Ich habe im Menü des Sensors leider keine Optionen um den Sensor (Aktivität) beinflussen zu können oder ich sehe es nicht.
 

Monorail_Joe

Mitglied
Registriert
5 Juli 2015
Beiträge
141
Ort
Mülheim
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.
 

n3t3rb

Mitglied
Registriert
19 März 2014
Beiträge
101
Hallo Joe

Das mit dem Marken ist ein sehr interessanter Lösungsvorschlag!
Ich setze die graphische Programmierung ein. Kannst Du mir eventuell mit Bilder weiterhelfen?
 

Monorail_Joe

Mitglied
Registriert
5 Juli 2015
Beiträge
141
Ort
Mülheim
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)
 

mick29

Meister
Registriert
26 Jan. 2015
Beiträge
2.747
Ort
Krumbach
hast du es schon mit dem Ultraschalsensor probiert? der ist soweit ich weis so breit dass er die Lücke garnicht mitbekommen könnte
 

PistenBully 600

Urgestein
Registriert
5 Nov. 2013
Beiträge
1.935
Ort
Verl
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?
 

n3t3rb

Mitglied
Registriert
19 März 2014
Beiträge
101
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.
 

Anhänge

  • Bildschirmfoto 2016-03-02 um 13.03.53.png
    Bildschirmfoto 2016-03-02 um 13.03.53.png
    100,8 KB · Aufrufe: 103

n3t3rb

Mitglied
Registriert
19 März 2014
Beiträge
101
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
 

Anhänge

  • Bildschirmfoto 2016-03-02 um 13.30.28.png
    Bildschirmfoto 2016-03-02 um 13.30.28.png
    142,8 KB · Aufrufe: 81
  • Bildschirmfoto 2016-03-02 um 13.30.23.png
    Bildschirmfoto 2016-03-02 um 13.30.23.png
    25,5 KB · Aufrufe: 74
  • Bildschirmfoto 2016-03-02 um 13.30.11.png
    Bildschirmfoto 2016-03-02 um 13.30.11.png
    188,1 KB · Aufrufe: 84
  • Bildschirmfoto 2016-03-02 um 13.29.54.png
    Bildschirmfoto 2016-03-02 um 13.29.54.png
    22,4 KB · Aufrufe: 411

PistenBully 600

Urgestein
Registriert
5 Nov. 2013
Beiträge
1.935
Ort
Verl
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.
 
Oben