Trambaantje met Arduino?
-
Onderwerp starter - Berichten: 202
- Lid geworden op: 25 jun 2020 21:19
- Locatie: Nieuwerkerk aan den IJssel
Trambaantje met Arduino?
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.
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.
Mvg, Willem
Z21_start met WiFi
Z21_start met WiFi
Re: Trambaantje met Arduino?
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
Groet,
Paul
Schäßburg an der Kokel
Re: Trambaantje met Arduino?
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?
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!
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!
Groet,
Rico (momfer)
Centrale: DCC-Ex | Arduino Mega + Motor shield
Besturing: EXRAIL | Traintastic | RocRail | Engine Driver | DecoderPro
Rails: Minitrix / Fleischmann Piccolo
En hier vind je de bouw van mijn kerstbaan en Starten met EXRAIL
Rico (momfer)
Centrale: DCC-Ex | Arduino Mega + Motor shield
Besturing: EXRAIL | Traintastic | RocRail | Engine Driver | DecoderPro
Rails: Minitrix / Fleischmann Piccolo
En hier vind je de bouw van mijn kerstbaan en Starten met EXRAIL
-
- Berichten: 5336
- Lid geworden op: 10 okt 2010 09:57
- Locatie: Arnheim(Niederlande)
Re: Trambaantje met Arduino?
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
"Demoteam Imherloher Bahnhof, das demoteam für Ihre Modellspur Messe"
Modelbouw hoeft niet duur, moeilijk of ingewikkeld te zijn, het is een kwestie van durven doen en leren van niets iets te maken.
Modelbouw hoeft niet duur, moeilijk of ingewikkeld te zijn, het is een kwestie van durven doen en leren van niets iets te maken.
-
- Berichten: 794
- Lid geworden op: 16 nov 2014 13:12
- Locatie: Graauw
Re: Trambaantje met Arduino?
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?
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?
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
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?
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:
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
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:
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?
Bedankt voor deze uitleg @Momfer! En ook @BjornOl49 voor het voorbeeld!
-
Onderwerp starter - Berichten: 202
- Lid geworden op: 25 jun 2020 21:19
- Locatie: Nieuwerkerk aan den IJssel
Re: Trambaantje met Arduino?
@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,
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,
Mvg, Willem
Z21_start met WiFi
Z21_start met WiFi
Re: Trambaantje met Arduino?
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!
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!
-
Onderwerp starter - Berichten: 202
- Lid geworden op: 25 jun 2020 21:19
- Locatie: Nieuwerkerk aan den IJssel
Re: Trambaantje met Arduino?
@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 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?
Mvg, Willem
Z21_start met WiFi
Z21_start met WiFi
-
- Berichten: 410
- Lid geworden op: 05 jan 2021 20:06
- Locatie: Omgeving Rotterdam mijn geboorte stad
Re: Trambaantje met Arduino?
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.
Dit is te verhelpen door ergens in het programma bij sensor1 en sensor2 een ! uitroepteken te plaatsen maar ik weet niet waar.
Groeten Marcel V
Re: Trambaantje met Arduino?
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.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?
Groeten,
Edwin
Groeten,
Edwin
Huidig project (met Bob): Altenatief
Voorgaand project: een kleine N baan
Dit is mijn eerste N baan
Edwin
Huidig project (met Bob): Altenatief
Voorgaand project: een kleine N baan
Dit is mijn eerste N baan
Re: Trambaantje met Arduino?
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...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.
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!
-
Onderwerp starter - Berichten: 202
- Lid geworden op: 25 jun 2020 21:19
- Locatie: Nieuwerkerk aan den IJssel
Re: Trambaantje met Arduino?
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.
Op de monitor zie ik alleen maar 0 (of 1 als ik een sensor met de hand afscherm), ik zie geen tekst.
Mvg, Willem
Z21_start met WiFi
Z21_start met WiFi
Re: Trambaantje met Arduino?
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
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
-
Onderwerp starter - Berichten: 202
- Lid geworden op: 25 jun 2020 21:19
- Locatie: Nieuwerkerk aan den IJssel
Re: Trambaantje met Arduino?
@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?
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?
Mvg, Willem
Z21_start met WiFi
Z21_start met WiFi
Re: Trambaantje met Arduino?
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
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
-
Onderwerp starter - Berichten: 202
- Lid geworden op: 25 jun 2020 21:19
- Locatie: Nieuwerkerk aan den IJssel
Re: Trambaantje met Arduino?
Het prutsen is prima gelukt, bedankt @BjornOl49 voor je support.
Mvg, Willem
Z21_start met WiFi
Z21_start met WiFi
Re: Trambaantje met Arduino?
Opmerking moderator
De vraag van Willem over zijn Kato tram is verplaatst.
Groeten,
Maarten
Onder andere bouwer van Rock's End en NV De Vleeshouwer. Nu weer bezig met Polar Express.
Maarten
Onder andere bouwer van Rock's End en NV De Vleeshouwer. Nu weer bezig met Polar Express.
Re: Trambaantje met Arduino?
Dat klinkt als tijd voor een filmpje.
Steven
Hier is mijn baan op het forum
Hier is mijn vorige baan op het forum
Hier is mijn voor-vorige baan op het forum
>>> Filmpjes van de baan
Hier is mijn baan op het forum
Hier is mijn vorige baan op het forum
Hier is mijn voor-vorige baan op het forum
>>> Filmpjes van de baan