1. Hallo TT-Modellbahner, schön, dass du zu uns gefunden hast.
    Um alle Funktionen nutzen zu können, empfehlen wir dir, dich anzumelden. Denn vieles, was das Board zu bieten hat, ist ausschließlich angemeldeten Nutzern vorbehalten. Du benötigst nur eine gültige E-Mail-Adresse und schon kannst du dich registrieren.
    Deine Mailadresse wird für nichts Anderes verwendet als zur Kommunikation zwischen uns.
    Die Crew des TT-Boardes

Machbarkeitsstudie für einen Entfernungs- und Geschwindigkeitsmesswagen in der Spur TT

Dieses Thema im Forum "Bastelecke und wie geht was?" wurde erstellt von vinman, 3. April 2021.

  1. Stardampf

    Stardampf Boardcrew

    Registriert seit:
    17. Juli 2003
    Beiträge:
    11.912
    Ort:
    Magdeburg
    Bewertungen:
    +2.547
    Na und?
    Das ist ein Meßgerät, kein Modell.
    Mit etwas Übung weiß man, bei welcher Fahrstufe die Lok welche Geschwindigkeit erreicht und der Wagen muß nur noch zur Kontrolle eingesetzt werden.
    Mein nächster wird ein zentrales Anzeigemodul für's Stellpult bekommen, damit kann ein beliebiger Wagen der Sender sein.
     
  2. vinman

    vinman Foriker

    Registriert seit:
    14. Februar 2021
    Beiträge:
    20
    Ort:
    Berlin
    Bewertungen:
    +44
    Hallo zusammen,

    ich habe mich mal etwas zu dem von @Per vorgeschlagenen ESP8266 belesen: Dieses Board scheint ja auch kein großes Hexenwerk zu sein und so habe ich mir mal 3 Stück zum Probieren bestellt. Da dieses Board auch gleich einen Webserver mitliefert, kann ich mir gut vorstellen, dass die "Fernabfrage" der Werte darüber zu realisieren wäre. Dann wäre es auch systemunabhängig. Zwei Hbis-tt habe ich gestern auch noch in der Bucht geordert. Wenn alles geliefert ist, werde ich mich mal ans Layout einer Platine machen um Spannungswandler, Gleichrichter, Pufferkondensator(en) und CNY70 sauber im Wagenboden unterzukriegen. Vielen Dank @Per für Deine Hartnäckigkeit.
    Herzliche Grüße
    vinman
     
  3. Schraube

    Schraube Hersteller

    Registriert seit:
    17. Dezember 2015
    Beiträge:
    683
    Ort:
    Leipzig
    Bewertungen:
    +2.316
    Also wenn das alles klappt @vinman: Ich wäre an einem Bausatz interessiert!
    Vor allem wenn man per Webserver die Daten Live auf'm Laptop / Smartphone verfolgen kann wäre das nicht nur für die Streckenvermessung, sondern auch für das Einstellen von Lokomotivdecodern sehr hilfreich.
     
  4. vinman

    vinman Foriker

    Registriert seit:
    14. Februar 2021
    Beiträge:
    20
    Ort:
    Berlin
    Bewertungen:
    +44
    Hallo zusammen,

    heute sind die bestellten ESP8266 angekommen. Ich habe mir baugleiche Wemos D1 mini bestellt. Schon beim Auspacken habe ich gesehen: Die sind zu groß! 26mm Breite bekomme ich in keinen Wagen untergebracht. Möglicherweise habe ich die falschen Module genommen. @Per, welche Module hast Du verwendet? Welche Abmaße haben diese? Nichts desto trotz werde ich mal mit dem Board beschäftigen. Einen Webserver und das Display habe ich testweise schon mal am laufen. Mal sehen, wie es weitergeht...

    Herzliche Grüße
    vinman
     
  5. Per

    Per Foriker

    Registriert seit:
    10. April 2002
    Beiträge:
    15.254
    Ort:
    Frankfurt
    Bewertungen:
    +1.508
    Wobei das meiner Signatur widerspricht ;)

    Gar nicht so gut sichtbar, aber hier verbirgt sich ein Link.
    Für "Gäste" (Stammtisch) ist es praktisch, eine Übersicht auf der WLAN Anmeldeseite abzulegen.
     
  6. vinman

    vinman Foriker

    Registriert seit:
    14. Februar 2021
    Beiträge:
    20
    Ort:
    Berlin
    Bewertungen:
    +44
    Danke für den Link, den habe ich glatt übersehen.
    Hmm, bei den Abmaßen des verlinkten Boards stehen auch 25mm Breite. Das verbaute Display ist kein OLED, sondern ein TFT. So richtig glücklich bin ich damit ehrlich gesagt nicht. Muss mir nochmal überlegen, wie das sinnvoll in den Wagen zu bauen wäre oder ob der Arduino nano, wegen seiner kompakteren Maße, doch besser geeignet ist. Ein WLAN-Modul gibt es dafür ja auch...
    Dennoch vielen Dank für Deine Tipps!
    Herzliche Grüße
    vinman
     
  7. vinman

    vinman Foriker

    Registriert seit:
    14. Februar 2021
    Beiträge:
    20
    Ort:
    Berlin
    Bewertungen:
    +44
    Hallo zusammen,

    auch wenn ich noch nicht weiß, ob es nun der ESP8266 wird oder doch der Arduino nano mit WLAN-Modul, so habe ich trotzdem die Sache mit dem Webserver versucht: Es geht! Man kann die gefahrene Strecke und die Geschwindigkeit per Browser verfolgen. Die Seite aktualisiert sich alle halbe Sekunde von selbst, so dass sich die Werte ähnlich schnell wie am Display ändern. Die Reset-Funktion habe ich auch schon implementiert, allerdings muss man dazu im Moment noch einen "zurück"-Knopf drücken, um wieder auf die Werte-Seite zu kommen. Da muss ich mal schauen, ob das auch anders geht.

    Herzliche Grüße
    vinman
     

    Anhänge:

    • Gefällt mir Gefällt mir x 1
    • Informativ Informativ x 1
    • Liste
  8. vinman

    vinman Foriker

    Registriert seit:
    14. Februar 2021
    Beiträge:
    20
    Ort:
    Berlin
    Bewertungen:
    +44
    Hallo zusammen,

    ich habe in den letzten Wochen viel gewerkelt und probiert: Den ESP8266-12E habe ich auf einer passend konstruierten Leiterplatte mit CNY70, Spannungsregler und Schmitt-Trigger in einen Hbis-tt eingebaut. Grundsätzlich funktioniert das alles auch, aber im Vergleich zur Machbarkeitsstudie im Gbs mit Arduino nicht so präzise. Der ESP8266 hat viel mehr Leistung, somit ist das direkte Auswerten des CNY70 via Interrupt nicht möglich, da in diesem Fall nur Datenmüll entsteht. Der Schmitt-Trigger sollte diese Problematik eigentlich vermeiden, aber auch damit sind es einfach zu viele Ungenauigkeiten, die bei Geschwindigkeiten größer 40mm/s zu immer größer werdenden Abweichungen führen. Im Moment weiß ich mir keinen weiteren Rat und werde wohl doch den Ansatz mit Arduino nano und ESP8266-1 als WLAN-Modul nochmal aufnehmen...

    Herzliche Grüße
    vinman
     
  9. Schraube

    Schraube Hersteller

    Registriert seit:
    17. Dezember 2015
    Beiträge:
    683
    Ort:
    Leipzig
    Bewertungen:
    +2.316
    @vinman was genau macht dir Probleme? Interrupt auswerten kann der ESP8266 ja erstmal auch. "Mehr Leistung" i.S.v. höherer Taktfrequenz und mehr Speicher steht dabei auch nicht im Weg. Was erzeugt bei dir die Ungenauigkeiten?

    Falls es darum geht, dass der Interrupt eintrifft, abgearbeitet wird und dann gleich noch mal erkannt wird weil der Magnet noch gar nicht schnell genug vom Sensor weg konnte:
    • Variante a) Mindest-Wartezeit einbauen. Ausrechnen, wie viele Interrupts / Sekunde bei einer realistischen Höchstgeschwindigkeit eintreffen. Interrupt zu Beginn der ISR deaktivieren und einen Timer stasrten, der den Interrupt erst nach Ablauf dieser Mindest-Wartezeit wieder aktiviert.
    • Variante b) Flankenerkennung einbauen. Dem Schmitt-Trigger eine kleine sample-/Hold-Stufe vorschalten. Die verzögert Prellen/Mehrfacherkennung eines eintreffenden Magneten und hält den Pegel am Eingang des Triggers stabil. Dadurch prellt der Trigger-Ausgang nicht. Somit ist es möglich, den Interrupt nicht pegel- sondern flankengesteuert zu aktivieren. Nur wenn der Pegel 0->1 wechselt wird die ISR ausgeführt.
    Beides sollte einschlägige Probleme lösen.
     
  10. vinman

    vinman Foriker

    Registriert seit:
    14. Februar 2021
    Beiträge:
    20
    Ort:
    Berlin
    Bewertungen:
    +44
    Hallo @Schraube,

    vielen Dank für Deine Hinweise und Anregungen. Natürlich hast Du Recht, dass höhere Leistung erstmal nicht per se der Messung im Weg steht. Die höhere Taktfrequenz sorgt jedoch dafür, dass die Interrupt-Schleifen häufiger durchlaufen werden, folglich die Pegeländerungen des CNY70 häufiger ausgewertet werden. Das führte zu hohen, unbrauchbaren Werten. In diesem Fall hatte ich den CNY70 direkt an den Input-Pin des ESPs angeschlossen. Da mir das keine sinnvollen Werte brachte, habe ich den Schmitt-Trigger dazwischengeschaltet. Nun sind die Werte zu gering, wenn die Geschwindigkeit größer als 40mm/s wird. Der Trigger schaltet also nicht so schnell, wie benötigt. Der CNY70 ist ein Infrarot-Sensor. Dieser "schaut" auf die Achse, welche 4 weiße und 4 schwarze Bereiche hat. So kann ich also eine 1/8 Umdrehung erfassen, was beim Radumfang der Radsätze schon 3,26mm sind. Beim Drehen der Achse ändern sich diese Werte natürlich nicht schlagartig, sondern "verwischen". Dem Arduino schein das keine Probleme zu machen, er misst ganz korrekt. Ich kann die gefahrene Strecke mit dem Lineal/Gliedermaßstab/Zollstock nachmessen und es stimmt (+/- 2mm). Der ESP wertet diese "verwischten" Werte jedes Mal als Änderung. So habe ich z.B. mehrmals hintereinander ein HIGH oder ein LOW, welches trotzdem immer als Interrupt gezählt wird.
    Der Schmitt-Trigger scheint diese "verwischten" Werte besser zu verstehen, aber ab einer gewissen Geschwindigkeit kommt er offenbar nicht mehr hinterher...
    Ich werde nochmal versuchen, den CNY70 direkt an den Input-Pin anzuschließen und Deine Vorschläge zum Entprellen zu probieren.
    Ich verzweifele langsam an dem ESP8266. Beim Arduino war alles so schön einfach...

    Herzliche Grüße
    vinman
     
    Zuletzt bearbeitet: 16. Mai 2021 um 15:28 Uhr
  11. Schraube

    Schraube Hersteller

    Registriert seit:
    17. Dezember 2015
    Beiträge:
    683
    Ort:
    Leipzig
    Bewertungen:
    +2.316
    Hallo vinman,

    dann sind wir der Lösung doch sehr nahe! Der CNY70 sollte um ein Vielfaches schneller schalten können als die Achse sich jemals dreht. Die Idee, dessen analoge Messungen in klare weiß/schwarz-Bereiche zu zerlegen ist richtig. Das macht dein Trigger auch. Was für einen verwendest du? Es klingt, als sei dieser zu langsam, was ich mir aber eigentlich nicht vorstellen kann. Jeder gängige Trigger-Baustein sollte tausende Schaltvorgänge pro Sekunde schaffen, da müssen wir nur die externe Beschaltung ggf. anpassen.

    Ansonsten gilt das oben gesagte: Nicht das high oder low zählen, sondern die Flanken. Wenn der Wagen steht, siehst du unendlich lange dieselbe Farbe. Was macht dein Arduino in dem Falle? Wichtig ist, immer dann zu zählen, wenn die Farbe sich ändert. Also Übergang schwarz->weiß oder andersrum. Das kannst du bei der Konfiguration des Interrupts im ESP (und jedem anderen Controller) einstellen.

    Bekommen wir raus, wenn du magst!
     
  12. vinman

    vinman Foriker

    Registriert seit:
    14. Februar 2021
    Beiträge:
    20
    Ort:
    Berlin
    Bewertungen:
    +44
    Hallo @Schraube,

    ich verwende einen Port eines SN74HC14N. Beim Hineinschauen in den Wagen, welchen Trigger ich verwende, ist mir etwas aufgefallen: Ich habe zur Zeit der Konstruktion der Platine noch nicht genau gewusst, wie hoch der Pull-Up-Widerstand sein muss. Ich wollte dies nach erfolgter Montage durch ausprobieren herausfinden. Testweise habe ich einen 22k-Widerstand genommen. Der Widerstand ist mit in dem DIP-Sockel des SN74HC14N, also wechselbar! Ich habe nun testweise mal einen 10k-Widerstand genommen und siehe da: Die Werte werden besser, aber noch nicht so, wie gewünscht. Ich denke, dass ich hier noch einmal mit einem Trimm-Poti herumspielen werde.
    Danke für Deine Denkanstöße! Ich hatte das mit dem Pull-Up-Widerstand zwischenzeitlich schon wieder vergessen, obwohl ich es doch beim Konstruieren extra berücksichtigt habe. Naja, wenn die Zeit zwischen Konstruktion und Umsetzung zu lang wird, dann geht auch mal etwas verloren...
    Nochmals Danke!

    Herzliche Grüße
    vinman

    PS: Beim Auswerten der Interrupt-Schleife im ESP und im Arduino benutze ich die Option CHANGE. Ich zähle also jede Veränderung zwischen schwarz und weiß. Somit kann der Wagen beim Stehen keinen Interrupt triggern. Das funktioniert immerhin bei beiden Controllern ;-)
     
  13. Schraube

    Schraube Hersteller

    Registriert seit:
    17. Dezember 2015
    Beiträge:
    683
    Ort:
    Leipzig
    Bewertungen:
    +2.316
    Hi @vinman,

    habe kurz nachgeschaut. Der SN74HC14N selbst ist nicht parametrierbar. Der schaltet bei 5V-Versorgungsspannung irgendwo zwischen 1.6 und 3.2V. Ein- und derselbe Eingangspin wird bei sauberer Versorgungsspannung immer an einem ähnlichen Punkt schalten, die Einstellung des Schaltpunktes per Trimmpoti sollte daher funktionieren. Falls die Versorgungsspannung unsauber sein sollte holst du dir da aber Ungenauigkeiten rein. Falls du's noch nicht hast, setze mal 100nF von VCC nach GND an sämtlichen ICs, also sowohl am SN74HC14N als auch am ESP und anderen höheren Halbleitern. Zwei Stützkondensatoren (1x einstellige µF und 1x >100µF) auf der 5V-Schiene helfen auch. Zusätzlich könnte ein 100nF-Kondensator am Eingang des Triggers nach GND den Pegel stabilisieren.

    Ansonsten geht es eigentlich nur noch darum, den Eingang des Triggers so einzustellen, dass dieser möglichst gleichmäßige und saubere Flankenwechsel liefert. Zum Biasing des CNY70 findest du hier etwas: https://rn-wissen.de/wiki/index.php/CNY70

    Damit kannst du auch am ESP einen Change-Interrupt benutzen und solltest bei beiden Controllern identische Werte bekommen.
     
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden