Nieuws:

Wilt u Stichting 3rail steunen? Dit kan eenvoudig via onze Stichting 3rail Webshop :thumbup:

Herstart; een kleine volautomatische baan [DCC++, Arduino, Python]

Gestart door ~TomM woensdag 30 mei 2018, 14:19:10

0 leden en 1 gast bekijken dit board.
Herstart; een kleine volautomatische baan [DCC++, Arduino, Python]
Introductie:

Hallo allemaal!
Ik ben nieuw op dit Forum en wil mij graag voorstellen door mijn project met jullie te delen!
Op mijn 10e verjaardag kreeg ik van mijn opa een Märklin baan, M-rails en een aantal starter locs.
Na een aantal jaar verdween de interesse, school, studie, etc.

Nu, 9 jaar later is deze interesse verschoven naar programmeren en automatiseren.
Ik haal altijd voldoening uit het combineren van programmeren met 'tastbare' zaken, en laat nu een treinbaan daar de perfecte kandidaat voor zijn!

Het project:


Van de bovenkant ziet het er allemaal simpel uit, maar dit is geen 'simpele' baan.

Ik gebruik voor het besturen van mijn baan DCC++. Dit is een open-source project voor de Arduino, voor het aansturen van locs met de DCC protocol.
Als student is budget zeker de gewenste oplossing, een Arduino als 'centraal station' kost maar een kleine ?30! Tevens biedt deze oplossing enorm veel mogelijkheden voor aanpassingen.

Na het aanpassen van de DCC++ code, werd het tijd om mijn loc om te bouwen.
De loc die ik ter beschikking heb is een Märklin 36849. Ik heb hier een LD-G-32.2 | Lokdecoder van Tams ingebouwd.
Dit werkt allemaal prima!

Naast mijn 'centraal station' heb ik een 2e Arduino voor baanvak detectie.
Ik gebruik hiervoor ACS712 5A Modules zodat mijn Arduino het aantal milliamperes kan meten wat door een bezet baanvak loopt.

De wissels worden tevens aangestuurd door de Arduino via relais.


De electronica

Voor het besturen en automatiseren van de baan, draaien er op mijn computer een stel zelf geschreven Python scripts die met de Arduino's communiceren via de seriële verbindingen.


De live weergave van de baanvakken en wissels. De getallen bij de vakken betekenen: bezet_door/in_wachtrij; vak_nummer

De volledige baan is in de handen van de autopiloot. Je hoeft alleen in te geven van welk vak naar wel vak je wilt rijden en het nummer van de loc.
Het stoppen, van richting veranderen en wissels omzetten wordt automatisch gedaan.

Ook wordt er door middel van een 'que' systeem, (2 vakken vooruit worden gereserveerd door de autopiloot), voorkomen dat treinen botsen.
De autopiloot brengt locs zelf tot stilstand als er een baanvak in de 'que' nog bezet is. Zodra deze vrij is, wordt de route vervolgd.

De toekomst

Ik ben van plan, mijn software verder te testen en uit te breiden. Ook wil ik aan de rechterzijde van mijn baan een kopstation realiseren.
De rest van de baan wil ik gaandeweg van scenery voorzien.
Aan de linkerzijde van mijn baan, is na het verwijderen van de stootblokjes, uitbreiding mogelijk met eventueel een 2e module.
Ik zal in dit topic jullie updates geven, meer foto's en filmpjes volgen dus! Mocht er interesse zijn in de code, deel ik deze graag!

Ik hoor graag wat jullie ervan vinden en of jullie vragen/tips hebben!









Re: Herstart; een kleine volautomatische baan [DCC++, Arduino, Python]
Dag Tom,   
Veel plezier hier én met de modelspoorhobby :important:

P.S. Voorstelhoekje ===> klik
Re: Herstart; een kleine volautomatische baan [DCC++, Arduino, Python]
Lid sinds: 2014

Märklin fahren-ärger sparen

offline
Re: Herstart; een kleine volautomatische baan [DCC++, Arduino, Python]
Welkom, Tom !

Voor mij is het allemaal hocus/pocus wat je schrijft, maar ik zie met belangstelling de foto´s van je baan tegemoet  :P

Veel plezier hier !

Grtz Tony
Re: Herstart; een kleine volautomatische baan [DCC++, Arduino, Python]
Lid sinds: 2016

1 raiL + 1 raiL = 2 railS ;)

offline
Re: Herstart; een kleine volautomatische baan [DCC++, Arduino, Python]
Welkom Tom  :)

Kan je ons ook een idee geven van de bovenkant van de baan?   :D
Re: Herstart; een kleine volautomatische baan [DCC++, Arduino, Python]
Hallo!
Ik zie dat mijn foto's niet allemaal zichtbaar zijn!
Beginners fout  8o ik zal mijn post proberen aan te passen!

EDIT
Als het goed is zijn alle 3 de foto's nu zichtbaar.
Re: Herstart; een kleine volautomatische baan [DCC++, Arduino, Python]
Lid sinds: 2010

Ik zie al een lichtpunt aan het einde van de ...

offline
Re: Herstart; een kleine volautomatische baan [DCC++, Arduino, Python]
 :) Succes met uw project ... :thumbup:

Mvg Freddy

Re: Herstart; een kleine volautomatische baan [DCC++, Arduino, Python]
Ja nu is het een stuk duidelijker.
Benieuwd naar de eerste filmpjes.
Re: Herstart; een kleine volautomatische baan [DCC++, Arduino, Python]
Lid sinds: 2014

Märklin fahren-ärger sparen

offline
Re: Herstart; een kleine volautomatische baan [DCC++, Arduino, Python]

Nu zie ik de foto's ook, Tom  ;)

Daar kun je een fijne digitale proeftuin aan hebben  :thumbup:

Grtz Tony
Re: Herstart; een kleine volautomatische baan [DCC++, Arduino, Python]
Welkom en succes met je baan ontwerpen en bouw
Re: Herstart; een kleine volautomatische baan [DCC++, Arduino, Python]
Update

Om het geheel wat te verduidelijken heb ik een stel foto's van mijn baan en mijn PC scherm gemaakt.
Ik heb ook een filmpje gemaakt.


De loc (met adres 2) zal de route 5,3,2,0,1 rijden. (zie PC scherm)


Het reserveren van 2 vakken vooruit en het vertrek, update op PC:


Baanvak opgeschoven, update op PC:


Baanvak opgeschoven, loc stopt, update op PC:


Het reserveren van het vak vooruit, het omzetten van de wissel en het vertrek, update op PC:


Baanvak opgeschoven, loc stopt, wissel wordt omgezet, volgende vak wordt gereserveerd en loc vertrekt, update op PC:


Loc rijdt laatste baanvak binnen en stopt, update op PC:



Filmpje
Het is wat moeilijk om te zien wanneer de wissels omgezet worden, zet het geluid aan, dan is dit duidelijk hoorbaar!
https://www.youtube.com/watch?time_continue=82&v=i0pGeZtCLu4



Bedankt voor jullie reacties! Meer updates volgen.

Re: Herstart; een kleine volautomatische baan [DCC++, Arduino, Python]
Lid sinds: 2010

Ik zie al een lichtpunt aan het einde van de ...

offline
Re: Herstart; een kleine volautomatische baan [DCC++, Arduino, Python]
Stootblokken aan rechter zijde zou geen overbodige luxe zijn ... Prima werking anders  :thumbup:

Mvg Freddy

Re: Herstart; een kleine volautomatische baan [DCC++, Arduino, Python]
Lid sinds: 2014

Märklin fahren-ärger sparen

offline
Re: Herstart; een kleine volautomatische baan [DCC++, Arduino, Python]
 @citaat Je houdt je hart vast  :O
Re: Herstart; een kleine volautomatische baan [DCC++, Arduino, Python]
 @citaat @citaat Of een vangnet misschien?

Maar nu even serieus, ik vind het knap gedaan.
Re: Herstart; een kleine volautomatische baan [DCC++, Arduino, Python]
-Tom:
Hartelijk welkom op het forum,  :thumbup:
Met een mooi Arduino projectje.
Re: Herstart; een kleine volautomatische baan [DCC++, Arduino, Python]
Forum Moderator
Lid sinds: 2007

A member of the Duurstede Group®

offline
Re: Herstart; een kleine volautomatische baan [DCC++, Arduino, Python]
Welkom op het forum Tom, leuk dat je zo handig bent met deze materie en dan komt de modelbaan goed van pas.


Mvg,

Peter Degeluidsman
Re: Herstart; een kleine volautomatische baan [DCC++, Arduino, Python]
Forum Beheerder Secretaris St. 3rail
Lid sinds: 2006

Doe wat je zegt, dan lieg je niet.

offline
Re: Herstart; een kleine volautomatische baan [DCC++, Arduino, Python]
Hallo Tom,

leuk dat je 1 van de nieuwere programmeertalen pakt, ik hoor mijn sturende zoon ook regelmatig over oa. Python en een uitdaging in zijn vaders treinbaan, nog wel een item in de uitvoering met langzaam afremmen door de software, en misschien ook flankbeveiliging met meerdere treinen,

met vriendelijke groet,

Walter

Re: Herstart; een kleine volautomatische baan [DCC++, Arduino, Python]
Update

Even de kast door gezocht, andere loc ook gevonden. Ik ben van plan hier ook een DCC decoder in te zetten zodat ik met 2 locs kan testen.
Bijvoorbeeld de flankbeveiliging zoals Walter zei.


Ook nog wat huisjes geselecteerd die straks op de baan komen.


Een eerste test met een kleine schakelaar, de bedoeling is om de loc hier tegen aan te laten kruipen, waardoor de schakelaar de loc detecteert.
Dit omdat door het ruimtegebrek de loc precies aan het einde van de rails moet stoppen om de wissel vrij te maken. Dit is op deze manier goed te detecteren en voorkomt ook dat de loc van de rails afrijdt.


Een eerste test op een stukje foam met gips. Ballast/gras wordt binnenkort aangekocht.
Ook heb ik onderdelen bestelt voor een 'statische gras legger'.


Ook heb ik uit de software al een aantal fouten gehaald. Ik blijf testen en kleine dingetjes aanpassen.
Volgende stap is wellicht een app programmeren zodat ik via mijn telefoon de treinen kan besturen, als een soort 'mobiel station'
Re: Herstart; een kleine volautomatische baan [DCC++, Arduino, Python]
Nóg een DCC++ enthousiasteling hier op het forum, ik wil er na lang beraad ook mee beginnen maar ik moet nog een voeding vinden, wat voor voeding gebruik jij ervoor? Aangezien H0 bijna standaard 18v is
Re: Herstart; een kleine volautomatische baan [DCC++, Arduino, Python]
Een Arduino als DCC++ centrale kun je voeden met 15-20V DC.

Ik gebruik zelf een 15V - 3A  adapter van Ali.

Re: Herstart; een kleine volautomatische baan [DCC++, Arduino, Python]
@Rocnethans, Ik heb zelf nog een 15v 1,5A liggen, dus zou dat gewoon moeten werken?
Re: Herstart; een kleine volautomatische baan [DCC++, Arduino, Python]
Zeker, voldoende om met een aantal treintjes te rijden.
Re: Herstart; een kleine volautomatische baan [DCC++, Arduino, Python]
@roconethans, top, haal ik van de week even een motorshield :D
Re: Herstart; een kleine volautomatische baan [DCC++, Arduino, Python]
ik weet niet of Ali bij jou om de hoek zit, maar daar kosten ze bijna niets.

Re: Herstart; een kleine volautomatische baan [DCC++, Arduino, Python]
Ik gebruik 16 volt 2 amp. Ik ben echter met dit test project gestopt en ben van plan een volledige baan rond DCC++ te bouwen.
Ik kan aanraden om meerdere centrales te gebruiken die elkaar 'nadoen' door je baan in secties te verdelen, dan houd je er een sterker signaal op na.
Re: Herstart; een kleine volautomatische baan [DCC++, Arduino, Python]
Citaat van: ~TomM op donderdag 18 april 2019, 12:25:35
Ik kan aanraden om meerdere centrales te gebruiken die elkaar 'nadoen' door je baan in secties te verdelen, dan houd je er een sterker signaal op na.

Als ze elkaar moeten nadoen lijkt het mij simpeler om "gewoon" meerdere motorshields te gebruiken, aangesloten op dezelfde Arduino.

Succes Frits
Re: Herstart; een kleine volautomatische baan [DCC++, Arduino, Python]
hoi,

Citaat van: ~TomM op donderdag 18 april 2019, 12:25:35
Ik kan aanraden om meerdere centrales te gebruiken die elkaar 'nadoen' door je baan in secties te verdelen, dan houd je er een sterker signaal op na.

Nou, dat is niet echt een goed advies. Ook bij het DCC-protocol is er maar één centrale die de commando's genereert.  Wil je meer vermogen op de baan dan gebruik je versterkers (boosters). De baan verdeel je in secties. Die voed je door de versterkers. Wil je in de zelfbouw blijven dan doen je wat Fritsprt / Frits aangeeft.

Groet Ronald.
Re: Herstart; een kleine volautomatische baan [DCC++, Arduino, Python]
Het is al wel een wat ouder topic wat naar boven gekomen is ;)

Ik weet niet 100% zeker of dit in dit geval nu zo'n slecht advies is, want wat is nu de DCC++ controller precies?
Het is een controller welke opdrachten vertaald naar een DCC commando op de rails, eigenlijk precies wat bijvoorbeeld een booster doet welke bijvoorbeeld aangestuurd wordt door Loconet. Nu begrijp ik wel dat je het niet helemaal kunt vergelijken maar het gaat via hetzelfde principe. De DCC++ controller is eigenlijk niet het besturingssysteem, deze vertaald de seriële data naar een DCC signaal. De seriële data komt van de daadwerkelijke controller af. De DCC++ controller is eigenlijk dus een intelligente booster welke via een seriële bus aansturing krijgt. Zie graag jouw visie hierop Ronald.
Re: Herstart; een kleine volautomatische baan [DCC++, Arduino, Python]
DCC++ is gewoon de "DCC-centrale". Goed je kan het zien als interface tussen baan en computer. Je kan hem ook zo maken dat je via het netwerk kan laten praten, dan is het een soort van z21 / Z21 / DR 5000 met de aansturing via apps. Doordat het zelfbouw is kan je zelf natuurlijk het een en ander zelf toevoegen en aanpassen ;)

Mijn advies is dan ook net als Frits om een soort van "boosters" te gebruiken en niet volledige centrales.

Groet Ronald.
Re: Herstart; een kleine volautomatische baan [DCC++, Arduino, Python]
Je kunt er inderdaad genoeg aan aanpassen waardoor het meer een centrale wordt. Voor Z21 is er een project van Philipp Gahtow
wat het al een stukje makkelijker maakt. Natuurlijk is een echte booster (welke eenvoudig te maken is) een verstandigere keuze, met een TLE5205-2 kan je al een 5A booster creëren.
Re: Herstart; een kleine volautomatische baan [DCC++, Arduino, Python]
CiteerNou, dat is niet echt een goed advies. Ook bij het DCC-protocol is er maar één centrale die de commando's genereert.

Dat is juist. Recentelijk heb ik dezelfde vraag gesteld op het Rocrailforum en daar kwam ondubbelzinnig
het antwoord dat meerdere DCC++ centrales naast elkaar niet kan ivm synchronisatie problemen bij sectie overgangen.