Pendelautomaat voor digitale treinen

Gestart door Geert, 06 september 2013, 21:52:28 PM

Geert

Citaat van: dani op 14 september 2013, 11:57:01 AM
dit is een heel leerrijk projectje, waar veel mensen nog wat kunnen van op steken, en dan ook nog eens in  "jip-en-janneke-taal" neergeschreven.


:D

Wacht maar totdat ik het programma in assembler ga beschrijven, dan zullen er veel afhaken denk ik   :(

Geert
Schaal HO - digitaal zelfbouw - Favoriete Lok: V200 DB
Huidig project: LocoNet 16 poorten ingangen/uitgangen

Havoc

Als je er eerst een flowchart of met wat commentaar uitlegt wat er gebeurt is dat geen probleem denk ik. Tenslotte gaan diegenen die jouw project nabouwen ofwel hetzelfde gebruiken als jij (en dus gewoon overnemen) ofwel toch een andere µcontroller gebruiken (en die weten waarschinlijk wel waar ze mee bezig zijn).

Naar aanleiding van wat hier in dit stuk van het forum gebeurt heb ik besloten om toch ook maar eens iets met die dingen te proberen. De processoren zijn besteld...
Met vakantie voor onbepaalde duur.

dani

met een ATMel microcontroller zou je in principe hetzelfde kunnen doen (arduino) en voor DCC bestaan daar zelfs al library files voor om het rekenwerk en het "bit-fucken" te vermijden en het makkelijker t emaken   Of dit voor Märklin-Motorola protocol bestaat weet ik niet, maar misschien is daar een mogelijkheid om je werk de wijde wereld in te sturen, Geert !!   The   GMMTL module.   (Geert's Marklin Motorola Train Library).
De kruik is te water gegaan...
De kruik is niet meer.

dani

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

Geert

Eigenlijk is dit projectje maar een onderdeel van een groter project: een digitale zelfbouw centrale. Dan heb ik wel S88-bussen, CAN-bussen enzovoort nodig. Hierover heb ik redelijk al wat beschreven op mijn site. Maar die digitale zelfbouwcentrale is een persoonlijke uitdaging die ik niet ga beschrijven op dit forum, ik steek nu al redelijk wat tijd om dit project uit te leggen.... Hiervoor heb ik wel een zeer krachtige µC voor nodig, maar de basis is er al  ;)

Geert
Schaal HO - digitaal zelfbouw - Favoriete Lok: V200 DB
Huidig project: LocoNet 16 poorten ingangen/uitgangen

PeterC

Geert,

Heel interessant draadje en heel uitvoerig beschreven!

Een gelijklopend project zit in mijn hoofd: op een deel van de baan een loc via een zelfbouwcentrale 'overnemen' er een lengtemeting op uitvoeren en afhankelijk van het resultaat de loc terug naar de (geautomatiseerde) baan sturen of deze naar een lift sturen.
Mijn grootste struikelblok was het opwekken van de MM pulstrein.  Jij bezorgt hier de oplossing op een dienblaadje  ;) .  Met strikt getimde softwareoplossing zou mijn µC in tijdsnood komen.  Aan de PWM module had ik niet gedacht...
Ook de oplossing met Max232 is eenvoudig en heel bruikbaar.

Bedankt voor deze heel interessante informatie!



Citaat van: Geert op 14 september 2013, 10:08:21 AM
...mijn kennis van hogere programmeertalen spijtig genoeg nog niet. (niet meer eigenlijk...)

Zoals jij tovert met ASM kan dat toch geen enkel probleem zijn?  Met Delphi kan ik je helpen.


Citaat van: Geert op 14 september 2013, 12:13:32 PM
Citaat van: dani op 14 september 2013, 11:57:01 AM
dit is een heel leerrijk projectje, waar veel mensen nog wat kunnen van op steken, en dan ook nog eens in  "jip-en-janneke-taal" neergeschreven.


:D

Wacht maar totdat ik het programma in assembler ga beschrijven, dan zullen er veel afhaken denk ik   :(

Geert

Ik al veel van je ASM programma's bekeken en daar er een massa commentaar is ingeschreven, blijft het voor velen 'leesbaar'.

Ik ben benieuwd naar het vervolg!

Groetjes, Peter


Geert

Citaat van: PeterC op 14 september 2013, 14:33:03 PM

Ik al veel van je ASM programma's bekeken en daar er een massa commentaar is ingeschreven, blijft het voor velen 'leesbaar'.

Ik ben benieuwd naar het vervolg!

Bedankt Peter,

in het µC draadje 'waar zijn we nu mee bezig' had ik al eens een link geplaatst naar de ASM -code voor de pendelautomaat. Deze is ondertussen al achterhaald, er stonden nog wat foutjes in. Binnenkort komt de huidige versie als link.

Geert
Schaal HO - digitaal zelfbouw - Favoriete Lok: V200 DB
Huidig project: LocoNet 16 poorten ingangen/uitgangen

MickeyMouse

Citaat van: PeterC op 14 september 2013, 14:33:03 PM

Ik al veel van je ASM programma's bekeken en daar er een massa commentaar is ingeschreven, blijft het voor velen 'leesbaar'.

Doeme, waar is de tijd....Kilometers asm-code, daarna C maar toch nog gecombineerd met assembler voor de tijdskritische zaken, lang geleden:-) En dan die linker wijsmaken hoe alles op de correcte geheugenplaatsen gemapt dient te worden.

Geert

Geert

Citaat van: MickeyMouse op 14 september 2013, 21:23:59 PM


Doeme, waar is de tijd....Kilometers asm-code

Geert

De tijd van ketting papier  ;) , bestaat dat nog zulke printers ?

Geert
Schaal HO - digitaal zelfbouw - Favoriete Lok: V200 DB
Huidig project: LocoNet 16 poorten ingangen/uitgangen

philippe_007

Deze bestaan zeker nog....
Dus je kan nog km'ers code schrijven ;-)

Havoc

Zeker dat zo'n printers nog bestaan, op het werk hebben we er enkele. (maar daar lopen ze zeker 20 jaar achter, niet echt een referentie) En ik denk dat ik nog ergens een doos pyjama-papier heb staan...ergens.

Zo'n printers worden nog altijd gemaakt voor doorslagen te maken met carbonpapier.
Met vakantie voor onbepaalde duur.

MickeyMouse

Facturen in de Makro zijn ook nog op zulke printers (oki's)

Geert

Geert

Citaat van: Havoc op 15 september 2013, 20:14:14 PM
Zeker dat zo'n printers nog bestaan, op het werk hebben we er enkele. (maar daar lopen ze zeker 20 jaar achter, niet echt een referentie)


Ik wist niet dat je bij justitie werkte...

Geert
Schaal HO - digitaal zelfbouw - Favoriete Lok: V200 DB
Huidig project: LocoNet 16 poorten ingangen/uitgangen

Geert

#28
Dat beloofde filmpje zal nog wat moeten wachten. :( Ben er achter gekomen dat Marklin Mfx decoders niet altijd goed reageren op MM2 digitale signalen. Vooral bij geluid functies kan er wat mis lopen. Eerst uitzoeken waar het mis gaat, maar de treinen rijden al op mijn pendelautomaat.  :) Dus kan ik mijn verhaal verder vertellen...

Geert
Schaal HO - digitaal zelfbouw - Favoriete Lok: V200 DB
Huidig project: LocoNet 16 poorten ingangen/uitgangen

Geert

#29
Servo's aansturen.

Waarom servo's? gewoon handig om wissels om te zetten, of  loodspoorten en slagbomen te openen of sluiten. En niet onbelangrijk, redelijk stil en goedkoop zijn die dingen.  Zeker van die blauwe kleintjes (geen smurfen  :) ) 2€ het stuk maar (spijtig wel ineen gestoken door die gele kleintjes  :-[ ).  Deze pendelautomaat is voorzien om rechtstreeks 8 servo's aan te sturen. Hoe doe je dat, gewoon in de opcode na de voorwaarde aan te duiden welke servo S1 ... S8 je wil laten bewegen. Dat laten bewegen gaat gewoon door de referentiepuls te veranderen.

Bijvoorbeeld: M1 S1 100 = als terugmelder M1  '1' is, dan verzet servo S1 naar een referentiepuls van 1ms;  en:  M1 S1 200= ... servo naar 2ms. Ik hoop dat je weet wat een referentiepuls van 1ms betekend bij een servo? Dit zijn gewoon pulsen van 1ms die elke 20ms (50Hz) herhaalt worden, en die als referentiepuls dienen voor de interne elektronica van de servo. Een denkbeeldig voorbeeld: bij 1ms pulsen zal de servoarm 0 graden zijn, bij 2ms, 180 graden (wel graden van een hoek hé ). Nu ik gebruik servo's die werken tussen 0,5ms tot 2,5ms als referentiepuls, en te programmeren achter S1 ... S8 als 50 en 250, of er iets tussen  182 = 1,82ms bijvoorbeeld. Maar ook de meer klassieke servo's met een puls bereik tussen 1ms tot 2ms kan je zo aansturen.

Nu, servo's zijn eigenlijk niet echt zo stil, ze zoemen lichtjes als je ze continue pulsen aanbied. Ze verbruiken dan ook nog wat stroom en slijten mechanisch zo veel sneller.  Een handige eigenschap van servo's is, dat als de pulsen stoppen de servo in de laatste positie blijft staan. Mechanisch kan je deze wel verdraaien, maar daar heb je redelijk wat kracht voor nodig. Dat stoppen van die pulsen gaat de µC dan ook doen, oef.... 

Nog een eigenschap van servo's is, dat ze heel snel zijn. Van 0 graden naar 180 graden gaat in een fractie van een seconde. Dit is eigenlijk niet zo leuk als je een loodspoort wil openen of een wisseltong wil verplaatsen. Met een µC  kan het ook zo: was de laatste servo opdracht  1ms en je geeft een nieuwe opdracht om naar 2ms te gaan, dan zal de µC dit geleidelijk aan doen 1,00ms, 1,01ms 1,02ms ... 1,99ms, 2,00ms. Elke 20ms een stapje verder. Dit is al wat realistischer. (voor de Limburgers, het kan nog trager als het moet...)



Geert
Schaal HO - digitaal zelfbouw - Favoriete Lok: V200 DB
Huidig project: LocoNet 16 poorten ingangen/uitgangen