Geklooi met ArduinoIk loop al een tijdje met het idee van een seintableau te ontwerpen en te maken. In het Duits ook wel Stellpult (Zoek termen op google: Stellpult / TCO / Seintableau) genoemd. Is dat niet ouderwets? Uhm... ja. Het heeft wel wat. Het simpele knopje drukken en dat een wissel of wisselstraat omgaat. Nu kan dat voor de neefjes en nichtjes ook gemakkelijker zijn om te spelen met de baan. Analoog is dat niets nieuws. Veel draadjes naar een centraal punt.
Het ideeDan maar eens kijken naar de digitale weg. De oplossing mag dan communiceren met XpressNet. Dit omdat ik vooral met de witte z21, de Lenz-centrale en de Multimaus aan het rijden ben. Op basis van de oude 6043 Memory-systemen van Märklin had Arnold vroeger een XpressNet-oplossing,
Arnold artikel 86220. Deze heb ik ook staan. Dan kan je de wissels met knopjes bedienen. Niet echt een schakelbord. Het probleem met deze oplossing is trouwens de terugmelding op de latere XpressNet-bus. Het apparaat reageert niet op schakelopdracht vanaf de Multimaus die aan de z21 zit. De oude Roco RouteNet oplossing is ook nog wel sporadisch te vinden. Wil je zelf een tableau manken dan zijn er nog wat kant en klare oplossingen en hobbyoplossingen te vinden:
- Paco's Official Web Site XbusTCO. Daarmee kan je dan een schakelbord met knopjes en ledjes fabriceren.
- De firma Lenz heeft de LW150 uitgebracht. Een module voor XpressNet waarmee je een eigen schakeltableau met knoppen en ledjes maken. Dat is dan zonder veel poeha eigenlijk. Mooi ding maar relatief duur.
- Het Nederlands bedrijf Etecmo heeft de XpressNet Switch Unit op de markt gebracht. Hetzelfde idee als de Lenz unit. Alleen iets simpeler.
- Arduino oplossingen. Zelfbouw. Daardoor erg flexibel. Op het internet zijn veel oplossingen te vinden die een schakeltableau maken voor XpressNet en LocoNet. Het is vaak uitgelegd ook met filmpjes en code e.d.
Gezien de prijs van de Arduino oplossing ten opzichte van bijvoorbeeld de Lenz LW150 wordt het dan interessanter om het zelf te gaan bouwen / programmeren. Dan kan het nog meer naar mijn eigen zin gemaakt worden. Laten we beginnen
TestopstellingIk heb eerst een testopstelling gemaakt. Een bakje om de boel makkelijk mee te nemen en op te bergen. Op de ene bak heb ik een DR4018 en een servodecoder samen met wat ledjes en een servo geplaatst.
Poggendam-2021-032Op de andere bak heb ik de Arduino Mega met een aantal knoppen en ledjes geplaatst. Een multimaus met een 10764 versterker dient als digitale centrale.
Poggendam-2021-033Nu dat gereed is kan ik wat prutsen met knopjes, ledjes en een Arduino mega.
Wat hebben we nodig? Oftewel het boodschappenlijstjeWe hebben niet veel nodig. Een paar onderdelen die via de plaatselijke elektronicaboer te krijgen zijn. Natuurlijk ook via Ebay en Ali-Express. Meestal mag je dan een tijdje wachten voordat je het spul ontvangt. Dit spul had ik nog liggen. De rest mag via Alibaba en de 40 rovers komen. Heb geen haast ermee. ;D
- Drukknopjes of schakelaars. Ik kies voor drukknopjes. Lekker simpel
- Ledjes in een aantal kleuren
- Ledhouders voor in het tableau
- Weerstandjes voor de ledjes
- Een (kloon) Arduino Uno of (kloon) Arduino Mega. Een beetje afhankelijk van het aantal knopjes en leds
- RS-485 module. Voor het koppelen van het tableau aan de XpressNet-bus.
- Een stroomvoorziening voor de Arduino. De meeste arduinos kunnen meestal tussen de 7 en 12 volt hebben. Een losse gelijkstroomvoeding is een goede oplossing. Maar je kan ook aftappen van een centrale voeding voor wisseldecoders en lampjes. Dan wel even letten op het voltage.
Het principeHet basis principe is heel simpel:
Poggendam-2021-034-basisprincipeStappen
1 en
2 zijn in principe wat knoppen en ledjes aansluiten op de Arduino. De code daarvoor zou in principe ook niet moeilijk mogen zijn. Voorbeelden zat te vinden.
Stap
3 is wat ingewikkelder. Daarvoor moet de Arduino met de baan kunnen praten. Direct via DCC is op deze manier niet mogelijk. Dit omdat twee centrales op één baan niet mogen. Dat geeft problemen. Daarvoor koppelen we de Arduino met de XpressNet-bus. Dit omdat ik toch vooral met de z21 / Multimaus / Lenz rijdt. Je kan natuurlijk ook koppelen via andere bussen zoals LocoNet. Daar zijn ook veel oplossingen voor te vinden.
Koppelen aan de XpressNet-busHet koppelen van de Arduino aan de XpressNet-Bus is een klein printje nodig. Een RS485-module met een RJ11/12 aansluiting. Dit is een module met een 485-chip waarmee je de XpressNet-bus kan koppelen aan je Arduino project. Je kan het printje ook zelf in elkaar zetten. Het schema is niet heel moeilijk. Met de standaard RS485-module van WaveShare is het een kwestie van draadjes op de Arduino prikken. De benodigde libaries om via XpressNet te communiceren is vrij te downloaden van het internet. Philipp Gahtow heeft een hele goede Arduino Library:
Pgahtow XpressNet Bilbiotheek gemaakt.
Programmeren.Dan is het de stappen verwerken in een programma. Het is even uitzoeken wat ik wil. Ik wil niet "simpel" op een knopje drukken en dan een wissel omzetten. Ik wil eigenlijk met een knop een rijweg instellen. Dan uiteindelijk meerder wissels en eventueel seinen omzetten. Dat vergt een iets andere aanpak dan een simpel lijstje met knoppen. Bij een normaal programma zou ik een database(je) gebruiken om de zooi aan elkaar te knopen. Maar goed zo uitgebreid zijn de mogelijkheden bij de Arduino niet. Dus aan de gang met wat
"structs" en
"arrays". Daarmee moet het ook lukken. Het blijft een kwestie van het volgende stappenplan:
Poggendam-2021-035-processchemaDan is de code in de Arduino blazen, aan elkaar knopen en testen. De testopstelling is dan uiteindelijk dit:
Poggendam-2021-036Natuurlijk vraagt dat om een flimpje met het resultaat. Op het seintableau wordt een aantal knoppen ingedrukt. Op de schakeldecoder wordt dan een aantal adressen omgezet. Daarnaast ook het schakelen op de Multimaus van adressen 6 en 7. Dan reageert het schakelbord ook mee.
Even klikken op het blauwe vlak en het filmpje zou moeten starten ;DPoggendam-2021-037-filmNu de noodstop e.d. in programmeren. En wachten op de spullen uit China voor het maken van het grote schakelbord. Ik zal hier wel wat code delen van het huidige programma. Dan kunnen jullie meekijken
Groet Ronald.