Forums LR PRESSE

Où il est question de trains, petits et grands

  • Advertisement

Boucle de retournement: contrôle automatique, universelle

Les commandes numériques du réseau (appelées à tort "digitales") sont l'avenir du train miniature. Mais comment choisir, comment sauter le pas, avec ou sans ordinateur ? Autant de questions dont les réponses se trouvent dans l'expérience des uns et des autres…

Modérateur: MOD

question sémantique

Publié: Mar 09 Mai 2017, 15:22 
Comment en français s'appèle une portion de rails qui se retourne en lui-même? C.à.d. pour laisser faire des trains demi-tour?
Avatar de l’utilisateur
Erik84750
 
Messages: 14
Inscrit le: Mer 26 Avr 2017, 06:37
Localisation: Gand
Âge: 56
Echelle pratiquée: HO.usa
Prénom: Erik

Re: question sémantique

Publié: Mar 09 Mai 2017, 15:35 
Erik84750 a écrit:Comment en français s'appèle une portion de rails qui se retourne en lui-même? C.à.d. pour laisser faire des trains demi-tour?


Une boucle de retournement.

Par contre, ta question ne relève pas de la sémantique. Pour cela il aurait fallu poser la question : que signifie "boucle de retournement"
Avatar de l’utilisateur
JPGO
SOUMIS À APPROBATION
 
Messages: 1083
Inscrit le: Jeu 30 Jan 2014, 12:29
Âge: 63
Echelle pratiquée: N

Re: question sémantique

Publié: Mar 09 Mai 2017, 15:51 
Ah merci! Le français, ça s'apprend même pour flamingants ;)
Avatar de l’utilisateur
Erik84750
 
Messages: 14
Inscrit le: Mer 26 Avr 2017, 06:37
Localisation: Gand
Âge: 56
Echelle pratiquée: HO.usa
Prénom: Erik

Boucle de retournement: contrôle automatique, universelle

Publié: Mar 09 Mai 2017, 16:10 
Bonjour,

la dernière semaine je me suis mis à un projet de contrôle automatique, universelle, bidirectionelle et bas-prix pour toutes sortes de boucles de retournement.

Mon système est conçu pour des boucles qui peuvent prendre n'importe quelle forme ou configuration. Il suffit de 3 détecteurs de présence (n'importe quoi, tant qu'il donne signal BAS sans détection et signal HAUT avec détection -mais même cela peut être inversé si le software que j'ai écris est ajusté un petit peu- et un microcontroleur de 2 euros..

Les boucles dans ma configuration:
- peuvent être accédés des deux côtés
- ont une longeur de une fois le train le plus long
- peuvent inclure des doubles croisements, retour même rail,..
- peuvent accomoder n'importe quelle longeur de train tant que le train le plus long est moindre que la longeur du boucle
- permettent les trains de continuer sans s'arrêter dans le boucle
- permettent les trains de faire marche arrière même si complètement entré dans le boucle
- fonctionnent sans utiliser une sorte de détection de court-circuit

Une characteristique de tous boucles de retournement est qu'au retour il présente un court-circuit due aux polarités (et en DCC: les phases) inversés.

Le but c'est d'automatiser tout ça avec un système conçu pour pouvoir être installé facilement; le software est librement disponible.

J'utilise un micorcontrolleur basé sur la série d'Atmel, et en fait n'importe quel controlleur peut être utilisé: Arduino Uno, Pro Mini, Mega, ATtiny,.. Ici j'utilise un ATtiny85 de 2 euros ou moins.
Pour détecteur on peut utiliser n'importe quoi: LDR, laser, phototransistor, détection courant, inductive, capacitive,..
Pour relais il suffit d'un double pôle "double throw"; attention: il faut choisir une module qui puisse être commandé par un microcontrolleur (consommation de moins de 50mA); ou bien il faut utiliser un relais intermédiaire (voire détails dans le url dessous.

Si vous êtes intéressé je vous invite à voire ma contribution (en anglais) sur ces forums:
http://www.trainboard.com/highball/index.php?threads/cheap-and-universal-automatic-bidirectional-reversing-loop-controller.105591/
Je ne sais pas si c'est permis mais je peux également publier le texte ici: si oui je le ferai volontiers.

Mon français n'est pas suffisant pour traduire tout en français, j'espère votre compréhension?
Merci,
Erik

Image
Dernière édition par Erik84750 le Mar 09 Mai 2017, 18:19, édité 4 fois au total.
Avatar de l’utilisateur
Erik84750
 
Messages: 14
Inscrit le: Mer 26 Avr 2017, 06:37
Localisation: Gand
Âge: 56
Echelle pratiquée: HO.usa
Prénom: Erik

Re: Boucle de retournement: contrôle automatique, universell

Publié: Mar 09 Mai 2017, 16:36 
Image
xavier.geillon@orange.fr
Avatar de l’utilisateur
Xavier.Geillon
Expansif
 
Messages: 2496
Inscrit le: Jeu 23 Mars 2006, 11:18
Localisation: Gex
Âge: 43
Echelle pratiquée: I,H0,Z
Prénom: Xavier
Club: CeFeG - Genève

Re: Boucle de retournement: contrôle automatique, universell

Publié: Mar 09 Mai 2017, 18:00 
..bizarre: je ne vois pas le schéma que j'ai monté dans mon message original? Comment procéder?
Avatar de l’utilisateur
Erik84750
 
Messages: 14
Inscrit le: Mer 26 Avr 2017, 06:37
Localisation: Gand
Âge: 56
Echelle pratiquée: HO.usa
Prénom: Erik

Re: Boucle de retournement: contrôle automatique, universell

Publié: Mar 09 Mai 2017, 18:03 
Mon code:
Code: Tout sélectionner
const byte Relay = 3;
const byte LDRa = 1;
const byte LDRb = 2;
const byte LDR1 = 0;
boolean A = LOW;
int stateLDRa;
int lastStateLDRa = LOW;
int stateLDRb;
int lastStateLDRb = LOW;
int stateLDR1;
int lastStateLDR1 = LOW;
unsigned long lastDebounceTimeLDRa = 0;
unsigned long lastDebounceTimeLDRb = 0;
unsigned long lastDebounceTimeLDR1 = 0;
unsigned debounceDelay = 1000;

void setup() {
  pinMode(Relay, OUTPUT); //setting the pin mode to Output
  digitalWrite(Relay, LOW);
}

void loop() {
  // read LDRa and debounce
  int readingLDRa = digitalRead(LDRa);
  //digitalWrite(ledPin, readingLDRa);
  if (readingLDRa != lastStateLDRa) {
    lastDebounceTimeLDRa = millis();
  }
  if ((millis() - lastDebounceTimeLDRa) > debounceDelay) {
    if (readingLDRa != stateLDRa) {
      stateLDRa = readingLDRa;
    }
  }
lastStateLDRa = readingLDRa;
  // read LDRb and debounce
  int readingLDRb = digitalRead(LDRb);
  if (readingLDRb != lastStateLDRb) {
    lastDebounceTimeLDRb = millis();
  }
  if ((millis() - lastDebounceTimeLDRb) > debounceDelay) {
    if (readingLDRb != stateLDRb) {
      stateLDRb = readingLDRb;
    }
  }
lastStateLDRb = readingLDRb;
  // read LDR1 and debounce
  int readingLDR1 = digitalRead(LDR1);
  if (readingLDR1 != lastStateLDR1) {
    lastDebounceTimeLDR1 = millis();
  }
  if ((millis() - lastDebounceTimeLDR1) > debounceDelay) {
    if (readingLDR1 != stateLDR1) {
      stateLDR1 = readingLDR1;
    }
  }
lastStateLDR1 = readingLDR1;
   if (stateLDRa == HIGH && stateLDR1 == LOW && stateLDRb == LOW)  //condition 1; clockwise
  { digitalWrite(Relay, HIGH);
    A = HIGH;
  }
  if (stateLDRa == LOW && stateLDR1 == HIGH && stateLDRb == LOW && A == HIGH) //condition 2; clockwise
  { digitalWrite(Relay, LOW);
  }
  if (stateLDRa == LOW && stateLDR1 == LOW && stateLDRb == HIGH) //condition 3; clockwise and counterclockwise: set relay low
  { digitalWrite(Relay, LOW);
    A = LOW;
  }
  if (stateLDRa == LOW && stateLDR1 == HIGH && stateLDRb == LOW && A == LOW)  //condition 4; counterclockwise: set relay high
  { digitalWrite(Relay, HIGH);
  }
}
Avatar de l’utilisateur
Erik84750
 
Messages: 14
Inscrit le: Mer 26 Avr 2017, 06:37
Localisation: Gand
Âge: 56
Echelle pratiquée: HO.usa
Prénom: Erik

Re: Boucle de retournement: contrôle automatique, universell

Publié: Mar 09 Mai 2017, 18:06 
Bonjour Erik. Très intéressant article. Comme j'aurai quatre boucles sur mon futur réseau, je pourrais gagner 200 euros :ange: Toutefois, je devrai adapter le programme, car j'ai prévu trois voies de garage dans la boucle de retournement. Si un train quitte la boucle alors qu'un autre y entre, il faudra plus de relais. Probablement un par voie de garage. Je vais y réfléchir. En tout cas merci pour l'idée de base. :applause:
Loch & LOL !
Avatar de l’utilisateur
DeepPurple
Papotier
 
Messages: 159
Inscrit le: Ven 04 Nov 2016, 20:36
Localisation: Bruxelles
Âge: 62
Echelle pratiquée: N/DCC

Re: Boucle de retournement: contrôle automatique, universell

Publié: Mar 09 Mai 2017, 18:12 
Erik84750 a écrit:..bizarre: je ne vois pas le schéma que j'ai monté dans mon message original? Comment procéder?

Je crois que c'est parce que tu as inséré un pdf, pas une image. Je vois le PDF quand je fais "répondre". ..
Loch & LOL !
Avatar de l’utilisateur
DeepPurple
Papotier
 
Messages: 159
Inscrit le: Ven 04 Nov 2016, 20:36
Localisation: Bruxelles
Âge: 62
Echelle pratiquée: N/DCC

Re: Boucle de retournement: contrôle automatique, universell

Publié: Mar 09 Mai 2017, 18:19 
DeepPurple a écrit:
Erik84750 a écrit:..bizarre: je ne vois pas le schéma que j'ai monté dans mon message original? Comment procéder?

Je crois que c'est parce que tu as inséré un pdf, pas une image. Je vois le PDF quand je fais "répondre". ..


Merci! Résolu.
Avatar de l’utilisateur
Erik84750
 
Messages: 14
Inscrit le: Mer 26 Avr 2017, 06:37
Localisation: Gand
Âge: 56
Echelle pratiquée: HO.usa
Prénom: Erik

Re: Boucle de retournement: contrôle automatique, universell

Publié: Mar 09 Mai 2017, 18:50 
DeepPurple a écrit:Bonjour Erik. Très intéressant article. Comme j'aurai quatre boucles sur mon futur réseau, je pourrais gagner 200 euros :ange: Toutefois, je devrai adapter le programme, car j'ai prévu trois voies de garage dans la boucle de retournement. Si un train quitte la boucle alors qu'un autre y entre, il faudra plus de relais. Probablement un par voie de garage. Je vais y réfléchir. En tout cas merci pour l'idée de base. :applause:


Au cas oú tu gares un train sur une voie qui se trouve dans le loop je pense qu'il serait le plus simple d'installer DET-1 là oú le train à garer ne soit pas détecté par DET-1. Ensuite utiliser un DET-2 dans la première voie V1 de garage dans le loop. Quand un train T1 vient dans le loop à se garer dans V1 il est détecté par DET-2 et non par DET-1. A mon avis il est possible d'écrire un petit extra dans le software pour faire une sorte de "reset" de DET-A, mais en mémorisant que DET-2 était activé.
Je vais y réfléchir les semaines à venir.
Intéressante idée à élaborer en software.

EDIT: en fait, la façon que mon code est écrit, il n'y a pas d'importance au nombre de trains qui entrent dans le loop prévu que le dernier train soit entré avant que DET-1 détecte un train dans le loop. Et si tu sorts tous les trains dans le même sens il n'y a rien à réprogrammer.
Avatar de l’utilisateur
Erik84750
 
Messages: 14
Inscrit le: Mer 26 Avr 2017, 06:37
Localisation: Gand
Âge: 56
Echelle pratiquée: HO.usa
Prénom: Erik

Re: question sémantique

Publié: Mar 09 Mai 2017, 19:20 
Erik84750 a écrit:Ah merci! Le français, ça s'apprend même pour flamingants ;)



Désolé pour ma blague à deux balles :)
Avatar de l’utilisateur
JPGO
SOUMIS À APPROBATION
 
Messages: 1083
Inscrit le: Jeu 30 Jan 2014, 12:29
Âge: 63
Echelle pratiquée: N

Re: Boucle de retournement: contrôle automatique, universell

Publié: Dim 14 Mai 2017, 22:47 
DeepPurple a écrit:Bonjour Erik. Très intéressant article. Comme j'aurai quatre boucles sur mon futur réseau, je pourrais gagner 200 euros :ange: Toutefois, je devrai adapter le programme, car j'ai prévu trois voies de garage dans la boucle de retournement. Si un train quitte la boucle alors qu'un autre y entre, il faudra plus de relais. Probablement un par voie de garage. Je vais y réfléchir. En tout cas merci pour l'idée de base. :applause:

Bonjour DeepPurple, je dois vous donner un update.
Sur d'autres forums j'ai appris quelques choses qui m'ont conduit à changer la conception initiale:
1. mon schéma permet les trains à entrer dans n'importe quel sens, mais il doivent continuer dans la direction d'intrée.
2. mon schéma dépent trop fort de la position "correcte" des détecteurs DET-a et DET-b; risque de court-circuits..
3. problèmes quand on introduit plusieurs trains dns le boucle: risque de confusion dans la position du relais.

Pour résoudre j'ai décidé à l'introduction de 4 au lieu de 3 détecteurs, plus en option un 5ème qui sert comme détecteur d'occupation du boucle.

Principe: 2 détecteurs de chaque côté du boucle, l'un devantg l'isolation, l'autre directement à l'intérieur.

Cela permettra:
1. de faire entrer un train d'un côté, et une fois entré de le laisser faire marche arrière et sortir du boucle d'oú il vient
2. de faire entrer un nombre illimité de trains
3. de faire stationer un nombre illimité de trains dans le boucle

Aussi: pour détection de présence je viens de découvrir un schéma qui fonctione avec détection optique passive, donc sans émetteur et qui n'est pas susceptible de la lumière ambiante. Je l'ai testé et je suis stupéfait des résultats: sans aucune calibration il détecte la présence d'un train aussi bien dans la lumière diminuée qu'à pleine luminosité;
Le principe c'est qu'il y a deux LDR: l'un pour mesurer la lumière ambiante, l'autre à faire la détection propre et de comparer les deux.
http://www.members.optusnet.com.au/satr/LDRdetect.htm
http://www.qtutrains.com/LDR.html
http://home.cogeco.ca/~rpaisley4/xComp555photo.html
Ce dernier, voire "Using the 555 timer with photocells", et remplacer R1 par un LDR.

Je construit un détecteur pour moins que 1 euro!! Le 555 me coûte 10c/pce, et les LDR j'ai 50pcs pour 1 euro, délivré maison: voire AliExpress.

Je publie tout dès que je suis prêt avec les schémas, programmation, etc..
Avatar de l’utilisateur
Erik84750
 
Messages: 14
Inscrit le: Mer 26 Avr 2017, 06:37
Localisation: Gand
Âge: 56
Echelle pratiquée: HO.usa
Prénom: Erik

Re: Boucle de retournement: contrôle automatique, universell

Publié: Lun 15 Mai 2017, 01:42 
Bonjour Erik,

Merci pour la mise à jour. J'ai un peu suivi les houleuses discussions en néerlandais. Voilà un sujet qui déchaîne les passions. :ange3: La version à quatre détecteurs doit effectivement être plus sûre. Pour la détection, je vais utiliser la détection par circuit de voie, comme pour tous mes futurs cantons. Quant à la logique, je me demande si je ne vais pas la confier à une action en RocRail...
Loch & LOL !
Avatar de l’utilisateur
DeepPurple
Papotier
 
Messages: 159
Inscrit le: Ven 04 Nov 2016, 20:36
Localisation: Bruxelles
Âge: 62
Echelle pratiquée: N/DCC


Retour vers Numérique & Digital

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Stf2910 et 10 invité(s)