Modelspoormagazine forum

Modelspoor, praktijk => Modelspoor-elektronica met microcontrollers => Topic gestart door: minitreintje op 20 augustus 2014, 22:01:44 pm

Titel: Trainduino: Rocrail & PIPO X9
Bericht door: minitreintje op 20 augustus 2014, 22:01:44 pm
Misschien dat er al sommige dit topic in de gaten houden op het 3Railforum.nl maar ik wou dit niet onthouden voor de anderen :)
Ik ga niet het hele topic copy-pasten maar een samenvatting ervan geven zodat ik er later verder in kan posten


Trainduino

Dit project is OPENSOURCE! Alle sketches & EAGLE printontwerpen worden geplaatst op Github.
GITHUB LINK (https://github.com/modulebaan/Trainduino)


De 3D ontwerpen kan je vinden op Thingiverse:
THINGIVERSE LINK (http://www.thingiverse.com/modulebaan/designs)

INDEX

1. Wat is dat? + S88Wireless

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

1.1 RandomLEDController

Het eerste project in deze reeks. Deze print moet de straatverlichting en de verlichting de huizen regelen.
Doormiddel van een timer wordt er bijgehouden in welk 'deel' van de dag de Arduino sketch zich bevindt, een dag (24 uur) is in de sketch slechts 24 minuten natuurlijk.

Er zijn 4 mogelijke toestanden:
De toestanden gaan volledig automatisch in elkaar over of door middel van een DCC adres kan de gewenste stand worden geselecteerd.

1.2 RGBLEDController

Een RGB ledstrip die wordt aangestuurd samen met een witte ledstrip. Zo kan een bijna 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.
Ook hier kan de stand worden gekozen met een DCC adres, deze is natuurlijk dezelfde als die van de RandomLEDController.

1.3 DCCSwitchDecoder

De DCCSwitchDecoder is een DCC decoder met een extra toets, speciaal voor diegene die graag rijwegen willen gebruiken maar met meer instelmogelijkheden als de commerciële centrales.
De decoder kan 1 NMBS signaal (4 LED's), 2 wissels en één afremmodule aansturen. Deze decoder was vroeger nuttig voor mij maar nu niet meer sinds ik wens over te stappen op PC sturing.

1.4 S88Wireless

Het nieuwste project: een draadloos S88 terugmeldsysteem, door middel van 2.4Ghz radio's worden de terugmeldingen van elke 'slave' doorgestuurd naar een 'base' die de data uitschrijft naar het command station. Dankzij het poll principe kan geen enkele slave 'praten' zolang de 'base' dat niet wil. De base kan tot 32 S88 modules simuleren maar ik heb deze beperkt tot 10 omdat anders de s88 terugmeldingen niet snel genoeg worden geüpdatet, de oorzaak is de snelheid waarmee de data draadloos wordt verstuurd.

De voordelen van dit systeem zijn natuurlijk dat je geen kabels meer moet trekken langs je baan en je geen storingen op deze kabels kan krijgen.
De draadloze radio's gebruiken CRC en ACK om de data te valideren hierdoor is de kans dat de data corrupt is veel kleiner.

Het nadeel is dat de draadloze oplossing niet zo snel is als de bedrade oplossing maar toch nog voldoende om te gebruiken.

(http://www.modeltreinen.comze.com/images/S88Wireless5.jpeg)

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.

(http://www.modeltreinen.comze.com/images/S88Wireless6.jpeg)

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.


(http://www.modeltreinen.comze.com/images/S88Wireless7.jpeg)

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

P.S.: Ik bedank Patrick (Sattrickske) voor zijn hulp voor de S88 Wireless sketch! Zonder zijn hulp was het niet gelukt :)
Titel: Re: Trainduino: Wat is dat? + S88Wireless
Bericht door: dani op 21 augustus 2014, 09:38:16 am
interessant project, Dylan...
Bedankt om het hier ook te delen.   en benieuwd hoe dit verder gaat evolueren, het ziet er veelbelovend uit.
Titel: Re: Trainduino: Wat is dat? + S88Wireless
Bericht door: philippe_007 op 21 augustus 2014, 10:20:02 am
Inderdaad interessant,
ben reeds wat bezig met de arduino, maar waarom het warm water opnieuw uitvinden als het als bestata he....
Titel: Re: Trainduino: Wat is dat? + S88Wireless
Bericht door: Frank_N op 21 augustus 2014, 13:42:23 pm
Interessant! Deze ga ik ook volgen ;)
Dank voor het delen, Dylan!
Titel: Re: Trainduino: Wat is dat? + S88Wireless
Bericht door: minitreintje op 21 augustus 2014, 13:54:19 pm
@Iedereen

Mercikes :)
Ik heb nu nog wat de settings geoptimaliseerd van de RF24 radio waardoor alles nog wat stabieler is maar ook sneller.
De 2de slave heb ik nu ook meedraaien in het systeem en dat gaat goed :)
Aan de slaves heb ik dan maar 2 Arduino's gehangen die wat pinnen van HIGH naar LOW brengen.
Hierdoor denkt de slave dat er een melding is (locomotief massacontact) en kan ik testen of het werkt wanneer er actief meldingen worden gemaakt.


groeten Dylan
Titel: Re: Trainduino: Wat is dat? + S88Wireless
Bericht door: dani op 21 augustus 2014, 17:08:21 pm
da's zo typisch....    Om willekeurig ingangen te simuleren op een arduino , daarvoor gebruik je toch.....   een tweede arduino.
Geweldig, Dylan !
Titel: Re: Trainduino: Wat is dat? + S88Wireless
Bericht door: minitreintje op 21 augustus 2014, 17:55:29 pm
Ik was het beu telkens die jumper wires in te pluggen en uit te pluggen en dat bij 2 slaves :O

groeten Dylan
Titel: Re: Trainduino: Wat is dat? + S88Wireless
Bericht door: Sattrickske op 21 augustus 2014, 20:56:57 pm
P.S.: Ik bedank Patrick (Sattrickske) voor zijn hulp voor de S88 Wireless sketch! Zonder zijn hulp was het niet gelukt :)
't Was graag gedaan!
PS. Je kan meer dan 10 aan hoor.  Gewoon asynchroon werken.  De slaves uitlezen en in een eerste array stoppen.  Dan telkens bij het reset signaal van de s88 (of de PS/load moet ook lukken denk ik), de hele array transfereren/copiëren naar een 2e array.  Verzenden doe je enkel vanuit de 2e array, en de eerste gebruik je om de updates van je slaves binnen te halen.
Tussen de reset (of PS/load) en de eerste klokpuls zit denk ik net genoeg tijd om een ganse array te copiëren.  Ik zou in C daar gewoon een memcpy commando voor gebruiken.
Titel: Re: Trainduino: Wat is dat? + S88Wireless
Bericht door: minitreintje op 22 augustus 2014, 08:58:47 am
Hoe levert dat een voordeel op dat asynchroon?

Groeten Dylan
Titel: Re: Trainduino: Wat is dat? + S88Wireless
Bericht door: Sattrickske op 23 augustus 2014, 21:18:49 pm
Je werkt met 2 arrays.  Eentje die exclusief dient om te verzenden en eentje die dient om de data binnen te halen van de draadloze modules.  De 2 arrays werken op deze manier onafhankelijk en de ene kan de andere niet beïnvloeden.
Enkel wanneer de s88 het toelaat, copieer je de data van de ene array naar de andere (als de s88 dus niets verzendt).  Enkel vlak na het copiëren zijn beide arrays aan mekaar gelijk, maar meestal zijn ze verschillend (asynchroon dus).
Titel: Re: Trainduino: Wat is dat? + S88Wireless
Bericht door: minitreintje op 06 september 2014, 15:58:48 pm
Oops, ik had je reactie niet gezien.
Ik zal dat eens proberen.

groeten Dylan
Titel: Re: Trainduino: S88Wireless deel 2
Bericht door: minitreintje op 16 september 2014, 18:47:07 pm
2. 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.

2.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...

2.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.

2.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


(http://www.modeltreinen.comze.com/images/S88Wireless8.jpeg)

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  ;)

(http://www.modeltreinen.comze.com/images/S88Wireless9.jpeg)

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

(http://www.modeltreinen.comze.com/images/S88Wireless10.jpeg)

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

P.S.: Voor mensen die zich afvragen hoe ik een layout op een zelfgemaakte PCB krijg hier is het antwoord: een simpele papieren plakker waar ik de layout vanuit EAGLE PCB op print.
Dan de stikker van zijn vel halen en omdraaien, de PCB op de board afmetingen leggen van de EAGLE en doorprikken met een passer.
Bij de base PCB ben ik de bottom layer vergeten uit te zetten bij het printen van de layout hierdoor is deze een wat rommeliger dan bij de slave PCB.
Titel: Re: Trainduino: S88Wireless deel 2
Bericht door: Sattrickske op 16 september 2014, 20:23:38 pm
Proper gewerkt, dat zie ik graag!
Wel uitkijken met de afstanden als je alle modules gaat voeden vanaf de basisprint.  5V op de basis zal geen 5V meer zijn op de slave wanneer de afstand groter wordt.  Voor een normale baanafmeting zal je hier echter nooit een probleem mee hebben.  Ik laat altijd de hoogste spanning (12V in jouw geval) naar alle slaves gaan en converteer naar 5V of 3.3V op de print zelf.

Wat betreft de volgorde van de pinnetjes, die lap ik zelf ook dikwijls aan m'n laars om dezelfde reden.
Titel: Re: Trainduino: S88Wireless deel 2
Bericht door: minitreintje op 16 september 2014, 20:32:04 pm
Mercikes!

Die 5V van de centrale is voor de basis alleen anders het niet 'draadloos' meer :p
Een 7805 zorgt voor de voeding van slaves welke zijn voeding krijgt van de kring die ook de verlichting op de baan verzorgt (12V DC).
Dus ik moet enkel 4 draden leggen tussen mijn modules: Baanspanning (B en O) en de 12V DC kring (+ en -).

groeten Dylan
Titel: Re: Trainduino: S88Wireless deel 2
Bericht door: PietB op 16 september 2014, 20:56:35 pm
Netjes werk Dylan!!!
P.S.: Voor mensen die zich afvragen hoe ik een layout op een zelfgemaakte PCB krijg hier is het antwoord: een simpele papieren plakker waar ik de layout vanuit EAGLE PCB op print.
Dan de stikker van zijn vel halen en omdraaien, de PCB op de board afmetingen leggen van de EAGLE en doorprikken met een passer.
Bij de base PCB ben ik de bottom layer vergeten uit te zetten bij het printen van de layout hierdoor is deze een wat rommeliger dan bij de slave PCB.
Dat moet je nog eens wat uitgebreider uitleggen.

grt Piet.
Titel: Re: Trainduino: S88Wireless deel 2
Bericht door: minitreintje op 16 september 2014, 21:09:46 pm
PietB,

Ik heb hier nog stickervellen liggen welke ik in de printer steek en dan bedruk met de layout vanuit EAGLE PCB.
Het probleem is echter dat het formaat van de stikkers soms niet beschikbaar is bij EAGLE printer setup. Als je wat speelt met wat afdrukken en formaten vind je wel eentje dat past :p

Dan verwijder je de sticker van het vel en leg je de bedrukte kant op tafel. Neem nu je PCB en centreer deze op de sticker.
Aangezien die sticker licht doorlatend is zie je de bedrukking erdoor ondanks hij omgedraaid is. Gewoon de PCB op de board afmetingen leggen die EAGLE heeft mee afgedrukt.

Aandrukken en de overschot van de sticker eraf knippen met een scherpe schaar zodat je geen randjes overhoud (kunnen loskomen anders!).

Een passer nemen en de gaatjes door de sticker maken, ik gebruik een passer omdat het makkelijker te hanteren is dan een naald. Bovendien heeft zowat student dat wel liggen :p

groeten Dylan
Titel: Re: Trainduino: S88Wireless deel 2
Bericht door: PietB op 16 september 2014, 21:44:51 pm
En wat voor PCB gebruik je dan?

grt Piet.
Titel: Re: Trainduino: S88Wireless deel 2
Bericht door: minitreintje op 17 september 2014, 07:10:09 am
Ik koop die op Ebay.com
http://www.ebay.com/itm/261381887796 (http://www.ebay.com/itm/261381887796)

Kosten 0,42 euro/stuk vroeger waren ze iets goedkoper... Maar ze blijven spotgoedkoop :)
PCB-GCODE in EAGLE laden, PCBZCorrect op de etch file los laten, proben met de CNC en frezen maar.
Op +- 30min. heb je een volledig printje.

groeten Dylan
Titel: Re: Trainduino: S88Wireless deel 2
Bericht door: Geert op 17 september 2014, 16:47:22 pm
Mooi project. Ik volg het al enkele weken stilletjes, maar had nog niet gereageerd.

Zelf ook is met het idee gespeeld om tergmelders te maken per meldpunt voor C rails. Nu niet Wireless, maar gebruik makend van de digitale voeding. Een kleine µC in de beding van de C rail zal massa of stroom detecteren en terug zenden gesuperponeerd in de pauzes van het digitaal signaal, bleek moeilijk te organiseren zijn.

Geert
Titel: Re: Trainduino: S88Wireless deel 2
Bericht door: PietB op 17 september 2014, 17:07:26 pm
Ja dat CNC freesen daar zit de kneep, he?
Ik dacht al met die sticker er op is het moeilijk etsen.

grt Piet.
Titel: Re: Trainduino: S88Wireless deel 2
Bericht door: minitreintje op 17 september 2014, 17:55:53 pm
@Geert,

 :o Dat is pas een uitdaging...

@Piet,

Dat frezen is inderdaad het 'etsen'. De sticker plakt op de component zijde.

Groeten Dylan
Titel: Re: Trainduino: S88Wireless deel 2
Bericht door: Geert op 18 september 2014, 12:18:04 pm
@Geert,

 :o Dat is pas een uitdaging...


Een uitdaging?

Het principe is eenvoudig. Gewoon het digitaal signaal meelezen en wachten tot de pauzes (die zijn er bij elk protocol). Dan een kleine belasting snel in en uitschakelen om een redelijk hoog frequent signaal, met wat info, te krijgen op het digitale signaal.  Dat dan aan de kant van de centrale er uit gefilterd wordt. (eigenlijk werkt de aanmelding van het Mfx protocol al zo, en het CV uitlezen van diverse protocols ook) Het probleem is om de verschillende terug melders te synkroniseren dat ze niet tegelijkertijd terug melden.  Dat kan via hun respectievelijke terug meld nummer, maar we zien wel, eerst andere hobby zaken oplossen.


Geert
Titel: Re: Trainduino: S88Wireless deel 2
Bericht door: minitreintje op 18 september 2014, 14:33:49 pm
Het principe wel maar de uitwerking :P

groeten Dylan
Titel: Re: Trainduino: S88Wireless deel 3 + Intelligent Servo Decoder
Bericht door: minitreintje op 26 december 2014, 21:40:26 pm
3. S88Wireless deel 3 + Intelligent Servo Decoder

3.1 S88Wireless upgrade

De S88Wireless heeft een lange testperiode ondergaan en de test is succesvol geslaagd! De terugmelding werkt perfect en snel.

Aangezien ik niet snel tevreden ben, heb ik de S88Wireless nogmaals verbeterd.
De NRF24L01+ heeft een IRQ-pin, deze wordt normaal aan een interrupt gehangen van de microcontroller.
Een interrupt (Nederlands: onderbreker) is een pin op de microcontroller die eens geactiveerd een bepaalde functie kan voorrang geven.
De microcontroller stopt dan even, voert de functie uit en gaat dan verder met zijn normaal programma.
Maar ik had helaas geen pin meer vrij om een interrupt te gebruiken, ik had nog wel 2 gewone digitale pins vrij.

Door in de loop() functie (het normale programma dat steeds herhaalt wordt) zo'n digitale pin uit te lezen met digitalReadFast() waar de IRQ-pin aanhangt,
is de functionaliteit vrij gelijk. De S88Wireless loopt hierdoor nog een stuk sneller en efficiënter doordat de microcontroller het draadloos gedeelte overslaat
als er geen data is die moet worden uitgelezen. Nu is de S88 data sneller bijgewerkt dan dat het CS1R de S88 bus kan pollen.

3.2 Intelligent Servo Decoder

Nieuw in ontwikkeling is de Intelligente Servo Decoder, een DCC decoder voor het aansturen van servomotoren.
Deze is vooral geschikt voor de goedkope SG90 servomotoren van Ebay. Deze servo decoder is geen gewone servo decoder zoals al op de markt is.
Heeft er iemand een servo decoder waarvan men zeker weet dat de wissel is omgezet op elk moment?
Neen! Zelfs Railcom+ kent dat niet, deze leest alleen maar de commando's uit die de Railcom+ decoder zendt naar de servo's.
Er is geen tweerichtingsverkeer mogelijk omdat servo's dat simpelweg niet ondersteunen.

Maar wat zijn we nu met die echte posities van de servo's als we ze niet naar onze centrale kunnen sturen?
Niks! Daarom heb ik er de Intelligente Servo Decoder ook voorzien van S88Wireless. Dus de decoder leest de stand van de wissels uit met hall sensoren,
dat zijn sensoren die reageren op een magnetisch veld. Verzamelt die data en stuurt deze door via dezelfde software als in de S88WirelessSlave draait.
Bij het programmeren bleek de microcontroller de opdrachten niet snel genoeg te kunnen verwerken, daarom heb ik de upgrade van S88Wireless uitgevonden.
Toen bleek dat zeer goed te werken en heb ik maar de S88Wireless zelf ook maar voorzien van een update.

Het enige verschil met de S88Wireless is dat er geen I/O pins over waren voor een DIP-switch te plaatsen om de adressen te kunnen instellen voor DCC en S88Wireless.
Voorlopig gebeurt dit door een 'learning button' waarbij de decoder in programmeermodus komt. Maar doordat ik opnieuw een tekort komt aan I/O pins wil ik dit realiseren met CV's.

Bovendien is er ook een Power Save Mode ingebouwd. Deze ontkoppelt de servo's zodra ze hun beweging hebben uitgevoerd en is jitteren ook verleden tijd bij mijn servo decoder.
Hierdoor ontvangen de servo's niet opnieuw de gevraagde positie en stopt het positioneren ook. Dat positioneren bij goedkope servo's is de oorzaak van de jitter.
De servo's onthouden wel dan hun laatste positie zolang ze onder spanning staan en passen die aan indien de servoarm zijn positie verliest.
Deze functie is ook beschikbaar bij de ESU Switchpilot Servo.

Als de decoder opstart na een stroomonderbreking zal hij de laatste positie van elke servo instellen zoals hij die heeft ontvangen van de centrale.
Zo wordt er voorkomen dat de servo's een onverwachte uitslag maken omdat ze meteen het servosignaal krijgen met de positie waar ze zich op bevinden.

En een laatste musthave functie is natuurlijk de 'kickback' functie, deze zet heel kort extra druk op de wissel wanneer deze zijn eindpositie bereikt.
De wisseltong zal dan zeker zijn eindpositie bereiken, deze functie is ook beschikbaar bij de OC32.



De realisatie van de Intelligente Servo Decoder zal voor zeer binnenkort zijn, momenteel ben ik nog de laatste hand aan het leggen (lees: debuggen) aan de Arduino sketch.
Volgende keer zeker foto's en filmpjes!


groeten Dylan
Titel: Re: Trainduino: S88Wireless deel 3 + Intelligent Servo Decoder
Bericht door: minitreintje op 29 december 2014, 15:29:56 pm
3. S88Wireless deel 3 + Intelligent Servo Decoder

Ondertussen heb ik nog CV support van de NMRA DCC library in de code gestopt zodat ALLES instelbaar is via CV's.
Enkel schrijven is toegelaten, lezen/bevestigen geeft een foutmelding.

Ook heb ik nog een Watchdog timer meelopen nu welke kijkt of het programma nergens vastloopt. Loopt het vast, dan zal de Watchdog timer de microcontroller resetten.

Als laatste heb ik nog een functie geschreven welke de foute lezingen van de hallsensoren uitsluit omdat hallsensoren reageren op magnetische velden en motoren van loks, servo's, ...
produceren magnetische velden. Deze functie zit ook ingebakken in de S88Wireless SLAVE om valse meldingen te detecteren door o.a. vuil op het spoor.

3.3 Foto's & filmpje


(http://www.modeltreinen.comze.com/images/IntelligentServoDecoder1.jpeg)

Servo's, hall sensoren, DCC lees circuit met optocoupler, LED om allerlei zaken aan te geven
en een condensator om de servo power te backuppen.

(http://www.modeltreinen.comze.com/images/IntelligentServoDecoder2.jpeg)

S88Wireless BASE + de zender van de Intelligent Servo Decoder

(http://www.modeltreinen.comze.com/images/IntelligentServoDecoder3.jpeg)

De hall sensoren en een magneetje gekoppeld aan een servo arm om alles deftig te testen.


http://www.youtube.com/watch?v=BGdAf4qTFdk

Filmpje van de Intelligent Servo Decoder.
De kickback functie is hier wat overdreven om het zichtbaar te maken.


groeten Dylan
Titel: Re: Trainduino: S88Wireless deel 3 + Intelligent Servo Decoder
Bericht door: Sattrickske op 06 januari 2015, 19:55:41 pm
Je hebt het traag aansturen van de servo blijkbaar goed onder de knie, mooi zo!  Een mooie, vlotte en trage beweging van de servo arm, dat geeft een realistische overgang van de wissel.
Titel: Re: Trainduino: Intelligent Servo Decoder V1.0
Bericht door: minitreintje op 16 augustus 2015, 17:52:46 pm
4. Intelligent Servo Decoder V1.0

4.1 Eindelijk gereed!

Zoals eerder vermeld in dit topic was ik bezig met een DCC servo decoder dat ook terugmelding voorziet naar de centrale via de Trainduino S88-Wireless.
Na 8 maanden is hij eindelijk klaar: de Trainduino Intelligent Servo Decoder!

Deze decoder bezit de volgende functies:

4.2 C-rail servo wisselaandrijving

Het ontwikkelen van de Intelligent Servo Decoder was een heel gedoe, eerst en vooral hadden we natuurlijk de mislukte constructie van de servoaandrijving met hall sensoren. Daarna volgde nog wat problemen met de draadloze terugmelding. Maar goed alles is uiteindelijk nog opgelost geraakt en werkt nu bijna voortreffelijk :) Ik moet de PCB opnieuw tekenen want ik heb een grote fout gemaakt bij de ADC van de Arduino. De afstand tussen de ADC en de connector die naar de servo loopt is veel te lang waardoor er ruis op die pin komt. De analoge waarden fluctueren hierdoor en zijn dus onbruikbaar. Nu heb ik een draadje rechtstreeks naar de servo aangebracht waardoor ik de connector ontwijk en is het probleem gefikst :)

Omdat een goede aandrijving de helft is van een wisseldecoder heb ik zelf een aandrijving ontwikkeld die onder het ballastbed van een C-rail wissel kan worden geplaatst. Na enkele weken heb ik nu een volledig compatibele C-rail wisselaandrijving die werkt met een Chinese SG90 servo van Ebay. De bestanden voor deze aandrijving zullen beschikbaar zijn op Thingiverse. Ik heb nog steeds geen originele Märklin C-rail wisselaandrijving schroeven kunnen bemachtigen, ze zijn in bestelling en zullen geleverd worden pas midden september. Ik ben vrij zeker dat het ontwerp past daarom release ik de files al. Indien het niet zo zou zijn zal ik het wel horen hier.

4.3 Foto's

(http://www.modeltreinen.comze.com/images/IntelligentServoDecoder4.jpeg)

De bijna definitieve Intelligent Servo Decoder, de draden van de NR24L01+
moeten nog vervangen worden door afgeschermde/shielded meeraderige kabel


(http://www.modeltreinen.comze.com/images/Wisselaandrijving1.jpeg)

Onderkant

(http://www.modeltreinen.comze.com/images/Wisselaandrijving2.jpeg)

Zijkant, de bouten zijn nog steeds niet ingekort...


groeten Dylan
Titel: Re: Trainduino: Intelligent Servo Decoder V1.0
Bericht door: dani op 17 augustus 2015, 10:39:28 am
ik blijf met spanning en aandacht volgen....  goed bezig zo !
Titel: Re: Trainduino: Intelligent Servo Decoder V1.0
Bericht door: Sattrickske op 26 augustus 2015, 19:27:50 pm
Ben een tijdje weggeweest wegens tijdsgebrek (verbouwingen), en nu terug op het forum en als eerste zie ik jouw draadje terug.  En ik zie meteen een heleboel knap werk geleverd, een ingenieur in spe at work!  Knap gedaan, mag je echt fier op zijn!
Titel: Re: Trainduino: Intelligent Servo Decoder V1.0
Bericht door: minitreintje op 31 augustus 2015, 09:26:55 am
Dank u allemaal :p

groeten Dylan
Titel: Re: Trainduino: Intelligent Servo Decoder V1.1
Bericht door: minitreintje op 05 september 2015, 18:22:02 pm
13. Intelligent Servo Decoder V1.1

13.1 Nieuw ontwerp voor de PCB

In het eerste ontwerp zat een kleine ontwerpfout waardoor de Arduino steeds foute waardes van de servopotmeters binnen kreeg.
Hierdoor wipte de terugmelding van de wissels telkens heen weer. Helaas moest ik wel de print hierdoor helemaal opnieuw tekenen...
Nu is de print zelf kleiner geworden op het formaat van de S88Wireless slave, wat wel gemakkelijker is om te CNC'en.

Er zijn extra anti-stoor maatregelen (condensators, shielded cable, ... ) getroffen om de stabiliteit te verbeteren van de Intelligent Servo Decoder.

13.2 Bijgewerkte software

De software is aangepast waardoor deze compatibel is met de nieuwe hardware. Er is o.a. een LED verdwenen waardoor de functie die beide LED's aanstuurde aangepast moest worden.
Bovendien zijn er nog redelijk wat kleine bugs uit gehaald die de werking van de Intelligent Servo Decoder wat stoorde.


13.3 Foto's

(http://i58.tinypic.com/14nfleh.jpg)

De nieuwe PCB, de jumper kabel is speciaal gekozen zodat de servo signaal draden afgeschermd blijven.
Dit verminderd drastisch de storingen die kunnen optreden met de radio.


(http://i58.tinypic.com/t5t11k.jpg)

Als extraatje, een fotootje van de wisselaandrijving met originele Märklin schroeven (M2.2 x 5.0),
beter vastzitten kan niet! Ze is nu ook op dit punt gelijkaardig aan de Märklin spoelaandrijving



groeten Dylan
Titel: Re: Trainduino: Intelligent Servo Decoder V1.1
Bericht door: dani op 07 september 2015, 08:42:07 am
super !!!!

dat bestandje zal ik eens moeten downloaden zo te zien :-)
heb je het al ergens geshared ?  Thingiverse of zo ?
Titel: Re: Trainduino: Intelligent Servo Decoder V1.1
Bericht door: minitreintje op 07 september 2015, 15:37:54 pm
Dag Dani,

Het staat inderdaad op Thingiverse de link stond in het vorige bericht voor de aandrijving.
Hier is de link naar Thingiverse:

https://www.thingiverse.com/thing:970883 (https://www.thingiverse.com/thing:970883)

groeten,
Dylan
Titel: Re: Trainduino: Intelligent Servo Decoder V1.1
Bericht door: dani op 07 september 2015, 15:39:44 pm
thanks Dylan...  ga het eens uitproberen !
Titel: Re: Trainduino: Intelligent Servo Decoder V1.1
Bericht door: minitreintje op 09 september 2015, 08:18:15 am
Fantastisch :p

groeten,
Dylan
Titel: Trainduino: Rocrail & PIPO X9
Bericht door: minitreintje op 11 november 2015, 21:23:03 pm
6. Rocrail & PIPO X9

6.1 PIPO X9

Voor de modelbaan te besturen hebben we een handige controller nodig die Windows/Linux/... kan draaien, WiFi, Ethernet, USB en touchscreen aan boord heeft.
Al deze zaken brengt ons snel naar een tablet met Windows 10 op, welke vandaag voor 100 - 150 euro te krijgen zijn met een Intel Quad core (1.33 Ghz) en 2 GB RAM.
Voor die prijs kan ik geen touchscreen en PC kopen. Maar een echte tablet heeft een batterij aan boord en deze altijd aan de lader hangen is geen optie,
tot ik de PIPO X9 tegen kwam op van Geekbuying. Deze werkt enkel op een stroomadapter, ideaal voor mijn doel dus.
Uiteindelijk heb ik hem besteld op Amazon, kwestie van garantie wat niet altijd gegarandeerd is bij onze Chinese buren.

Linkje naar Amazon.fr (http://www.amazon.fr/X9-Windows10-Android4-4-Computer-802-11b/dp/B015W1YTBM/ref=sr_1_1?ie=UTF8&qid=1447272082&sr=8-1&keywords=PIPO+X9)
Ik weet niet of ik hier naar mag linken, zo niet stuur me een PM en ik pas het aan.

Vorige week werd het eindelijk geleverd en meteen uitgepakt natuurlijk!  :lol:
De WiFi verbinding is beter dan op mijn laptop en de ethernet verbinding haalt 80 Mbps op Speedtest.net wat tevens
de maximale snelheid is van mijn verbinding. Bovendien bevat deze een dual boot Windows 10/Android,
9 inch touchscreen, WiFi, Bluetooth 4.0, 4x USB 2.0, speakers, HDMI-out, ... Een koopje dus!   :)
De Windows 10 en Android 4.4 versies zijn volledig vrij van bloatware, enkel heb ik een pak instellingen van Windows 10 veranderd
maar dat geldt voor elke Windows 10 computer (echt geen fan van maar er zijn geen drivers voor Ubuntu...)   :-\

UPDATE: Nog steeds geen drivers beschikbaar voor Ubuntu en de laatste alpha versie van Ubuntu (16.04 LTS) biedt geen betere support dan de voorgaande versies...

6.2 Keuze voor Rocrail als automatisatiesoftware

Bij mijn zoektocht naar de geschikte software om mijn modelbaan te besturen had ik een aantal criteria opgesteld waaraan de software zeker en vast moest voldoen:

Dus de keuze tussen Koploper, iTrain, JMRI, Rocrail, ... was eigenlijk vrij simpel aangezien een deel al closed source en betalend was.
Hierdoor blijven er slechts 2 spelers over: JMRI & Rocrail. Maar Rocrail heeft een betere Europese ondersteuning aangezien het ontwikkeld
word in één van onze buurlanden.

Na Rocrail te hebben gedownload en geïnstalleerd van de Rocrail website (http://wiki.rocrail.net/doku.php)
de instructies gevolgd om een demo baantje te laten draaien, wat eigenlijk super simpel was.

6.3 Trainduino & Rocrail

Rocrail geeft de optie om bij wissel in te vullen welke melders je wilt gebruiken als terugmelding. Bovendien kan je de wisselstand forceren op basis van de terugmelding.
Zo zal Rocrail de wisselstand niet onthouden maar uitlezen uit de melders. Als de melders allebei uit zijn zal er een rood vierkant rond de wissel staan om aan te duiden
dat de wissel zijn eindstand nog niet heeft bereikt. Dit werkt uitstekend in combinatie met de Trainduino Intelligent Servo Decoder!   :)
Het is fantastisch om de wissels, locomotieven, ... te kunnen bedienen op een kleuren touchscreen in tegenstelling tot de CS 1R.

6.4 Foto's

(http://i66.tinypic.com/mu9bew.jpg)

Testovaaltje, CS1R en Piko NMBS serie 77.

(http://i64.tinypic.com/29yjr89.jpg)

Rocrail geïnstalleerd op de PIPO X9.
Het "lange zwarte ding" is de heuse WiFi antenne, 2x zoveel netwerken als met de laptop :O

(http://i64.tinypic.com/28icd8z.jpg)

Trainduino ovaaltje uitgetekend met wissels & station.


groeten Dylan
Titel: Re: Trainduino: Intelligent Servo Decoder V1.1
Bericht door: dani op 12 november 2015, 08:25:56 am
fijn !!

Een off topic vraagje, Dylan...  Ben jij tevreden van die X9 ? En is dat de 16, 32 of 64 GB versie ?

Ik ben aan het overwegen om ook zo een WIN10/Android dualbootje te kopen, vandaar de vraag...
Titel: Re: Trainduino: Intelligent Servo Decoder V1.1
Bericht door: minitreintje op 12 november 2015, 11:47:58 am
Ik ben er tot nu toe super tevreden ervan. Windows 10 vliegt uit de startblokken door de Samsung 32GB SSD. De Android boot is ook super snel.
Wifi is fantastisch net zoals de ethernet aansluiting. Met een SD kaartje kan je het geheugen uitbreiden met max 64GB.
Touchscreen werkt ook goed en zit in een metalen behuizing. Ik verschoot van de speakers voor zo'n goedkoop ding. Niet gedacht dat ze zo luid konden.

groeten,
Dylan
Titel: Re: Trainduino: Intelligent Servo Decoder V1.1
Bericht door: dani op 12 november 2015, 13:32:58 pm
ok, bedankt voor de info, ik heb zonet de 64GB versie on line besteld ...
Voor 133 euro kan je niet sukkelen toch   :-)

Ik denk dat ik de PC die op zolder de baan ging controleren, nu wel ga kunnen van de hand doen :-)
Een groot scherm op de HDMI aansluiting, en nog een USB naar VGA controller en klaar voor 2de scherm
Titel: Re: Trainduino: Intelligent Servo Decoder V1.1
Bericht door: minitreintje op 12 november 2015, 14:11:23 pm
Inderdaad en vooral het touchscreen is fantastisch.
Ik ga nog een gamepad self-made controller fabriceren zodat ik het volledige scherm heb voor het baanplan en met de controller mijn locs in Rocrail kan kiezen en besturen.
Dankzij Arduino 1.6.6 is dat mogelijk geworden, toevallig dat deze net gereleased werd :o

groeten,
Dylan
Titel: Re: Trainduino: Intelligent Servo Decoder V1.1
Bericht door: dani op 12 november 2015, 16:13:13 pm
aha, is 1.6.6 uit ? dan ga ik eens moeten gaan neuzen, ik zit nog op 1.6.0
tnx voor de tip

EN ik volg nog steeds je project met grote aandacht en bewondering hoor
Titel: Re: Trainduino: Intelligent Servo Decoder V1.1
Bericht door: minitreintje op 12 november 2015, 17:18:34 pm
Thanks Dani :)

groeten,
Dylan
Titel: Trainduino: Rocrail Command Station
Bericht door: minitreintje op 27 mei 2016, 14:57:57 pm
7. Rocrail Command Station

7.1 Idee

Rocrail is een fantastisch programma om je modelbaan mee te besturen maar mijn PIPO X9 heeft een te klein touchscreen scherm om zowel de handregelaar als de baan te tonen op het scherm.
En niets is leuker dan een handregelaar die fysiek naast je PC staat dan eentje die virtueel met de muis moet worden bestuurd. Daarom heb ik voor Trainduino Rocrail Command Station ontwikkeld.

7.2 Componenten & functies

Trainduino's Rocrail Command Station gebruikt slechts een paar componenten om te praten met Rocrail:

De Arduino Pro Micro doet zich voor als een gamepad zodat Rocrail de commando's kan ontvangen. Hierdoor moest ik geen heel protocol en communicatie opzetten tussen de Arduino & Rocrail.
Alles wordt gevoed vanuit de USB poort op de PIPO X9, communicatie en voeding in één  :)

De volgende zaken worden ondersteund:

7.3 Filmpje

https://www.youtube.com/watch?v=lDbwhhd7UgQ


groeten Dylan
Titel: Re: Trainduino: Rocrail & PIPO X9
Bericht door: HO_COMP_FAN op 10 juli 2017, 16:18:18 pm
Hi Dylan,

met veel interesse je Trainduino verhaal gelezen.    Is er nog verandering / aanvulling gedaan aan dit project ?

Aanvullende vraag : In de eerste post zijn ook een deel photos niet (meer?) zichtbaar ,  is dit op een of andere manier zichtbaar te maken ?

Alvast dank

Dirk
Titel: Re: Trainduino: Rocrail & PIPO X9
Bericht door: Gerolf op 11 juli 2017, 10:33:07 am
Dylan is sinds oktober 2016 niet meer actief op ons forum ...
Titel: Re: Trainduino: Rocrail & PIPO X9
Bericht door: loebaske op 11 juli 2017, 19:56:40 pm


Is het dan nog belangrijk dat men dit half & half draadje online laat staan ??
Titel: Re: Trainduino: Rocrail & PIPO X9
Bericht door: Gerolf op 11 juli 2017, 21:10:31 pm
Misschien kan er iemand zijn voordeel mee doen ...
Titel: Re: Trainduino: Rocrail & PIPO X9
Bericht door: Metpetergaathetbeter op 11 juli 2017, 21:22:55 pm
op zijn profiel staat een icoontje om hem te mailen,misschien moet je maar eens mailen om dit draadje weer in gang te steken, wie weet ?
http://forum.modelspoormagazine.be/index.php?action=profile;u=4682
Titel: Re: Trainduino: Rocrail & PIPO X9
Bericht door: HO_COMP_FAN op 11 juli 2017, 22:09:54 pm
Loebaske,

met alle respect voor je waardevolle inbreng op het forum,  maar zou dit/elk forum niet een mager beestje worden als enkel de aktieve topics maar beschikbaar meer zijn ?
Denk dat het juist de kracht van het forum is dat opgedane kennis gedeeld wordt en beschikbaar blijft voor mensen die pas later nood hebben aan die informatie , of die pas later in de hobby stappen.
Persoonlijk wandel ik graag door het forum en kom talloze keren op oudere topics terecht/wordt doorverwezen naar oudere/eerdere topics voor oplossingen.

Gerolf/Peter bedankt voor de info. 
Als je de site van Dylan opzoekt (http://dylanvanassche.be/) meen ik te begrijpen dat deze momenteel andere speerpunten heeft en het Trainduino verhaal een tussenfase was/is in zijn combinatie hobby/studie. Lijkt me dus een einde verhaal.

Groetjes,
Dirk
Titel: Re: Trainduino: Rocrail & PIPO X9
Bericht door: Metpetergaathetbeter op 11 juli 2017, 23:31:54 pm
ik was zo vrij even toch een mailtje te sturen met de vraag .....................................je weet maar nooit! ;)

een nee heb je een ja kun je krijgen ! :)
Titel: Re: Trainduino: Rocrail & PIPO X9
Bericht door: Steam.N op 12 juli 2017, 06:59:33 am
... met alle respect voor je waardevolle inbreng op het forum,  maar zou dit/elk forum niet een mager beestje worden als enkel de aktieve topics maar beschikbaar meer zijn ?
Denk dat het juist de kracht van het forum is dat opgedane kennis gedeeld wordt en beschikbaar blijft voor mensen die pas later nood hebben aan die informatie , of die pas later in de hobby stappen.
Persoonlijk wandel ik graag door het forum en kom talloze keren op oudere topics terecht/wordt doorverwezen naar oudere/eerdere topics voor oplossingen. ...

Daar ben ik volledig mee akkoord  ;)
Titel: Re: Trainduino: Rocrail & PIPO X9
Bericht door: Modelspoorhobby op 12 juli 2017, 09:39:13 am
Een draadje is nooit half, kan men steeds op voort gaan en of van leren.
Titel: Re: Trainduino: Rocrail & PIPO X9
Bericht door: minitreintje op 12 juli 2017, 11:19:05 am
Dankzij de e-mail ben ik op de hoogte.
Op dit moment heb ik geen tijd om aan mijn modelspoor projecten verder te werken door mijn studies en andere zaken.
Ik ben nog steeds actief als modelspoorder, Trainduino is zeker niet dood.

EDIT: foto's zijn blijkbaar wel dood helaas, door tijdsgebrek kan ik dit niet herstellen op het moment, binnen enkele weken misschien.

Groeten,
Dylan