Pagina 1 van 2

Trambaantje met Arduino?

Geplaatst: 13 mei 2022 09:42
door who2010
Goedemorgen,
Zou het mogelijk zijn om een stukje baan als tramlijntje te gebruiken waarbij een Arduino zorgt voor het pendelen?
Wat heb ik dan, buiten een Arduino, nog meer nodig?
Zijn hier eventueel ook al kant-en-klare sketches voor beschikbaar?
Ik heb beperkte kennis van het programmeren, tot op heden wel wat gedaan met knipperlichten en servo's.
Idee is om een trammetje rustig op te laten trekken vanaf A en rustig af te remmen (tot stop) bij B, daar een poosje wachten en weer terug naar A.

Ik hoor graag wat er mogelijk is.

Re: Trambaantje met Arduino?

Geplaatst: 13 mei 2022 09:55
door PaulRoman
Google eens op "pendelbaan arduino", dan vind je al wel wat. Je kunt natuurlijk ook zelf wat in elkaar steken, en wat ideeen gebruiken die je op internet vindt.

Groet,

Paul

Re: Trambaantje met Arduino?

Geplaatst: 13 mei 2022 17:42
door FidOo
Of gewoon een analoge pendelautomaat gebruiken. Dan hoef je niets te programmeren. Enige is dat het langzaam vertrekken en remmen niet zo werkt.

Re: Trambaantje met Arduino?

Geplaatst: 13 mei 2022 17:55
door Momfer
Je zou het ook kunnen uitvoeren met DCC-EX. Dat werkt met een Arduino + Motorshield en dan kun je met een eenvoudige scripttaal (EX-RAIL) bereiken wat je wilt.

Ik wil daar eventueel ook wel -via het forum- bij helpen.

Op de website van DCC-EX staat een voorbeeldscript (met engelse uitleg) van een pendelbaan. Als sensor kan bijvoorbeeld een reed-contact, een hallsensor of een ir-lichtsluisje dienen.

OPM: Op dit moment alleen digitaal mogelijk DCC, maar de verwachting is dat binnen afzienbare tijd ook DC gestuurd kan worden met deze oplossing!

Re: Trambaantje met Arduino?

Geplaatst: 13 mei 2022 18:42
door neudalhausenstadbahn
who2010 schreef: 13 mei 2022 09:42 Zou het mogelijk zijn om een stukje baan als tramlijntje te gebruiken waarbij een Arduino zorgt voor het pendelen?
Dat gaan Bjorn en ik ook doen met Bardüttingdorf Jammerhörnchen. Het bovengrondse traject is enkelspoor en daar moet zowel digitaal als analoog gependeld kunnen worden. Ondergronds word rond gereden en alleen digitaal. Het afremmen en stoppen gaat Bjorn doen met infrarood lichtsluisjes.

Voor meer inhoudelijke uitleg heb ik Bjorn gevraagd te reageren want ik heb daar nog geen verstand van.

Groetjes Michiel

Re: Trambaantje met Arduino?

Geplaatst: 13 mei 2022 19:43
door mini rijder
Misschien heb je iets aan dit filmpje.



Groetjes: Robby

Re: Trambaantje met Arduino?

Geplaatst: 14 mei 2022 10:06
door jw82
Dat is een inspirerend (en duidelijk) filmpje. Bedankt voor tip @mini rijder!

Geeft mij wel een leuk idee icm. de eerste Arduino stapjes die ik aan het zetten ben...(ook) met een analoge trein overigens!

@Momfer in jouw draadjes noem je andere motor shields dan in dit filmpje gebruikt (zag ook bij https://www.tinytronics.nl/shop/nl/mech ... aansturing). Zijn er belangrijke verschillen die ik mee moet nemen in keuze, of is deze voor analoog voldoende en zijn degenen die jij noemt 'zwaarder', uitgebreider qua functionaliteit en/of nodig voor DCC?

Re: Trambaantje met Arduino?

Geplaatst: 14 mei 2022 11:30
door Momfer
Het motorbord in jouw link is inderdaad anders, daar ontbreekt een stroomdetectie schakeling en past niet op een Arduino Uno of Mega. Het moet dus met draden op de arduino worden aangesloten en er moeten aanpassingen aangebracht worden om het met DCC-EX te laten werken. Voor een standaard "analoog" PWM aansturing is het wel prima bruikbaar, zij het zonder kortsluitdetectie.

Het standaard L298P Arduino motorshield (of gelijkwaardig, zoals DIY MORE of Deek Robot) kun je direct bovenop de Arduino plaatsen.

Qua vermogen: ze kunnen op papier allebei 2 A leveren, maar het motorboard uit het filmpje (L298N) heeft een koellichaam, waardoor het beter uitgerust is voor de maximale stroom van 2A. De L298P borden hebben geen koellichaam en kunnen in de praktijk 1,2-1,5A. De meeste N-lokjes gebruiken minder dan 1A, dus daar ligt niet direct een probleem.

Wil je nu analoog en later naar DCC overstappen, dan zou ik een L298P motor shield nemen. Je kunt dan later zonder problemen overstappen op DCC. Blijft het pendelbaantje analoog (PWM), dan kun je rustig de L298N nemen.



Ik hoop dat je hiermee genoeg informatie hebt om een keuze te bepalen, anders hoor ik het wel weer :)

Groet,
Rico

Re: Trambaantje met Arduino?

Geplaatst: 14 mei 2022 15:51
door BjornOl49
Hi who2010,

ik werd gisteren geattendeerd op dit draadje, ik zag dat je al een eind geholpen was. Ik heb zelf ook nog even een voorbeeldje uitgewerkt, wat hier te vinden is.

Er wordt tussen 2 stations gependeld, station A en B. Er wordt eerst 2 seconden gewacht. Hierna wordt binnen 2,5 seconden aangezet naar (bijna) volle snelheid. Wanneer de trein op snelheid is, wordt er gewacht totdat de sensor bij station B wordt geactiveerd.
Wanneer dit gebeurt, remt de trein binnen 2,5 seconden af. Er wordt van richting veranderd, 2 seconden gewacht, en het eerdergenoemde proces wordt in de tegenovergestelde richting herhaald.

Om de richting om te keren, worden 2 pinnen gebruikt, welke aangesloten worden op IN1 en IN2 van de L298N. Voor het optrekken en afremmen wordt een PWM-sturing gebruikt, deze komt uit pin 9 van de Arduino, en wordt aangesloten op pin ENA van de L298N.

Het aansluitschema is hieronder weergegeven:

Afbeelding

Dit is een eenvoudig voorbeeldje, je kunt natuurlijk ook altijd grapjes uithalen zoals bijvoorbeeld kruisende trams die op elkaar wachten. Mocht er iets niet kloppen, of is er iets onduidelijk, laat het vooral weten!

Mvg Bjorn

Re: Trambaantje met Arduino?

Geplaatst: 14 mei 2022 20:06
door jw82
Bedankt voor deze uitleg @Momfer! En ook @BjornOl49 voor het voorbeeld!

Re: Trambaantje met Arduino?

Geplaatst: 17 mei 2022 14:45
door who2010
@BjornOl49 ,

ik heb e.e.a. nagebouwd met een Uno en een L298 (een losse, geen module).
Als sensoren gebruik ik in de proefopstelling IR reflectie moduultjes, deze komen keurig binnen.
Hoe sluit ik nu de tracks aan, dat is niet helemaal duidelijk, de L298 heeft 4 uitgangen Out1, Ou2, Out3 3n Out4.
Ik heb 1 kant van de rail aangesloten op Out1 maar waar sluit ik de andere kant van de rail op aan?
Ik neem aan dat dit een Ground moet zijn maar de losse L298 heeft die niet...

Ik hoor graag je antwoord,

Re: Trambaantje met Arduino?

Geplaatst: 17 mei 2022 17:08
door BjornOl49
Hi @who2010 ,

Oeps, die was ik vergeten aan te geven op mijn overzichtje. De andere rail mag aangesloten worden op Out2. De L298N 'bepaalt' zelf welke kant + en - wordt, afhankelijk van de inputs (IN1 en IN2) die hij krijgt.

Mvg Bjorn

PS @jw82 Graag gedaan!

Re: Trambaantje met Arduino?

Geplaatst: 17 mei 2022 19:26
door who2010
Dank voor je snelle reactie 👍

Re: Trambaantje met Arduino?

Geplaatst: 21 mei 2022 14:53
door who2010
@BjornOl49 ,
Ik heb eea werkend maar het trammetje stopt zodra hij van een IR-sensor (in1/in2) niet meer ziet.
Ik zou graag willen dat de tram stopt zodra hij een IR sensor passeert, een aantal secondes wacht, rijrichting omkeert tot de andere sensor gezien wordt, na het passeren van de 1e sensor weer stopt en een aantal secondes wacht enz.

Enig idee hoe ik dat zou moeten doen?

Re: Trambaantje met Arduino?

Geplaatst: 21 mei 2022 15:24
door Onmogelijkhier
Jou sensoren schakelen precies andersom als in de oorspronkelijke lay-out.
Dit is te verhelpen door ergens in het programma bij sensor1 en sensor2 een ! uitroepteken te plaatsen maar ik weet niet waar.

Re: Trambaantje met Arduino?

Geplaatst: 21 mei 2022 16:09
door evo
who2010 schreef: 21 mei 2022 14:53 @BjornOl49 ,
Ik heb eea werkend maar het trammetje stopt zodra hij van een IR-sensor (in1/in2) niet meer ziet.
Ik zou graag willen dat de tram stopt zodra hij een IR sensor passeert, een aantal secondes wacht, rijrichting omkeert tot de andere sensor gezien wordt, na het passeren van de 1e sensor weer stopt en een aantal secondes wacht enz.

Enig idee hoe ik dat zou moeten doen?
Ik heb dit een aantal jaren geleden (ook voor een trambaantje: https://mscmaasenwaal.nl/koningswaal-augustus-1933/) gebouwd uit een Arduino, een H-brug en hall-effect sensoren als positiedetectie. Software is erg simpel, gewoon een state-machine maken (states zijn bv tram_rijdt_heen, tram_wacht1, tram_rijdt_terug, tram wacht2), de IR sensoren en een timer zorgen voor de overgang tussen de states. DCC kun je produceren met een library.

Groeten,

Edwin

Re: Trambaantje met Arduino?

Geplaatst: 21 mei 2022 19:57
door jw82
Onmogelijkhier schreef: 21 mei 2022 15:24 Jou sensoren schakelen precies andersom als in de oorspronkelijke lay-out.
Dit is te verhelpen door ergens in het programma bij sensor1 en sensor2 een ! uitroepteken te plaatsen maar ik weet niet waar.
Toevallig was ik vanmorgen ook hiermee aan het proberen nav. de sketch van @BjornOl49. En hoewel ik nog niet aangesloten heb op een baantje/treintje, zag ik via de serial monitor iets soortgelijks optreden...

Door een '!' te plaatsen gaat het inderdaad precies omdraaien, volgens mij werkt het als je dat doet bij: "if (!digitalRead(pSensor_1))" (en hetzelfde bij de if van sensor_2).

Nogmaals, ik moet het nog 'in het echt' proberen, maar dit leek te werken.

Succes!

Re: Trambaantje met Arduino?

Geplaatst: 21 mei 2022 21:52
door who2010
Ik heb het omkeren van de functies (met het !) getest maar dat werkt helaas niet bij mij.
Op de monitor zie ik alleen maar 0 (of 1 als ik een sensor met de hand afscherm), ik zie geen tekst.

Re: Trambaantje met Arduino?

Geplaatst: 21 mei 2022 23:40
door BjornOl49
Dag heren,

op de een of andere wijze kreeg ik geen notificaties meer op dit topic, vandaar mijn latere reactie. Mes excuses!

De waarde die op de monitor verschijnt is de rijrichting (1 is heen, 0 is terug), deze heb ik bij het schrijven van de code voor debugging gebruikt.

Ik heb het voorbeeldje aangepast met de oplossing die @jw82 ook noemde. Bij mij lijkt dit ook te werken.
Verder worden nu de beide sensorwaarden op de monitor geprint. De rijrichting wordt niet meer geprint. Klikt u hier voor de aangepaste code.

Kijk maar even of het werkt. Zo niet, kun je dan even een plaatje posten van je opstelling?

Mvg Bjorn

Re: Trambaantje met Arduino?

Geplaatst: 22 mei 2022 09:55
door who2010
@BjornOl49 ,

Perfect, deze update werkt precies zoals verwacht, bedankt voor het aanpassen.
Ik wil de afremtijd nog wat verkorten en denk dat te doen door de waarde 255 te verlagen naar b.v. 120 in:

case stAfremmen:
for(int i = 0; i < 250; i++)

of moet de delay van 10 verlaagd worden naar 5 in:

case stAfremmen:
for(int i = 0; i < 250; i++)
{
iRijSpanning--; //Van 250 naar 0 in stapjes met 10 ms tussenpozen
analogWrite(pRijspanning, iRijSpanning); //Huidige rijstap naar PWM-pin wegschrijven
delay(10);
}


ook wil ik de wachttijd verlengen naar 5 seconden, ik denk door de delay van 2000 naar 5000 op te hogen in:

setDirection(bRichting); //Richting naar pinnen wegschrijven
delay(2000); //wacht 2 seconden

correct?

Re: Trambaantje met Arduino?

Geplaatst: 22 mei 2022 11:46
door BjornOl49
Hi @who2010,

de afremtijd kun je inderdaad verlagen door de delay van 10 naar bijvoorbeeld 5 aan te passen. De wachttijd pas je inderdaad aan door de 2000 (ms) op te hogen naar 5000.

Mvg Bjorn

Re: Trambaantje met Arduino?

Geplaatst: 22 mei 2022 12:46
door who2010
dank je, ik ga verder prutsen ;)

Re: Trambaantje met Arduino?

Geplaatst: 22 mei 2022 20:35
door who2010
Het prutsen is prima gelukt, bedankt @BjornOl49 voor je support.

Re: Trambaantje met Arduino?

Geplaatst: 23 mei 2022 18:27
door maarten

Opmerking moderator

De vraag van Willem over zijn Kato tram is verplaatst.

Re: Trambaantje met Arduino?

Geplaatst: 23 mei 2022 20:54
door shoven
who2010 schreef: 22 mei 2022 20:35 Het prutsen is prima gelukt, bedankt @BjornOl49 voor je support.
Dat klinkt als tijd voor een filmpje. :mrgreen: