Dani's World - Een nieuwe adem...

Gestart door dani, 03 mei 2013, 10:40:18 AM

OlivierV

Dan moet dani allicht 2 fototoestellen nemen om het gevaarte op de prent te krijgen. :D
- Verkoper van kwalitatief gezever en ander gelul.
- H0 - 2-rail DCC - Flickr. - Bouw AMSAC Modulebaan

Sattrickske

Alle tanden zitten nog op hun plaats, juist een vullingske moeten laten herstellen.  En ik ben nog aan 't kwijlen, en deze keer niet van de tanden ;)
Verdoeme wat een beest is dat ding zeg.  Zo moet ik er later toch eentje hebben zenne...  Doeme wat een knap ding is dat zeg.

PS. sorry voor 't vloeken, maar 'k denk dat 't enige is dat hier past.  Effe 2 paginas vol met reacties op een paar uurkes, er zijn precies nog die er ook zo over denken.  Dedju 'k ga slecht slapen deze nacht...

dani

@Danny: zal ik zeker doen, da's beloofd.  Ik zit te popelen

@Olivier :  Eentje zal volstaan, ik heb een  groothoeklens :)

@Patrick : merci Patje... merci.  maar niet overdrijven ook niet hee... het is "maar een locomotief" hoor .

Ik dacht ook dat ik vannacht weer niet ging slapen, wegens programmeerperikelen.

Maar.....  met de DCC library en de voorbeelden er bij van MYNABAY  (http://www.mynabay.com/arduino/2-uncategorised/14-arduino-dcc-monitor)  is het me gelukt om een  DCC wisseldecoder voor de Arduino te maken op basis van een simpel adres en een 1 of 0 waarde.
Vandaag waren mijn 6N137 optocouplers geleverd vanuit HongKong  en dus kon ik eindelijk die "theorie" aan de Ecos toetsen.  Vlug een schakelingetje op een stuk breadboard gemaakt, de uitgang van de Ecos er aan gesloten en het voorbeeld script in de  Arduino geladen.  Even getest en gekeken wat het resultaat was, en dan  maar zelf aan de slag.

Ik heb nu een stuk routine   (die ik nog in een library ga zetten en apart compileren) voor de  SLAVE arduino's ,  waarbij ik op de Ecos een  "accessoire" kan definiëren met een bepaald adres en de stand van dit accessoir op de Ecops bepaalt welke transistor trap op de uitgangen van de  Arduino wordt bekrachtigd.


Dus :

1.  ik definieer een wissel  op de Ecos en geef die een DCC adres   (bijvoorbeeld 701, in de slave arduino lopen de adressen van 701 tot 730 voor 30 wissels)
2.  ik sla dat op in de Ecos met dat adres en ik kan aan de slag.

De Arduino monitort het data verkeer op de baan, en als er iets voorbij komt voor adres 701-730, dan gaat hij kijken  welk adres en welke waarde (1 of 0).
Naargelangde waarde 1 of 0 zal hij de wissel dan overeenkomstig zijn pin-out tabel in het EEPROM geheugen  gaan aansturen en na de te bepalen takt-tijd zal die uitgang ook weer "losgelaten" worden om inbranden te voorkomen.

Klinkt misschien ingewikkeld maar het werkt als een fluitje van een cent, alleen moet je er niet op blazen, maar met je vinger op het scherm tikken.

Ik probeer morgen een fotootje of filmpje te maken om het te verduidelijken.
En nu , blij en gelukkig , even een paar uurtjes slapen en morgenvroeg weer gaan werken.
De kruik is te water gegaan...
De kruik is niet meer.

Sattrickske

Hup weeral al een knap staaltje 'Dani'...  Ik zie dat je een optocoupler genomen hebt met direct een TTL uitgang, goede keuze.  Moest je ooit zelf willen de uitgangspanning en de steilheid van de uitgangspulsen bepalen: EL817 (4 pinnetjes en een extra weerstandje aan de uitgang).

Maar ik heb wat bedenkingen met 30 wissels op één slave...
Kan je meerdere wissels tegelijk aansturen op je slave?  Want ik heb daar een probleempje mee gehad.  Als er een wisselstraat juist gezet moet worden, moeten er een groot aantal wissels omgezet worden en dat kan effe duren wanneer je servo motoren gebruikt al dan niet met extra vertraging in de beweging (om het wat realistischer te maken).  Elke omschakeling duurt bij mij 2 seconden, sommige van m'n routes dienen 10 of meer wissels in te stellen.  Wanneer deze nu allemaal aan dezelfde slave hangen duurt dat bij meer dan 20 seconden. Probleem is nu dat de centrale vroeger dacht dat omschakeling onmiddellijk gebeurde en die liet de loc dan meteen vertrekken. De centrale is nu aangepast en weet dat elke omschakeling 2 seconden duurt en de commandos maar één per één mag doorsturen.

Ik werk nu met kleinere 'slaves' met max. 4 wissels erop en nu kan ik veel meer in parallel gaan aansturen.  Samen met de feedback over de CAN bus ga ik binnenkort nu ook effectief zien in welke stand ze staan en dan pas het rijden commando naar de loc sturen.  En met een kleine upgrade op de microcontroller moet het zelfs mogelijk worden om alle 4 de wissels tegelijk aan te sturen (wel met een zwaardere spanningsstabilisator voor de servos).

dani

#469
inderdaad een heel goed punt, Patrick.

Echter, deze mogelijkheid om de wissels met DCC vanuit de centrale rechtstreeks naar de Arduino te sturen is enkel voor als ik "manueel" wil rijden, dus m.a.w.  als ik de wissels op h et scherm van de central wil "aantikken" met de pen en dus wanneer de PC niet is aangezet, maar ik gewoon even "uit de hand" met de ecos wil rijen.  Op die manier is er geen probleem om een grote array te hebben van 30 stuks, want ik kan ze niet zo snel aantikken, en alle wissels zijn nog met standaard Märklin wisselbedieningen of met van die witte Conrad motoren.  Dus dat is  "klik klak" en klaar.   Niet zo mooi vloeiend en levensecht als met servo'tjes dat is waar, maar voor mijn opzet gewoon "voldoende".

Wanneer de baan vanop de PC gestuurd wordt  (dus m.a.w.  via het Ethernet de commando's naar de Master Arduino), dan houdt de PC software zelf rekening met de vertraging van de wisselbediening bij het omleggen van een "route"  met meerdere wissels, en de Slave Arduino's geven keurig een terugmelding wanneer ze de wissel hebben verzet.  Dan pas komt de volgende aan de beurt.    Dus ook dan zullen er maar zelden meerdere wissels tegelijk worden aangesproken.    (wel beperkt tot  het signaal van de Arduino dat zegt  "Ik heb de wissel een signaal gegeven" en dus niet met terugmelding van de effectieve wisselstand zoals jij wil maken, dat is nog een stpje verder).

De manier dat de software nu gemaakt is op de Arduino   (gebruik makend van  input Pin 2 = interrupt 0)  kunnen inderdaad meerdere kanalen tegelijk worden aangestuurd, bvb wissel 3,7,11,18, 21 en 29  kwasi tegelijk (zo snel als de interrupts vanaf de baan komen) en elk van de  adressen heeft zijn eigen  "drop off" timer zodat de wisselspoelen maar beperkt bekrachtigd worden en dan weer afvallen.

Om te zorgen dat nooit de beide spoelen van een wisselbediening tegelijk bekrachtigd worden, heb ik een  1/0 spelletje gespeeld.   
Wanneer de  ECOS  een   "1" stuurt op adres  X, dan wordt 1 spoel bekrachtigd en de andere wordt afgeschakeld in 1 en dezelfde routine.  Komt er een "0", dan omgekeerd.   Dus eigenlijk gebruik ik de 2 toestanden van 1 enkel adres om de 2 spoelen van de wissel te bedienen, en de automatische "afval" van de spoelen zorgt er voor dat ik me dar niks moet van aan trekken.   Van zodra de  "1" of "0" wordt ontvangen van de Ecos,  wordt de spoel onder stroom gezet en een timer wordt gestart op dat I/O kanaal.  bij het lopen door de lus van de "main" routine wordt telkens gecheckt of die timer is afgelopen.   Elke adres heeft zijn eigen timertje.

Nu moet ik dus enkel nog zien dat ik dit kan integreren in 1 "master loop"  samen met het ontvangen en verwerken van signalen van de PC via Serial poort.    Ik denk wel dat dat moet lukken aan 20 MHz kloktikjes.   En bij elke wissel-wissel wordt dit in EEProm gezet en feedback aan de PC gegeven zodat die ook weet wat er gaande is.   Bij de opstart van de Arduino  doet die een refresh van al zijn wisselstanden uit EEprom en synchroniseert die met de PC.     


De keuze van de optocoupler is eigenlijk niet zomaar mijn keuze geweest.  Ik had er geen benul van.  Maar dankzij het schemaatje van op Mynabay  kwam ik hier bij uit.   Mijn electronicaboer had ze niet in voorraad en wou me een 6N138 verkopen  (aan te hoge prijs) maar gelukkig had ik dat niet gedaan, want blijkt dat hiervoor toch aanpassingen zouden nodig zijn.   Ik heb nu een "stash" van 20 stuks optocouplers van dit type voor 6 euro , wel 6 weken op gewacht uit "het verre oosten".

Als ik er in slaag om dit ook op een  ATTiny85 aan de praat te krijgen, dan kan ik makkelijk hele simpele decodertjes maken die allerlei functies uitoefenen.    Denk aan servo cecoders, licht sturingen,  motorsturing, .... noem maar op.   Een ATT85, een 6N137,  2x 10KOhm, 1x1KOhm en een 1N4148 plus een stukje gaatjesprint.   kostprijs ongeveer 2 euro per stuk  (ruim gerekend) en als er stuur transistoren bij komen, laat ons zeggen max 5 a 6 euro voor 6 uitgangen !
De kruik is te water gegaan...
De kruik is niet meer.

Rangeerduivel

Kijk eens naar 470,469,en 468,
Best intressant,en daar dient ons forum voor,maar.....

Zouden jullie niet meer geld kunnen verdienen door een gazet te schrijven?    :D :D :D

;)

dani

#471
en als er dan niks gepost word in "baanbouw" rubrieken dan wordt er gekreft en gezaagd dat het forum hier verwatert en er te veel off topic gebabbeld wordt...

Ik denk wel dat er mensen zijn die hier toch enige vorm van interesse in zouden kunnen hebben.

Ik heb ambitie om "in 't boekske te schrijven" maar 'k ben te bedeesd van karakter om dat zelf te vragen. :-) :-)
De kruik is te water gegaan...
De kruik is niet meer.

Michiel

Ik lees mee, Dani. Maak je geen zorgen. Interesse is er, en meer zelfs; inspiratie om gelijkaardig toe te passen met mijn draaischijf.  ;)
groetjes, Michiel ...een modelbaan bouwend: het station Brussel-Luxemburg in 1:160, en een paar videos.
TPIe - Belgische Staatsspoorwegen - DCC(Lenz) - Koploper - N(1:160) - code55(Peco) - zelfbouwer(50%)

Stieven76

Ik lees ook altijd mee. Heel interessant, al snap ik er de helft niet van  ;D ;)

Steam.N

Ook hier wordt intensief meegelezen !!!
Schrijf maar lustig voort, want het is allemaal super nuttige info  :)
Knutselgroeten !  Jean       TP-I (B) & TP-II (DR) - N - DC - Handbediening - Zelfbouw  { Sedelocus - De Feniks - Pira-N's Crossing - Turnhout NEEB - Scrap Yard }

Rangeerduivel

wees maar gerust,ik lees ook wel mee,zelfs al is het een hele boterham,men is nooit te oud om te leren en een mens weet nooit genoeg! ;)

dani

ik weet ook wel dat veel mensen liever  foto's van scenery en effectieve opbouw van de baan zien hoor.
Er zijn "rijders" en "bouwers" .   Momenteel ben ik geen van beiden, ik ben eerder een  "bedenker en tester".   

Als ik eens wat meer tijd heb (letterlijk dan) om me es aan de fysieke bouw van de baan te schieten, dan gaat het vooruit gaan.
En als al die kleine "voorbereidende klusjes" zoals programmeren en zo, klaar zijn, komt alles tot een geheel en kan ik beginnen "aankleden" op de baan.  Daar kijk ik ook al naar uit !
Het is een beetje zoals een oldtimer restaureren (mijn andere passie), je bent maanden of jaren bezig eer je echt tastbaar resultaat hebt en de baan op kan.
De kruik is te water gegaan...
De kruik is niet meer.

Geert

Ook ik volg je mee Dani, wat niet wil zeggen dat ik telkens reageer....

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

Jurgen

Ik geef toe, ik lees niet alles.  :-[

Maar ik begrijp van al dat programmeren geen bal en dan begint het allemaal wel een beetje saai te worden. Ik kan er ook niet op reageren, want zoals ik al zei snap ik er geen snars van. Dus kom ik af en toe gewoon eens kijken of er effectief nog iets gebouwd werd aan de baan zelf. Is dat niet het geval dan lees ik de bijdragen diagonaal door en ben ik snel weer weg.

Maar ik volg het draadje dus wel, alleen is dat momenteel vanop een grote afstand.  :)
Mvg, Jurgen
De trein, da's altijd een beetje wachten.
Fietssporen, fietsen over oude sporen.

OlivierV

Ook ik reageer voor de moment niet veel, ik lees wel wat je aan het programmeren bent maar met welke microcontroller maakt mij niet zo veel uit, zolang het voor jou maar degelijk werkt is het voor mij ook goed. :D

Het goed voorbereiden van de besturing van een baan is trouwens ook een van de belangrijkere stappen, zeker als je redelijk automatisch wil kunnen/gaan rijden. Dat moet je niet gaan doen wanneer alles al aangekleed is want dan mag je de helft bij wijze van spreken weer gaan afbreken (zo blijf je ook wel bezig uiteraard). :D

Groet
- Verkoper van kwalitatief gezever en ander gelul.
- H0 - 2-rail DCC - Flickr. - Bouw AMSAC Modulebaan