1/160 - Echelle N

Le Forum consacré à l'Echelle N
 
AccueilAccueil  PortailPortail  S'enregistrerS'enregistrer  Connexion  Carte des membresCarte des membres  

Partager | 
 

 TCO du réseau SavignyExpress

Voir le sujet précédent Voir le sujet suivant Aller en bas 
Aller à la page : 1, 2  Suivant
AuteurMessage
SavignyExpress
Membre
Membre


Masculin Nombre de messages: 669
Age: 49
Localisation: Savigny
Date d'inscription: 10/10/2010

MessageSujet: TCO du réseau SavignyExpress   Sam 11 Déc 2010, 12:59

Bonjour à tous,

Voici quelques images de mon TCO:




  • À 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.



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.




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


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

MessageSujet: Re: TCO du réseau SavignyExpress   Sam 11 Déc 2010, 13: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
http://trainsth.free.fr/index.htm
Gabydemarseille
Membre
Membre


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

MessageSujet: Re: TCO du réseau SavignyExpress   Sam 11 Déc 2010, 14:18

Bonjour
C'est du super travail j'admire
Revenir en haut Aller en bas
CleoN
Membre
Membre


Masculin Nombre de messages: 311
Age: 56
Localisation: 33
Date d'inscription: 26/11/2010

MessageSujet: Re: TCO du réseau SavignyExpress   Sam 11 Déc 2010, 17: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


Masculin Nombre de messages: 304
Age: 66
Localisation: Argenteuil
Date d'inscription: 06/10/2009

MessageSujet: Re: TCO du réseau SavignyExpress   Lun 13 Déc 2010, 15: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
cenick
Membre
Membre


Masculin Nombre de messages: 401
Age: 45
Localisation: Suisse (Valais)
Date d'inscription: 20/02/2009

MessageSujet: Re: TCO du réseau SavignyExpress   Lun 13 Déc 2010, 16:24

bravo,travail de pro.......
sympa ces régulateurs...... Idea
Revenir en haut Aller en bas
http://cenick.iciblog.com/
SavignyExpress
Membre
Membre


Masculin Nombre de messages: 669
Age: 49
Localisation: Savigny
Date d'inscription: 10/10/2010

MessageSujet: Re: TCO du réseau SavignyExpress   Lun 13 Déc 2010, 19: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
État initial au démarrage du microcontrôleur.
L'alimentation rouge est sur la voie 1.
L'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.
La même chose, mais cette fois l'alimentation bleue est sur la voie 1.
Tandis 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.
La 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).



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


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

MessageSujet: Re: TCO du réseau SavignyExpress   Mer 15 Déc 2010, 17:36

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


Masculin Nombre de messages: 669
Age: 49
Localisation: Savigny
Date d'inscription: 10/10/2010

MessageSujet: Re: TCO du réseau SavignyExpress   Ven 08 Juil 2011, 11: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
Teldarius
Membre
Membre


Masculin Nombre de messages: 3576
Age: 44
Localisation: Province de Namur[Bel]
Date d'inscription: 25/01/2011

MessageSujet: Re: TCO du réseau SavignyExpress   Ven 08 Juil 2011, 12: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


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

MessageSujet: Re: TCO du réseau SavignyExpress   Ven 08 Juil 2011, 20:02

c'est super impressionnant tout cela
c'est du travail de pro
ptitrainrouge alien
Revenir en haut Aller en bas
Jack84
Membre
Membre


Masculin Nombre de messages: 1843
Age: 67
Localisation: Vaucluse
Date d'inscription: 25/07/2008

MessageSujet: Re: TCO du réseau SavignyExpress   Sam 09 Juil 2011, 09: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


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

MessageSujet: Re: TCO du réseau SavignyExpress   Mer 04 Jan 2012, 21: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


Masculin Nombre de messages: 669
Age: 49
Localisation: Savigny
Date d'inscription: 10/10/2010

MessageSujet: Re: TCO du réseau SavignyExpress   Sam 07 Jan 2012, 15: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 Nombre de messages: 199
Age: 32
Localisation: La Tourlandry, 49120
Date d'inscription: 07/12/2011

MessageSujet: Re: TCO du réseau SavignyExpress   Sam 07 Jan 2012, 22: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
 

TCO du réseau SavignyExpress

Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 2Aller à la page : 1, 2  Suivant

 Sujets similaires

-
» Réseau Hamachi
» un petit reseau
» Commencer un réseau HO
» TCO du réseau SavignyExpress
» Plan de Réseau

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