G.I.P: automatisch schaduwstation zonder wissels

Gestart door conducteur, 09 mei 2012, 21:33:26 PM

PeterC

Ik denk dat ik ergens E blocks en Flowcode gelezen heb.

Rian, ik probeer straks iets te formuleren voor je telprobleem (moet nu een beetje werken).
Groetjes, Peter


just4fun

Je moet je probleem niet in 'stappen' bekijken maar in 'millimeter', zoals Johan Havoc reeds aangaf.
Tussen spoor 1 en 2 zijn ... mm, spoor 2 en 3 ... mm, enzoverder (en als je slim bent leg je alle sporen op exact gelijke afstand van elkaar!).
Als uw afstand tussen uw sporen allemaal gelijk is (doe dit voor uw eigen gemak!) is die X.
Je kan berekenen aan de hand van de spoed van uw as hoeveel omwentelingen Y hij moet maken om die X mm te verplaatsen.
In de gegevens van uw stappenmoter lees je hoeveel stappen hij moet maken om 1 omwenteling te doen.
Met die gegevens kan je dus berekenen hoeveel stappen uw motor moet maken om afstand X te overbruggen (aantal stappen voor 1 omwenteling) * Y.
Dat is altijd een vaste waarde Z in uw software (vermits je een slimme kerel bent, liggen alle sporen exact even ver van elkaar en heb je dus zo maar 1 constante).
Moet je van spoor 1 naar 2, dan verzet de stappenmotor Z stappen in + richting ('+' want 2 is groter dan 1).
Moet je van spoor 8 naar 3 dan verzet de stappenmotor (8-3)*Z stappen in - richting ('-' want 3 is kleiner dan 8) .
Uiteraard vertrek je in de opstart van uw programma vanuit uw 0-punt.
Paul


conducteur

#152
Nog enkele foto's die ik nog niet heb gepost hier:


De stappenmotor met koppelbus erop, ernaast de trapeziumschroefdraadstang met achteraan de flensmoer.




Het E-blocks systeem: de programmer, onder de Pic zit nog een IC voetje om zo verschillende PIC-formaten te kunnen programmeren.



Er bestaan heel veel modules, die je kunt aansluiten op een van de poorten.





Mijn testopstelling, de ledjes simuleren de uitgangen, de knopjes de diverse ingangen:



Het programmeren gebeurt voorlopig nog in Flowcode, vanwege (g)een (gebrekkige) kennis van een programmeertaal. Via eenvoudige symbooltjes kan een programma worden opgebouwd.
Voordat de PIC geprogrammeerd wordt, vertaalt de pc de flowchart naar C en ASM. Door dat al enkele keren te bekijken begin ik het te 'begrijpen'. Beslissingen, LCD display aansturen gebeurt hier ook mee. Je kunt ook een blokje in de chart slepen waar je je eigen C code in kunt schrijven.



Het is wel de bedoeling om de sporen zo mooi mogelijk op gelijke afstand te leggen van elkaar, maar ik denk dat dat toch altijd een 10-20 stappen zal schelen. Ik zou er niet op rekenen dat ze allemaal op bv 1000 stappen van elkaar liggen.
Rian 2-Rail DCC NMBS TPIII
Grote Modeltreinruilbeurs Blankenberge Pasen 2016
Zaal Forum

Havoc

Zoals Gerolf al aangaf, je gebruikt een array met waardes die je op voorhand invult. Spoor 1 ligt op x stappen --> element 1, spoor 2 op y stappen --> element 2 etc allemaal gemeten tov je 0 positie. Dus eerst zet je de stepper op 0-positie met een initialisatieroutine. Daarna is het enkel beslissen naar welk spoor je moet gaan, je leest de waarde, bepaalt aan de hand van je huidige stand waar je naartoe moet (links of rechts draaien), rekent het verschil uit en laat je routine lopen.

Tenzij je stappen verliest moet je eigenlijk nooit meer naar 0 gaan. Stappen ga je verliezen als je de motor te snel wil laten draaien, er teveel wrijving is of er iets blokeert. Maar als dat het geval is kan je beter naar gesloten lus besturing gaan.
Met vakantie voor onbepaalde duur.

conducteur

Ga eens zoeken of ik in flowcode een array kan maken, anders wordt het even C leren.
Rian 2-Rail DCC NMBS TPIII
Grote Modeltreinruilbeurs Blankenberge Pasen 2016
Zaal Forum

PeterC

#155
Citaat van: conducteur op 12 februari 2013, 19:59:34 PM
Ga eens zoeken of ik in flowcode een array kan maken...

Op het eerste zich laat Flowcode alleen maar byte arrays toe (waarde 0-255).  Als je meer dan 255 stappen per spoor nodig hebt, zal je multiple byte waarden aan je array moeten toekennen en dan beginnen rekenen.  Vergemakkelijk de zaak niet echt.
In C geen probleem voor arrays.  Daar bepaal je zelf je structuur maar is dan ook niet de gemakkelijkste taal (en bij een verkeerde indexering van je array overschrijf je zonder problemen de rest van je geheugen...).

[edit] Ik zou eerder opteren voor een eenvoudige optische detectie: een IR reflector (gebruikt slechts één poort) en per spoor een wit-zwart-wit overgang.  Detecteer die overgang en je zit aan je spoor.  Je hoeft dan ook geen rekening te houden dat als je vb van spoor 2 naar spoor 3 gaat en terug naar spoor 2 je met een verschillend aantal stappen gaat zitten (onvermijdelijke speling, hoe miniem ook).
Ik zou ook een eind schakelaar voorzien. Als je soft in de knoop komt, stopt de motor misschien niet meer en zo te zien heb je geen slipkoppeling.
Kijk misschien eens naar een CNY70.
Het is maar een denkpiste van mij.
Groetjes, Peter


Havoc

Als je die byte interpreteert als hoeveel omwentelingen je moet doen dan kom je er wel denk ik. Of een andere factor.

Eindstops zijn zeker aan te raden. En eindstops die niet door de software gaan nog meer.
Met vakantie voor onbepaalde duur.

conducteur

Ik heb voor elk spoor een variabele gemaakt (spoorpositie1...spoorpositie8). In die variabele staat eigenlijk een constante, het aantal stappen vanaf mijn 'oorsprong' tot aan het spoor. Een variabele  'positie' bevat telkens de huidige positie.  Er is nu ook nog een variabele eindpositie bijgekomen.


Als ik nu moet verplaatsen naar bv spoor 2 dan zeg ik:


eindpositie=spoorpositie2


het verplaatsen en opwekken van de klokpulsen heb ik in een subroutine gestoken. Daarin gebeurt het volgende:


Eerst wordt de berekening gemaakt positie-eindpositie=richting
Ten tweede wordt de logische test uitgevoerd: is richting>0
Afhankelijk van ja of nee kan ik dus de richting bepalen. Vervolgens worden in een lus pulsjes opgewekt, de huidige positie wordt telkens uitgerekend. De lus wordt doorlopen zolang positie<>eindpositie...

Rian 2-Rail DCC NMBS TPIII
Grote Modeltreinruilbeurs Blankenberge Pasen 2016
Zaal Forum

Havoc

Met vakantie voor onbepaalde duur.

conducteur

Heb het op mijn E-blocks geprobeerd en volgens mij werkt het. Ik wacht nog tot mijn l6208 stappenmotor driver ic toegekomen is, die is besteld in de winkel en dan wil ik hetgeen ik nu al heb geprogrammeerd eens uitproberen op de printplaten die ik nog (gedeeltelijk) moet etsen. (er is al één klaar), ga daar morgen eens de relais en andere onderdelen op solderen denk ik.
Rian 2-Rail DCC NMBS TPIII
Grote Modeltreinruilbeurs Blankenberge Pasen 2016
Zaal Forum

Gerolf

Het voordeel van een variabele in plaats van een constante voor je spoorlocatie, is dat je de zaak ter plaatse kan afregelen.
Deze waarde kan je dan in eprom opslaan. Bij elke opstart haal je de array-waarden (of een aantal variabelen) uit je eprom.
Groeten uit "Marche-en-Bières"   ** Modelspoor is plezant **   TPIII-H0-DC-Zelfbouw

Geert

En, stand van zaken... We zijn echt nieuwsgierig.  ;)

Geert
Schaal H0 - digitaal zelfbouw - Favoriete Lok: V200 DB

conducteur


Eens wat stof van dit draadje blazen.Heb iemand gevonden die het draaiwerkje wil doen voor me. Zou dat deze week moeten terug krijgen. Er is nog een stukje dat uit staalplaat moest gelaserd worden en geplooid. De tekeningen daarvoor zijn opgestuurd naar de leerkracht die alle tekeningen van de andere leerlingen verzamelt om dat te samen laten laseren. Die tekeningen zouden nog deze week verstuurd worden naar het bedrijf. De voeding voor de elektronica is gemaakt (78xx voeding), 12v + 5v.
-Mijn L6208 is besteld en toegekomen, ga dus het driverbordje voor de motor ook eens etsen en solderen als ik wat tijd vind deze week.
-Het relaisbordje (8 stuks, voor elk spoor in/uit te schakelen een). Is al gemaakt en getest.
-Het µcontroller kaartje met wat extra onderdeeltjes moet ik ook nog eens etsen. Het programma zal nog niet perfect werken, maar hoop dat er al wat beweging uit zal komen. Het ontwerp voor beide te etsen kaartjes is al gemaakt. Alle onderdelen zijn (voor zo ver ik weet toch) al aangekocht en dus op voorraad.


Met de examens die komende zijn (mondeling, één per dag) moeten we ook eens op proef hetgeen we al hebben presenteren, dus daar zal wat werk aan zijn. Tussen de examens door zal er ook wel een heel klein beetje gewerkt kunnen worden. Voor de taalvakken bv moeten we enkel een boekje lezen en dat voorstellen, dus daar is al weinig werk aan.


foto's zullen voor een andere keer zijn. Heb morgen examen rijbewijs op school en ga nog wat leren...
Rian 2-Rail DCC NMBS TPIII
Grote Modeltreinruilbeurs Blankenberge Pasen 2016
Zaal Forum

Metpetergaathetbeter


conducteur

#164
Mogelijk sta ik met mijn realisatie op onze grote modeltreinruilbeurs met Pasen, maar dat zal nog afhangen van hoever ik sta met mijn werk en of er nog een plaatsje vrij is in de zaal... Ik hou je op de hoogte.ri
Ook met de opendeurdagen van de school (21 &22 april van 14u tot 18u) vraag dan naar 6de jaar Industriële wetenschappen. Als je eens wilt komen kijken, ik hou je niet tegen.
Rian 2-Rail DCC NMBS TPIII
Grote Modeltreinruilbeurs Blankenberge Pasen 2016
Zaal Forum