Doel:€250.00
Donaties:€80.00

Per saldo:€-170.00

Steun ons nu!

Laatst bijgewerkt
op 09-12-2018
Algemeen

De stichting

Recente berichten

Schaal 0, HSM Buikje in messing door FritsT
Vandaag om 15:39:25
Mijn eerste H0 modeltreinbaan in aanbouw door Wim Vink
Vandaag om 15:17:10
Stroomloos maken stuk spoor bij DCC? door NS1220
Vandaag om 15:14:50
Tussendoortje: Roco en Mastica zelfbouw klompentrein door nighttrain1
Vandaag om 14:54:04
Aansluitklemmen Fleischmann Profi storen vaak door borotof
Vandaag om 14:50:53
Ombouw/Pimpen Bolle neuzen door bollen neus
Vandaag om 14:49:39
NS 2801 van MK modelbouwstudio door Floris Dilz
Vandaag om 14:39:08
Old England door St00mboy
Vandaag om 14:34:44
El carrilet door 72sonett
Vandaag om 14:11:32
Langstraatspoorlijn modulebaan door Robkop
Vandaag om 13:26:52
Welgelegen: NS tijdperk III/IV in H0 door Johan Keuterink
Vandaag om 12:58:15
Roco 1600 door ZwolsBas
Vandaag om 12:31:54
Silencer nieuw baanplan HO - met 9 jaar vertraging... door Wim Hesselink
Vandaag om 12:19:53
Zet in je agenda: zaterdag 30 maart Beneluxspoordag 2019 Nieuw-Vennep... door Bert van Gelder
Vandaag om 11:55:33
Foto's Houten Digitaal 2018 door Kees Hoeks
Vandaag om 11:42:34
Nieuwe bome, verse nieuwe bome!!! door grove den
Vandaag om 10:49:19
Update: baan in de tropen door Hans Grasmaijer
Vandaag om 10:24:40
Iets kleins in 00 door Ronald Halma
Vandaag om 10:00:02
  

Auteur Topic: DCC++ centrale en arduino: ervaringen?  (gelezen 5844 keer)

GP20

  • Offline Offline
  • Berichten: 39
DCC++ centrale en arduino: ervaringen?
« Gepost op: 02 oktober 2018, 23:57:06 »
Hallo,

Na een aantal jaren en de verkoop van al mijn modeltreinspullen ben ik voorzichtig aan het herstarten.
Ik kan over een paar jaar pas beginnen, er komt dan een kamer vrij in huis, met het daadwerkelijk bouwen van een layout maar voor nu is het maken van een DCC++ base station en een draadloze throttle de invulling van de hobby. Ik heb nu 2x flexrail, een EMD GP20 en 2 wagons als materieel, schaal H0.
Ik moet zeggen dat ik er nu al veel lol aan beleef, ik pas de code voor de throttle aan en probeer die helemaal te doorgronden.

Zijn hier meer mensen op het forum die zich bezighouden met DCC++ en het programmeren met Arduino?

Dit is voorlopig mijn "layout".


mvg,

Leo
« Laatst bewerkt op: 03 oktober 2018, 12:44:11 door Reinout van Rees »
mvg, Leo

bask185

  • Offline Offline
  • Berichten: 77
Re: DCC commando
« Reactie #1 Gepost op: 03 oktober 2018, 08:47:26 »
Precies dit wil ik ook nog gaan doen. Aanvullend wil ik de Arduino ook gebruiken om Servo's aan te sturen voor wissels. Dan maak ik een paneel met mn opstelsporen met knoppen er in, en dan kan ik een spoor selecteren en worden de wissels geschakeld. Ik had ontdekt dat je met een decade counter 10 servo's met 1 I/O kan aansturen. http://rcarduino.blogspot.com/2012/08/arduino-serial-servos.html Of je koopt een aparte DCC servo module, hoef je het niet zelf te doen  ;)

Wat misschien wel beter is, is om een encoder te gebruiken ipv een potmeter. Vroegah kon je met een marklin control unit 6021 een adres in tikken dan moest je een paar seconde wachten en pas daarna kon je je loc bedienen. Deze unit had dan ook een 120 graden knop. En dat was nodig om te voorkomen dat de loc meteen zou reageren op de huidige stand van de knop. Dan had je eerst tijd om een snelheid te kiezen.

Als je een encoder gebruikt, kan je na het adres invoeren meteen aan de knop zitten om de snelheid aan te passen. Deze encoders kan je vaak ook indrukken en gebruiken voor een noodstop of de lichten of een toeter of een telex koppeling .... of wat jij programmeert. Ook om door menuutjes op je LCD scherm te scrollen en getallen in te voeren of de cursor verplaatsen etc, is een encoder erg handig. https://hackerstore.nl/Artikel/609

Maaarrrrr aan de andere kant. Als je wel een potmeter gebruikt, kan je een mooie wijzer knop er op zetten en dan kan je het zo doen dat knop links -> trein naar achter   en knop rechts -> trein naar voren. Maar het is net wat je wilt doen.

Ik weet dat je met zo'n toetsenmatrix best wel wat I/O nodig heb. Daar kan je een I2C I/O expander voor gebruiken, maaarrr... Je kan hem ook analoog inlezen. Door weerstandjes in de kolommen en rijen te plaatsen, kan je door je waardes slim te kiezen, elke knop een andere spanning laten afgeven. https://www.youtube.com/watch?v=N39EXI_F8uA. Werkt als een zonnetje.

Zoals je weet hangen veel mensen hun DCC ding aan een computer en dan kan je rijden met je computer en die computer kan dan je hele bloksysteem regelen. Natuurlijk kan je met een arduino ook dat allemaal zelf doen. Ik heb dit nooit uitgedacht, maar je kan dmv schakelrails, IR lichtsluisjes en diodes + weerstanden + condenstators (weerstandsdeling voor spanning onder de 5V, diode om enkelzijdig gelijk te richten en condensator om het een beetje af te vlakken) de treindetectie realiseren. Je moet alleen handmatig invullen waar welke trein is op het moment van inschakelen. Bij het wisselen van baanvlak van een trein, zou je een eeprom oid kunnen gebruiken om continu in je geheugen vast te leggen waar welke trein is, hoe hard deze trein rijdt en welke functies er geschakeld zijn (en ook hoe de wissels stonden ;) ). Ik zelf rij nog steeds met relaisschakelingen, maar als ik ooit baanvlakken zou willen.... dan of arduino of Rpi.

Ik kon niet goed zien wat voor H brug shield ding je hebt. Maar je moet ongeveer 1A~1.5A per trein rekenen. Je kan H-bruggen parallel zetten en er is ook ergens een 43A H brug op de markt. https://hackerstore.nl/Artikel/1144  of als je baanvlakken heb, gebruik je deze https://hackerstore.nl/Artikel/816 per baanvlak. Reden dat je een H-brug per baanvlak wilt hebben is dat je dan tevens ook current sensing beschikbaar heb op de H brug.

En als je slim bent en je programmeert je arduinootje een beetje proper, dan kan je ook analoge treinen op je baan zetten. Je arduino moet natuurlijk weten dat de trein in kwestie analoog is, maar arduino kan dan ipv DCC signalen op een baanvlak, een PWM signaal op het baanvlak zetten en een analoog treintje aansturen. Maar dat is allemaal optioneel ;) zo doen ze het wel bij mij op de club.

Maar 1 ding wat zeker is.  Zelfbouw arduino > Uhlenbrock > CS3 > elke andere digitale trein controller

GP20

  • Offline Offline
  • Berichten: 39
Re: DCC commando
« Reactie #2 Gepost op: 03 oktober 2018, 09:53:49 »
Bedankt voor je enthousiaste reactie  ;)!

Wat je op de foto ziet is eigenlijk wel wat ik heb op het moment dus ik kan nog alle kanten op.
Ik heb voor een potmeter gekozen vanwege de absolute stand en dus idd een pijltje op de (toekomstige) knop om te zien hoe het spul staat ingesteld.

Met de * toets kun je het locadres instellen en met de # toets kun je de loc selecteren, max 4 locs in te stellen.

De volgende stap is om een bediening voor een wissel of 10-15 te maken, ook met Arduino dus ik ga je links zeker doornemen!

Verder wil ik een branch line maken met een graansilo en een loods/brouwerij dus baanvakken, detectie, seinen etc allemaal niet van toepassing.
Gewoon lekker rondtuffen met snelheid 15-25 met een paar wagons (3-5) erachter en rangeren bij de silo en de loods/brouwerij.
Het wordt een end to end layout met dus silo en loods/brouwerij en staging naar zogenaamd de main track.
Er komen 2 throttles uiteindelijk dus max. 2 locos in beweging.

Ook moet er nog een oplossing komen voor een keerdriehoek, deze zal zonder kortsluiting moeten werken ivm digitaal en omdat ik sowieso geen kortsluiting wil ivm slijtage van rails en wielen en misschien wel elektronica.

Er zit nog 1 bekende bug in de software, niet desastreus maar wel hinderlijk, die er hopelijk nog uit geprogrammeerd kan worden.
Als ik een functie kies dan hoor je de luchthorn. Als je de luchthorn kiest en die tijdens het geluid weer uitzet dan kun je andere functies kiezen zonder dat je de luchthorn hoort. Ik heb nog geen idee hoe dat komt, het keypad gedeelte van de code heb ik nog niet echt goed bekeken.

Tot nu toe heb ik een instelbare dead band gemaakt (potmeter was wel heel gevoelig tussen voor- en achteruit) een instelbare topsnelheid met gebruik van de hele potmeterslag en een noodstopfunctie.

Er moeten nog in:
zender voor draadloze communicatie naar het DCC++ station. (HC-12 modules, aliexpress)
batterij (aliexpress)
kast (er omheen) (zelf uit triplex maken, 3D printen is zo duur)

Ik dacht zelf aan een shift register (misschien is dat wel een decade counter, ben geen elektronicus) om de wissels aan te sturen. Dan schrijf je iedere keer het register vol hoe je het spul wilt hebben staan en dan schiet je ineens de stand aan alle wissels door. Ik denk nu aan het het gebruik van modelbouw servos om de wissels te bedienen. Maar ik heb nog niets met shift registers gedaan anders dan er een paar te bestellen om te testen. Ik vermoed dat dit een beetje hetzelfde is als wat jij voorstelde.

Ik denk dat ik een loop schrijf in de "wisselarduino" die in de gaten houdt of er een knop ingedrukt wordt en zo ja dan in een aparte functie het register volschrijft en dan laat aansturen. Maar dat moet ik allemaal nog uitzoeken.






mvg, Leo

72sonett

  • Team encyclopedie
  • Offline Offline
  • Berichten: 1177
    • El Carrilet
Re: DCC commando
« Reactie #3 Gepost op: 03 oktober 2018, 10:42:51 »
Zijn hier meer mensen op het forum die zich bezighouden met DCC++ en het programmeren met Arduino?
Ja, ik ben ook begonnen met DCC++ op een Arduino met motorcontroller te zetten en de programma's Decoderpro en Panelpro van JMRI op een laptop. Dat ging allemaal goed, maar veel verder ben ik nog niet gekomen. De programma's  hiervoor bestaan allemaal al, dat wiel hoef je niet meer uit te vinden.

Mijn 'probleem' is dat ik al vanaf de jaren '80 bezig ben met mijn eigen systeem en om dat nu allemaal aan de kant te zetten vind ik een grote stap, maar ik zit nu wel met een naar huidige normen achterhaald systeem. Noem het maar de wet van remmende voorsprong...

Ik heb overigens ook nog geen locs met decoder om het uit te proberen, binnenkort maar eens een goedkope decoder ergens inbouwen.
« Laatst bewerkt op: 03 oktober 2018, 13:26:48 door 72sonett »
El Carrilet

Not sent from my Pocketline Swing 380, Xperia Z2, iPhone, C5503, ALE-L21 or SM-G900F using Tapatalk.

MH

GP20

  • Offline Offline
  • Berichten: 39
Re: DCC commando
« Reactie #4 Gepost op: 03 oktober 2018, 12:23:58 »
Hoi,

Ja dat is waar maar ik heb graag een zo'n eenvoudig mogelijke regelaar die een beetje naar mijn zin gemaakt is en waarmee ik kan lopen tussen de baan op de kamer en de staging op de overloop van de zolder.
Het is fijner om naar de baan te kijken en dan aan een knop te draaien dan op een scherm een slider te moeten bewegen die het niet doet als de cursor niet precies op de juiste plek op het scherm staat. Dat is nu al lastig op een flexrail die naast me ligt.

JMRI is geprobeerd, is een erg mooi pakket maar een overkill voor mijn wensen en er is vast een externe controller te gebruiken of te maken maar niet voor mij.

Decoder wordt hier geprogrammeerd met controller 1.1.0 dat via processing loopt. (hoe het werkt is me onbekend maar ik kan het gebruiken)
EDIT: Controller kan ook de decoder values uitlezen.
In de layoutkamer komt geen PC of laptop, dit scheelt veel ruimte en vooral een hoop geld. Het programmeren gebeurt dan bij de huis pc op een testbaantje/flexrail.

(Ik gebruik overigens een Deek-robot motorshield, was volgens mij een vraag van bask185)

Dit is mijn eerste digitale loc en ik zou niet meer anders willen. Het geluid (motor, bell en horn) vind ik ook erg leuk maar dat bepaalt ieder voor zich natuurlijk.

Dit zijn de uitgangspunten geweest bij het maken van de throttle:
http://trainelectronics.com/DCC_Arduino/DCC++/Throttle/#Rotary_Encoder_in_place_of_Potentiometer
https://www.youtube.com/watch?v=SCenXWQqbtU
Dave Bodnar is heel benaderbaar en reageert ook op mails.

De DCC++ code is ongewijzigd en er zijn geen plannen om deze te wijzigen.

« Laatst bewerkt op: 03 oktober 2018, 13:35:08 door GP20 »
mvg, Leo

bask185

  • Offline Offline
  • Berichten: 77
Re: DCC commando
« Reactie #5 Gepost op: 03 oktober 2018, 13:26:03 »
Hoi,

... draaien dan op een scherm een slider te moeten bewegen die het niet doet als de cursor niet precies op de juiste plek op het scherm staat.

Dit is de samenvatting van een M* CS 2. Touch screen pakte nooit bij een noodstop...

...1.1.0 dat via processing loopt. (hoe het werkt is me onbekend maar ik kan het gebruiken)
Decoder kan ook de decoder values uitlezen.

Processing is leuk. Als je arduino kan, kan je ook processing. Als je eenmaal de classes snapt, super fijn programma.

Dit is mijn eerste digitale loc en ik zou niet meer anders willen. Het geluid (motor, bell en horn) vind ik ook erg leuk maar dat bepaalt ieder voor zich natuurlijk.
Ik herinner mijn eerste loc met sound, M* 37460  :angel: Ik had ontdekt als je 3 locs met geluid heb, je er niet meer wilt. Erg veel herrie. Toen ik traxxen ging kopen ging mijn voorkeur uit naar kwantiteit boven kwaliteit. Traxx kost rond de €100,- en ik heb er nu iets van 20.


Dit zijn de uitgangspunten geweest bij het maken van de throttle:
http://trainelectronics.com/DCC_Arduino/DCC++/Throttle/#Rotary_Encoder_in_place_of_Potentiometer
https://www.youtube.com/watch?v=SCenXWQqbtU
Dave Bodnar is heel benaderbaar en reageert ook op mails.

De DCC++ code is ongewijzigd en er zijn geen plannen om deze te wijzigen.

Ziet er wel leuk uit. Je hebt als alternatief voor je keypad: https://hackerstore.nl/Artikel/515 Deze is gevoeliger dan de membraan versie en je kan hem uitlezen over de I2C bus. Mijn arduino wekker heeft ook een membraan keypad en ik vind het net ff te onpraktisch. Ik moet de hele wekker vastpakken anders duw ik hem weg. Maar als je je controller al vast heb, maakte het weinig uit.

Als je je handcontroller ontwerpt, let dan heel erg goed op de layout en de praktische werking. En ga echt de werking na in je hoofd. Zorg er voor dat je makkelijk van trein kan wisselen en 1 hand besturing is ook erg fijn. Ik weet nog dat ik een M* MS1 een kwartslag moest draaien dan kon ik hem precies goed met mn duim bedienen  (y). Iets wat roco wel redelijk goed heeft gedaan https://www.youtube.com/watch?v=5PFe1sxSjTg

72sonett

  • Team encyclopedie
  • Offline Offline
  • Berichten: 1177
    • El Carrilet
Re: DCC commando
« Reactie #6 Gepost op: 03 oktober 2018, 14:25:35 »
... een zo'n eenvoudig mogelijke regelaar die een beetje naar mijn zin gemaakt is en waarmee ik kan lopen tussen de baan op de kamer en ...
JMRI heeft een 'Engine Driver' app op een mobiele telefoon, draadloos, via wifi, ook voor iphone.
« Laatst bewerkt op: 03 oktober 2018, 17:06:24 door 72sonett »
El Carrilet

Not sent from my Pocketline Swing 380, Xperia Z2, iPhone, C5503, ALE-L21 or SM-G900F using Tapatalk.

MH

bask185

  • Offline Offline
  • Berichten: 77
Re: DCC++ centrale en arduino: ervaringen?
« Reactie #7 Gepost op: 03 oktober 2018, 15:12:58 »
Random Smartphone valt niet onder het kopje: "Naar mijn zin gemaakt"  :police:

GP20

  • Offline Offline
  • Berichten: 39
Re: DCC++ centrale en arduino: ervaringen?
« Reactie #8 Gepost op: 03 oktober 2018, 15:35:19 »
Random Smartphone valt niet onder het kopje: "Naar mijn zin gemaakt"  :police:
Dat is belangrijkste reden, bovendien heb ik een iPhone. (Dat is met dit soort zaken vaak een nadeel) Ow, niet goed gelezen, staat ook voor iPhone :)!
« Laatst bewerkt op: 03 oktober 2018, 17:14:59 door GP20 »
mvg, Leo

dimo1_dimo1

  • Offline Offline
  • Berichten: 3188
Re: DCC++ centrale en arduino: ervaringen?
« Reactie #9 Gepost op: 03 oktober 2018, 20:22:14 »
Ooit heb ik een Arduino library gemaakt en ben ik zelf een aansturing gaan maken. Draadloos moet het zijn en heb toen dit gemaakt:
https://youtu.be/QuUVnX9iCq8
https://youtu.be/2jR-PLJi_-A
https://youtu.be/UV_wnTEDIMw

Gemaakt op basis van twee Arduino pro mini's met communicatie via een stel nrf24 nog iets 2,4Ghz module voor draadloos communiceren. Verder een Rotary encoder voor de bediening, een 1,8 inch kleuren display voor weergave en een accu met omvormer en laad circuit. Helaas nooit helemaal afgemaakt, maar het heeft wel gewerkt.
groeten,
Auke

GP20

  • Offline Offline
  • Berichten: 39
Re: DCC++ centrale en arduino: ervaringen?
« Reactie #10 Gepost op: 04 oktober 2018, 00:06:01 »
Ziet er mooi uit.

Ik bedacht vanavond nog een functie die ik graag zou willen toevoegen t.w. een drukknop die de snelheid direct naar nul brengt als ik bij het rangeren op het juiste punt ben beland met de loc, dan heb ik ook niet het risico dat ik per ongeluk de andere kant op draai. Daarvoor alleen al zou een encoder ook makkelijker zijn wat betreft de code en ik wil ook geen gedonder met denderen (haha) met de weerstand.
mvg, Leo

bask185

  • Offline Offline
  • Berichten: 77
Re: DCC++ centrale en arduino: ervaringen?
« Reactie #11 Gepost op: 04 oktober 2018, 08:50:05 »
Ooit heb ik een Arduino library gemaakt en ben ik zelf een aansturing gaan maken. Draadloos moet het zijn en heb toen dit gemaakt:
https://youtu.be/QuUVnX9iCq8
https://youtu.be/2jR-PLJi_-A
https://youtu.be/UV_wnTEDIMw

Gemaakt op basis van twee Arduino pro mini's met communicatie via een stel nrf24 nog iets 2,4Ghz module voor draadloos communiceren. Verder een Rotary encoder voor de bediening, een 1,8 inch kleuren display voor weergave en een accu met omvormer en laad circuit. Helaas nooit helemaal afgemaakt, maar het heeft wel gewerkt.

Ziet er leuk uit. Je moet naar mijn mening wel veel halen met je vinger doen om een trein op volle snelheid te krijgen, zelfs met hoge snelheid is het nog 6 haaltjes. Dat is ook #1 reden waarom ik anti CS-2 ben geworden. Maar da's ook maar een fine-tuning ding. Je hebt wel een mooi scherm gekozen. Ik zit dit wel eens uitgevoerd met een 16x2 LCD scherm, maar dat vind ik dan net niks.

Het leek me ook wel interessant om een soort afneembaar of remote display te nemen. Display heb je eigenlijk voornamelijk nodig om CV's in te stellen en nieuwe locs in te voeren. Maar buiten dat om hoef je alleen maar het loc adres te kunnen zien, geschakelde functies kan je met led knoppen aantonen.

Het lijkt mij echt leuk om dan een rangeerterrein te automatiseren, en om locs automatisch naar de andere kant van de trein de laten rijden over een terugloop spoor.  (y)

dimo1_dimo1

  • Offline Offline
  • Berichten: 3188
Re: DCC++ centrale en arduino: ervaringen?
« Reactie #12 Gepost op: 04 oktober 2018, 09:39:40 »
Omdat je dingen zelf programmeert kan je natuurlijk ervoor zorgen dat een langere draai grotere stappen gaat maken en zo er dus voor zorgen dat je met één draai naar volle snelheid kunt gaan.
groeten,
Auke

Hans K

  • Offline Offline
  • Berichten: 6
Re: DCC++ centrale en arduino: ervaringen?
« Reactie #13 Gepost op: 04 oktober 2018, 12:00:19 »

Beste Bask 185,

Zijn hier meer mensen op het forum die zich bezighouden met DCC++ en het programmeren met Arduino?

Ik hed je reactie met veel intresse gelezen en was blij verrast met de de link naar de motorcontroller.

Deze controller heb ik overgehouden uit een ander project, maar krijg deze in DCC++ niet goed aan de gang.

Heb jij mogelijk een schema ervan hoe de Arduino aan de controller is veronden?

Alvast bedankt.

bask185

  • Offline Offline
  • Berichten: 77
Re: DCC++ centrale en arduino: ervaringen?
« Reactie #14 Gepost op: 04 oktober 2018, 12:26:08 »
Deze site legt een hele boel uit: http://www.trainelectronics.com/DCC_Arduino/controller.htm Hier gebruikt hij een andere H brug IC, werking is wel hetzelfde.

Op deze site wordt er die 43A versie gebruikt: http://www.trainelectronics.com/DCC_Arduino/DCC++/index.htm

Hij gebruikt een iets andere IC maar de werking is het zelfde. Het helpt ook als je snapt hoe het DCC protocol er elektrisch gezien uitziet, dan snap je namelijk hoe je je H-brug moet aansturen. Gelukkig hebben we ook nog DCC wiki: https://dccwiki.com/Introduction_to_DCC#Electrically.2C_How_Does_DCC_Work.3F

De samenvatting: de spanning tussen linker en rechter rail wisselt tussen 0 en +18V. Als de linker rail 0V is dan is de rechter rail 18V. En als links 18V wordt, dan wordt rechts 0V. Als je dit gaat doen met een H-brug dan zet je op Vin 18V voor de spanning. De rails sluit je op 1 van de 2 motor uitgangen aan (een H-brug kan typisch 2 motoren aansturen, maar we gebruiken er dus 1). Op het pwm signaal zet je een logische '1' (dus geen pwm signaal) van je arduino. Dan gaat een rail op 0 volt en de andere rail op 18V. Door de direction pin hoog te maken, wordt de polariteit (blijft wel tussen 0 en +18v, dus niet -18V zoals bij M*) gewisseld. Dan wordt de ene rail 18V en de andere 0V.

Door met de juiste intervallen deze motor direction pin van staat te wisselen, kan je dus de digitale signalen op de baan zetten. Een lange tijd is een '0' en een korte tijd is een '1'.

Als je meer 'sap' nodig heb (je H brug wordt te heet), kan je meerdere H-bruggen parallel zetten. Of je gebuikt de 43A H brug. Er moet ook een current sense pin op de H brug zitten. Deze moet je gebruiken om kortsluiting of overbelasting te detecteren.

toevoeging: als je kortsluiting heb, zet dan een logische '0'  op de pwm pin op de H-brug, dan staat 0V op beide rails
« Laatst bewerkt op: 04 oktober 2018, 12:28:47 door bask185 »