BeneluxSpoor.net forum

Vraag en antwoord => Digitaal => Topic gestart door: Hans1963 op 07 maart 2021, 11:15:32

Titel: DCC++ EX
Bericht door: Hans1963 op 07 maart 2021, 11:15:32
Er zijn nieuwe ontwikkelingen op het gebied van  kleine  “do it yourself”  centrales.
De op de Arduino gebaseerde centrale DCC++   is verbeterd en voorzien van nieuwe opties.

Deze centrale heet nu DCC++ EX.  Het verschil met de bestaande DCC++ centrale  is dat er een WIFI web-throttle
voor ontwikkeld is en dat de centrale uitgebreid  is met een sensorshield.

Mijn DCC++EX centrale bestaat daarmee uit  3 gestapelde onderdelen:
De Arduino Mega 2560; het  sensorshield van Robotdyn en een motorshield L298P van Deek Robot.
De totale kosten van deze centrale bedragen ongeveer  €16,-  (AliExpress)

Het vermogen van deze centrale is 2A. Naast het aansturen van loc’s is het nu ook mogelijk op het sensorshield
input/output  onderdelen aan te koppelen.  De inputs kunnen hierbij sensoren zijn voor b.v. terugmelding.
Dit kunnen o.a. lichtgevoelige sensoren zijn; infrarode melders;  hallsensoren  en lichtsluizen.
Als outputs zijn b.v. leds of relais aan te sluiten.  Op een relais is  dan rechtstreeks een magneet artikel voor wisselomzetting aan te sluiten.
Met deze opstelling is dan een complete centrale voor modelbaan automatisering mogelijk. (alleen DCC)

Voor een servo aansturing van de wissels is geen rechtstreekse mogelijkheid aanwezig.
Hiervoor is een PWM (Puls Width Modulatie) uitgang nodig en die is niet  aanwezig in de centrale.
We kunnen dit echter wel met een andere Arduino erbij voor elkaar krijgen. Deze heeft PWM uitgangen.

Voor  een Arduino UNO heb ik een sketch geschreven voor het aansturen van een servo.
Hierin is de snelheid van roteren  en de uitslag (begin/eindstand) in te geven.
De aansturing  van de sketch wordt verkregen uit 2 DigitalRead opdrachten (HIGH/LOW) die door het relais wordt gegeven.
Bij aansturing van meerdere  servo's moeten deze een eigen voeding krijgen.

Daarmee zijn wel alle ingrediënten aanwezig voor een complete en budgetvriendelijke centrale.
De DCC++EX centrale is in Rocrail in te stellen en de I/O  aansluitingen zijn hierin te adresseren.


(https://images.beneluxspoor.net/bnls/IMG_3207_6.jpg) (https://images.beneluxspoor.net/bnls/IMG_3207_6.jpg)


(https://images.beneluxspoor.net/bnls/Screenshot_1_11.jpg) (https://images.beneluxspoor.net/bnls/Screenshot_1_11.jpg)
Titel: Re: DCC++ EX
Bericht door: Fritsprt op 07 maart 2021, 13:40:45
Hoi Hans,

Kan je het relais niet laten vervallen voor de Uno/servo aansturing?

Gr. Frits
Titel: Re: DCC++ EX
Bericht door: Hans1963 op 07 maart 2021, 14:06:04
je hebt gelijk Frits.
die mogelijkheid was me nog ontgaan. (zat nog teveel op het spoor van de elektrische aandrijvingen)

bedankt!
Titel: Re: DCC++ EX
Bericht door: meino op 07 maart 2021, 14:14:20
Voor een servo aansturing van de wissels is geen rechtstreekse mogelijkheid aanwezig.
Hiervoor is een PWM (Puls Width Modulatie) uitgang nodig en die is niet  aanwezig in de centrale.
We kunnen dit echter wel met een andere Arduino erbij voor elkaar krijgen. Deze heeft PWM uitgangen.

Dag Hans

Dit dacht ik vroeger ook, totdat ik nog eens goed naar de Servo bibliotheek keek. Het blijkt dat die  niet met een PWM pin werkt, iedere gewone pin (digitaal en Analoog) is bruikbaar. Er is wel een bibliotheek beschikbaar die wel een PWM pin nodig heeft, maar dat is niet de gewone Servo bibliotheek. Ik heb met beiden geexperimenteerd, maar in mijn situatie geen voordeel van het gebruik van de PWM pin kunnen vinden.

Groet Meino
Titel: Re: DCC++ EX
Bericht door: Hans1963 op 07 maart 2021, 14:34:03
Tjaa Meino, in bibliotheken kijken doe ik niet, heb ik onvoldoende kennis voor.  ;D

Maar het is goed te weten dat alle pinnen dus bruikbaar zijn. Altijd handig.

Titel: Re: DCC++ EX
Bericht door: bask185 op 07 maart 2021, 20:29:33
Daar hoef je niet in de library voor te kijken, dat staat allemaal op internet.

Wat ook belangrijk is om te weten, is welke timer die servo library gebruikt op de arduino mega. Ik weet dat een UNO timer 1 gebruikt. Als ik het me goed herinner, heeft DCC++ een programmeerspoor en een hoofdspoor. Daar heb je volgens mij al 2 timers voor nodig. Van timer 0 wil je afblijven omdat je anders millis() en micros() sloopt.

Nu heeft de mega meer timers dus dat kan snor zitten, maar ik weet dus niet of jullie rekening hebben gehouden dat je misschien wel of niet een van je DCC bussen sloopt als je de servo library zou proberen te gebruiken.

Een ander puntje.
Ik zie in het hardware lijstje noch Wifi apparaat noch ethernet shield staan. Er staat wel dat jullie een WiFi throttle hebben gemaakt. Als de DCC++ EX geen wifi of ethernet heeft, kan je dus niet direct een verbinding opstellen en zit je vast aan een computer. Op dat sensorshield kan je op een van de seriele poorten van de mega ook een ESP8266 aansluiten zodat de centrale zelf wifi heeft. Dan kunnen handrijders rijden met wifi zonder de tussenkomst van een computer.

Ik heb nog een paar vraagjes.
- Heb je nu perse een computer nodig?
- Als je dus geen computer heb/wilt. Kan je dan makkelijk de software aanpassen zodat je bijvoorbeeld een potmeter oid kan gebruiken als throttle?
- Heb je nog een linkje naar de software voor ons?
- Heb je een linkje voor de wifi throttle? Ik ben best benieuwd eigenlijk.

Mvg,

Bas

EDIT:
Al het een en ander gevonden https://github.com/DCC-EX/BaseStation-Classic (https://github.com/DCC-EX/BaseStation-Classic)

Titel: Re: DCC++ EX
Bericht door: Hans1963 op 07 maart 2021, 20:43:45
dag Bas,

je hebt het over "jullie" ,maar ik ben gebruiker, niet de ontwikkelaar.

als je meer info wilt kijk bij DCC++ EX:

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

https://dcc-ex.com/index.html
Titel: Re: DCC++ EX
Bericht door: Fritsprt op 07 maart 2021, 21:25:35
Forumgennoot Albert heeft ook meerdere filmpjes gemaakt over DCC++EX (https://www.youtube.com/watch?v=CgCa3E1xMPE)

Gr. Frits
Titel: Re: DCC++ EX
Bericht door: Tedjedin op 07 maart 2021, 22:41:01
Hallo,
Ik volg dit item met veel interesse, mijn geringe kennis van electronica belemmert me een beetje.
N.a.v. genoemde video's, heb ik ook een DCC++EX centrale gemaakt met een Arduino Mega 2560 en een Deek-Robot motorshield. Op een testbaan heb ik deze centrale met Rocrail verbonden en ik kan nu een trein laten rijden en wissels schakelen, weliswaar via een wisseldecoder. Bezetmelding met de Hall-sensoren wil ik nog testen, maar dat vergt bij een redelijke baan al gauw veel bedrading en een extra sensorshield.
Ik gebruik nog M-rail, jawel.... en ik zou graag, zoals op mijn hoofdbaan, de bezetmelding mbv stroomdetectie en S88-n willen uitvoeren, maar dan zonder decoder.
Op deze site ( https://rudysmodelrailway.wordpress.com/2014/10/03/arduino-used-as-an-s88-occupancy-detector-board/#comments ) heb ik e.e.a. gevonden om van een Arduino Uno een S88 bezetmelder (en een reeks) te maken. Het probleem is echter dat hier gebruik gemaakt wordt van een koppeling met een ECOS. Met mijn CS2 centrale zou dat dan ook moeten lukken.
Dus als er een koppeling gemaakt kan worden, neem ik aan dat dat ook naar de DCC++ kan en vervolgens naar Rocrail. Alleen is de vraag, hoe?
Kan iemand mij een beetje op weg helpen?

Reacties zijn welkom. Alvast bedankt.
Gr. Theo
Titel: Re: DCC++ EX
Bericht door: bask185 op 07 maart 2021, 22:44:22
je hebt het over "jullie" ,maar ik ben gebruiker, niet de ontwikkelaar.
Ah op die fiets  ;).

Ze hebben er wel over nagedacht. Je kan er nog een extra esp8266 shield er op prikken. Dat is leuk, zo'd arduino toren met 3 shields in elkaar stapelen  ;D

Bas
Titel: Re: DCC++ EX
Bericht door: bask185 op 07 maart 2021, 23:14:41
Dus als er een koppeling gemaakt kan worden, neem ik aan dat dat ook naar de DCC++ kan en vervolgens naar Rocrail. Alleen is de vraag, hoe?
Kan iemand mij een beetje op weg helpen?

Reacties zijn welkom. Alvast bedankt.
Gr. Theo
Oe een leuke.

Ok hier gaan we. Theo, de basis van de S88 bus is een groot schuifregister. Dit schuifregister heeft 20 inputs waarop je bij de S88 je bezetmelders aansluit. Om de informatie uit deze schuifregisters op te halen moet een master apparaat (een central station of een ECOS of een andere centrale) een klok lijn bedienen en tegelijkertijd moet hij de datalijn in de gaten houden. Als de master dan pulsjes zet op de kloklijn dan gaan de schuifregisters de informatie die op de inputs staan bitje voor bitje richting de master sturen over de data lijn.

Als je bijvoorbeeld 2 S88 apparaten heb met elk 20 inputs dan moet de master 40 klokpulsen uitsturen om alle 40 bits aan informatie op te halen uit de S88 modules.

Nu wil jij arduino's gebruiken voor de bezetmelding van je baan. Dan kan wel op de s88 manier, maar je bent geenzins verplicht omdat ook zo te doen. Je kan bijvoorbeeld I2C gebruiken om een alternatief te noemen.

Gezien het feit dat Rudy Boers s88 programma al kant en klaar is, is het enigszins wel makkelijk om de s88 standaard te handhaven. De arduino IDE heeft twee functies ingebakken om met standaard 8 bits schuifregisters te werken. Je hebt namelijk shiftIn() en shiftOut(). Met shiftOut kan je data naar schuifregisters toe sturen en met shiftIn kan je data van schuifregisters ophalen en dat is wat jij wilt. Op arduino.cc (https://www.arduino.cc/reference/en/language/functions/advanced-io/shiftin/) kan je iets meer uitleg vinden.
byte incoming = shiftIn(dataPin, clockPin, bitOrder)
Je kan met deze functie dus 8 pits per keer ophalen. Als je bijvoorbeeld 10 bytes (dus 10x 8 bits = 80 bezetmelders = 4 arduinos's als s88) wilt ophalen, kan je simpwel dit tikken
for( int i = 0 ; i < 10 ; i ++ )
{
    bezetMelderArray[ i ] = shiftIn(dataPin, clockPin, bitOrder) ; // we doen dit 10x en halen 8 bits informatie op per keer.
}

De originele S88 bestaat ook echt uit een schuifregister IC en niet een programmeerbaar geval zoals een arduino.

Nu zijn er ook  losse schuifregisters ICs (https://hackerstore.nl/Artikel/205) te vinden (8 bits) die goed werken met de shiftIn() functie van arduino. Je kan dus zoveel van deze ICs in cascade zetten zoals je wilt. Daarom wil ik je erg graag aanraden om eerst deze te proberen voordat je moeilijk gaat doen met de S88 standaard. Dit is namelijk veel goedkoper en feitelijk werkt het exact hetzelfde.

Nog meer informatie over dit schuifregister staat op https://playground.arduino.cc/Code/ShiftRegSN74HC165N/ (https://playground.arduino.cc/Code/ShiftRegSN74HC165N/)

Als je nu nog steeds perse dat s88 ellende wilt gebruiken :P dan moet ik even kijken naar Rudy's programma om te kijken hoe gevoelig de timing precies ligt. Dan kan ik wel een functie voor je uit mijn mouw schudden die een S88 kan uitlezen zoals een ECOS of central station dat kan  ;)

Ik hoop dat ik een beetje duidelijk ben geweest.

Mvg,

Bas

EDIT: ik weet niet of dit voorzich spreekt. Maar je kan niet direct je spoordraden op een schuifregister aansluiten, dit kan op een arduino ook niet. Ik neem aan dat je bekend bent met het standaard optocoupler + gelijkrichter schakelingetje voor stroomdetectie?

P.S.
Als je wilt kan ik een printje voor je maken met een schuifregister + alle benodige toebehoren voor aansluitingen en bezetmelding. Kan met ethernet kabels, kan met dupont kabels of flatcables net wat je wilt. Het is voor mij een uur werk, misschien 2 en dan hoef je geen zelf proto printjes in elkaar te solderen. Als je dit wilt moet je me maar een PB sturen. Het kost rond de 25,- euro voor 20 printplaten en het duurt ergens tussen 1 en 2 maanden voordat ze geleverd worden. En je kan hier ook denken aan 2 schuifregisters (16 inputs) per print. Prijs is exclusief onderdelen en ik maak hier 0 euro winst op  :P

EDIT2: Ik heb het niet helemaal goed gelezen. Mijn verhaal tot zover gaat over hoe je informatie van baan -> DCC++ centrale krijgt. Ik heb zelf 0.0 kennis over rocrail en hoe je van arduino naar rocrail informatie moet sturen weet ik niet. Nu geloof ik wel dat het mogelijk is, er bestaat immers een software protocol voor. Het is zeg maar een kwestie van een paar instructie bytes + je bezetmeld informatie opsturen over Wifi, maar dan moet je het protocol eerst vinden en uitpuzzelen hoe dat moet.
Titel: Re: DCC++ EX
Bericht door: Hans1963 op 07 maart 2021, 23:17:18
Theo,

als je bezetmelding via je CS2 wilt regelen kan deze niet via DCC++EX  centrale lopen.
in Rocrail kun je wel een 2e centrale aanmaken (Mbus) voor je CS2.  Deze krijgt dan een eigen com-poort en ID.
Titel: Re: DCC++ EX
Bericht door: bask185 op 07 maart 2021, 23:26:05
Dan heb ik nog een vraagje eigenlijk. Als je toch al een CS2 heb, wat moet je dan nog met een losse DCC++ centrale er bij?
Titel: Re: DCC++ EX
Bericht door: Ronaldk op 08 maart 2021, 07:40:52
Hoi,

@Hans: Een leuk projectje.  (y)

Met mijn CS2 centrale zou dat dan ook moeten lukken. Dus als er een koppeling gemaakt kan worden, neem ik aan dat dat ook naar de DCC++ kan en vervolgens naar Rocrail. Alleen is de vraag, hoe? Kan iemand mij een beetje op weg helpen?

@Theo: Je hebt geen DCC++ EX nodig. Je kan gewoon met je CS2 op de bezetmelders aansluiten. De CS2 heeft een s88 aansluiting voor bezetmelders. RocRail kan gewoon overweg met de  RocRail CS2 / CS3 (https://wiki.rocrail.net/doku.php?id=mbus:cs3-en). Alleen je moet het een en ander wel goed instellen. Je moet je CS2 opnemen in je thuisnetwerk waar ook de computer van RocRail inzit of aansluiten met een (cross)netwerkkabel.

Groet Ronald.
Titel: Re: DCC++ EX
Bericht door: Tedjedin op 08 maart 2021, 17:57:13
Bedankt voor jullie reacties.
Maar even iets toelichten,
Citaat
Met mijn CS2 centrale zou dat dan ook moeten lukken.
Ik wilde hier alleen maar aangeven, dat ik hetzelfde als bij de Ecos ook op mijn CS2 voor elkaar kan krijgen.
Dat is niet de bedoeling. Mijn excuus.
Mijn hoofdbaan met CS2, decoder voor wissels, seinen en bezetmelding i.c.m. Rocrail rijdt prima.

Nee, ik wil proberen om een testbaan te maken met de DCC++EX centrale en Rocrail. (en kennis op te doen van de Arduino)
Die combinatie werkt al, treinen rijden. Ook heb ik een wisseldecoder aangesloten en kan ik wissels bedienen. Evenzo kan ik wissels bedienen via aangesloten relais (als in de video's van Albert).
De volgende stap die ik wil zetten is om een Arduino voor bezetmelding te gebruiken. Die moet dan aangesloten worden op de DCC++, die weer met Rocrail moet communiceren. En dat zonder sensorshield met Hall-sensoren.
Mijn insteek is wel om zo weinig mogelijk shields te moeten toepassen. Met de Arduino Mega, Sensorshield, motorshield en wellicht ook nog een WIFI mogelijkheid, wordt de toren iets te hoog ;D
@Bas.
Jou reactie is, denk ik, hetgeen ik zoek. Ik ga het nog bestuderen.
Citaat
EDIT: ik weet niet of dit voorzich spreekt. Maar je kan niet direct je spoordraden op een schuifregister aansluiten, dit kan op een arduino ook niet. Ik neem aan dat je bekend bent met het standaard optocoupler + gelijkrichter schakelingetje voor stroomdetectie?
Ja, dat weet ik. De gelijkrichter schakeling heb ik toegepast.
Citaat
.. hoe je van arduino naar rocrail informatie moet sturen weet ik niet.
De DCC++EX centrale wordt door Rocrail ondersteund. Rocrail > CS2> S88 werkt ook, dus ik (als leek) ga ervan uit dat Rocrail > DCC++EX > S88 ook moet kunnen. Alleen de "pinnetjes" nog van de S88 naar DCC++  :) :)
Als ik gebruik ga maken van je aanbod, zal ik een PB sturen.

Gr. Theo
Titel: Re: DCC++ EX
Bericht door: ron.kraaijkamp op 10 maart 2021, 14:26:20
Hallo Theo,

Kijk eens naar de Arloco software en Okkies van Arcomora (https://www.arcomora.com/arloco/ (https://www.arcomora.com/arloco/)), goedkoop en werkt fantastisch.
Je hebt nog wel een klok signaal, stroombron en voeding op de Loconet verbinding nodig.
Ik gebruik hiervoor de UASb naar Loconet adapter van Rosoft. En een kleine schakeling.
Zie hiervoor mijn draadje op dit forum, (https://forum.beneluxspoor.net/index.php?topic=94647.msg3222201410#msg3222201410 (https://forum.beneluxspoor.net/index.php?topic=94647.msg3222201410#msg3222201410).

Succes.
Titel: Re: DCC++ EX
Bericht door: Hans1963 op 30 maart 2021, 20:38:43
Ik heb aan mijn DCC++ EX centrale nog wat toegevoegd.

Recent kwam bij een ander topic een mini steppermotortje in beeld met veelbelovende mogelijkheden.
Hiermee zijn lineaire verplaatsingen mogelijk voor b.v. wisselomzettingen of scenery bewegingen. (max uitslag  +/- 10 mm)
De aansturing gaat het best met een motordriver, ik gebruik een A4988.
Deze heeft een “enable” pin waarmee de motordriver  is aan te zetten net voor de beweging start
en uit te zetten als de beweging is voltooid. Verder voordeel is de mogelijkheid van microstepping voor nauwkeuriger positionering.

Voor de aansturing heb ik een sketch geschreven voor Arduino Nano gebruikmakend van de Speedystepper library.
Deze library  heeft de mogelijkheid voor acceleratie- en snelheids instelling. Verder is de stepperbeweging  naar keuze relatief of absoluut te programmeren.
De gewenste begin- en eindstand is als variabele in te voeren.  De slag van bv. een wissel is daarmee in te stellen.

De aansturing gebeurt op dezelfde manier als bij een servo. Een pin op het sensorshield wordt  “LOW” of “HIGH” gezet door een wissel  in Rocrail
rechtuit of afbuigend te zetten. De Arduino voert dan de bijbehorende beweging van de motor uit. In Rocrail is de richting evt te inverten.
De beweging is zeer nauwkeurig in te stellen . Met één microstepping pin geactiveerd beslaat het traject van 10 mm ongeveer 2500 stappen.
Het motortje is ook krachtig door de verplaatsing middels een spindel.

Kortom, dit simpele motortje biedt weer volop toepassingsmogelijkheden voor de modelspoorbouw. Onderstaande foto geeft de test opstelling van de centrale weer.
Ik heb er wat tekst bijgeplakt als verduidelijking. Er 2 twee varianten van de mini motor te zien.  Een langwerpig model en een blokvorm.
Kijk ook eens  naar de grootte hiervan  in verhouding tot de servo’s.

Tot zover dit. Op naar de volgende innovaties.  :)


(https://images.beneluxspoor.net/bnls/centrale-met-tekst-klein-60636f9e2e27a.jpg) (https://images.beneluxspoor.net/bnls/centrale-met-tekst-klein-60636f9e2e27a.jpg)
Titel: Re: DCC++ EX
Bericht door: 72sonett op 30 maart 2021, 21:14:04
Zitten er ook eindschakelaars aan het motortje?
Hoe bepaal je de beginstand?
Titel: Re: DCC++ EX
Bericht door: momfer op 30 maart 2021, 21:59:49
Hallo Hans,

Recent kwam bij een ander topic een mini steppermotortje in beeld met veelbelovende mogelijkheden.
Hiermee zijn lineaire verplaatsingen mogelijk voor b.v. wisselomzettingen of scenery bewegingen. (max uitslag  +/- 10 mm)
De aansturing gaat het best met een motordriver, ik gebruik een A4988.
Deze heeft een “enable” pin waarmee de motordriver  is aan te zetten net voor de beweging start
en uit te zetten als de beweging is voltooid. Verder voordeel is de mogelijkheid van microstepping voor nauwkeuriger positionering.

Heb je een linkje van die lineaire steppermotortjes? Ik ben wel benieuwd naar de eigenschappen van deze motor.

Alvast bedankt,

Rico

Titel: Re: DCC++ EX
Bericht door: Hans1963 op 30 maart 2021, 22:05:35
Het motortje heeft geen eindafschakeling, maar dat hoeft ook niet.
Het is in de sketch te regelen door met de enable pin de motor aan/uit te zetten gelijk voor en na de verplaatsing. Een software schakelaar dus.

De beginstand wordt ook in de sketch bepaald door gebruik te maken van relatieve en absolute bewegingen.
Bij het aanzetten krijgt de motor in de setup de opdracht voor een grote relatieve verplaatsing waarbij in ieder geval de volledige spindellengte wordt afgelegd. De hendel loopt dan altijd tegen het eindblok aan,  maar de motor loopt wel door. (bij een stappenmotor kan dat, in tegenstelling tot een servo)
Deze positie wordt dan in de sketch als nulpunt vastgelegd. (setCurrentPositionInSteps(0))
Vanuit dit nulpunt wordt dan in absolute stappen naar de ingegeven begin- of eindstand verplaatst. (bepaald door de HIGH of LOW stand van de sensorpin)
Titel: Re: DCC++ EX
Bericht door: Hans1963 op 30 maart 2021, 22:08:58
linkje voor de motor:

https://nl.aliexpress.com/item/4001212984521.html?spm=a2g0s.9042311.0.0.3f3e4c4dyTnaMG (https://nl.aliexpress.com/item/4001212984521.html?spm=a2g0s.9042311.0.0.3f3e4c4dyTnaMG)
Titel: Re: DCC++ EX
Bericht door: momfer op 31 maart 2021, 14:05:01
Bedankt voor de link, Hans

Het lijkt me een leuk dingetje/alternatief om mee te experimenteren voor wissels. Aan de hand van jouw beschrijving denk ik dat het besturen niet te veel afwijkt van een servo eigenlijk.
Titel: Re: DCC++ EX
Bericht door: bask185 op 31 maart 2021, 16:56:00
Ze zijn ook best goedkoop. Ik heb er ook maar meteen 20 in de winkelwagen gelegd. dan zijn de verzendkosten 1$ minder dan bij 10 stuks.... dat verzendkosten systeem op ali daar klopt echt niks van.

Ik vind het mooiste altijd, als je dan 1 artikel heb dat je geen verzendkosten betaalt, als je er dan 2 koopt dan kunnen de verzendkosten zomaar naar 3$ nog iets springen. En als je dan weer terug gaat naar 1 artikel dan moet je opeens wel betalen. Als je dan de pagina ververst, staat hij weer op gratis. De toenames zijn ook geenzins lineair. Zo komt er 10 cent bij en zo een hele dollar ..echt geen touw vast te knopen. ;D

Bas
Titel: Re: DCC++ EX
Bericht door: Duikeend op 31 maart 2021, 23:36:45
ja en dan kun je vaak ook nog de verzendmethode kiezen.. tegenwoordig staat ie op meestal op ali standaard maar dat is niet altijd de goedkoopste..
Titel: Re: DCC++ EX
Bericht door: Hans1963 op 03 februari 2022, 19:26:21
DCC++EX begint volwassen te worden.  :)

de ontwikkeling heeft niet stil gestaan en er zijn fors wat mogelijkheden bijgekomen.
het aansturen van servo's met puntstuk polarisatie was nogal lastig maar is nu simpel mogelijk.

via de I2C bus op het motorshield kan o.a. een PCA9685 PWM board aangesloten worden met 16 servo uitgangen.
(meerdere boards zijn parallel hiernaast aan te sluiten)
relais voor puntstuk polarisatie kunnen rechtstreeks op een output pin worden aangesloten.
om deze gezamenlijk met één opdracht te besturen kan er nu een eenvoudig script geschreven worden in EX-rail, een geïmplementeerde instructietaal.

Ex-rail is bedoeld voor automatisering van de baan, er kunnen wisselstraten en routes samengesteld worden compleet met melders, seinen en andere acties.
https://dcc-ex.com/automation/EX-RAIL-intro.html

dit alles is zichtbaar in Enginedriver, een app voor Android op b.v. een tablet.
het rijden met een app besturing is nu dus behoorlijk geautomatiseerd.

De implementatie van de servo besturing is recent ook in RocRail doorgevoerd. Bij de wissel interface is een knop "Macro" bijgekomen, zodat de
SERVO_TURNOUT <T> opdracht correct wordt uitgevoerd. Alle accessoires zijn nu in Rocrail in te stellen en te bedienen.

Er is dus inmiddels bereikt dat met DCC++EX een kleine, goedkope centrale samengesteld kan worden die niet alleen de locs bestuurd, maar ook alle accessoires
en dat zonder verdere decoders of andere bus protocollen.  :) Dat maakt het leven van een modelspoorder toch een stuk plezieriger.  :D




(https://images.beneluxspoor.net/bnls/IMG-0293-61fc1deeeced9.jpg) (https://images.beneluxspoor.net/bnls/IMG-0293-61fc1deeeced9.jpg)

(https://images.beneluxspoor.net/bnls/Screenshot-1-61fc1df05ad78.jpg) (https://images.beneluxspoor.net/bnls/Screenshot-1-61fc1df05ad78.jpg)
Titel: Re: DCC++ EX
Bericht door: erikkral op 03 februari 2022, 22:19:28
Harstikke leuk, een DCC++ EX-topic.
Kortgeleden ben ik er zelf mee begonnen te knutselen. Heb er eerst maar een gemaakt voor m'n rollenbank met een Uno in plaats van een Mega. Werkt perfect met JMRI:
(https://images.beneluxspoor.net/bnls/IMG-2431-61fc45a8c2391.jpg) (https://images.beneluxspoor.net/bnls/IMG-2431-61fc45a8c2391.jpg)

Maakt het heel veel gemakkelijker om op het bureau waar m'n laptop staat de decoder te programmeren of het te testen.
Het lijkt me wel mooi om uiteindelijk mijn DR5000 onder de treinbaan te vervangen voor een DCC++ station. Moet ik nog wel even iets vinden voor mijn bedrade Multimaus. Ik kan er een draadloze Multimaus voor in de plaats kopen maar dan ben ik weer €120 verder. En dan schiet het hobbyen zijn doel voorbij.
Idem voor de Loconet-bezetmelders, die wil ik ook graag aanhouden.

Het is leuk om te zien dat er aardig wat mensen zo'n goede basis hebben neergezet, geheel vrijwillig. De aanloopkosten voor een nieuweling worden zo een stuk lager.
Titel: Re: DCC++ EX
Bericht door: bask185 op 04 februari 2022, 06:46:42
Ik heb voor een Uno nog een XpressNet shield over. Dan kan je bedrade multimausen gebruiken.

Weet wel dat in het geval van een Uno je geen seriële communicatie meer met je pc kan hebben. Dan zou je beter een Mega kunnen gebruiken. In theorie zou je ook Software Serial als Xnet interface kunnen gebruiken maar of dat goed gaat icm dcc++ durf ik je niet te vertellen.

Bas
Titel: Re: DCC++ EX
Bericht door: erikkral op 04 februari 2022, 11:04:54
Werkt die Xpressnet interface die jij in de aanbieding hebt straks ook op een Mega?
Titel: Re: DCC++ EX
Bericht door: bask185 op 04 februari 2022, 11:21:41
Moet ik even nagaan, maar voor ~€8,- 10m arbeid, en 2 weken levertijd kan ik zo een vijftal nieuwe bestellen
Titel: Re: DCC++ EX
Bericht door: Hans1963 op 12 maart 2022, 12:05:56
Nu DCC++ met versie 4 een volwaardige centrale is geworden, is het tijd om het experimenteerplankje
in te ruilen voor een nette behuizing.

alle componenten zijn in een bakje samengevoegd:
-op de bodem de centrale opgebouwd uit 3 Arduino bordjes;
-een PCA9685 voor servo aansluitingen via I2C verbonden met de centrale en pinnen voor de wissel polarisatie
-een MCP23017 als I/O bordje via I2C verbonden met de centrale voor 16 aansluitingen (witte draadjes)
-een step down converter voor de 5V voedingen
-24 I/O pinnen voor algemeen gebruik zoals sensoren en leds (groene draadjes)
-een wifi module voor draadloze verbinding (rechtsonder)

voor het aansluiten van de componenten zijn de pinnen vanuit de bordjes rondom naar buiten gebracht
het maakt het aan- en afkoppelen eenvoudiger.

De centrale kan vanuit Rocrail bestuurt worden of d.m.v. een tablet. (Enginedriver)
De snelheid sturing van een loc met een tablet is niet ideaal. Een schuifbalk vindt ik nogal lastig te bedienen, ik heb liever
een draaiknop in handen. Dit is op te lossen door een externe USB volume knop aan te sluiten op de tablet.
om het ding makkelijk vast te kunnen houden er een behuizing voor gemaakt.  :)

Het is een mooi compleet systeem geworden zo. ik ben er blij mee en heb er ook veel van geleerd.  ;)




(https://images.beneluxspoor.net/bnls/IMG-0357-622c7e61cc733.jpg) (https://images.beneluxspoor.net/bnls/IMG-0357-622c7e61cc733.jpg)

(https://images.beneluxspoor.net/bnls/IMG-0356-622c7e649a241.jpg) (https://images.beneluxspoor.net/bnls/IMG-0356-622c7e649a241.jpg)

(https://images.beneluxspoor.net/bnls/IMG-0298-622c7e68d0d17.jpg) (https://images.beneluxspoor.net/bnls/IMG-0298-622c7e68d0d17.jpg)

Titel: Re: DCC++ EX
Bericht door: bask185 op 12 maart 2022, 12:22:50
Normaliter is zoveel IO op 1 plaats onpraktisch, maar je kan er zo een mooi schakelapaneel mee fabrieken  :police:
Titel: Re: DCC++ EX
Bericht door: Ardin op 14 maart 2022, 13:43:41

Ik heb voor een Uno nog een XpressNet shield over. Dan kan je bedrade multimausen gebruiken

Bas

Ik zou graag een XpressNet L*nz LH100 handregelaar (equivalent met bedrade MultiMaus) aansluiten op mijn DCC++ teststation. Heb je wat meer informatie over dat Uno XpressNet Shield?
Bij voorbaad dank.

Ardin
Titel: Re: DCC++ EX
Bericht door: bask185 op 14 maart 2022, 14:29:36
Informatie over de interface en software vind je hier (https://pgahtow.de/w/XpressNetl)
De interface bestaat slechts uit een max485 chip en een rj12 connector. XpressNet werkt op een UNO/NANO, maar dat gaat ten kosten van je seriele interface. Misschien dat het ook werkt met software serial, dat heb ik nog niet geprobeerd.

Ik heb inmiddels een nieuw shield gemaakt voor een arduino nano. Met wat dupont kabels kan je die ook makkelijk aansluiten op je dcc++ station. Voor zowel het nano als uno shield heb ik nog gerber files waarmee je zelf kunt bestellen.

Mvg,

Bas
Titel: Re: DCC++ EX
Bericht door: Ardin op 14 maart 2022, 18:08:11
Bedankt Bas voor de snelle reactie.

Ik zal in eerste instantie de enkele componenten op een 'broodplankje' monteren. D1, C2 en JP1 lijken me niet direct van toepassing, dus die kunnen weggelaten worden, juist?

Bij de .ino bestanden is ook een Sketch voor een XpressNet sniffer en dat lijkt me een goede kandidaat om mee te beginnen wat ervaring opdoen met de schakeling en de software.

Jammer dat het alleen schijnt te werken op de MEGA volgens de info in de XpressNet_Sniffer.ino Sketch. Dit is vanwege de Tx en Rx pinnen op de UNO neem ik aan omdat deze ook gebruikt worden voor de communicatie met de USB interface om de XpressNet pakketjes te sturen naar de serial monitor.

M.v.g,
Ardin
Titel: Re: DCC++ EX
Bericht door: bask185 op 14 maart 2022, 19:34:12
Citaat
Dit is vanwege de Tx en Rx pinnen op de UNO neem ik aan omdat deze ook gebruikt worden voor de communicatie met de USB interface om de XpressNet pakketjes te sturen naar de serial monitor.
Ja dat klopt. Deze XpressNet library werkt ook direct met het seriele interrupt. Zodra je ook maar ergens Serial. tikt, krijg je al een compilerfout omdat je conflicterende interrupts hebt.

Ik had het zelfs een keer toen ik de SD library wilde gebruiken. Ik moest helemaal in die library opzoek naar 3 'stray' Serial.prints die er om een of andere duistere reden stonden  ::)

Wat ik zelf veel gedaan heb om foutjes op te sporen met XpressNet, was gebruik te maken van leds en ook het EEPROM geheugen. Als ik dan dit deed in XpressNet.h
#define DEBUG

#ifndef DEBUG
...
#endif
 
Zo kon ik de library uitzetten waardoor ik de inhoudt van mijn eeprom kon dumpen op het scherm. Als debug dan 'uit' stond, deed ik met de XpressNet functie data loggen in de eeprom.

Ik heb zelfs een 8 voudig relaiskaart gebruikt, om binair getallen af te lezen. Je kan eventueel nog software serial gebruiken via een 2e board om zo toch nog data live op de monitor te krijgen.

Soms moet je creatief zijn ;)

Mvg,

Bas
Titel: Re: DCC++ EX
Bericht door: erikkral op 14 maart 2022, 20:34:47
Hi Bas,

Even voor mijn begrip: heeft DCC++ EX kant-en-klare ondersteuning voor een Xpressnet handregelaar?
Ik heb mijn Arduino Mega inmiddels in bestelling staan. Dus hoor het graag…..
Titel: Re: DCC++ EX
Bericht door: bask185 op 14 maart 2022, 21:16:37
Citaat
Even voor mijn begrip: heeft DCC++ EX kant-en-klare ondersteuning voor een Xpressnet handregelaar?
Ik heb geen idee, heb nog nooit met DCC++ gewerkt  :o, moet ik opzoeken.

1 minuut later..

Ik zie het er niet tussen staan  :-\ https://dcc-ex.com/ (https://dcc-ex.com/) Het is waarschijnlijk niet al te moeilijk om het er in te knutselen. Maar waarschijnlijk heb je wel een arduino mega nodig. Ik vermoed dat de DCC++ genoeg doet met zijn seriele port waardoor een uno geen Xnet meer zou kunnen (of software serial moet werken).

Bas
Titel: Re: DCC++ EX
Bericht door: erikkral op 15 maart 2022, 20:55:42
Hmm, hoe makkelijk iets is, is natuurlijk wel afhankelijk van je kennis die je al hebt met programmeren.
Ik lees op de Discord van DCC++ EX het volgende:

Citaat
XpressNet is physical RS485. So you first need a RS485 to RS232 interface and then you need to write a XpressNet parser (alike the parsers for DCC++ and WiThrottle). Or you decide to support it over TCP/IP which means you need to set up the WiFi to receive UDP packets and then parse the UDP packet contents which probably is alike what comes in over RS485.

Dat heeft iemand al een keer gedaan, kwam later voorbij...

Citaat
Looks like pgahtow has succeeded to use the UART of serial1 of an arduino mega and a MAX485CPA IC to do RS485. However we can not take his code and publish it as part of DCC-EX because it does not have a license. I do not own any Xpressnet equipment so I can not test if one can at the same time run  https://github.com/Digital-MoBa/XpressNetMaster as a library and DCCEX on an Arduino Mega. If it is not too interrupt intensive it might be possible. I find it strange to "release"  something but not put a license on it.

Kortom, er zitten wat haken en ogen aan. Met de hardware alleen zijn we er nog niet...
Titel: Re: DCC++ EX
Bericht door: bask185 op 15 maart 2022, 22:15:09
Die beste Duitser Phillip heeft een een redelijke library gemaakt. https://pgahtow.de/w/XpressNet (https://pgahtow.de/w/XpressNet), kan je zo downloaden.

Die library heeft zgn. call-back functions. Deze functies worden vanuit de library aangeroepen mits ze bestaan in je .ino bestand.

extern void notifyXNetLocoDrive128(uint16_t Address, uint8_t Speed) __attribute__((weak));
extern void notifyXNetgiveLocoFunc(uint8_t UserOps, uint16_t Address) __attribute__((weak));
extern void notifyXNetLocoFunc1(uint16_t Address, uint8_t Func1) __attribute__((weak));//Gruppe1 0 0 0 F0 F4 F3 F2 F1
extern void notifyXNetLocoFunc2(uint16_t Address, uint8_t Func2) __attribute__((weak));//Gruppe2 0000 F8 F7 F6 F5
extern void notifyXNetLocoFunc3(uint16_t Address, uint8_t Func3) __attribute__((weak));//Gruppe3 0000 F12 F11 F10 F9
extern void notifyXNetLocoFunc4(uint16_t Address, uint8_t Func4) __attribute__((weak));//Gruppe4 F20-F13
extern void notifyXNetLocoFunc5(uint16_t Address, uint8_t Func5) __attribute__((weak));//Gruppe5 F28-F21

Die XpressNet library hoef je alleen 1x in setup te initialiseren en verder moet je de update functie aanblijven roepen.
Dan kan je ergens in je code, die call back functies maken die je dan vult naar believen.

Bijvoorbeeld, ik gebruik een multimaus om rosedale abbey aan te sturen. Ik gebruik daarvoor een pwm 'centrale'. Mijn input krijg ik van de multimaus.

void notifyXNetLocoDrive28( uint16_t Address, uint8_t Speed )
{
    setPoint = lookUpSpeed( Speed & 0b00011111 ) ;
    setPoint = map( setPoint, 0, 28, 0, SPEED_MAX ) ;           // map 28 speedsteps to 100 for weistra control
    if( Speed & 0x80 ) setPoint = -setPoint ;
}
De library roept deze functie aan en stuurt het aangestuurde adres en snelheid op. Ik zet dat om naar een setpoint en elders gebruik ik de setpoint om mijn pwm regelaar aan te sturen (met optrek en rem vertraging natuurlijk  :police: )

Ik weet niet hoe die DCC syntax er uit ziet om een trein aan te sturen, maar precies dat kan je in deze functies zetten.

Mvg,

Bas

Titel: Re: DCC++ EX
Bericht door: AlbertG op 16 maart 2022, 07:51:09
Als alternatief kun je een Roco Wlanmaus kopen en als centrale opnemen in Rocrail.
https://wiki.rocrail.net/doku.php?id=roco:roco-wmz21-en (https://wiki.rocrail.net/doku.php?id=roco:roco-wmz21-en)

Werkt samen met elke andere centrale waar je je baan mee bestuurt, dus ook DCC-EX
Titel: Re: DCC++ EX
Bericht door: bask185 op 17 maart 2022, 10:21:37
Ik heb zojuist in de ochtend pauze schema en printje in elkaar geflanst.
(https://images.beneluxspoor.net/bnls/deleteme3-6232fb1f936a5.png) (https://images.beneluxspoor.net/bnls/deleteme3-6232fb1f936a5.png)

(https://images.beneluxspoor.net/bnls/deleteme2-6232fb1f79b14.png) (https://images.beneluxspoor.net/bnls/deleteme2-6232fb1f79b14.png)

Het idee is dat je aan de 'voorzijde' voedinsspanning van je trafo kan aansluiten en de jumpers naar de arduino toe.
(https://images.beneluxspoor.net/bnls/deleteme1-6232fb1f78fca.png) (https://images.beneluxspoor.net/bnls/deleteme1-6232fb1f78fca.png)

En de 'achterzijde' is bedoeld voor verticale RJ12 connectoren. Zo kan je een rechthoekig gat maken in een kast en dan die print plat monteren aan de binnen zijde. De RJ12 connectoren steken dan door het hout (of.. ) van je kast.

(https://images.beneluxspoor.net/bnls/deleteme1-6232fb8428038.png) (https://images.beneluxspoor.net/bnls/deleteme1-6232fb8428038.png)

Maar goed, plaatjes zeggen meer dan woorden:
(https://images.beneluxspoor.net/bnls/deleteme1-6232fd0347c31.png) (https://images.beneluxspoor.net/bnls/deleteme1-6232fd0347c31.png)

Volgende pauze ga ik hem netjes maken  ;)

Mvg,

Bas