CAN Decoder fuer IR-Reflexmelder

CAN Decoder fuer IR-Reflexmelder

Postby schumo99 » 07.08.2018, 17:00

Hallo Rob,

ich habe einen 8-fach Melder für Reflexlichtschranken gebaut, der direkt an den CAN-Bus angeschlossen werden kann. Er erlaubt eine Störlicht unempfindliche Detektion mittels IR-Reflexlichtschranken. Es ist quasi nicht mehr möglich durch Lichteinfall falsche Signale zu erhalten. Gleichzeitig ist die Empfindlichkeit so hoch, dass auch Objekte, die schlecht reflektieren und in größerer Entfernung detektiert werden. Man braucht keine farbigen Punkte, o.ä. mehr von unten an den Waggons. Als Sensoren kann man praktisch alles benutzen, was man möchte (z.B. den TCRT5000). Die Gesamtstromaufnahme inkl. von 8 Sensoren beträgt ca. 65mA.
Das Teil ist analog zu meinem schon im Stummiforum vorgestellten s88-Melder zu sehen (https://www.stummiforum.de/viewtopic.php?f=5&t=157920). Da durch den CAN-Bus eine komfortable Konfiguration der Melder (im Gegensatz zu s88) möglich ist, habe ich mich nun für den CAN-Bus entschieden und das Teil entsprechend portiert. Der Aufbau ist sehr einfach, da hauptsächlich fertige Komponenten zum Einsatz kommen und keinerlei SMD-Teile benötigt werden. So sollte es doch eigentlich allen Interessierten die Möglichkeit eines Nachbaus bieten. Der erste Baustein sieht so aus:
P1100195a.jpg
Beim Anschluss an den CAN-Bus habe ich mit einer RJ45 Steckverbindung experimentiert. Es ist aber auch ganz klassisch D-Sub-Stecker/Buchse möglich..

Würdest du bitte im Programmierdialog von rocrail einen weiteren Reiter für den "ArduCAN IR" dazu programmieren, damit man die an den Baustein angeschlossenen Sensoren leicht einstellen und kalibrieren kann. Ich habe mal eine Datei mit der Bedeutung der verwendeten Variablen erstellt und mit angehängt. Dann ist es für den Anwender komfortabler zu konfigurieren, als immer nachzuschlagen was welche Variable bedeutet.
Gerne schicke ich dir auch ein Modul zum Testen.

Eine "Bedienungsanleitung" habe ich mit angehängt. Bauanleitung folgt.

Grüße und Danke schonmal

Matthias
You do not have the required permissions to view the files attached to this post.
[Windows 7] [GBMBoost] [GBM16T] [Massesensoren-S88 (Eigenbau)] [ArduCAN] [Märklin C-Gleis]
schumo99
 

Re: CAN Decoder fuer IR-Reflexmelder

Postby rjversluis » 08.08.2018, 06:33

Moin Matthias,

Voraussetzungen zum Programmier Tab:
- test Hardware
- Source Code Firmware frei Verfügbar machen
- Schedule & PCB & Gerber frei Verfügbar machen
- Doku im DE und EN Wiki
Best Regards, Rob.
:!: PS: Do not forget to attach the usual files.
:!: PS: Nicht vergessen die übliche Dateien an zu hängen.
[ macOS - Linux] - [ N: CBUS - CANGCx ] - [ G: CBUS - CANGCx ]
rjversluis
Site Admin
 

Re: CAN Decoder fuer IR-Reflexmelder

Postby schumo99 » 08.08.2018, 08:47

Hallo Rob,
klar doch. Hier sind schon mal die Gerber Dateien für die Platine und die Software.
Den Eintrag im Wiki mach' ich heute+morgen Abend.
Die Testhardware schicke ich dir gerne zu. Gibt's du mir bitte deine Adresse?
Grüße
Matthias
You do not have the required permissions to view the files attached to this post.
[Windows 7] [GBMBoost] [GBM16T] [Massesensoren-S88 (Eigenbau)] [ArduCAN] [Märklin C-Gleis]
schumo99
 

Re: CAN Decoder fuer IR-Reflexmelder

Postby rjversluis » 09.08.2018, 07:44

Hallo Matthias,

die Sources fehlen; Du hast nur der HEX Datei angehängt.
Best Regards, Rob.
:!: PS: Do not forget to attach the usual files.
:!: PS: Nicht vergessen die übliche Dateien an zu hängen.
[ macOS - Linux] - [ N: CBUS - CANGCx ] - [ G: CBUS - CANGCx ]
rjversluis
Site Admin
 

Re: CAN Decoder fuer IR-Reflexmelder

Postby schumo99 » 09.08.2018, 09:26

Hallo,
sorry. Man braucht zusätzlich zu den beiden Dateien im zip-file noch die library mergCanBus (https://github.com/amaurial/mergCanBus) mit den nachfolgend beschriebenen Änderungen, damit das Hauptprogramm in der Lage ist zu erkennen, wenn man die Variablen über den Programmierdialog verändert hat und welche Ereignis-Nummern eingestellt wurden. Ich werde den Code nochmal überarbeiten und die in der library programmierten Schreib-/Lesezugriffe reduzieren, um ihn schneller zu machen. Wenn das fertig ist, mache ich eine neue Version draus. Jetzt kümmere ich mich erstmal noch um die Dokumentation.

Aber die jetzige Version funktioniert so schon einwandfrei. Die Geschwindigkeit reicht. Das kannst du ja dann nächste Woche selbst an der Hardware testen :wink:

In MERGCBUS.cpp wird eingefügt:

Code: Select all
update_variables=true;

nach
Code: Select all
    case OPC_NVSET:
        //set a node variable
        ind=message.getNodeVariableIndex()-1;//the CBUS index start with 1
        val=message.getNodeVariable();
        #ifdef DEBUGDEF
            Serial.println(F("Learning node variable"));
            //printSentMessage();
        #endif // DEBUGDEF

        setNodeVariableAuto(ind,val,true);



In MERGCBUS.h wird eingefügt:

Code: Select all
void unset_update_variables() {update_variables=false;};
bool get_update_variables() {return update_variables;};
unsigned int getEventNo(byte ind) {
   byte *event = memory.getEvent(ind);         
   return (event[3] | ((uint16_t)event[2] << 8));
}

nach
Code: Select all
class MergCBUS
{
    public:



und

Code: Select all
bool update_variables;

nach:
Code: Select all
    protected:
    private:


Grüße
Matthias
You do not have the required permissions to view the files attached to this post.
[Windows 7] [GBMBoost] [GBM16T] [Massesensoren-S88 (Eigenbau)] [ArduCAN] [Märklin C-Gleis]
schumo99
 

Re: CAN Decoder fuer IR-Reflexmelder

Postby rjversluis » 09.08.2018, 09:55

Hi Matthias,

gibt es von MERG kein Utility womit man diese Einstellungen machen kann?

Man kann Vars und Events auch so Einstellen:
https://wiki.rocrail.net/doku.php?id=cb ... #variables
https://wiki.rocrail.net/doku.php?id=cb ... -en#events
Best Regards, Rob.
:!: PS: Do not forget to attach the usual files.
:!: PS: Nicht vergessen die übliche Dateien an zu hängen.
[ macOS - Linux] - [ N: CBUS - CANGCx ] - [ G: CBUS - CANGCx ]
rjversluis
Site Admin
 

Re: CAN Decoder fuer IR-Reflexmelder

Postby schumo99 » 09.08.2018, 11:12

Hallo Rob,
ja man kann das auch so einstellen, muss aber immer die Variablennummern und die Bedeutung der Zahlenwerte kennen. Anders wäre es halt viel schöner, weil man nur eine Schaltfläche klicken muss...
Für mich ist das jetzt kein Problem mehr, da ich es auswendig kenne. Aber jeder andere wird sich relativ schwer zurecht finden. Und aus meiner Sicht ist der Vorteil des Programmierdialogs gegenüber der CV-Programmierung und anderen Systemen, dass man eben keine Bedeutung von bits und Variablennummern wissen muss, sondern einfach zum Ziel geführt wird. Das vereinfacht die Sache für jedermann doch enorm.
Grüße
Matthias
[Windows 7] [GBMBoost] [GBM16T] [Massesensoren-S88 (Eigenbau)] [ArduCAN] [Märklin C-Gleis]
schumo99
 

Re: CAN Decoder fuer IR-Reflexmelder

Postby GuenTTer » 09.08.2018, 12:14

Hi Matthias und Rob,
kaum bin ich mal im Urlaub (Rügen, aber Temperaturen wie in Spanien) geht es schon ab im Forum. Ich bin begeistert.
Matthias hat uns seinen IR-Rückmelder bei unseren regionalen Stammtisch schon vorgestellt. Ich selbst habe den IR-Rückmelder von Matthias (ohne CAN-Komponenten) vor etlichen Wochen zusammengebaut und getestet. Minimale Stromaufnahme, aber hohe Störsicherheit.
In meinem BayWa-Modul habe ich noch IR-Reflexlichtschranken chinesischer Fertigung verbaut, welche leider pro Stück 32 mA Stromverbrauch haben. Das klingt nicht nach sehr viel, aber bei einem Schattenbahnhof mit 50 Rückmeldern sind das schon mal 1,5A.
Die von Matthias entworfenen Module sind deshalb eine stromsparende und kostengünstiger Möglichkeit, Rückmelder an den CAN-Bus zu bringen.
Wenn es in Rocrail ein Einstellmenü dazu gibt, dann ist es auch noch eine sehr komfortable Lösung.
Ich wünsche euch viel Erfolg !

Viele Grüße von der Ostsee
Günter
Viele Grüße aus Franken
Günter

--------------------
Spur TT - Tillig, Roco, Kuehn, Piko, Arnold, ...
Rocrail 2.0-xxxxx, Client: i7/W10Home, Server: R'Pi3/MATE 16.04.2
DR5000, CANBus mit GC1e, GC2 und GC6
http://www.fktt-module.de/de
GuenTTer
 

Re: CAN Decoder fuer IR-Reflexmelder

Postby karhahn » 10.08.2018, 16:48

Hallo,
Ich finde den Decoder sehr interessant. Bislang hatte ich mit IR-Rückmeldern immer das Problem von Falschmeldungen durch Lichteinfall. Das scheint ja bei diesem hier kein Problem zu sein.
Wie stellt man denn die Empfindlichkeit ein? Ich hab keinen Eintrag in rocrail gefunden. Gibt's da schon eine Lösung?
Viele Grüße
Karl
karhahn
 

Re: CAN Decoder fuer IR-Reflexmelder

Postby rjversluis » 10.08.2018, 17:08

Hallo,

es gibt schon IR Lösungen im Programm welche Bus unabhängig ist und diese braucht man auch nicht zu Kalibrieren:
https://wiki.rocrail.net/doku.php?id=gca133-en
https://wiki.rocrail.net/doku.php?id=gca190-en

Der hier vorgestellte IR Melder ist nur für CBUS, und braucht eine extra CBUS Tab um es Kalibrieren zu können.
Deswegen bin ich ein wenig skeptisch um User Hardware im CBUS Setup Dialog zu integrieren...
Ich kann nicht jedes User/Hobby Projekt in ein Dialog einstellbar machen weil es doch ziemlich viel Aufwand ist.

In diesem Fall kann man selbst ein Utility schreiben weil CBUS offen und sehr einfach gestrickt ist.
Alle Hersteller liefern bei Decoder ein Setup Programm mit um es konfigurieren zu können. Am besten geht es über ein WEB Browser.
Best Regards, Rob.
:!: PS: Do not forget to attach the usual files.
:!: PS: Nicht vergessen die übliche Dateien an zu hängen.
[ macOS - Linux] - [ N: CBUS - CANGCx ] - [ G: CBUS - CANGCx ]
rjversluis
Site Admin
 

Re: CAN Decoder fuer IR-Reflexmelder

Postby GuenTTer » 10.08.2018, 22:54

Hallo Rob,

rjversluis wrote:...
Der hier vorgestellte IR Melder ist nur für CBUS, und braucht eine extra CBUS Tab um es Kalibrieren zu können.
Deswegen bin ich ein wenig skeptisch um User Hardware im CBUS Setup Dialog zu integrieren...
Ich kann nicht jedes User/Hobby Projekt in ein Dialog einstellbar machen weil es doch ziemlich viel Aufwand ist...


du hast mal zu mir gesagt, daß Rocrail sich in die Richtung weiterentwickeln wird, welche die Nutzer bestimmen. Es gibt ja täglich neue Versionen von Rocrail und teilweise werden Funktionen unterstützt, welche nur von wenigen Nutzern verwendet werden. Dies ist m.E. eine der unschlagbaren Stärken von Rocrail.
Hardware für den CANBus, welche von Rocrail unterstützt wird, gibt es nur wenig. Es handelt sich dabei um die seit Jahren zur Verfügung stehenden und sehr zuverlässigen CAN-GC-Baugruppen GC1 bis GC6, sowie dem GCLN, also gerade mal 7 verschiedene Baugruppen. Mit dem GC3 als Zentrale kann man auch keine größere Anlage betreiben und eine Weiterentwicklung durch MERG ist nicht in Sicht.

Deshalb finde ich es toll, wenn aus der Community eine innovative Weiterentwicklung zur Verfügung gestellt wird, welche technisch gut funktioniert und preisgünstig umsetzbar ist. Dies sollte doch ein Grund sein, das Portfolio der HW-Unterstützung in Rocrail zu erweitern.
Den Programmier-Aufwand deinerseits kann ich natürlich nicht abschätzen, aber m.E. wäre es für die Nutzer des CANBus seit Jahren die erste Erweiterung. Von daher bitte ich dich doch das Projekt von Matthias zu unterstützen.

mfG
Günter
Viele Grüße aus Franken
Günter

--------------------
Spur TT - Tillig, Roco, Kuehn, Piko, Arnold, ...
Rocrail 2.0-xxxxx, Client: i7/W10Home, Server: R'Pi3/MATE 16.04.2
DR5000, CANBus mit GC1e, GC2 und GC6
http://www.fktt-module.de/de
GuenTTer
 

Re: CAN Decoder fuer IR-Reflexmelder

Postby rjversluis » 11.08.2018, 06:51

Moin Günter,

Matthias schickt test Hardware, und dann sehen wir weiter.
Es ist aber nicht so das diese IR Module jetzt nicht funktioniert oder nicht programmierbar ist mit Rocrail...
Best Regards, Rob.
:!: PS: Do not forget to attach the usual files.
:!: PS: Nicht vergessen die übliche Dateien an zu hängen.
[ macOS - Linux] - [ N: CBUS - CANGCx ] - [ G: CBUS - CANGCx ]
rjversluis
Site Admin
 

Re: CAN Decoder fuer IR-Reflexmelder

Postby rjversluis » 13.08.2018, 09:51

Moin,

Test Hardware ist eingetroffen.
Best Regards, Rob.
:!: PS: Do not forget to attach the usual files.
:!: PS: Nicht vergessen die übliche Dateien an zu hängen.
[ macOS - Linux] - [ N: CBUS - CANGCx ] - [ G: CBUS - CANGCx ]
rjversluis
Site Admin
 

Re: CAN Decoder fuer IR-Reflexmelder

Postby rjversluis » 13.08.2018, 10:05

Hallo Michael,

du hast Manu ID 77 ausgewählt, "LS Models Sprl", stimmt das?
Muss es nicht 13 sein? "Public Domain & Do-It-Yourself Decoders".
Best Regards, Rob.
:!: PS: Do not forget to attach the usual files.
:!: PS: Nicht vergessen die übliche Dateien an zu hängen.
[ macOS - Linux] - [ N: CBUS - CANGCx ] - [ G: CBUS - CANGCx ]
rjversluis
Site Admin
 

Re: CAN Decoder fuer IR-Reflexmelder

Postby rjversluis » 13.08.2018, 10:21

Moin,

so, jetzt sieht es im Index schon ordentlicher aus, aber der Manu ID ist so nich iO.
cbus-ir.png


Und, es funktioniert gleich:
Code: Select all
20180813.112354.292 r9999c cbreader OCBUS    0704 short event 98:16100 ON
20180813.112354.300 r9999a cbreader OModel   4999 trying to match sensor event: [cbus-1] 0:16100 uidname=[] state=1 code=
20180813.112354.300 r9999a cbreader OModel   5035 sensor key: 0_16100_cbus-1_
20180813.112354.300 r9999a cbreader OModel   5055 unregistered sensor event: [cbus-1] 0:16100 uidname=[]

Warum muss man es Kalibrieren können?
You do not have the required permissions to view the files attached to this post.
Best Regards, Rob.
:!: PS: Do not forget to attach the usual files.
:!: PS: Nicht vergessen die übliche Dateien an zu hängen.
[ macOS - Linux] - [ N: CBUS - CANGCx ] - [ G: CBUS - CANGCx ]
rjversluis
Site Admin
 

Next

Return to ArduCAN