Atom Nieuws 2001 nummer 1
../../../images/back.gif ../../../images/exit.gif ../../../images/forward.gif
pagina 5
Treinbesturing
door Roland Leurs

Inleiding

In dit artikel ga ik u op de hoogte brengen van papa's speelgoed: de electrische trein.

De baan is al meer dan anderhalf jaar gemonteerd op de plank, de aansturing is echter nog steeds handmatig: via de grote rode regelknop op de trafo. Vanaf het begin was het al mijn bedoeling om de trein via de computer te laten besturen. Jaren geleden, in een Atom Nieuws van welleer heb ik daar al eens wat over geschreven. Maar deze keer wordt het uitgebreider.

Wensen

De volgende punten dienen gerealiseerd te worden:

  1. Traploze snelheidsregeling
    Over implementatie valt te twisten, sommigen zweren bij een pulsaansturing, voor anderen is een analoge aansturing het summum. Bij de pulsaansturing maak je gebruik van pulsen (volledige spanning) die varieren in aan- en uit periode. Enkele voordelen hiervan zijn dat de motor van de trein continu op maximaal vermogen rijdt en dat de trein met lage snelheid kan rijden. Ook is de stapgrootte kleiner dan bij een D/A conversie. De software is echter wat ingewikkelder om te schrijven, omdat de processor constant bezig moet zijn met de snelheidsregeling. Dit zou ook onder interrupt gedaan kunnen worden.
    De analoge aansturing is eenvoudiger. Met een eenvoudige D/A converter (4 of 5 weerstandjes) kan je al in 16 of 32 stappen je snelheid regelen. Echter, bij de lagere spanningen is het moeilijk om de trein in beweging te krijgen. Bij het afremmen valt dat wel mee. Groot voordeel is dat de processor slechts eenmaal de snelheid naar de D/A converter schrijft en vervolgens klaar is met de aansturing.

  2. Baanvakdetectie
    Baanvakdetectie kan met een reed-relais of met een lichtsluis. Ik heb geëxperimenteerd met een reed-relais tussen de rails en een magneet onder een wagon, maar ik was niet echt tevreden met het resultaat. Een lichtsluis voldeed beter. Misschien heb ik de verkeerde magneet of reed-relais gebruikt, toch hou ik het op de lichtsluis. Lichtsluizen zijn te koop in allerlei varianten, ik bouw ze zelf met een lampje, een lichtgevoelige weerstand en wat electronica voor de licht/donker detectie.

  3. Verlichting (straatverlichting en verlichting in de huisjes)
    Straatverlichting is bij diverse modelbouw zaken verkrijgbaar, echter vrij prijzig. Tegen de tijd dat u aan de slag gaat met de trein nadert de winter weer. Bij Blokker of Kruidvat koop je dan Kerstverlichting, een streng met 100 lampjes voor een euro of twee. Voldoet prima als verlichting op de treinplank, je hebt meteen houdertjes (lantaarnpaaltjes). Ziet er niet echt als een straatlamp uit, maar met een jochie van 3 en zijn zusje dat binnenkort leett kruipen is dat een perfect compromis.
    Als extra voor de verlichting maak ik gebruik van eenzelfde schakeling als de treindetectie om licht en donker voor de omgeving te detecteren. Daarmee kan ik de baan- en huisverlichting laten reageren op het omgevingslicht. Een stap verder kan zijn dat het omgevingslicht ook door de computer gestuurd wordt; daar doe ik voorlopig nog niets mee (voornamelijk vanwege de veiligheid).

  4. Stoplichten op de wegen
    Voor de stoplichten geldt ongeveer hetzelfde. Deze zijn ook te koop in de modelbouw winkel, kosten ca € 10 per twee en sneuvelen gegarandeerd als zojuist genoemde kinderen aan de slag gaan. Van triplex maak je zelf veel stevigere stoplichten, drie ledjes erin en aansluiten maar. Kosten: ca. € 0,50 per stoplicht.

  5. Spoorwegovergang
    Op mijn baan komt het met de overweg gemakkelijk uit. Ik heb geen slagbomen nodig, alleen een bewaakte overgang met Andreas kruizen. Deze zijn van hetzelfde fabrikaat en prijsklasse als de gewone stoplichten.

Om de aansturing van al deze onderdelen te regelen stop ik zoveel mogelijk intelligentie in de computer. De programmatuur kan een stuk eenvoudiger worden als bepaalde functies in hardware op de print uitgevoerd worden. Maar dan ben je wel iets minder flexibel. Uiteraard zijn sommige componenten (zoals microcontrollers) programmeerbaar, maar dat doe je niet zo snel als een ander programma starten.

Uitvoering (schema's)

Voor de uitvoering van bovenstaande wensenlijst heb ik een aantal deelschakelingen bedacht en met de bekende spaghetti-prototypen getest. Deze bleken nog heel aardig te werken ook.



  1. Snelheidsregeling
    De snelheidsregeling bestaat uit een D/A converter van vier weerstandjes, een opamp voor buffering en een transistor voor de power. Daarachter een dubbelpolig relais om de rijrichting om te kunnen draaien.
    Direct aan de snelheidsregeling gekoppeld is een kortsluit detectie. In de minleiding is een kleine weerstand (met groot vermogen) opgenomen. Indien de spanning over deze weerstand te laag is (instelbaar met een potmeter) dan zal een digitaal signaal aangeboden worden. Indien het programma dit detecteert, terwijl de spanning eigenlijk hoog moet zijn, kan het programma de baan spanningsvrij maken.


  2. Baanvakdetectie
    De baanvakdetectie is gemaakt met lichtsluizen: aan de ene kant van de rails staat een lampje, aan de andere kant staat een lichtgevoelige weerstand. Om een beetje gebundelde lichtstraal te maken heb ik het lampje in een aluminium pijpje geplaatst. Om de lichtgevoelige weerstand niet al te veel te beďnvloeden met omgevingslicht, heb ik de weerstand in een aluminium pijpje geplaatst. Resultaat: een goede lichtsluis voor weinig euro. De drempelwaarde voor licht en donker kan met een instelpotmeter geregeld worden. De computer dient zelf aan de hand van de lichtsluizen te bepalen waar de trein zich bevindt.



  3. Verlichting
    De verlichting wordt recht-toe recht-aan opgebouwd. In een register worden de bits geplaatst die een (groep) lamp(en) laat branden. De buffering gebeurt met een ULN2001 o.i.d. Aangezien ik 2,2V lampjes gebruik, schakel ik deze in serie zodat ik ca. 6 lampjes per keten heb. De ULN heeft 7 uitgangen, dus ik heb ruim 40 lampjes in 7 groepen. Voor mijn toepassing ruim voldoende. Het stroomverbruik komt in totaal uit op ongeveer 1 A (praktijkmeting).


  4. Stoplichten en Andreas kruizen
    Deze worden net als de verlichting via een register/ULN2001 combinatie aangestuurd. Op de print is een voorziening getroffen om een weerstandje in de voedingslijnen op te nemen. Sommige leds schakel ik parallel (verkeerslichten), andere worden individueel aangestuurd (Andreas kruizen en stoplichten voor de trein).




Uitvoering (printplaat)

Om bovenstaande schema's gemakkelijk te realiseren in de praktijk heb ik een enkelzijdige print ontworpen waarop al deze componenten geplaatst en gekoppeld worden met de computer. Tot nu toe heb ik het gehad over een computer in het algemeen, dat blijft ook zo, want het is mogelijk om elke computer hiervoor te gebruiken, mits er maar een 8255 interface voor beschikbaar is. Nu zit er in de Atom al een 8255, maar deze is niet bruikbaar aangezien die al andere taken toebedeeld heeft gekregen. Voorlopig gebruik een 486 pc (draaiend onder Linux) voor de aansturing. Maar als er mensen zijn die toch graag een Atom, BBC of Electron voor deze besturing willen gebruiken, dan wil ik ze graag helpen bij het realiseren van een interface print en de software.

Op de print is een bus aangebracht die met draadbruggen aan de diverse registers en buffers gekoppeld is. Deze bus zijn de 24 in- en uitgangen van de 8255. Poort A wordt gebruikt als input, poort B als output en poort C voor adressering op de print. Deze adressering is niet helemaal optimaal, maar dat bespaart plaats en componenten; daarnaast is het ook mogelijk om met een schrijfopdracht het hele zaakje op nul te zetten. Uitbreidingsmogelijkheden zijn er ook: een connector biedt alle poorten ter uitbreiding aan. Met wat nauwkeurigere decodering van de resterende bits van de C poort, zijn nog heel wat poorten aan te sluiten.

Als behuizing voor de print en de voeding heb ik gekozen voor een oude pc kast. Eventueel kunt u een voeding van zo'n kast gebruiken. Ik had echter geen goede voeding beschikbaar, wel wat componenten. Daar heb ik een eigen voedingsprintje mee gerealiseerd. De voeding is vrij eenvoudig van opzet: een dubbele trafo levert 2 x 15 V wisselspanning. Via een brugcel worden deze gelijkgericht (2 cellen per wikkeling, dus 4 cellen in totaal) en met wat elco afgevlakt. Via stabilisatoren 7805, 7812 en 7815 worden deze gelijkspanningen omgezet naar 5 V, 2 x 12 V en eenmaal 15 V. Twee weerstandjes op de print bieden de aansluitmogelijkheid voor leds, zodat voor iedere voedingstak te controleren is of deze spanning levert (i.e. zekering niet doorgebrand).

In de afbeelding op de volgende pagina krijgt u een indruk van het ontwerp. De schaal is niet 1:1. Mocht u de print willen bestellen, neem dan s.v.p. even contact met me op.






Praktijk oefening

Nadat de printen aangeleverd waren heb ik deze gebouwd. Dat viel, ondanks de vele draadbruggen, best mee. Vervolgens testen.....


Bij de eerste test, krijgen alle IC's voldoende voedingsspanning aangeleverd, viel na ca. 30 seconden de spanning weg. Wat blijkt nu: in rust toestand, dus niets aangesloten op de ULN's blijkt er per 74HCT574/ULN2001 combinatie zo'n 250 mA aan stroom getrokken te worden. Lekker royaal, maar daarbij de rest van de IC's opgeteld kom je dan ruim over de 1 A heen die de 7805 kan leveren. Ergo, deze houdt er mee op. Ze zijn dus werkelijk beveiligd tegen overbelasting van korte duur want het ding werd heet maar ging niet kapot. Wat gaat er mis? Nu lijkt het erop dat de ULN2001 geen serieweerstand heeft in de ingang. En daardoor kan de stroom oplopen tot zo'n 25 mA. Doe dat maal 7, tel er wat verbruik van de 574 bij op en je komt op die 250 mA. De ULN2003 of ULN2004 zijn dus een betere keuze, aangezien deze wel een serieweerstand in de ingang hebben. Vreemd dat ik dat niet eerder opgemerkt heb. Helaas heb ik op het moment van schrijven nog niet kunnen testen of dat daadwerkelijk de oorzaak is, omdat ik geen ULN2004 op voorraad heb. Maar dat wordt getest en u leest er vast nog wel een keer meer over.

De overige testen, ditmaal dan maar zonder de ULN2001, waren al positiever. De 74HCT574's zijn goed aan te sturen, m.u.v. bit 7. Maar dat ligt of aan de kabel tussen pc en print, of aan de 8255; ook dat moet nog getest worden, maar de deadline nadert.

Het aansturen van de DAC (het punt waar de vier weerstanden bij elkaar komen) werkt wel goed. In 16 stapjes is de spanning te regelen van 0 tot ca. 5 volt. Dat ziet er dus tot zover allemaal prima uit.

Hoe het verder afloopt weet ik zelf nog niet. De vakantie nadert en het Nederlandse weerbeeld zal vast wel voor een dag wat regen geven. En die dag, beste lezer, ga ik gebruiken voor de verdere testen.


Met vriendelijke groeten uit een zonnig Born,

Uw machinist, Roland Leurs

../../../images/back.gif ../../../images/exit.gif ../../../images/forward.gif