Nieuws:

Zin in een spoors uitstapje? Kijk eens in onze kalender!

Trainduino: Rocrail Command Station

Gestart door minitreintje zaterdag 23 november 2013, 20:27:59

0 leden en 1 gast bekijken dit board.
Trainduino: Rocrail Command Station
Trainduino

Dit project is OPENSOURCE! Alle sketches & EAGLE printontwerpen worden geplaatst op Github.
GITHUB LINK


De 3D ontwerpen kan je vinden op Thingiverse:
THINGIVERSE LINK

INDEX

1. The start of something big!

1.1 Waarom dit nu alweer?

Het idee achter Trainduino kwam nadat ik voor de eerste keer met Arduino kennis maakten. Ik was het beu die K83,K84,S88, ... toestanden.
Altijd combinaties maken om een aantal beperkte functies uit te voeren. Bovendien is de reset functie van het CS1R NOT done!
Na een noodstop vergeet het CS1R de stappen van een rijweg die nog niet voltooid zijn. Dat brengt natuurlijk een pak miserie met zich mee!

Hierna kwam ik de Arduino tegen, een opensource ontwikkelplatform met een zeer grote community.
De programmeertaal is zeer simpel te leren, dus de instapdrempel is erg laag terwijl je een volwaardige microcontroller hebt.

BTW: Ik zit al veel langer met dit project in mijn gedachten, maar nu krijgt het wat meer 'vorm'. Zo was er al een prototype klaar, helaas was er iets mis mee  :-(

1.2 De naam 'Trainduino'

De naam Trainduino is simpelweg een samenstelling van 'Train' en 'Arduino'. Dit project gaat immers over treinen in combinatie met Arduino :-)

1.3 RandomLEDController

Het eerste project in deze reeks. De aansturing van de straatverlichting en de verlichting in de huizen aansturen.
Door de tijd te meten kan men een dag/nacht schakeling bekomen. Elke cyclus duurt 24 minuten. Elke minuut wordt er een 'uur' bijgeteld op de teller.
Dat prototype was dus dit :) Helaas bij het solderen is iets misgelopen, de transistoren waren fout gesoldeerd en de baantjes waren nog niet perfect gefreesd.
Dit wordt opgelost in een nieuw prototype en door het toepassen van Autoleveller met een 'probe' op de CNC. Deze is verbonden met LinuxCNC.
Wanneer de tool de PCB raakt, geleidt deze de stroom en krijgt LinuxCNC de melding dat het oppervlak is bereikt. Door dit in een raster toe te passen
worden de oneffenheden eruitgehaald. Het voordeel is dat de freesjes minder diep gaan bij oneffenheden, dus de freesjes breken minder gemakkelijk
terwijl de baantjes netter gefreesd worden :)

1.4 RGBLEDController

Het tweede project in deze reeks. Hierbij wordt een RGB ledstrip aangestuurd samen met een witte ledstrip. Zo kan een perfecte dag/nacht schakeling worden bekomen.
De aansturing werkt volgens het principe van de RandomLEDController, dus met een cyclus van 24 minuten. Hierdoor loopt deze synchroon met de RandomLEDController.

1.5 What's next?

Ja, ik weet dat er nog projecten gaan volgen en ook dewelke... Maar het is nog te vroeg om hier iets over te posten. Ik zou eerst een echte (bijna) werkende sketch
willen, vooraleer ik alles uit de doeken doe :)


groeten Dylan
Re: Trainduino: The start of something big!
Zeer interessant altijd, dit soort topics. Ik ga 'm in ieder geval volgen.
Voor DCC is er alvast een hoop voorwerk gedaan, en is er al van alles beschikbaar.

Hier wat (mogelijk) interessante links:

Veel succes Dylan, en houd ons op de hoogte!
Re: Trainduino: The start of something big!
Speciale Gast Events Team
Lid sinds: 2011

offline
Re: Trainduino: The start of something big!
Klinkt erg interessant.

groetjes Dennis
Re: Trainduino: The start of something big!
@Assembler: ssssst straks verklap je nog alles  :mrgreen:
Nee grapje! Ik ben inderdaad al wat bezig met DCC maar ik ben nog aan het twijfelen over een aantal dingen. Daarom dat ik eerst de eerste 2 wil af hebben.

@dennisreij: Dankje! Maar nu staat er nog niet veel leuks op... Wacht maar binnen een week ofzo.  :-)


groeten Dylan
Re: Trainduino: The start of something big!
Speciale Gast Events Team
Lid sinds: 2011

offline
Re: Trainduino: The start of something big!
ik ga afwachten haha.
Re: Trainduino: The start of something big!
Boeiende topic. Mijn ervaring is dat je vaak even wat geduld moet hebben in het begin als je aan iets nieuws begint. Vroeger met HTML kon ik basis over weg. Inmiddels moet je voor Appache bijvoorbeeld giga boeken leren alvorens je iets kan maken.

Ik zal het met veel belangstelling gaan volgen.
Re: Trainduino: The start of something big!
Lid sinds: 2011

Meet (kijk, voel, luister) en weet

offline
Re: Trainduino: The start of something big!
Ik ga dit hier in volle interesse volgen.

groet
Harald
Re: Trainduino: The start of something big!
Hallo Dylan,


Ik ben ook erg nieuwschierig.
dus ga dit zeker ook volgen zoals zovelen hier denk ik


mvg Frans
Re: Trainduino: The start of something big!
Mijn interesse is ook gewekt zeker als detectie en besturing van de treinen op deze manier gaat lukken
Re: Trainduino: The start of something big!
Dank jullie allemaal voor jullie belangstelling al... Helaas nog geen freesjes binnen, dus prototype moet een beetje wachten helaas.
Ik verwacht toch deze week te kunnen frezen.

groeten Dylan
Re: Trainduino: The start of something big!
Forum Moderator
Lid sinds: 2007

offline
Re: Trainduino: The start of something big!
Hoi Dylan,

wat een leuk project weer.
Ik sta te popelen om er van te leren.

Laat maar komen

modelspoorse groeten

Wim
Re: Trainduino: The start of something big!
Ja ik ook :O alleen zijn de PCB's op pfff heb er nieuwe besteld.



groeten Dylan
Re: Trainduino: RELEASE van de RandomLEDController V1.0
2. RELEASE van de RandomLEDController V1.0

Pfff ze hebben mijn Thumb Up weggehaald in de berichticoontjes, dan maar een +1 :p

De afgelopen weken heb ik de code van de RandomLEDController afgerond... Deze is nu verkrijgbaar op Github.
De RandomLEDController beheert 18 LED's dus 18 verschillende kamers in huisjes. Helemaal random zowel de uitgang als de tijd.
Bovendien is er een dag/nacht modus ingebouwd die loopt van 7:00 tot 19:00. Over dag gaan de uitgangen aan of uit terwijl s' nachts deze geleidelijk aan uit gaan.
s' Nachts gaat er ook één LED aan, deze is eigenlijk de straatverlichting.

Hieronder nog een foto van de PCB, een developmentshield gemaakt door de CNC en speciaal voor de RandomLEDController ontwikkeld:




Bovenkant.



Onderkant.

De soldering is niet super super mooi maar het is ook maar een shield om de code goed te kunnen testen en te debuggen :)

En een filmpje:


De echte PCB die niet afhankelijk is van de Arduino zal binnen enkele weken gebouwd worden.
Ik sta open voor suggesties :) En als er iemand interesse heeft in de schakeling,de Arduino sketch, ... check Github!

groeten Dylan
Re: Trainduino: RELEASE van de RGBLEDController V1.0 en RandomLEDController V1.1
3. RELEASE van de RGBLEDController V1.0 en RandomLEDController V1.1

Ik mag een nieuwe release aankondigen van TrainDuino: De RGBLEDController is vanaf nu gereleased!
De RGBLEDController similuleert de dag/nacht door 2 ledstrips (1 RGB en 1 gewone warm witte) aan te sturen.
De cyclus is hetzelfde als bij de RandomLEDController zodat alles netjes synchroon loopt.

Ik ben overgestapt op Arduino Pro Micro, een zeer kleine Arduino die ontworpen werd door Sparkfun, alles is compacter omdat de voeding, het crystal, ... allemaal al op één bordje zit.
Bovendien is het nog goedkoper dan alles apart te kopen. Er zit zelfs een USB stekker op, veel gemakkelijker om te programmeren dus.
De reden was vooral omdat de timing niet goed werkte op één of andere manier. Hierdoor werkte de code niet op de PCB's.
Nu dus wel :)

Ook de RandomLEDController heeft een update gekregen. De LED's zullen nu veel rustiger AAN/UIT gaan. Bovendien is deze versie aangepast voor Arduino Pro Micro en Leonardo.
Deze versie is dus zonder wijzigingen niet meer compatibel met Arduino Uno, Pro Mini, ... . Daarvoor moet je enkel wat outputpins wijzigen. Maar de bijgeleverde PCB is voorzien van een Arduino Pro Micro. Dus dat mag geen probleem zijn.

Files:

Filmpjes:





groeten Dylan
Re: Trainduino: RELEASE van de RGBLEDController V1.0 en RandomLEDController V1.1
Hey Dylan,

Ziet er goed uit  :thumbup: :thumbup:

Loop jou cyclus nu geheel autonoom, volgens een vaste tijd? En je RGB ledstrip veranderd van wit bij dag naar cyaan bij nacht, of zie ik dat verkeerd?

Gr, John
Re: Trainduino: RELEASE van de RGBLEDController V1.0 en RandomLEDController V1.1
Ja, volledig autonoom. Door dezelfde tijdsklok te gebruiken in ieder programma loopt alles gelijk.
Die RGB kleur voor nacht is zowat een 'raar' blauw. Vooral op de camera, in het echt valt het mee.
Als alles is opgehangen kan ik de kleuren nog wat tunen want dan krijg je ineens iets totaal anders :)


groeten Dylan
Re: Trainduino: RELEASE van de RGBLEDController V1.0 en RandomLEDController V1.1
Dat is wel zo simpel ja, bij mijn systeem is de tijd instelbaar, dus dat zit iets complexer.
Een camera vervormt de kleur vaak wel ja.
En het is vaak zo dat je pas het geheel kan finetunen als het helemaal hangt.

Succes verder,

Gr, John
Re: Trainduino: RELEASE van de RGBLEDController V1.0 en RandomLEDController V1.1
De tijd is ook instelbaar. Ik kan perfect het aantal uren dag en nacht bepalen.
Thanks! Jij ook.

groeten Dylan
Re: Trainduino: RELEASE van de RGBLEDController V1.0 en RandomLEDController V1.1
Hallo Dylan,

Dat is een prachtig project, blijf ik zeker volgen.

Is er ook een optie om een DMX signaal te sturen om bv RGB LED buizen aan te sturen?

Gr.
Piwie.
Re: Trainduino: RELEASE van de RGBLEDController V1.0 en RandomLEDController V1.1
Dankje!

Ja zeker, er is daarvoor zelfs een library beschikbaar. DMX is al redelijk ver gevorderd bij Arduino.
http://playground.arduino.cc/Learning/DMX


groeten Dylan
Re: Trainduino: RELEASE van de DCCSwitchController V1.0
4. RELEASE van de DCCSwitchController V1.0

De RGBLedController en RandomLEDController zij nog maar net gereleased en ik kan al een nieuw item van Trainduino releasen:

De DCCSwitchController V1.0, we ontleden de naam:

  • DCC: DCC als besturingsprocotol.
  • Switch: Schakelen van wissels, afremmodules en seinen.
    Met een ingebouwd 'rijwegcommando', slechts 1 DCC commando is nodig om een hele reeks van seinen, wissels, afremmodules te activeren.

Met deze DCCSwitchController kunnen we het rijwegsysteem van het ESU Central Station Reloaded/Ecos omzeilen.
Het probleem hiermee is dat er weinig instellingen te vinden zijn om de rijweg te vertragen. Bovendien is het zo dat na een noodstop men vergeet hoe het zit met die rijweg.
Dus de PCB werkt volledig autonoom als het om rijwegen gaat. Enkel een start (DCC) signaal is nodig om de rijweg te activeren.

Er is nog geen ondersteuning voor CV's uit te lezen en te schrijven. Die ondersteuning verwacht ik in volgende (grote) versie toe te voegen.
Eerst eens uitzoeken wat een goed ACK circuit is voor het DCC signaal.


Na lang denken blijkt dat niet echt nodig te zijn. Dus dit zal niet worden toegevoegd.

Files: http://github.com/modulebaan/Trainduino/tree/master/DCCSwitchController

Filmpje:



groeten Dylan
Re: Trainduino: RELEASE van de DCCSwitchController V1.0
Hoi Dylan,

Je bent goed bezig. :thumbup:

Gr.
René
Re: Trainduino: RELEASE van de DCCSwitchController V1.0
Speciale Gast Events Team
Lid sinds: 2011

offline
Re: Trainduino: RELEASE van de DCCSwitchController V1.0
Hoi Dylan,

ik moet voor school ook met een Arduino gaan programmeren. Erg leuk.
Nu wil ik straks proberen om seinbeelden te maken en te laten verspringen, maar dat is een latere zorg.
Ik vraag me alleen af welke voeding ik het beste kan gebruiken aangezien de Ecos te veel spanning levert en de witte Marklin trafo wisselstroom levert en ook teveel spanning levert.

Verder wil ik nog kwijt dat ik echt respect heb voor je programmeerkunsten  :thumbup:
Ik ben zo ver nog lang niet.

Groetjes Dennis
Re: Trainduino: RELEASE van de DCCSwitchController V1.0
@Lokkie

Dankje! :p

@Dennisreij
Je wilt een DCC seindecoder maken?

Seinbeelden laten verspringen is een koud kunstje als deze op niks moeten reageren maar enkel over moeten gaan van de ene naar de andere. Bij het reageren op DCC is dat wat anders, gelukkig bestaan er libraries hiervoor  :thumbup:
Als voeding bij een normaal Arduino board 7V - 12V. 12V is het maximum wel! 9V is het beste. Maar als je programmeert kan je ook voeden vanuit de USB.

Neem wat LEDjes, weerstanden, Arduino UNO en launch wat examples. Je zal er snel mee weg zijn.
Vragen stel ze gerust :)

groeten Dylan
Re: Trainduino: S88 & Arduino TEST
5. S88 & Arduino TEST

Aangezien ik nu al een RandomLEDController, RGBLEDController en een DCCSwitchController heb mag een S88WirelessController niet ontbreken.
Daarom heb ik een oude kapotte (de print was beschadigd) AJ S88-module zijn IC's (4014) er afgehaald en de schakeling op een breadboard gezet.
De inputs van de 4014 met de Arduino verbonden en de schakeling van Geert opgebouwd:
http://users.telenet.be/RedDeBist/MBAAN/S88%20terugmelder.htm

En voila terugmelding S88 via de Arduino, de CS1R heeft niks in de gaten dat ik hem nu eens goe liggen heb  8o. Moet ik toch niet beginnen met een schuifregister te gaan simuleren,
veel te veel werk zeker met het wireless gedeelte erbij. Bovendien kosten die IC's geen drol.

Ik veronderstel dat een CD4014 = CF4014 = HEF4014???


groeten Dylan
Re: Trainduino: S88 & Arduino TEST
Hey Dylan,
Ik heb geen verstand van elektronica, maar wat heb je nu precies draadloos gemaakt? Ligt er geen draadje meer tussen je rails en de S88?

Albert.
Re: Trainduino: S88 & Arduino TEST
Euhm nee, het draadloos gedeelte is nog niet af... De Arduino kan al gewoon de S88 chip manipuleren alsof er een melding is.
Er komt dus een zendprint, verbonden met de rails en een ontvangprint verbonden met het CS1R.

groeten Dylan
Re: Trainduino: S88 & Arduino TEST
Forum Moderator
Lid sinds: 2010

offline
Re: Trainduino: S88 & Arduino TEST
Hey Dylan,

Het ziet er allemaal  :thumbup: :thumbup: uit.

Zo te zien is je printplaat dus gelukt.

Gr, John
Re: Trainduino: S88 Wireless & Railcom functie clone :O
6. S88 Wireless & Railcom functie clone :O


6.1 S88 Wireless basisfuncties

Eindelijk is de laatste basiscomponent van Trainduino bijna af! De S88 Wireless module, deze 2 modulen (zender - ontvanger) zorgen ervoor dat het S88 systeem draadloos kan worden gebruikt.
Het systeem werkt op 2,4 Ghz en kan op 100+ kanalen ingesteld worden zodat verstoringen met WiFi, Bluetooth, ... geen probleem mag vormen. De ontvanger kan meer dan 10 S88 modulen simuleren tegelijkertijd. Momenteel draait het systeem op slechts 1 S88 module omdat ik nog bezig ben met extra zenders te bouwen, maar in theorie is het zeker mogelijk (praktijk ook bijna :) ).

De ontvanger polt elke zender voor informatie, als één van de zenders hun adres ontvangen zal die zender reageren en zijn informatie terugzenden naar de ontvanger. De ontvanger plaatst deze informatie in een grote 'opslagplaats' (array) waar alle data van alle slaves (zenders) bewaart wordt. Dan plaats hij deze 0'tjes en 1'tjes in de S88 simulatie, de CS1R denkt dan dat hij echte S88 modules aan zijn S88 bus heeft hangen  :mrgreen:

6.2 S88 Wireless Railcom functie clone

Aangezien het CS1R geen global detector aan boord heeft voor Railcom :confused:, moet ervoor magneetartikelen, ... een andere mogelijkheid worden gevonden om deze terug te melden naar de centrale. Bij één van de laatste updates van het CS1R is er bij de magneetartikelen een functie bijgekomen bij protocollen: 'no track signal'. Een dummy dus, ideaal om deze te gaan beheren.
Dus we maken een dummy aan en 2 rijwegen die de dummy aansturen. Mijn S88 Wireless systeem zal via een speciale bus 'TrainDuino Extension Bus' data uitlezen van bijvoorbeeld DCCOutputDecoder. De zender converteert deze data naar 1 S88 contact per magneetartikel. Als dat contact vrij is zal de wissel bijvoorbeeld rechtdoor staan en anders op afbuigen.

6.3 Nog te doen

  • Meerdere slaves te laten pollen door de master
  • TrainDuino Extension Bus met Railcom clone toe passen, deze is nu nog maar apart getest.
  • De code optimaliseren zodat de slaves sneller gepolt kunnen worden door de master.
    De S88 data is dan accurater en er kunnen dan ook meer S88  modulen gesimuleerd worden.

Enkele foto's van dit stukje techniek:




De test opstelling, van links naar rechts: de 3,3V voeding voor de transceiver nRF24L01,
de slave, de master en het CS1R.



Actuele status van de S88's. De 8 eerste AAN zijn expres AAN voor test doeleinden.
Later pas ik in de slave de code een klein beetje aan die de boel inverteert naar 0'tjes :p
Bij enkele wordt de S88 data herhaald daarom dat 1,5,8 dezelfde informatie tonen.



We houden even een draadje verbonden met de massa aan een digital input van de slave...



En tadaa! Die is niet meer bezet!



groeten Dylan
Re: Trainduino: S88 Wireless & Railcom functie clone :O
Hoi Dylan,

Dat heb je netjes voor elkaar. :thumbup:
Welke library gebruik je voor 2.4Ghz modules :?:

Gr.
René
Re: Trainduino: S88 Wireless & Railcom functie clone :O
MiRF, een tutorial vind je op de Arduino website.
De RF24 van Maniacbug is wel uitgebreider.

groeten Dylan
Re: Trainduino: S88 Wireless & Railcom functie clone :O
Ok, bedankt. :)

Gr.
René
Re: Trainduino: ALPHA van de RandomLEDController V1.2
Neen, dit draadje is nog niet dood... Ik heb eindelijk nog wat tijd gevonden om wat te developpen aan TrainDuino nu een ander niet-modelspoorprojectje in de 'koelkast' ligt te wachten tot ik alle onderdelen ervoor heb.

7. ALPHA van de RandomLEDController V1.2

7.1 Is dat nu nog niet goed genoeg?
Neen! Ontwikkelen op éénzelfde PCB kan blijven duren zolang de hardware het toelaat natuurlijk.
Ik heb daarom de basisversie van de RandomLEDController eens flink uitgebreid met een groot deel nieuwe functies!

7.2 Nieuwe functies?
Ik wou ook zoals John de cyclus kunnen beheren van het dag/nacht systeem zoals welke fase actief is en deze ook manueel kunnen bedienen (handig als je een foto wilt maken in nachtsfeer bijvoorbeeld).
Maar hier moet wel een klein stukje hardware worden bijgevoegd voor deze functie. Ik moet toch nog de massaproductie beginnen voor de baan dus dat is helemaal geen probleem :)

Ook was mijn wens om de dag/nacht cyclus realistischer te maken. Door 'ochtend' en 'avond' aan de cyclus toe te voegen krijg je al meer een realistischer beeld van een echte dag.
Maar dat is natuurlijk niet voldoende door er 2 fases bij te voegen er moet dan ook iets echt veranderen... Door bij te houden hoeveel uitgangen er actief zijn kan je gaan spelen met het maximum uitgangen dat actief mag zijn in elke fase en dat heb ik hier dus ook toegepast!

  • Ochtend: 9 van de 14 uitgangen maximaal AAN (mensen staan op)
  • Dag: 4 van de 14 uitgangen maximaal AAN (mensen zijn op het werk)
  • Avond: 11 van de 14 uitgangen maximaal AAN (mensen komen thuis)
  • Nacht: 2 van de 14 uitgangen maximaal AAN (mensen slapen)
Deze waarden kunnen aangepast worden per module afhankelijk wat de gebruiker zijn wensen zijn. Zo kan je bijvoorbeeld het omgekeerde gaan toepassen als je met de RandomLEDController een kantoorgebouw, fabriek, ... verlicht. Voor de diegene die het willen gebruiken moeten nog even wachten. Ik heb momenteel geen freesjes meer voor PCB's dus ik kan geen test prototype maken.
Normaal moet de code correct werken.

Iemand nog ideetjes die essentieel zijn voor een dag/nacht schakeling?

Groeten Dylan
Re: Trainduino: BETA van de RandomLEDController V1.3 & RGBLEDController V1.2
8. BETA van de RandomLEDController V1.3 & RGBLEDController V1.2

Gisteren kondigde ik al een nieuwe versie van de RandomLEDController aan. Die nieuwe versie is voorzien van allerlei nieuwe functies.
Alles is al getest met uitzondering van het DCC gedeelte maar ik verwacht geen problemen aangezien de code netjes gekopieerd is van de DCCSwitchController.

Ook De RGBLEDController heeft dezelfde metamorfose ondergaan en kan nu meedraaien met de RandomLEDController.
Aangezien deze ook getest is geweest met uitzondering van het DCC gedeelte upload ik de code vandaag nog op Github.

GITHUB link

Groeten Dylan
Re: Trainduino: S88 Wireless V1.0 RELEASE
9. S88 Wireless V1.0 RELEASE

Eindelijk! Na maanden (!) code te schrijven en te herschrijven werkt het Wireless S88 Systeem.
Op een kleine week heb ik de hele code herschreven zowel van de melders als de basis met wat hulp en dat loont. Want de eerste versie was niet erg efficient.
De code kan nu tot wel 32 S88 units simuleren met elk 16 terugmeldcontacten (beter gezegd het maximum dat de S88 bus aan kan).

Het voordeel is dat je geen storingen meer kan hebben op de S88 bus maar de snelheid waarbij de S88 terugmeldcontacten worden geüpdatet is wel lager.
Daarom heb ik de Wireless versie beperkt tot 10 S88 units of te wel 80 terugmeldcontacten, meer kan ook maar zo blijft de update snelheid nog aangenaam.
Bovendien heb ik meer als genoeg met 80 terugmeldcontacten :-). Als je het sneller wilt laten lopen kan je ook overwegen een 2de Basis op te zetten en
zo het werk te verdelen (moet je nog wat aanpassingen verrichten).

Wat ik nog wil toevoegen is een simpele drukknop die de 'base' automatisch een nieuwe 'slave' laat 'paren'. Hierdoor moet je niet telkens het slave adres in de code aan te passen.
Door de drukknop in te houden voor 10 seconden 'reset' je de adressen en moet je elke slave opnieuw paren.



De slave die 10m verder in de keuken ligt: een Arduino MEGA met een breakout board voor de RF24L01+ radio omdat deze op 3.3V werkt en de Arduino MEGA op 5V.



De base: een Arduino UNO ook met zo'n breakout board en wat jumpers om de Arduino te verbinden met de S88 bus van het CS1R.
De LEDjes geven de status aan van de S88 en de 2.4 Ghz connectie.




Zo, het resultaat. Ik heb slechts 1 slave in werking en die werkt met de 10 verschillende slave adressen.
In de 'echte' versie bedient elke slave slechts 1 slave adres natuurlijk :D


OPGELET: De S88 Wireless module moet achteraan in de S88 bus aangesloten worden want hij leest geen data in van andere S88 units.


Groeten Dylan
Re: Trainduino: S88 Wireless V1.0 RELEASE
Lid sinds: 2009

Leuke dag in het Spoorweg museum

offline
Re: Trainduino: S88 Wireless V1.0 RELEASE
Interessant draadje 

ik vond deze link op youtube misschien heb ie der wat an

http://www.daniel-spilker.com/blog/

Doorgaan hoor!

Gr Ruud
Re: Trainduino: S88 Wireless V1.0 RELEASE
Speciale Gast Events Team
Lid sinds: 2011

offline
Re: Trainduino: S88 Wireless V1.0 RELEASE
Knap dat t gelukt is. Ik kan t niet.
Re: Trainduino: S88 Wireless V1.0 RELEASE
@nkeer3
Dat was de inspiratiebron :)
Thanks!

@dennisreij
:thumbup:

groeten Dylan
Re: Trainduino: S88 Wireless V1.0 RELEASE
Citaat van: minitreintje op woensdag 20 augustus 2014, 20:59:43

Het voordeel is dat je geen storingen meer kan hebben op de S88 bus maar de snelheid waarbij de S88 terugmeldcontacten worden geüpdatet is wel lager.
Daarom heb ik de Wireless versie beperkt tot 10 S88 units of te wel 80 terugmeldcontacten, meer kan ook maar zo blijft de update snelheid nog aangenaam.

Hoe kan het dat het zo langzaam gaat? De draadloze module is niet echt traag toch? Ik ben wel benieuwd hiernaar omdat ik in de toekomst ook iets met zo'n draadloze ontvanger wil gaan doen.

Verder een leuk project, vooral voor grote banen handig denk ik.

Groeten,

Rauke
Re: Trainduino: S88 Wireless V1.0 RELEASE
Zo traag is het nu ook niet maar je merkt toch een kleine vertraging als er heel veel melders gepolld worden. Hou je het bij 3-4 zie je geen verschil. Maar misschien als ik de draadloze adapter zijn interrupt pin gebruik kan misschien de code nog sneller verlopen.

Groeten Dylan
Re: Trainduino: S88 Wireless V1.0 RELEASE
Uiteindelijk is de draadloze adapter helemaal niet traag, kwestie van wat settings aanpassen verbeterd de stabiliteit en snelheid aanzienlijk.
Je verbindt een pin naar de GND en de melder gaat oplichten zo goed als meteen.

Nu draaien er 2 slaves mee met de base om de boel eens deftig te testen. De slaves hun pins worden één voor één getriggered om wat meldingen te simuleren en dat werkt tot nu toe vlekkeloos.

groeten Dylan
Re: Trainduino: S88 Wireless V1.0 RELEASE
Ah oke, mooi dat de snelheid toch nog wat omhoog kon. Zou het niet nog sneller kunnen (en dus meer draadloze S88's ondersteunen) als je in plaats van polling alleen data verstuurt als er iets verandert aan de s88-input? Dit zou voor de draadloze slaves behoorlijk wat energie kunnen schelen (transceiver kan uit/in sleep) en voor de master scheelt het heel wat dataverkeer. Om zeker te weten dat alle slaves nog wel werken, zou je ze bijv. elke seconde een bericht naar de master kunnen laten sturen?

Groeten,

Rauke
Re: Trainduino: S88 Wireless V1.0 RELEASE
Ja eigenlijk wel maar dan moet je zien hoe je de slaves kunt laten zwijgen als er eentje al aan het praten is. Dan kan het sneller als je daarvoor een oplossing hebt.

Die alive-message is hetzelfde als nu maar de slave stuurt die dan in plaats van de base en bovendien is het dan ook weer ingewikkelder aangezien slechts 1 van de slaves maar eentje tegelijk mag praten.

Maar ik ben nog bezig de S88Wireless te finetunen om nog meer performance uit te halen.

Groeten Dylan
Re: Trainduino: S88 Wireless deel 2
10. S88Wireless deel 2

Vorige keer had ik al het grootste deel van de S88Wireless uit de doeken gedaan maar sinds vandaag is het ook klaar voor gebruik!
De base en de slaves zijn nu op PCB's gemonteerd en met DIP schakelaars kunnen tot 63 modules ingeschakeld worden. Dus de volledige S88 bus kan worden gesimuleerd op slechts 1 base.

10.1 Adressering

De adressering gebeurt via een binair getal waarvan de eerste 6 bits ingesteld kunnen worden via de DIP schakelaar. Dit is hetzelfde principe als het zogenaamde 'muizenklavier' bij decoders van Märklin en andere merken. Bij het opstarten wordt het adres uitgelezen bij de slave via 3 analoge ingangen.

Via een weerstandsnetwerk krijg je dus andere spanningen op de analoge pin als je schakelaar 1 aanzet t.o.v schakelaar 2 of nog een andere waarde als je beide aanzet. Hiermee heb ik mijn I/O tekort opgelost bij de slave. De base had nog genoeg I/O's over dus daarom heb ik daar gewoon gewerkt met een digitalRead() statement, de DIP schakelaars van de base bepalen hoeveel slaves de base moet pollen. Eén probleem is er wel dat de weerstandswaarde verschilt van weerstand tot weerstand een beetje en daarom moet je soms de waarde van de schakelaars hercalibreren per PCB. Gelukkig is dat slecht éénmalig...

10.2 Veiligheid & betrouwbaarheid van de S88 terugmeldingen

Omdat de terugmeldingen draadloos worden verstuurd moet er een extra veiligheid worden ingebouwd om te voorkomen dat er slaves niet meer reageren om de base of foutieve data zenden, enz...
Zo zit er al standaard CRC en ACK in van de NRF24L01+ radio module om de data te checken maar dat is onvoldoende! Een slave die niet meer reageert zal door de NRF24L01+ aangeduid worden maar wat kan de base dan doen om de veiligheid van de treinen te garanderen? Als er een korte storing is zal de base eerst nog een aantal pogingen doen om de communicatie terug op gang te krijgen, lukt dat dan gaat de ERROR_LED terug uit. Lukt dat niet zal de base de centrale afschakelen via de DCC-booster kortsluitdetectie ingang van de centrale, zodra er een probleem is schakelt een transistor naar de GND en de centrale gaat over in kortsluitmodus.
Ik heb op de PCB rekening gehouden dat mensen ook een HSI-S88 gebruiken hierdoor heb ik een extra GND ingang geplaatst voor de kortsluitdetectie want de GND van de HSI-S88 en de centrale zijn dan normaal gescheiden. Gebruik je een CS1R/Ecos/... met zijn eigen terugmeldbus zoals ik dan is de GND normaal doorverbonden. Dan is die extra GND aansluiting natuurlijk overbodig.

De terugmelddata zelf is ook voorzien van een extra veiligheidslaag namelijk de anti-spookmeldingen beveiliging. Een melder wordt pas geactiveerd als hij binnen de leescyclus X keer positief is gelezen. Dus een valse melding wordt zo gefilterd uit de terugmelddata.

10.3 Testperiode

Vanaf vandaag zal deze versie een testperiode ondergaan van enkele weken om de stabiliteit van het systeem te testen. Dit in een omgeving waarin veel 2.4Ghz communicatie aanwezig is.

2.4 Foto's




De base PCB, hij haalt zijn voeding van de S88 bus van de centrale. Dat is simpel en cheap :P
De S88 pins zijn volgens de S88 specificatie dus je kan je eigen S88 kabel inpluggen zonder probleem.
De NRF24L01+ pins zijn niet in de juiste volgorde omdat ik anders een dubbelzijdige PCB moet hebben.
In dit geval is dat geen probleem aangezien je met jumpwires (Dupont kabels) werkt die je kan verplaatsen  ;)



De connecties van de base PCB naar de centrale CS1R.
Van links naar rechts: de DCC kortsluitbus, de S88 bus.



De slave PCB, zo moet ik er nog een aantal solderen...
De voeding wordt geleverd door een 7805 en een 1000uF buffer condensator, een ideale ingangspanning is 12V DC.
Ook hier zijn de NRF24L01+ pins niet in de juiste volgorde door dezelfde rede.

Groeten Dylan
Re: Trainduino: S88 Wireless V1.0 RELEASE
Prachtig gemaakt Dylan! Ziet er zeer goed, en veelbelovend uit!
Het zou me niks verbazen als deze oplossing commercieel vatbaar is.
Re: Trainduino: S88Wireless deel 2
Dankje Simon!
Het heeft wat tijd gekost maar het werkt en ik heb er heel veel van bijgeleerd.  :thumbup:

groeten Dylan
Re: Trainduino: S88Wireless deel 2
Hoi Dylan,

Ik ben onder de indruk van dit project. :thumbup:
Met hoeveel modules ga je de testperiode doen :?:
En hoe lang moet de communicatie uitvallen voor dat je centrale afschakeld :?:

Gr.
René
Re: Trainduino: S88Wireless deel 2
Mercikes :p
Voorlopig 2 maar ik moet er nog bijmaken (lees kabeltjes aansluiten). Het zouden er om te beginnen 3 zijn.
De centrale schakelt af zodra er 20 pogingen zijn geweest die mislukt zijn. Dat lijkt veel maar het duurt slechts een 5 - 10 tal seconden...

groeten Dylan

EDIT: Blijkt dat ik niet genoeg jumpwires meer heb voor 4 slaves + 1 base... Dan maar 3 slaves.
Re: Trainduino: S88 Wireless & Railcom functie clone :O
Lid sinds: 2009

Dwarsliggers op de rails sporen niet

offline
Re: Trainduino: S88 Wireless & Railcom functie clone :O
Citaat van: minitreintje op zondag 23 maart 2014, 18:56:52
Het systeem werkt op 2,4 Ghz en kan op 100+ kanalen ingesteld worden zodat verstoringen met WiFi, Bluetooth, ... geen probleem mag vormen. De ontvanger kan meer dan 10 S88 modulen simuleren tegelijkertijd. Momenteel draait het systeem op slechts 1 S88 module omdat ik nog bezig ben met extra zenders te bouwen, maar in theorie is het zeker mogelijk (praktijk ook bijna :) ).
Ik ben blij dat je al zover bent gekomen. Ik zit me af te vragen hoe snel of hoe traag de doorgifte is, en of dit veroorzaakt wordt door het protocol, door de gebruikte IC's of de arduino versie.

Als ik op deze manier kijk naar een treinbaan dan heb je per sectie meestal 2-6 draadloze adapters. Dat aantal loopt voor de infrastructuur in een beetje baan vrij snel op. En je moet dus rekening houden dat je al die adressen frequent moet kunnen pollen met pak 'm beet 2 Ghz per seconde (of zou 1 Mbit ook al voldoen). Dus je aantal mislukte en gelukte polls moet ongelooflijk groot zijn.
Mij lijkt 5-10 seconde te lang. Maar je kunt strategisch verwachten dat bepaalde activiteiten zich daar concentreren waar al activiteiten zijn gemeld. Oftewel, software matig valt hier een slimme algoritme op los te laten die maakt dat je niet willekeurig alles hoeft te pollen, en veel gerichter pollt.
Re: Trainduino: S88Wireless deel 2
Momenteel draaien hier 3 zenders (slaves) en één ontvanger (base) op 250Kbps. En dat verloopt zeer vlot... Er moet slechts 1 byte verstuurd worden (1 byte voor de poll instructie/ zender adres vanuit de ontvanger en 1 byte met de data vanuit de zender) dus veel data is het niet (beste geval duurt een poll slechts 0,030 seconden dus voor 32 modules (256 melders) is dat 0,960 seconden bijna 1 seconden, dat is zeker niet slecht). Daarvoor heb ik eigenlijk speciaal gekozen om zo weinig mogelijk data te versturen per zender.

5 - 10 seconden duurt het zeker niet, dat is de tijd dat de ontvanger de centrale afschakelt in geval van storingen.

Ik heb ook gemerkt dat het CS1R een vertraging heeft wat betreft de weergave van S88 modules (getest met een gewone S88 module).
Maar de meldingen worden zeer snel doorgegeven vind ik.

Een slim algoritme? Je kan nooit weten waar er een melding zal komen... De originele S88 modules hebben ook een vertraging bij veel modules...


groeten Dylan