Nieuws:

Nu in MSM 246 REPORTAGE: Derde lustrum voor On traXS!

Hoofdmenu

Dani's World - Een nieuwe adem...

Gestart door dani, 03 mei 2013, 10:40:18 AM

dani

rijden ? nog niet ......  ik heb ontdekt dat ik nog 3 wisselaandrijvingen mis, en dus nog een stuk spoor moet heraanleggen.
En dan die resterende wissels nog.

Daarna trek ik me even terug in mijn programmeerhoekje voor de arduino programmatie.  En dan pas kunnen we gaan met de banaan.

Maar welbedanktvoor de komplimenten mannen.

PS:: @Ronald :  geweldig goeie kabel !!!


Haha,; ik zie net dat er geen 50 maar 60 kroonsteentjes per rij gemonteerd zijn.   5 latjes van 12 posities elk :-)   Dus in totaal al 180 stuks
De kruik is te water gegaan...
De kruik is niet meer.

philippe_007

90 wisseltjes aansluiten, een echt monniken werk...
Je zou voor minder een arduino gebruiken :-)

SuSke

Een titanenwerk, dat inderdaad volledig uit het zicht verdwijnt, maar moet gebeuren en liefst ordelijk  ;)
Op naar de volgende "milestone" dani.
Frans - 2R digitaal (tpIII-IV Belgisch - TPV&VI de vrije markt) en wat eigenaardigheidjes :-)
lid van MTD treinenclub vzw Edegem - www.mtdtreinenclub.be - Tentoonstelling MODELSPOOR by MTD - Hangar 27, Edegem op 19 & 20 Oktober 2024
De trein rijdt nooit op tijd, maar altijd op sporen.

dani

#1113
en dan zijn de huidige wissels zo goed als allemaal aangesloten op het centrale  "railconnect systeem"....
Volgende stap : de wissels van Noord 2, de lift en  nog enkele van Noord.

Maar eerst wat zitten programmeren  aan de sturing.

het principe :

Hardware en connecties :
1 master  controller
3 slave controllers
Seriële communcatie tussen de 4 controllers
inkomende signalen op de master van zowel USB (pc) , DCC (centrale) als  InfraRood (afstandsbediening)
elke slave controller heeft een seriële poort, een aantal status LEDs (6) en  in totaal 60 digitale uitgangen   (2 per wissel)
iedere digitale uitgang van de slaves (en de master)   stuurt via een 1kOhm weerstand een  BD139  darlington transistor, die op zijn beurt de wisselbediening (spoel) aanstuurt, en over de spoel staat een blusdiode  (en optioneel een LED met 1,8 kOhm) ter beveiliging van de transistor.

addressering :
Elke wissel heeft een DCC adres in de range  701 tot 790   (dus max 90 wissels te sturen)
Adressen  791 tot 799  zijn voor   de draaischijf  (791 en 792)  en 7 ontkoppelrails  (793...799)
via infrarood zijn de wissels genummerd   1..90  en de rest   91..99

intern protocol :
een eigen protocol gebaseerd op datagrammen van 8 bytes   (met een  /n om af te sluiten)

* master naar slave
         -  !xxyzzzz          ! =instructie identifier,  xx=wissel nr, y = status (1/0),  zzzz = tijd (mSec)
         -  #INITI#@       #= commando identifier, INITI = commando,  # = filler, @ = commando terminator
         -  #ALIVE#@      #= commando identifier, ALIVE = commando,  # = filler, @ = commando terminator
         -  #RESET#@     #= commando identifier, RESET = commando,  # = filler, @ = commando terminator

* slave naar master
         -  #ACKDT#@     #= antwoord identifier, ACKDT = acknowledge data,  # = filler, @ = commando terminator
         -  #NAKDT#@     #= antwoord identifier, NAKDT = non acknowledged data,  # = filler, @ = commando terminator

* protocolcontrole :  checksum gebaseerd op ASCII values van elk karakter, plus vaste posities van identifiers

* data controle :    status mag enkel 1 of 0 zijn
                            adres moet tussen 01 en 30 liggen   
                            slave moet 1,2 of 3 zijn  (behalve bij reset, dan is  0= ALLE slaves resetten )
                            timer waarde moet tussen 200 en 3000 mSec liggen


alarmen en status
Wanneer de master ongeldige data krijgt, dan zal hij dat weergeven op het scherm met "data error"
Krijgt hij geldige data, dan zal hij dat valideren, daarna ontcijferen, en dan bepalen naar welke slave het gaat en doorsturen
Hij wacht dan op een antwoord van de slave    (ACK orf NAK)

Bij "ACK" gaat de flow verder, bij NAK zal eerst een retry gebeuren, en bij 2de NAK zal een alarm gegenereerd worden.


Om de 2 minuten  zal de master elk van de slaves  "pollen" of ze nog  wakker zijn  (alive).
De master checkt ook of er spanning op de rails staat en of de nodige stuurspanning voor de wissels (ext 18V DC) aanwezig is  (zoniet : alarm)


Verder zorgt de master zelf voor het aansturen van de  kanalen(7)91 tot en met (7)99.

Dat laatste kan nog veranderen, want ik denk dat de master  genoeg zal te verwerken hebben, zonder dat hij deze zaken moet aansturen.
Misschien voeg ik nog een 4de slave toe, maar dan een AT328 controllerchip in plaats van een MEGA2580   (met "maar"  20 uitgangen) of  verdeeel ik de   "extra" kanalen gewoon over de beschikbare  pins van de 3 slaves  ( ze hebben er elk nog een 4-tal over, dus ik heb nog 11 uitgangen beschikbaar, dat dekt de 9 ruimschoots + elk nog een extra statusLED om aan te geven dat ze een "niet-wissel" aan het aansturen zijn )


Huidige status :

* Master : 
- de routines voor LEDs, Seriële poorten, USB,  display aansturing en  berekening van parameters op basis van de input zijn klaar
- de alarmroutines zijn klaar
- De DCC routines zijn klaar
- aan de IR  routines wordt gewerkt
- het dataverkeer naar slave is in progress
- de pinbelegging is gedefinieerd
- algoritmes voor checksum, datagram, poortberekening en EEPROM lezen/schrijven zijn klaar
- slave pollign moet nog worden ingebouwd om de 2 minuten  (de intiele prompt is ok dus enkel nog linken aan een timer)

* Slave : 
- de slave is KLAAR  en getest
    - data comm routines
    - validati van input
    - verwerking van input
    - output mapping en berekening
    - error trapping
    - protocol en checksum controles
    - output sturing
    - LED aansturing   (monitoring)







Hopelijk was het wat duidelijk.   Ik begrijp dat  het voor niet-computeraars verwarrend is, maar ik probeer om het in Jip en Janneke  taal uit te leggen zodat ook "de leek"  het principe snapt....


Binnenkort hopelijk eens wat foto's, schema en misschien zelfs film :-)

Ik zal dit project ook documenteren op mijn  Weebly  project site  als we wat verder gevorderd zijn    (http://dcc-arduino.weebly.com/)



De kruik is te water gegaan...
De kruik is niet meer.

Stieven76


Bolje

Nice work!

We proberen het te ontcijferen.  ;)
Vele groeten,
Ronald

Steam.N

Citaat van: dani op 31 maart 2015, 10:38:49 AM
en dan zijn de huidige wissels zo goed als allemaal aangesloten op het centrale  "railconnect systeem"....
Volgende stap : de wissels van Noord 2, de lift en  nog enkele van Noord.

Maar eerst wat zitten programmeren  aan de sturing....

Boeiend en leerrijk.
Ik volg !!!
Knutselgroeten !  Jean       TP-I (B) & TP-II (DR) - N - DC - Handbediening - Zelfbouw  { Sedelocus - De Feniks - Pira-N's Crossing - Turnhout NEEB - Scrap Yard }

dani

danku danku...   
maar het is verre van "af" hoor.  er zal nog wat moeten gebeuren eer alles werkt.


Eén van de "hobbels in de baan" is de sturing van de wisselaandrijvingen.   Ik heb beslist om dit met gelijkspanning te gaan doen, omdat dat makkelijker schakelt met  BD139  torren.   (die schakelen geen wisselstroom).

Zowel de  M-rail als de C-rail wisselaandrijvingen doen het prima met gelijkspanning/gelijkstroom.

De  "Conrad type" aandrijvingen daarentegen MOETEN wisselstroom hebben of ze gaan maar 1 kant op .  Dat is inherent aan het design met een DC motortje en de manier dat dat geschakeld is met 2 tegengestelde diodes.   Gelukkig bestaan er omweggetjes en  tussenoplossingen.

Het komt er op neer dat ik voor elke Conrad aandrijving  (gelukkig heb ik er maar 5 in de hele baan zitten)  ik de bekabeling lichtjes ga moeten aanpassen en dat ik een "hulp printje" zal nodig hebben dat als een halve H brug functionneert.      Mijn vriend Google heeft me dit gegeven en dat ga ik dan ook realiseren.  Het  alternatief was  om met  2 minirelais te werken ipv de transistoren uit de schakeling.

http://encyclopedie.beneluxspoor.net/index.php/Hulpschakeling_motorwisselaandrijvingen


zo zie je dat er voor alles een oplossing is.   Zeker voor die wisselaadrijvingen is het doenbaar.   Alleen jammer dat ze op o zo moeilijk bereikbare plekken op de baan zitten.    GRRRRRR....   ik zal eens creatief moeten zijn  "onderweg" in de kabelboom. 
De kruik is te water gegaan...
De kruik is niet meer.

sdz1976

Je zult je direct nog niet vervelen. Goe bezig Danni!
www.ovmv.be
Creatieve mensen hebben geen rommel,
ze hebben overal ideeen liggen.
ho- hoe- on30- 1

dani

Citaat van: sdz1976 op 31 maart 2015, 14:08:09 PM
Je zult je direct nog niet vervelen. Goe bezig Danni!

Tussendoor terwijl ik de soldeerbout regelmatig ter hand neem is het printje voor Schrottplatz ook  eindelijk gestart !!
De kruik is te water gegaan...
De kruik is niet meer.

sdz1976

Doe maar rustig aan Dani!
Het is een hobby, dus niets die preseert.

Grtz,

Samuel.
www.ovmv.be
Creatieve mensen hebben geen rommel,
ze hebben overal ideeen liggen.
ho- hoe- on30- 1

Gerolf

Ferm vervolg van het project, Dani. Ik volg (uiteraard) ook  ;)
Groeten uit "Marche-en-Bières"   ** Modelspoor is plezant **   TPIII-H0-DC-Zelfbouw

dani

gisteravond niet geprogrammeerd, maar nog wat bekabeling bij gelegd voor de wissels van "Noord 2".
4 "strengen" van elk 10 draadjes liggen klaar om onder de baan te worden bevestigd, dan door de muur en we zitten op N2.

Dsu wil dus zeggen dat ik alweer 20 wissels kan bekabelen.   Er moeten nog 2  kabel bij komen en dan denk ik toe te komen.

Daarna nog de wissels voor de  treinlift, het aanknooppunt tussen lift en station  Zuid Hoog en we zijn rond.

Eerst de 4 kabels binnengehaald in de (geïmproviseerde)  schakelkast



Dan het niet zo leuke werkje :   één voor één de draadjes strippen,  dan "twisten" en dubbelplooien, en daarna per kabel en per kleur in de juiste volgorde in de kroonsteentjes schroeven.     Eens dat gedaan is, is ne mens toch weer tevreden van zijn avondje.     Al zie je er weinig van, en eens de kast dicht is, zie je niks meer.





En aangezien ik vandaag thuis werk, kan ik af en toe in mijn korte pauze in plaats van met de collega's te babbelen, even met mijn hobby bezig zijn.
5 minuutjes "afleiding" van het werk doet soms wonderen.    Dus nu even labeltjes gemaakt voor op de Arduino's , en op geplakt.
En dan de 3  slaves al van de software voorzien.  Die is (voor nu toch) helemaal af en is identiek voor elke slave.

In principe kan ik nog verder uitbreiden, maar de Arduino Mega heeft "maar"  4 seriële poorten.  1 voor de PC en 3 voor de slaves zo zijn ze nu ingedeeld.
However....  er bestaat ook zo iets als "virtual serial" waardoor je met 2 gewone pinnen van de kaart een extr seriële poort maakt.  (softwareserial heet dat).
Of ik zou kunnen omschakelen op een "bus" systeem via  I2C  of zelfs helemaal gek doen en via Ethernet gaan werken.


enfin, niet te hard van stapel lopen.   Voorlopig is het dit :



1 master (Arduino) en 3 identieke slaves  (Funduino, in principe 100% gelijk aan Arduino).

De kruik is te water gegaan...
De kruik is niet meer.

Gerolf

Ik gebruik 3 master/slave protocollen voor datacommunicatie:
1Wire: bij weinig data, en dus geen hoog tempo nodig (15KHz)
RS232: wat meer data, relatief snel (38400 Baud)
I2C: veel data, snel (400KHz)
Groeten uit "Marche-en-Bières"   ** Modelspoor is plezant **   TPIII-H0-DC-Zelfbouw

dani

de master slave communicatie werkt voorlopig prima met TTL / UART seriële communicatie (op zeekr korte afstand, max 30 cm), maar ik zal zeker de I2C overwegen naar de toekomst.

Even een "fillempie van ome willempie"  in elkaar gegooid dat laat zien hoe alles verbonden wordt, hoe de Master communiceert met de slaves en hen "aanport".

Kort, maar krachtig.    Altijd leuk als je werk beloond wordt :-) :-) :-)

https://www.youtube.com/watch?v=940aCGJpGFg&feature=youtu.be

De kruik is te water gegaan...
De kruik is niet meer.