mercredi 3 octobre 2007

Précisions sur la gestion des cantons

Voici où j'en suis de mes réflexions sur la gestion des cantons:

La gestion de canton possèdera 4 fonctions
- A - fonction alimentation: gestion de vitesse et sens de circulation
- B - fonctions de blocks et signalisation (pilotage principal du canton)
- C - fonctions de détection de train
- D - fonctions de routage (gestion d'un chemin, aiguillages, etc.)
Chacune de ces fonctions fera l'objet d'un module différencié, commandé par des PICs.
De plus, une centrale (que j'appelle MCP) permettra, en fonction du train, de donner une direction pour la fonction routage, et une vitesse max pour la fonction alimentation.

A) fonction alimentation
- la fonction alimentation sera très proche du système "Pictrain 2", avec une modulation PWM pour gérer la vitesse.
- si le train est connu (message I²C en provenance du MCP), la vitesse max (=VMax train) sera celle envoyée par le MCP. Sinon, ce sera une constante (à définir).
- la fonction de pilotage du canton permettra de gérer 8 "niveaux de vitesse" (codés sur 3 bits donc).
  • 0: Arrêt
  • 1: 13% VMax train
  • 2: 25% VMax train
  • 3: 50% VMax train
  • 4: 75% VMax train
  • 5: VMax train
  • 6: VMax du PWM quelque soit le train
  • 7: Manuel (en fonction d'un potentiomètre, ou en paliers comme Pictrain 2 ???)
- Si le canton est marqué "à double sens" (config dans l'EPROM du pilotage de canton) gestion du sens
- En cas de changement de vitesse, effectuer accélération ou décélération progressive
- Question en suspens: Que faire à l'entrée du canton (connaissance de la vitesse du canton N-1 ??? -> A priori, oui, pour éviter les changements brutaux de vitesse aux jonctions de canton)
- Prévoir une possibilité de brider la vitesse de canton (par exemple pour gérer un virage très serré en coulisse, ou pour donner un aspect plus réaliste à un canton en montée)

B) Fonctions de block
En fonction du sens de circulation, déterminer les cantons de niveau N+1 et N+2
-> si C+1 occupé
=> feu rouge en fin de canton C
=> vitesse = 0 (arrêt)
-> si C+1 libre et C+2 occupé
=> feu orange en fin de canton C
=> vitesse = 2 (25%)
-> si C+1 libre et C+2 libre
=> feu vert en fin de canton C
=> vitesse = 5 (VMax train)
-> si pilotage manuel
=> feu de la couleur voulue
=> vitesse = 7 (manuelle)

C) Fonctions de détection du train
3 types de détection peuvent être mis en oeuvre:
  • lecture de code barre = reconnaissance du train (j'en reparle plus tard)
  • détection de consommation (détecteur principal, indique la présence d'un convoi sur le canton)
  • détection ponctuelle (optocoupleur à réflexion ITR8307) pour arrêt au pied d'un signal par exemple
Envoi des infos de détection de consommation aux cantons N-1 et N-2 (et N+1 et N+2 si canton à double sens)
Envoi des infos de reconnaissance de train au MCP pour gestion de vitesse et routage, via message I²C

D) fonctions de routage
à écrire.

mercredi 29 août 2007

Documentation

Pour pouvoir reproduire la gare de Saint-Omer, et son système de voies, il me fallait "trouver" des informations.
Dans un premier temps, j'envisageais 3 sources:
  • Le Web
  • La mairie ou l'office du tourisme de Saint Omer
  • Le service historique de la SNCF
1) Le Web
Une recherche dans les moteurs du même nom m'a permis de trouver un certain nombre d'informations générales sur la gare: quelques photos, quelques informations historiques, mais point de données plus "techniques", comme le plan des installations et des voies, par exemple...

2) La ville de Saint-Omer
Après une nouvelle recherche sur le Web (je travaille à distance), je trouvais les adresses e-mail de l'office du tourisme de Saint-Omer, et de la bibliothèque municipale, qui gère un fonds ancien de documents, dans lequel, je l'espérais, figuraient les documents rêvés.
L'office du tourisme transféra ma demande à "Saint-Omer ville d'Art et d'Histoire", une association gérant les informations sur le patrimoine artistique et historique de la ville. Ce sera ma quatrième source.

3) Le centre d'archives historiques de la SNCF
J'envoyais ma demande de renseignement au centre d'archives historiques de la SNCF. J'ai reçu ce matin un e-mail m'indiquant qu'ils avaient effectivement un grand nombre de plans concernant la gare de Saint-Omer.
Pour pouvoir les consulter, et j'espère reproduire ces documents, il va falloir me déplacer au Mans, où se trouve ce centre. Le temps d'organiser un petit voyage là-bas, et je vous en reparle.

4) Saint-Omer, Ville d'Art et d'Histoire
En revenant de congés, je trouvais dans ma boîte aux lettres une enveloppe matelassée, contenant une brochure éditée à l'occasion du centenaire de la gare en 2004, ainsi qu'un CD-Rom contenant un certain nombre de photos de la gare et de plans des voies et installations. Un très bon début pour commencer cette maquette.
Je remercie beaucoup Sophie Barrère pour son courrier.

La gare de Saint-Omer

Ayant vécu quelques années dans la région Audomaroise, l'envie m'est venue de reproduire dans mon réseau la gare de Saint-Omer.
Cette superbe gare de style Néoclassique XVII° fut construite en 1904, sous la direction de l'architecte Clément Ligny. Elle fut exploitée par la Compagnie des Chemins de Fer du Nord.

Dans un premier temps, il me faut me documenter sur cette gare, et notamment sur l'état dans laquelle elle était aux débuts, alors que les machines à vapeur constituaient le parc ferroviaire.

mercredi 22 août 2007

Morphologie du réseau

Le réseau que nous allons réaliser sera installé dans notre grenier fraichement aménagé. Comme le grenier servira également de salle de jeux (pour les enfants) et de chambre d'amis (pour les... bon, ça va, vous avez compris ;)), ce sera un "petit" réseau modulaire en tour de pièce.

Voici l'état du grenier après aménagement:
Et voici la proposition d'occupation pour le train:

lundi 20 août 2007

16c57: Go !!!


Les vacances sont maintenant terminées, et mon nouveau programmateur de composants est arrivé. J'ai en effet acheté un programmateur Top2004 qui m'est arrivé d'outre-Atlantique.
Un premier test, effectué avec une version Debug de mon afficheur 3 chiffres, a permis de valider la programmation des PICs 16c57.

lundi 23 juillet 2007

Go/Nogo 16c57

En furetant sur le ouaibe ce week end, j'ai appris que le 16c57 ne se programmait pas du tout comme son remplaçant, le 16f57, dont il partage cependant les mnémoniques, la connectique, et autres caractéristiques (j'aime bien les rimes en "ique").
En effet, alors que presque tous les pics se programment grâce à une interface série (je parle ici de l'interface du pic, pas de celle reliant le programmateur à l'ordinateur), les 16c5x se programment en parallèle. Et les programmateurs de PIC les plus courant ne gèrent pas ce mode de programmation du PIC.

J'ai donc 2 solutions:
  • Trouver un programmateur de PIC en mode parallèle
  • Abandonner mes 147 16c57, et choisir un autre modèle de PIC
1) trouver un programmateur de PIC parallèle.
2 programmateurs sont recommandés par Microhip:
- le PicStart plus, que l'on trouve encore sur les sites de commerce de matériel électronique (autour de 330€!!! ouch).
- Le ProMate II, que je n'ai pas réussi à trouver.

A ceux là, on peut ajouter le PIC-02, que l'on trouve autour de 60€, et qui se programme via IC-Prog. Problème: si le PIC-02 indique bien que le 16c57 est supporté, IC-Prog ne semble pas le supporter.

2) Abandonner le 16c57
Cette solution a des avantages et inconvénients.
Au rang des "Pour", le fait que je n'aie pas investi une fortune dans les 16c57 (11€ port compris). De plus, cela me permettra de vraiment choisir le PIC qui correspondra à l'application que je veux en faire...
Au rang des "Contre", le fait que pour remplacer mes nombreux 16c57, j'aurai du mal à retrouver un prix aussi concurrenciel... quoique ;)

Je me laisse encore quelques jours pour décider...

Mise à jour du 24 juillet 2007: sur eBay, on trouve un grand nombre de programmateurs "Top2004" qui sont universels, et permettent de programmer les 16C57 (et plein d'autres milpapattes sympathiques tels ques des eproms, des µcontrôleurs Atmel, etc.). Je verrai à mon retour de vacances si j'investis...

vendredi 20 juillet 2007

Fonction des cantons

Le cantonnement permet de découper le réseau en sections, qui ont pour but d'empêcher les trains de se rattraper les uns les autres.

Les modules de pilotage de chaque canton devront assurer les fonctions suivantes:
  • Alimentation en énergie du canton, avec modulation pour faire varier la vitesse du train (alimentation de type PWM)
  • Récupération des informations des 2 cantons suivants, pour afficher la bonne signalisation (carré, avertissment, libre)
  • Fourniture aux 2 cantons précédents de l'état d'occupation du canton
  • Détection d'un train aux entrées du canton
  • Identification de ce train par lecture de code à barre
  • Routage automatique du train des N entrées vers les M sorties du canton, en positionnant correctement les aiguillages du canton (la table de routage du canton sera stockée en local sur le module de pilotage du canton, le routage des trains sera fourni par le module de contrôle principal - MCP -, la "centrale" de notre système)
  • Affichage de la signalisation locale du canton (sémaphores aux sorties)
Et tout cela, si possible, avec un unique 16C57...

La "gravure" des 16{C|F}57

Le programmateur de PIC dont nous disposions à la maison ne permettait d'écrire que sur des 16C84. Nous avons donc décidé d'acheter un programmateur plus évolué, permettant de graver à peu près n'importe quel PIC.

Notre choix s'est porté sur l'easyPic4 de chez mikroElektronica. Ce matériel nous permettrait à la fois de programmer nos PICs, et de les tester grâce à une platine de test très complète (boutons pour les entrées, LEDs, afficheurs 7 segments et LCD pour les sorties).

Le 16C57 est un DIP28. C'est à dire qu'il s'agit d'un circuit intégré enchassé dans un boitier plastique rectangulaire, et dont sortent 28 "pattes". Un premier problème apparait: le boitier du 16C57 est un boitier large (0.600"), alors que le support tulipe présent sur l'easyPic4 est un boitier étroit (0.300"). Il me fallait donc un adaptateur pour pouvoir connecter physiquement mon CI sur le programmateur.
Mon choix s'est porté sur un adaptateur DIL/DIL 28 broches de référence BE9116. Malheureusement (ou heureusement, nous le verrons par la suite), ce composant semble très difficile à trouver, les détaillants ne le référencent pas ou l'annoncent "épuisé", tandis que les grossistes ou semi-grossistes, tels radiospares, refusent de ne vendre qu'un exemplaire de l'adaptateur.
Puis, en feuilletant la datasheet du 16C57, je me suis aperçu que le brochage du composant est totalement différent de celui d'un autre PIC 28 broches plus récent. Il nous a fallu donc réaliser un adaptateur plus compliqué, avec plein de fils partout...

Les microcontrôleurs, OK, mais lesquels ?

Il a donc fallu faire un choix de microcontrôleurs à utiliser.

J'avais déjà un programmateur de PIC (µcontrôleur de la société Microchip) à la maison, datant d'une époque où j'avais envie de "m'y mettre". Et il devait même me rester un 16F628... La décision était prise, ce sera du PIC.

Quelques jours plus tard, je gagnais et reçus un lot de près de 150 PIC 16C57 sur eBay, pour un prix dérisoire. La plupart des fonctions électroniques du réseau devront donc être réalisées à la base de ce composant. Pour les fonctions demandant des caractéristiques différentes (nombre d'E/S plus important, communications RS232 ou USB, etc.), il nous faudra trouver un autre composant.

Voici la liste des pics dont je dispose déjà:
  • pic 12F675 (2)
  • pic 12F683 (1)
  • pic 16C57 (147)
  • pic 16F57 (3) - les 16C57 n'étant programmables qu'une fois, il me fallait des F (Flash) pour le développement.
  • pic 16F84 (1)
  • pic 16F628 (1)
  • pic 16F877 (1)
  • pic 16F877A (4)
  • pic 18F4550 (2)
Bref, le choix est déjà relativement important, et permettra de nombreuses possibilités.

Les premiers choix électroniques

Pour le pilotage automatisé de notre réseau, plusieurs possibilités s'offrent à nous:
  • Acheter des modules et systèmes tout faits
  • Créer nos modules et les interfacer avec un ordinateur
  • Créer nos modules, totalement indépendants
La première solution ne nous satisfait pas. En effet, tant qu'à investir dans du matériel, et dans l'électronique, autant que cela nous serve à quelque chose, et notamment à raffraichir nos connaissances électronique datant de l'école, et apprendre à nouveau.

La deuxième solution s'approche déjà un peu plus de nos envies. Mais les ordinateurs, nous travaillons dessus toute la journée. De plus, Cela ne nous enthousiasmait pas de mobiliser un ordinateur très consommateur de courant pour piloter le réseau. En passant, un de nos rèves serait de pouvoir alimenter tout le réseau en énergie "propre" (solaire photovoltaïque sur batteries)...

Naturellement, c'est sur la dernière solution que notre choix s'est porté. Nous utiliserons donc des modules de notre conception, à base de microcontrôleurs, pour gérer l'électronique de notre train.

Au commencement...

Les premiers contacts que j'eus avec un petit train électrique datent de ma plus tendre enfance, lorsque mon père sortit son train à l'échelle O, un vénérable Hornby que je devrais récupérer un jour ;)

Ensuite, j'ai du avoir un jouef... je ne me souviens plus que du transformateur bleu qui a longtemps trainé dans un des placards de ma chambre.

En voyage chez mes correspondants allemands, j'y ai découvert le formidable réseau du père de mon correspondant, qui avait aménagé dans sa maison une cave pour assouvir sa passion. Là encore, mes souvenirs sont très vagues, et je me souviens juste que son réseau me paraissait immense, et des batteries de boutons noirs et rouges qui permettaient d'actionner les aiguillages.

Plus tard...
Beaucoup plus tard...
Beaucoup, beaucoup plus tard...
Mon beau-frère, Jacques, nous emmena, mon épouse et moi-même, au salon du modélisme. Là, nous prîmes la décision de construire un petit réseau chez nous. La place étant restreinte - nous étions en appartement - notre choix se porta sur l'échelle N.

Il y a quelques mois, lorsque nous avons décidé l'aménagement du grenier, nous avons émis l'idée d'y installer enfin un réseau, certainement en configuration "tour de pièce".

Et puis, nous voulions avoir un contrôle intelligent des trains, tout en continuant à pouvoir piloter ces trains de façon manuelle. L'échelle N nous interdisait quasiment d'ajouter des décodeurs numériques aux motrices, et de toute façon, nous préférions créer notre système de toute pièce. Notre petit train sera donc un "petit train électronique" à notre sauce.

Préface

Bonjour !

Cela fait quelques années que, dans mes tiroirs, sommeillent quelques locomotives, ouagons, rails, aiguillages, etc. de petits trains à l'échelle N.

Depuis l'aménagement des combles, nous avons enfin une place pour créer notre réseau.

Ce blog est là pour enregistrer au fur et à mesure les idées, réalisations, états d'avancement de ce projet.