1/160 - Echelle N

Le Forum consacré à l'Echelle N
 
AccueilAccueil  PortailPortail  ÉvènementsÉvènements  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
N'hésitez pas à consulter le calendrier et les événements du forum pour voir les manifestations près de chez vous !
Le Deal du moment :
Code promo Nike : -25% dès 50€ ...
Voir le deal

 

 TCO du réseau SavignyExpress

Aller en bas 
+8
Jack84
ptitrainrouge
danber
ekta95
CleoN
Gabydemarseille
romilly
SavignyExpress
12 participants
Aller à la page : 1, 2  Suivant
AuteurMessage
SavignyExpress
Membre
Membre
SavignyExpress


Masculin Age : 61
Localisation : yyy
Nombre de messages : 2043
Date d'inscription : 10/10/2010

TCO du réseau SavignyExpress Empty
MessageSujet: TCO du réseau SavignyExpress   TCO du réseau SavignyExpress Icon_minitimeSam 11 Déc 2010 - 13:59

Bonjour à tous,

Voici quelques images de mon TCO:

TCO du réseau SavignyExpress Reseau10


  • À gauche: la commande des aiguillages et des alimentations de la gare.
  • À droite: 4 régulateurs traction pour: la voie à crémaillère, la zone de manoeuvre, la boucle extérieure, la boucle intérieure.
  • En haut: la commande va-et-vient pour la voie à crémaillère, repris de: http://www.ptitrain-forum.com/viewtopic.php?f=6&t=26


Les 2 TJDs et aiguillages de la gare sont couplés à l'alimentation des voies de gare. Les aiguillages de la zone manoeuvre sont commandés par une matrice de diodes.

TCO du réseau SavignyExpress Reseau11

Les circuits de commande:

  • sur la platine de gauche, un microcontrôleur Attiny2313 et les relais (petits boîtiers bleus) de commande des aiguillages,
  • sur la platine de droite, les relais de distribution des alimentations en gare et zone de manoeuvre.


TCO du réseau SavignyExpress Reseau12

Les 4 régulateurs traction, achetés sur Internet.

À votre disposition pour de plus amples informations
Revenir en haut Aller en bas
romilly
Membre
Membre
romilly


Masculin Age : 77
Localisation : Romilly-sur-seine - Aube
Nombre de messages : 3246
Date d'inscription : 18/11/2009

TCO du réseau SavignyExpress Empty
MessageSujet: Re: TCO du réseau SavignyExpress   TCO du réseau SavignyExpress Icon_minitimeSam 11 Déc 2010 - 14:52


la partie câblage des réseaux m'impressionnent toujours.

en tout cas travail propre et soigné.. Je prends de note..
Revenir en haut Aller en bas
Gabydemarseille
Membre
Membre
Gabydemarseille


Masculin Age : 75
Localisation : Marseille
Nombre de messages : 5717
Date d'inscription : 17/07/2008

TCO du réseau SavignyExpress Empty
MessageSujet: Re: TCO du réseau SavignyExpress   TCO du réseau SavignyExpress Icon_minitimeSam 11 Déc 2010 - 15:18

Bonjour
C'est du super travail j'admire
TCO du réseau SavignyExpress Bravo116
Revenir en haut Aller en bas
CleoN
Membre
Membre
CleoN


Masculin Age : 69
Localisation : 33 Bouliac
Nombre de messages : 1624
Date d'inscription : 26/11/2010

TCO du réseau SavignyExpress Empty
MessageSujet: Re: TCO du réseau SavignyExpress   TCO du réseau SavignyExpress Icon_minitimeSam 11 Déc 2010 - 18:13

Bravo, travail très propre.

Peux tu nous dire les fonctions réalisées avec le micro-contrôleur?


Amicalement
Revenir en haut Aller en bas
ekta95
Membre
Membre
ekta95


Masculin Age : 78
Localisation : Coteaux d'Argenteuil
Nombre de messages : 1019
Date d'inscription : 06/10/2009

TCO du réseau SavignyExpress Empty
MessageSujet: Re: TCO du réseau SavignyExpress   TCO du réseau SavignyExpress Icon_minitimeLun 13 Déc 2010 - 16:44

romilly a écrit:

la partie câblage des réseaux m'impressionnent toujours.

en tout cas travail propre et soigné.. Je prends de note..

C'est vrai que c'est très impressionnant.
Moi en plus je trouve que c'est visuellement beau, très beau I love you
Chapeau cheers
Revenir en haut Aller en bas
Invité
Invité




TCO du réseau SavignyExpress Empty
MessageSujet: Re: TCO du réseau SavignyExpress   TCO du réseau SavignyExpress Icon_minitimeLun 13 Déc 2010 - 17:24

bravo,travail de pro.......
sympa ces régulateurs...... Idea
Revenir en haut Aller en bas
SavignyExpress
Membre
Membre
SavignyExpress


Masculin Age : 61
Localisation : yyy
Nombre de messages : 2043
Date d'inscription : 10/10/2010

TCO du réseau SavignyExpress Empty
MessageSujet: Re: TCO du réseau SavignyExpress   TCO du réseau SavignyExpress Icon_minitimeLun 13 Déc 2010 - 20:17

CleoN a écrit:
Peux tu nous dire les fonctions réalisées avec le micro-contrôleur?

Mon réseau comporte 3 régulateurs de traction indépendants représentés dans les schémas ci-après par les couleurs rouge, bleue et jaune. Les régulateurs rouge et bleu alimentent les circuits intérieur et extérieurs. Le régulateur jaune peut alimenter la zone de manoeuvre.

Le microcontrôleur gère l'alimentation des voies de gare (1, 2 et 3), des zones d'isolation à gauche et à droite des voies 1 et 2; ainsi que les TJD1 & 2 et AIG1 & 2.

Le système peut prendre 6 états différents.

ÉtatDescription
TCO du réseau SavignyExpress Tco110État initial au démarrage du microcontrôleur.
TCO du réseau SavignyExpress Tco210L'alimentation rouge est sur la voie 1.
TCO du réseau SavignyExpress Tco310L'alimentation bleue est sur la voie 2, l'alimentation jaune est sur la zone de manoeuvre. On voit que la zone manoeuvre est isolée du reste du réseau pour éviter les collisions. Les trains arrivant du circuit intérieur sont bloqués à l'entrée en gare.
TCO du réseau SavignyExpress Tco410La même chose, mais cette fois l'alimentation bleue est sur la voie 1.
TCO du réseau SavignyExpress Tco510Tandis que la zone de manoeuvre est toujours alimentée par le régulateur jaune, la voie 2 est alimentée par le régulateur rouge.
TCO du réseau SavignyExpress Tco610La voie 1 peut aussi être alimentée par le régulateur rouge.

À noter que ce système ne détecte pas les trains, ses entrées sont les boutons poussoir du TCO, ses sorties des relais et des LEDs sur le TCO.

Les boutons poussoirs rouge, bleue et jaune sur le TCO permettent de choisir l'alimentation des voies 1, 2 et 3. TDJ1 & 2, AIG1 & 2 sont commandés en conséquence. Pour éviter de tirer trop de courant de l'alimentation accessoire, le microcontrôleur commande d'abord les TDJ, puis les AIG.

Les LEDs rouge, bleue et jaune représentent les états ci-dessus.

Le développement du programme du microcontrôleur se fait sous Linux: il est écrit en C, compilé avec avr-gcc et téléchargé dans le microcontrôleur avec avrdude.

Les autres aiguillages sont commandés par les boutons poussoir blanc. Les LEDs vertes indiquent la position des aiguillages en tirant parti des contacts de fin de course.

L'alimentation des voies de garage est simplement contrôlée via les aiguillages (fonction "stop" activée en enlevant les contacts entre rails et coeur, cf. doc. Minitrix).

TCO du réseau SavignyExpress Reseau10


Dernière édition par SavignyExpress le Jeu 12 Mai 2011 - 12:29, édité 2 fois
Revenir en haut Aller en bas
danber
Membre
danber


Masculin Age : 81
Localisation : aurillac
Nombre de messages : 70
Date d'inscription : 25/10/2009

TCO du réseau SavignyExpress Empty
MessageSujet: Re: TCO du réseau SavignyExpress   TCO du réseau SavignyExpress Icon_minitimeMer 15 Déc 2010 - 18:36

pas mal ce TCO, cela donne des idées.
merci et bravo
Revenir en haut Aller en bas
SavignyExpress
Membre
Membre
SavignyExpress


Masculin Age : 61
Localisation : yyy
Nombre de messages : 2043
Date d'inscription : 10/10/2010

TCO du réseau SavignyExpress Empty
MessageSujet: Re: TCO du réseau SavignyExpress   TCO du réseau SavignyExpress Icon_minitimeVen 8 Juil 2011 - 12:40

Voici le code source du programme qui gère mon TCO. Les conventions de noms sont les suivantes:

  • 1, 2, 3: numéros des voies en partant de la gare.
  • A, B: alimentations traction du circuit intérieur et du circuit extérieur. En rouge, respectivement bleu sur le TCO. Couleurs correspodant aussi aux boutons poussoir.
  • C: alimentation traction de la zone marchandise, peut être commutée avec l'alimentation B. En jaune sur la description des états du TCO. Couleur correspondant aussi au bouton poussoir.
  • B_A1, B_A2, etc: pressions sur le poussoir A1, A2, etc. Le bouton A1 alimente la voie 1 avec le circuit A (rouge) et ainsi de suite.
  • Les états sont nommés: AXB, XAB, AXC, etc. Il s'agit des états possibles des 3 voies de gare:

    • AXB: voie 1 alimentée par A, voie 2 non alimentée, voie 3 alimentée par B.
    • XAB: voie 1 non alimentée, voie 2 alimentée par A, voie 3 alimentée par B.
    • AXC: voie 1 alimentée par A, voie 2 non alimentée, voie 3 alimentée par C.

  • La commande des aiguillages se fait par la fonction CommanderTdjAig dont le but est de commander séparément les TJDs et aiguillages de la gare, ce qui évite de tirer trop de courant de l'alimentation.
  • Il y a aussi quelques fonctions qui ne servent qu'à simuler le programme en le faisant tourner sur PC: GetTexteEvt, GetTexteEtat, GetTexteAiguillage, AfficherEtat,



Code:

//
//  Maquette.c
//
//  Programme de contrôle de la maquette "Savigny Express".
//
//  2009.09.11  MHP  Création.
//  2009.10.06  MHP  Simplificatin de la machine d'états.
//  2009.10.10  MHP  Début des tests avec les E/S de l'AVR.
//  2009.10.14  MHP  Commande momentanée des aiguillages.
//  2009.11.04  MHP  Debug amélioré de la commande des aiguillages.
//  2009.11.08  MHP  Ajout de la commande du bit bSela12, oubli !
//  2010.02.11  MHP  Correction des reactions a l'evenement C3.
//
//  Directives de compilation: PC ou AVR.
//

#ifdef AVR
#include <inttypes.h>
#include <avr/io.h>

#define F_CPU 1000000UL
#include <util/delay.h>

// Période en ms.
#define  PERIODE  50

// Boutons poussoirs.
#define BOUTONS  PINB
#define B_A1  _BV(PD6)
#define  B_A2  _BV(PB0)
#define B_B1  _BV(PB1)
#define B_B2  _BV(PB2)
#define  B_B3  _BV(PB3)
#define  B_C3  _BV(PB4)
#define P_A1  (!(PIND & B_A1))
#define P_A2  (!(PINB & B_A2))
#define P_B1  (!(PINB & B_B1))
#define P_B2  (!(PINB & B_B2))
#define P_B3  (!(PINB & B_B3))
#define P_C3  (!(PINB & B_C3))

// Sorties.
#define  SetTJD_D  (PORTD |= _BV(PD0))
#define ClrTJD_D  (PORTD &= ~_BV(PD0))
#define  SetTJD_N  (PORTD |= _BV(PD1))
#define  ClrTJD_N  (PORTD &= ~_BV(PD1))

#define SetAIG_D  (PORTA |= _BV(PA1))
#define ClrAIG_D  (PORTA &= ~_BV(PA1))
#define  SetAIG_N  (PORTA |= _BV(PA0))
#define ClrAIG_N  (PORTA &= ~_BV(PA0))

#define SetSelAB  (PORTD |= _BV(PD2))
#define ClrSelAB  (PORTD &= ~_BV(PD2))
#define SetSel12  (PORTD |= _BV(PD3))
#define ClrSel12  (PORTD &= ~_BV(PD3))
#define SetSel3      (PORTD |= _BV(PD4))
#define ClrSel3      (PORTD &= ~_BV(PD4))
#define  SetSela12  (PORTD |= _BV(PD5))
#define  ClrSela12  (PORTD &= ~_BV(PD5))

// Configuration des ports
#define CONFIG_DDRA  (_BV(PA0)|_BV(PA1))

#define  CONFIG_DDRB  ~(B_A2|B_B1|B_B2|B_B3|B_C3);
#define CONFIG_PULLUPB  (B_A2|B_B1|B_B2|B_B3|B_C3);

#define CONFIG_DDRD  ~(B_A1)
#define CONFIG_PULLUPD  B_A1
#endif

#ifdef PC
#include  <stdio.h>
#endif

#define  NB_PERIODES  4

// Etats: nommés à partir de l'état
// des voies de gares 1, 2 et 3.
enum tEtat {AXB, XAB, AXC, XAC, BXC, XBC};
enum tEtat eEtat;

// Evénements: nommés à partir de la source à connecter à chaque voie.
enum tEvt {A1, B1, A2, B2, B3, C3};

// Commandes des relais.
short bSelAB;
short bSel12;
short bSel3;
short bSela12;

// Positions et commandes des aiguillages.
enum tPosition {NORMAL, DEVIE};
enum tPosition ePosJonctions;
enum tPosition ePosAiguillages;

enum tCommandeAig {IDLE, TJD, AIG} eCommandeAig;
short nNbPeriodes;

// Pour compter les tests en mode PC.
#ifdef PC
int nTest;
#endif


char *GetTexteEvt(enum tEvt xEvt)
{
  #ifdef PC
  switch(xEvt)
  {
      case A1: return("A1");
      case B1: return("B1");
      case A2: return("A2");
      case B2: return("B2");
      case B3: return("B3");
      case C3: return("C3");
  } // switch
  #endif
} // GetTexteEvt


char *GetTexteEtat(enum tEtat xEtat, short xVoie)
{
  #ifdef PC
  switch(xEtat)
  {
      case AXB:
        if(xVoie == 1)
            return("A");
        if(xVoie == 2)
            return("X");
        if(xVoie == 3)
            return("B");

      case XAB:
        if(xVoie == 1)
            return("X");
        if(xVoie == 2)
            return("A");
        if(xVoie == 3)
            return("B");
       
      case AXC:
        if(xVoie == 1)
            return("A");
        if(xVoie == 2)
            return("X");
        if(xVoie == 3)
            return("C");

      case XAC:
        if(xVoie == 1)
            return("X");
        if(xVoie == 2)
            return("A");
        if(xVoie == 3)
            return("C");

      case BXC:
        if(xVoie == 1)
            return("B");
        if(xVoie == 2)
            return("X");
        if(xVoie == 3)
            return("C");

      case XBC:
        if(xVoie == 1)
            return("X");
        if(xVoie == 2)
            return("B");
        if(xVoie == 3)
            return("C");
  } // switch
  #endif
} // GetTexteEtat


char *GetTexteAiguillage(enum tPosition xPos)
{
  #ifdef PC
  switch (xPos)
  {
      case NORMAL:  return("N");
      case DEVIE:  return("D");
  } // switch
  #endif
} // GetTexteAiguillage


void AfficherEtat(void)
{
#ifdef PC
#define V1 GetTexteEtat(eEtat, 1)
#define V2 GetTexteEtat(eEtat, 2)
#define V3 GetTexteEtat(eEtat, 3)
#define J (bSelAB ? "B" : "A")
#define A (bSela12 ? "X" : "B")
#define P2 (bSelAB ? "X" : "A")
#define P3 (bSel3 ? "X" : "B")
#define PJ GetTexteAiguillage(ePosJonctions)
#define PA GetTexteAiguillage(ePosAiguillages)
#define FA (bSelAB ? "R" : "V")
#define FB (bSela12 ? "R" : "V")

  printf("          /------%s------\\      \n", V1);
  printf("%s----%s--%s%s-------%s------%s%s--%s--%s\n", FA, P2, J, PJ, V2, PJ, J, P2, FA);
  printf("%s------%s%s%s-------%s-------%s%s%s---%s\n", FB, A, PA, P3, V3, P3, PA, A, FB);
#if 0
  printf("Rel  selAB: %d : %s\n", bSelAB,  (bSelAB  ? "B" : "A"));
  printf("Rel  sel12: %d : %s\n", bSel12,  (bSel12  ? "1" : "2"));
  printf("Rel  sel3: %d : %s\n", bSel3,  (bSel3  ? "X" : "B"));
  printf("Rel sela12: %d : %s\n", bSela12, (bSela12 ? "X" : "B"));
#endif
  printf("\n");
#endif
} // AfficherEtat


void CommanderTjdAig(void)
{
  #if 0
  printf ("CommanderTjdAig, periodes: %d\n", nNbPeriodes);
  #endif

  switch (eCommandeAig)
  {
      case TJD:
        if (nNbPeriodes == 0)
        {
            #ifdef AVR
            ClrTJD_D;
            ClrTJD_N;
            ClrAIG_D;
            ClrAIG_N;
            (ePosJonctions == DEVIE ? SetTJD_D : SetTJD_N);
            #endif

            #ifdef PC
            (ePosJonctions == DEVIE ? printf("\tTJD DEV\n") : printf("\tTJD NOR\n"));
            #endif
        }
        else if (nNbPeriodes == (NB_PERIODES / 2))
        {
            #ifdef AVR
            ClrTJD_D;
            ClrTJD_N;
            (ePosAiguillages == DEVIE ? SetAIG_D : SetAIG_N);
            #endif

            #ifdef PC
            printf("\tTJD --\n");
            (ePosAiguillages == DEVIE ? printf("\tAIG DEV\n") : printf("\tAIG NOR\n"));
            #endif

            eCommandeAig = AIG;
        } // if
        nNbPeriodes++;
      break;

      case AIG:
        if (nNbPeriodes == NB_PERIODES)
        {
            #ifdef AVR
            ClrTJD_D;
            ClrTJD_N;
            ClrAIG_D;
            ClrAIG_N;
            #endif

            eCommandeAig = IDLE;

            #ifdef PC
            printf("\tAIG --\n");
            #endif

            nNbPeriodes = 0;
        }
        else
            nNbPeriodes++;
      break;

      case IDLE:
      break;
  } // switch
} // CommanderTjdAig


void DefinirSorties(void)
{
  switch(eEtat)
  {
      case AXB:
        bSelAB  = 0;
        bSel12  = 1;
        bSela12  = 0;
        bSel3  = 0;
        ePosJonctions  = DEVIE;
        ePosAiguillages  = NORMAL;
      break;

      case XAB:
        bSelAB  = 0;
        bSel12  = 0;
        bSela12  = 0;
        bSel3  = 0;
        ePosJonctions  = NORMAL;
        ePosAiguillages  = NORMAL;
      break;

      case AXC:
        bSelAB  = 0;
        bSel12  = 1;
        bSela12  = 1;
        bSel3  = 1;
        ePosJonctions  = DEVIE;
        ePosAiguillages  = NORMAL;
      break;

      case XAC:
        bSelAB  = 0;
        bSel12  = 0;
        bSela12  = 1;
        bSel3  = 1;
        ePosJonctions  = NORMAL;
        ePosAiguillages  = NORMAL;
      break;

      case BXC:
        bSelAB  = 1;
        bSel12  = 1;
        bSela12  = 0;
        bSel3  = 1;
        ePosJonctions  = NORMAL;
        ePosAiguillages  = DEVIE;
      break;

      case XBC:
        bSelAB  = 1;
        bSel12  = 0;
        bSela12  = 0;
        bSel3  = 1;
        ePosJonctions  = DEVIE;
        ePosAiguillages  = DEVIE;
      break;
  } // switch

  #ifdef AVR
  (bSelAB ? SetSelAB : ClrSelAB);
  (bSel12 ? SetSel12 : ClrSel12);
  (bSel3 ? SetSel3 : ClrSel3);
  (bSela12 ? SetSela12 : ClrSela12);
  #endif
  eCommandeAig = TJD;
} // DefinirSorties


void SimulerTimeouts(void)
{
#ifdef PC
int nNbTimeouts;

  // On simule quelques timeouts
  for(nNbTimeouts = 0; nNbTimeouts < 8; nNbTimeouts++)
      CommanderTjdAig();
#endif
} // SimulerTimeouts


void TraiterEtat(enum tEvt xEvt)
{
enum tEtat  eProchEtat;

  #ifdef PC
  printf("%02d: Evénement: %s\n", ++nTest, GetTexteEvt(xEvt));
  #endif

  switch(eEtat)
  {
      case AXB:
        if (xEvt == A1) eProchEtat = AXB;
        if (xEvt == B1) eProchEtat = BXC;
        if (xEvt == A2) eProchEtat = XAB;
        if (xEvt == B2) eProchEtat = XBC;
        if (xEvt == B3) eProchEtat = AXB;
        if (xEvt == C3) eProchEtat = AXC;
      break;
 
      case XAB:
        if (xEvt == A1) eProchEtat = AXB;
        if (xEvt == B1) eProchEtat = BXC;
        if (xEvt == A2) eProchEtat = XAB;
        if (xEvt == B2) eProchEtat = XBC;
        if (xEvt == B3) eProchEtat = XAB;
        if (xEvt == C3) eProchEtat = XAC;
      break;

      case AXC:
        if (xEvt == A1) eProchEtat = AXC;
        if (xEvt == B1) eProchEtat = BXC;
        if (xEvt == A2) eProchEtat = XAC;
        if (xEvt == B2) eProchEtat = XBC;
        if (xEvt == B3) eProchEtat = AXB;
        if (xEvt == C3) eProchEtat = AXC;
      break;

      case XAC:
        if (xEvt == A1) eProchEtat = AXC;
        if (xEvt == B1) eProchEtat = BXC;
        if (xEvt == A2) eProchEtat = XAC;
        if (xEvt == B2) eProchEtat = XBC;
        if (xEvt == B3) eProchEtat = XAB;
        if (xEvt == C3) eProchEtat = XAC;
      break;

      case BXC:
        if (xEvt == A1) eProchEtat = AXC;
        if (xEvt == B1) eProchEtat = BXC;
        if (xEvt == A2) eProchEtat = XAC;
        if (xEvt == B2) eProchEtat = XBC;
        if (xEvt == B3) eProchEtat = AXB;
        if (xEvt == C3) eProchEtat = BXC;
      break;

      case XBC:
        if (xEvt == A1) eProchEtat = AXC;
        if (xEvt == B1) eProchEtat = BXC;
        if (xEvt == A2) eProchEtat = XAC;
        if (xEvt == B2) eProchEtat = XBC;
        if (xEvt == B3) eProchEtat = XAB;
        if (xEvt == C3) eProchEtat = XBC;
      break;

      default:
      break;
  } // switch

  // Ne changer les sorties que si l'état a changé.
  if (eProchEtat != eEtat)
  {
      eEtat = eProchEtat;
      DefinirSorties();
  } // if

  AfficherEtat();
  SimulerTimeouts();
} // TraiterEtat


void main(void)
{
  eEtat = XAB;
  eCommandeAig = IDLE;
  nNbPeriodes = 0;
  DefinirSorties();

  #ifdef AVR
  // Entrées à droite du chip avec pull-ups.
  // Sorties à gauche du chip.
  DDRA = CONFIG_DDRA;
  DDRB = CONFIG_DDRB;
  PORTB = CONFIG_PULLUPB;
  DDRD = CONFIG_DDRD;
  PORTD = CONFIG_PULLUPD;

  while (1)
  {
      if (P_A1) TraiterEtat(A1);
      if (P_A2) TraiterEtat(A2);
      if (P_B1) TraiterEtat(B1);
      if (P_B2) TraiterEtat(B2);
      if (P_B3) TraiterEtat(B3);
      if (P_C3) TraiterEtat(C3);

      CommanderTjdAig();
      _delay_ms(PERIODE);
  } // while
  #endif

  #ifdef PC
  nTest = 0;
  printf("*** Etat initial ***\n");
  AfficherEtat();
  SimulerTimeouts();

  TraiterEtat(C3);
  TraiterEtat(A1);
  TraiterEtat(B1);
  TraiterEtat(B2);
  TraiterEtat(B3);
  TraiterEtat(A1);
  TraiterEtat(B1);
  TraiterEtat(B3);
  TraiterEtat(B2);
  TraiterEtat(A1);
  TraiterEtat(A2);
  TraiterEtat(B3);
  TraiterEtat(B1);
  TraiterEtat(A2);
  TraiterEtat(B3);
  TraiterEtat(A1);
  TraiterEtat(C3);
  TraiterEtat(B3);
  TraiterEtat(A2);
  TraiterEtat(C3);
  TraiterEtat(B1);
  TraiterEtat(B3);
  #endif
} // main
Revenir en haut Aller en bas
Invité
Invité




TCO du réseau SavignyExpress Empty
MessageSujet: Re: TCO du réseau SavignyExpress   TCO du réseau SavignyExpress Icon_minitimeVen 8 Juil 2011 - 13:12

Très beau travail tant au niveau informatique que du TCO en lui-même. Wink
Revenir en haut Aller en bas
ptitrainrouge
Membre
Membre
ptitrainrouge


Masculin Age : 59
Localisation : le havre
Nombre de messages : 4182
Date d'inscription : 18/04/2010

TCO du réseau SavignyExpress Empty
MessageSujet: Re: TCO du réseau SavignyExpress   TCO du réseau SavignyExpress Icon_minitimeVen 8 Juil 2011 - 21:02

c'est super impressionnant tout cela
c'est du travail de pro TCO du réseau SavignyExpress 901388
ptitrainrouge alien
Revenir en haut Aller en bas
Jack84
membre s'en étant allé
membre s'en étant allé
Jack84


Masculin Nombre de messages : 1999
Date d'inscription : 25/07/2008

TCO du réseau SavignyExpress Empty
MessageSujet: Re: TCO du réseau SavignyExpress   TCO du réseau SavignyExpress Icon_minitimeSam 9 Juil 2011 - 10:11

BRAVO, c'est du cablâge comme j'aime.
Et ton tableau est très chouette.
king
Revenir en haut Aller en bas
Décau45
Membre
Membre
Décau45


Masculin Age : 73
Localisation : Nord Loiret, 45
Nombre de messages : 201
Date d'inscription : 18/01/2009

TCO du réseau SavignyExpress Empty
MessageSujet: Re: TCO du réseau SavignyExpress   TCO du réseau SavignyExpress Icon_minitimeMer 4 Jan 2012 - 22:50

Bonjour,

je n'avais pas encore vu. Quelle belle réalisation, et des explications très claires.

Félicitations.
Revenir en haut Aller en bas
SavignyExpress
Membre
Membre
SavignyExpress


Masculin Age : 61
Localisation : yyy
Nombre de messages : 2043
Date d'inscription : 10/10/2010

TCO du réseau SavignyExpress Empty
MessageSujet: Re: TCO du réseau SavignyExpress   TCO du réseau SavignyExpress Icon_minitimeSam 7 Jan 2012 - 16:54

Merci à tous les membres pour leurs compliments !

Tous mes meilleurs voeux pour l'année 2012.
Revenir en haut Aller en bas
Yoko
Membre
Membre



Masculin Age : 45
Localisation : La Tourlandry, 49120
Nombre de messages : 540
Date d'inscription : 07/12/2011

TCO du réseau SavignyExpress Empty
MessageSujet: Re: TCO du réseau SavignyExpress   TCO du réseau SavignyExpress Icon_minitimeSam 7 Jan 2012 - 23:17

Jolie travail, la partie électronique est bien réalisé.
Je ne sait pas qu'elle est ton métier ... mais ta prog du µP en C est bien sympas.
Dire que je recule pour m'y remettre, alors que j'ai tout à y gagner ...
Revenir en haut Aller en bas
https://sites.google.com/site/diy2m2ie/home
class66
Membre
Membre
class66


Masculin Age : 70
Localisation : 75 PARIS
Nombre de messages : 438
Date d'inscription : 05/10/2008

TCO du réseau SavignyExpress Empty
MessageSujet: Re: TCO du réseau SavignyExpress   TCO du réseau SavignyExpress Icon_minitimeDim 8 Jan 2012 - 10:50

Superbe réalisation...

Questions : comment as-tu réalisé la partie TCO "blanche" (interrupteur, leds, piste symbolisant les voies...) ?
--> plaque plexiglas + feuille de papier blanc imprimée ?
--> comment sont posées les leds ? (par "en-dessous" ?)...
Bref quelques explications supplémentaires satisferaient ma curiosité pour réaliser à mon tour un TCO "pro". Merci d'avance.
Bravo pour la réalisation... Laughing
Revenir en haut Aller en bas
liebaut
Membre
Membre
liebaut


Masculin Age : 28
Localisation : contrevoz (petit bled)
Nombre de messages : 8371
Date d'inscription : 10/11/2010

TCO du réseau SavignyExpress Empty
MessageSujet: Re: TCO du réseau SavignyExpress   TCO du réseau SavignyExpress Icon_minitimeDim 8 Jan 2012 - 11:17

Super TCO Exclamation
Revenir en haut Aller en bas
CleoN
Membre
Membre
CleoN


Masculin Age : 69
Localisation : 33 Bouliac
Nombre de messages : 1624
Date d'inscription : 26/11/2010

TCO du réseau SavignyExpress Empty
MessageSujet: Re: TCO du réseau SavignyExpress   TCO du réseau SavignyExpress Icon_minitimeDim 8 Jan 2012 - 11:21

Ne recule plus, Yoko, l'univers des microcontrôleur est passionnant et particulièrement bien adapté à notre hobby.

Les outils logiciel sont gratuit et l'investissement faible.

Pour tout ceux qui sont allergique au fer à souder et qui veulent se lancer quand meme, je recommande les plateformes ARDUINO, qui permettent de se faire la main avec des librairies toutes faites et un langage simplifié.

Revenir en haut Aller en bas
Yoko
Membre
Membre



Masculin Age : 45
Localisation : La Tourlandry, 49120
Nombre de messages : 540
Date d'inscription : 07/12/2011

TCO du réseau SavignyExpress Empty
MessageSujet: Re: TCO du réseau SavignyExpress   TCO du réseau SavignyExpress Icon_minitimeDim 8 Jan 2012 - 11:43

Le pire sait que j'ai tout le matos ...
Un PicKit2 pour la programmation, MPlab pour le débogage ...
Je préfère le Hard, même mes collègue au bureau se demande ce que j'attends.

Je ne suis que technicien CAO, du développement je n'en fais que dans mon garage, et puis un peu de dépannage pour les amis.
Revenir en haut Aller en bas
https://sites.google.com/site/diy2m2ie/home
CleoN
Membre
Membre
CleoN


Masculin Age : 69
Localisation : 33 Bouliac
Nombre de messages : 1624
Date d'inscription : 26/11/2010

TCO du réseau SavignyExpress Empty
MessageSujet: Re: TCO du réseau SavignyExpress   TCO du réseau SavignyExpress Icon_minitimeDim 8 Jan 2012 - 12:45

Yoko a écrit:
Le pire sait que j'ai tout le matos ...
Un PicKit2 pour la programmation, MPlab pour le débogage ...
Je préfère le Hard, même mes collègue au bureau se demande ce que j'attends.

Je ne suis que technicien CAO, du développement je n'en fais que dans mon garage, et puis un peu de dépannage pour les amis.

Allez, hop ! au boulot, aucune excuse ne sera acceptée.

Il n'y a pas besoin d'un gros bagage technique pour programmer des microcontroleurs, Commence par des choses simples, Allumer la cabane du garde barrière quand le train arrive et l'éteindre 1minute après.
Fais un séquencement des lumières dans un immeuble ou une ville
etc....

Un site pour se rendre compte.

http://www.pobot.org/Debuter-avec-une-carte-Arduino.html

Revenir en haut Aller en bas
Yoko
Membre
Membre



Masculin Age : 45
Localisation : La Tourlandry, 49120
Nombre de messages : 540
Date d'inscription : 07/12/2011

TCO du réseau SavignyExpress Empty
MessageSujet: Re: TCO du réseau SavignyExpress   TCO du réseau SavignyExpress Icon_minitimeDim 8 Jan 2012 - 13:18

Je les est en plus les bagages technique avec mon BTS en électronique ...
J'adore programmer les pics en plus, on fait plein de chose avec, et comme il y en plein, il y a toujours le PIC qui vas bien.

Punaisse, faut que je m'y remette.
Bon aller, je finis mon block feux, et je m'y remet.

Merci pour le lien, cela vas m'aider à m'y remettre.
Revenir en haut Aller en bas
https://sites.google.com/site/diy2m2ie/home
Décau45
Membre
Membre
Décau45


Masculin Age : 73
Localisation : Nord Loiret, 45
Nombre de messages : 201
Date d'inscription : 18/01/2009

TCO du réseau SavignyExpress Empty
MessageSujet: Re: TCO du réseau SavignyExpress   TCO du réseau SavignyExpress Icon_minitimeDim 8 Jan 2012 - 18:34

bonjour,

pour Yoko, je vois que tu as les outils pour démarrer.

Regarde en complément "mikroBasic Pro for PIC" la version gratuite permet d'avoir des programmes jusqu'à 2ko.

Bonnes réalisations.
Revenir en haut Aller en bas
SavignyExpress
Membre
Membre
SavignyExpress


Masculin Age : 61
Localisation : yyy
Nombre de messages : 2043
Date d'inscription : 10/10/2010

TCO du réseau SavignyExpress Empty
MessageSujet: Re: TCO du réseau SavignyExpress   TCO du réseau SavignyExpress Icon_minitimeLun 9 Jan 2012 - 12:15

Bonjour à tous,

Voici les réponses à vos questions:

Yoko a écrit:
Jolie travail, la partie électronique est bien réalisé.
Je ne sait pas qu'elle est ton métier ... mais ta prog du µP en C est bien sympas.
Dire que je recule pour m'y remettre, alors que j'ai tout à y gagner ...

Merci pour le compliment !

Je suis ingénieur informaticien et dans les années 1989 - 1995, j'ai fait beaucoup de développement en C de systèmes à microprocesseurs dans le domaine des télécommunications... Cela aide un peu. Very Happy
J'ai aussi mis du temps à me décider à développer pour microcontrôleurs chez moi, mais finalement les débuts ont été très encourageants. Un ami m'a mis le pied à l'étrier en me fournissant le programmateur et de la doc. sur la famille AVR. Ensuite, une soirée pour tester sous Windows, une autre pour tester sous Linux, chaque fois avec le clignotement d'une LED. Ensuite, j'ai pu me mettre au développement de mon TCO.

class66 a écrit:
Superbe réalisation...

Questions : comment as-tu réalisé la partie TCO "blanche" (interrupteur, leds, piste symbolisant les voies...) ?
--> plaque plexiglas + feuille de papier blanc imprimée ?
--> comment sont posées les leds ? (par "en-dessous" ?)...
Bref quelques explications supplémentaires satisferaient ma curiosité pour réaliser à mon tour un TCO "pro". Merci d'avance.
Bravo pour la réalisation... Laughing

Merci pour le compliment !

La base du TCO est une plaque d'aluminium. La partie blanche est produite à l'aide de PowerPoint (certainement que tout autre logiciel de dessin conviendrait aussi) puis imprimée. Le dessus est un plastique transparent (plexiglas ou autre). Le plus difficile était de percer la plaque d'aluminium et celle de plastique à l'identique. J'ai procédé comme suit:

  • Faire une version spéciale du dessin comportant les endroits où percer.
  • Percer la plaque d'aluminium en servant du dessin avec le plan de perçage.
  • Fixer le plastique transparent sur la plaque d'aluminium à l'aide de scotch.
  • Retourner le tout et percer le plastique transparent en servant de la plaque d'aluminium comme gabarit de perçage.


Ce sont les boutons-poussoirs et les vis dans les angles qui tiennent l'ensemble. Les LEDs sont simplement emboîtées avec une pointe de colle UHU au verso.

Meilleurs voeux pour 2012.
Revenir en haut Aller en bas
class66
Membre
Membre
class66


Masculin Age : 70
Localisation : 75 PARIS
Nombre de messages : 438
Date d'inscription : 05/10/2008

TCO du réseau SavignyExpress Empty
MessageSujet: Re: TCO du réseau SavignyExpress   TCO du réseau SavignyExpress Icon_minitimeMar 10 Jan 2012 - 23:37

Bonsoir SavignyExpress,

Un grand merci pour tes explications... J'ai réalisé un TCO avec une feuille de plexiglass qui recouvre une feuille blanche imprimée (avec le logiciel "TCI" gratuit - Tracé de Circuit Imprimé. L'inconvénient est que le plexiglass diffuse la lumière des leds...
Je vais ajouter une plaque d'alu...
A+++
Revenir en haut Aller en bas
SavignyExpress
Membre
Membre
SavignyExpress


Masculin Age : 61
Localisation : yyy
Nombre de messages : 2043
Date d'inscription : 10/10/2010

TCO du réseau SavignyExpress Empty
MessageSujet: Re: TCO du réseau SavignyExpress   TCO du réseau SavignyExpress Icon_minitimeMer 25 Jan 2012 - 12:19

Bonjour à tous,

Voici quelques compléments d'information sur la structure de mon programme en C.

La structure générale du programme est une boucle infinie, comme toujours sur un microcontrôleur où un programme ne se termine jamais, dont la structure est la suivante:

  • Lire les entrées, les boutons poussoirs en l'occurrence.
  • Déterminer le nouvel état du système et des sorties.
  • Mettre à jour les sorties.
  • Attendre quelques dizaines de millisecondes.
  • Revenir à la lecture des entrées.

Les fonctions principales du programme, appelées dans la boucle principale, sont:

  • TraiterEtat: gestion de la machine d'états pour les 6 états du TCO décrits plus haut dans ce post. Cette fonction appelle ensuite DefinirSorties.
  • DefinirSorties: détermination des sorties en fonction de l'état et mise à jour des sorties. S'il faut commander les TJD et les aiguillages, cette fonction initialise la machine d'états implantée dans la fonction CommanderTjdAig décrite ci-après.
  • CommanderTjdAig: gestion de la machine d'états pour la commande des TJD et aiguillages. Elle commande d'abord les 2 TJD, puis les 2 aiguillages afin d'éviter que les éléctro-aimants ne tirent trop de courant de l'alimentation accessoires.

Ce programme comporte des fonctions utilisées que pour la mise au point sur PC. À cet effet, 2 directives de compilation sont utilisées:

  • PC compile les appels d'affichage sur écran lorsque le programme est compilé pour PC avec gcc.
  • AVR permet de compiler tout ce qui est spécifique à l'AVR, principalement les entrées-sorties, lorsque le programme est compilé avec avr-gcc.

Avec cette astuce, il est possible de mettre au point la logique du programme en grande partie sur le PC avant de télécharger le programme en version AVR vers le microcontrôleur.

Je reste à votre disposition pour des informations complémentaires.


Dernière édition par SavignyExpress le Ven 27 Jan 2012 - 8:11, édité 1 fois
Revenir en haut Aller en bas
Contenu sponsorisé





TCO du réseau SavignyExpress Empty
MessageSujet: Re: TCO du réseau SavignyExpress   TCO du réseau SavignyExpress Icon_minitime

Revenir en haut Aller en bas
 
TCO du réseau SavignyExpress
Revenir en haut 
Page 1 sur 2Aller à la page : 1, 2  Suivant
 Sujets similaires
-
» Réseau époque III-IV (SavignyExpress)
» Mon réseau Minitrix de 2011 (SavignyExpress)
» Bonjour de la Suisse (SavignyExpress)
» [En projet] TGV Réseau Carmillon sur base TGV Lyria et Reseau Kato
» Le réseau de Tricks: un tout petit réseau de débutant

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
1/160 - Echelle N :: Exploitation :: L'analogique-
Sauter vers: