Pendelbaan met DCC-EX en EXRAIL

Plaats reactie
Gebruikersavatar

Onderwerp starter
Momfer
Berichten: 300
Lid geworden op: 29 okt 2020 13:13
Locatie: Zwolle

Pendelbaan met DCC-EX en EXRAIL

Bericht door Momfer »

In de wekelijkse update van het DCC-EX Discord kanaal is ditmaal een voorbeeld geplaatst van een eenvoudige pendelbaan. Aangezien dit onderwerp regelmatig op dit forum wordt besproken, leek het me nuttig om het (ver-/hertaald) hier te plaatsen:

In deze update wordt één van de functies benadrukt die zijn toegevoegd aan DCC++EX en het heet EX-Rail. Het gebruik ervan is eenvoudig, aangezien er alleen een bestand met de naam myAutomation.h hoeft aan te maken in dezelfde map als de bestanden van de centrale. Wanneer DCC++EX opstart, zoekt het naar die bestandsnaam en als het vindt, voert het de daar gevonden opdrachten uit.

Laten we eens kijken naar het maken van een commandoset voor het heen en weer bewegen van een trein (vzv DCC decoder) met behulp van 2 IR-sensoren, die zijn aangesloten op pinnen 31 en 33 van een Arduino Mega.

Code: Selecteer alles

SEQUENCE (10)  // Naam van de procedure
  DELAYRANDOM (10000,15000) // Willekeurige vertraging tussen 10 en 15 seconden
  SETLOCO(555)              // Selecteer de lok met DCC-adres, aanpassen voor eigen toepassing
  FON(0)                    // Schakelt frontsein aan
  FWD(75)                   // Vooruit met DCC-snelheid 75 (waarde mag 0-127 zijn)
  AT(31)                    // Als de sensor op pin 31 geactiveerd wordt, dan....
  STOP                      // .....stopt de motor 
  DELAYRANDOM (10000,15000) // Willekeurige vertraging tussen 10 en 15 seconden
  REV(75)                   // Achteruit bij DCC-snelheid 75 (0-127)
  AT(33)                    // Als de sensor op pin 33 geactiveerd wordt, dan....
  STOP                      // .....stopt de motor.
  FOLLOW (10)               // Vervolg met SEQUENCE (10) 
Het bovenstaande voorbeeld is ook te vinden op de DCC++EX website. Het is mogelijk om seinen en zelfs geluid via een MP-speler toe te voegen. Dit is een voorbeeld van de vele mogelijkheden van DCC++EX.

Hieronder staat het schema van de aansluitingen welke horen bij het bovenstaande EX-RAIL voorbeeld:

Afbeelding

En dat ziet er dan zo uit:


BRON: Discord Kanaal DCC-EX


Groet,
Rico (momfer)

Centrale: DCC++ Ex | Arduino Mega 2560 | Deek-Robot Motorshield
Besturing: EXRAIL | Traintastic | RocRail | Engine Driver | DecoderPro
Rails: Minitrix / Fleischmann Piccolo
En hier vind je de bouw van mijn kerstbaan en Starten met EXRAIL
Gebruikersavatar

Onderwerp starter
Momfer
Berichten: 300
Lid geworden op: 29 okt 2020 13:13
Locatie: Zwolle

Pendelbaan met DCC-EX en EXRAIL, 3 individuele locs

Bericht door Momfer »

DCC-EX EXRAIL voorbeeld 7



Een Arduino MEGA met DCC-EX, een EXRAIL script, 4 bezetmelders (Okkie 8) en 4 blokken.

De Arduino stuurt alles zelf aan, dus geen computer, geen throttles (bv Engine Driver of WiThrottle).

Laatst gewijzigd door Momfer op 21 jun 2022 20:35, 2 keer totaal gewijzigd.


Gebruikersavatar

maarten
Moderator
Berichten: 3226
Lid geworden op: 07 nov 2010 20:05
Locatie: Oosterhout

Re: Pendelbaan met DCC-EX en EXRAIL

Bericht door maarten »

Ziet er wel interessant uit voor een diorama/minibaantje!


Groeten,
Maarten

Onder andere bouwer van Rock's End en NV De Vleeshouwer. Nu weer bezig met Polar Express.
Gebruikersavatar

Onderwerp starter
Momfer
Berichten: 300
Lid geworden op: 29 okt 2020 13:13
Locatie: Zwolle

Re: Pendelbaan met DCC-EX en EXRAIL

Bericht door Momfer »

Daar is het zeker goed voor te gebruiken. Mijn kerstbaantje is hier ook een voorbeeld van.

Er wordt steeds meer mogelijk gemaakt in EXRAIL, waardoor het nog beter ingeregeld kan worden, inclusief wissels, seinen, etc.


Groet,
Rico (momfer)

Centrale: DCC++ Ex | Arduino Mega 2560 | Deek-Robot Motorshield
Besturing: EXRAIL | Traintastic | RocRail | Engine Driver | DecoderPro
Rails: Minitrix / Fleischmann Piccolo
En hier vind je de bouw van mijn kerstbaan en Starten met EXRAIL
Gebruikersavatar

Onderwerp starter
Momfer
Berichten: 300
Lid geworden op: 29 okt 2020 13:13
Locatie: Zwolle

Re: Pendelbaan met DCC-EX en EXRAIL

Bericht door Momfer »

Opzet

Afbeelding

De wissels worden (nog) niet bediend, ze worden dus opengereden.

EXRAIL Script

Code: Selecteer alles

/**
 *  EXRAIL Voorbeeld 7: Rijden met meerdere, onderling afhankelijke, treinen
 *  Losjes gebaseerd op: https://tinyurl.com/EXRAIL-Example-7 
 *  Vid 1: https://youtu.be/BgbBqUjDQhE
 *  Vid 2: https://youtu.be/WlRzKQ4P3l0
 *
 *                                ←
 *                      ┌─[ BLOCK 3 (S25) ]──┐
 *                      │                    │
 *  ├─[ BLOCK 1 (S22) ]─┴─[ BLOCK 2 (S23) ]──┴──[ BLOCK 4 (S24) ]─┤
 *            ↔         T1        →          T2         ↔
 */
 
/**
 * Wachten tot DCC-EX volledig is opgestart
 */
DELAY(15000)

/**
 * Reserveer de blokken waarin de lokomotieven worden geplaatst
 */
RESERVE(1) PRINT("RESERVED BLOCK 1")
RESERVE(3) PRINT("RESERVED BLOCK 3")
RESERVE(4) PRINT("RESERVED BLOCK 4")

/**
 * Selecteer lok, zet frontsein aan, stuur naar naar de juiste sequence 
 */
PRINT("Plaats LOK18 in BLOK 1, LOK 10 in BLOK 4, LOK 218 in BLOK 3")
SETLOCO(18)  FON(0) SENDLOCO(18, 12) PRINT("SETLOCO(18)  FON(0) SENDLOCO(18, 12)") 
SETLOCO(10)  FON(0) SENDLOCO(10, 43) PRINT("SETLOCO(10)  FON(0) SENDLOCO(10, 43)")
SETLOCO(218) FON(0) SENDLOCO(218,31) PRINT("SETLOCO(218) FON(0) SENDLOCO(218,31)")

/**
 * Pauzeer EXRAIL en wacht op RESUME om te starten
 * Dat kan vanuit de Serial Monitor of via de ROUTE optie van Engine Driver/WiThrottle
 */
PRINT("UItvoer gepauseerd (PAUSE), initialisatie voltooid (DONE)!")
PRINT("</RESUME> in Serial Monitor om de SEQUENCES te startemn")
PRINT("of gebruik de ROUTE functie van Engine Driver / WiThrottle,")
PAUSE 
DONE 

/**
 * Van Block 1 to Block 2
 */
SEQUENCE(12)
  RESERVE(2)
  DELAYRANDOM(2000,5000) // Willekeurige wachttijd van 2-5 seconden
  FWD(30)
  AT(23) // Sensor S23 == Block BK2
  DELAY(500)
  STOP
  FREE(1)
  DELAY(5000)
  FOLLOW(24) // ga vervolgens naar sequence 24
DONE

/**
 * From Block 2 to Block 4
 */
SEQUENCE(24)
  RESERVE(4)
  DELAYRANDOM(2000,5000) // Willekeurige wachttijd van 2-5 seconden
  FWD(35)
  AT(24) // Sensor S24 == Block BK4
  DELAY(650) 
  STOP
  DELAY(5000)
  FREE(2)
  FOLLOW(43) // ga vervolgens naar sequence 43
DONE

/**
 * From Block 4 to Block 3
 */
SEQUENCE(43)
  RESERVE(3)
  DELAYRANDOM(2000,5000) // Willekeurige wachttijd van 2-5 seconden
  REV(30)
  AT(25) // Sensor S25 == Block BK3
  DELAY(500)
  STOP
  DELAY(5000)
  FREE(4)
  FOLLOW(31) //  ga vervolgens naar sequence 31
DONE

/**
 * From Block 3 to Block 1
 */
SEQUENCE(31)
  RESERVE(1)
  DELAYRANDOM(2000,5000) // Willekeurige wachttijd van 2-5 seconden
  REV(32)
  AT(22) // Sensor S22 == Block BK1
  DELAY(800)
  STOP
  DELAY(5000)
  FREE(3)
  FOLLOW(12) //  ga vervolgens naar sequence 12
DONE

/**
 * Een Rooster van de gebruikte loks, tbv Engine Driver of WiThrottle
 */
ROSTER(10,"V200","Light")
ROSTER(18,"BR218-RED","Light")
ROSTER(218,"BR218-OCEAN","Light")

/* 
 *  Maakt PAUSE en RESUME mogelijk in 
 *       Engine Driver / WiThrottle
 */

AUTOMATION(98, "PAUSE the SEQUENCES")
 PAUSE
 PRINT("EXRAIL SEQUENCES RESUMED.")
 DONE

AUTOMATION(99, "RESUME the SEQUENCES")
 RESUME
 PRINT("EXRAIL SEQUENCES RESUMED.")
 DONE



Groet,
Rico (momfer)

Centrale: DCC++ Ex | Arduino Mega 2560 | Deek-Robot Motorshield
Besturing: EXRAIL | Traintastic | RocRail | Engine Driver | DecoderPro
Rails: Minitrix / Fleischmann Piccolo
En hier vind je de bouw van mijn kerstbaan en Starten met EXRAIL
Plaats reactie