RV1 Cette nouvelle rubrique aurait pu aussi s´appeler :
Utilisation pratique d´un microprocesseur dans le domaine ferromodéliste
ou encore :
“Le Meccano électronique” mais sans 555 ni 4017 ni diodes ni...
... mais c´était trop long comme titre. On (c´est-à-dire votre nouvel hôte, je m´appelle Psi, et Jidé) a donc décidé de cesser de réfléchir au titre et de passer au vif du sujet... Aujourd´hui à notre menu :
1.
1.1.
1.2.
1.3.
1.4.
1.5.
1.6.
1.6.1.
1.6.2.
1.7.
  INTRODUCTION
  Qu´est-ce que c´est ?
  À quoi ça sert ?
  Comment ça marche ?
  C´est quoi, un programme ?
  Comment fait-on, pratiquement  ?
  Quelques caractéristiques générales
     Les microprocesseurs : PIC de Microchip
     Caractéristiques électriques
  Liens
La vedette de toutes ces questions (et réponses !) étant ce petit truc dans le rond bleu sur l´image ci-dessus à gauche, un microprocesseur...
1. Introduction
Avertissement : vous qui connaissez les microprocesseurs ou qui réalisez des montages à base de PIC depuis cinq ans, passez votre chemin. Ces pages sont uniquement destinées aux “béotiens”, un puriste y trouvera probablement beaucoup à redire. Mon seul objectif est de permettre aux adeptes de Ptitrain et du Meccano électronique de s´informer et peut-être de mettre en pratique une autre technique que les circuits intégrés classiques (qui datent quand même des années 80 !).
Ce n´est écrit que dans le cadre de notre hobby et pour notre plaisir.
Nota : les encadrés jaunes marqués PTI+ seront des apartés, souvent plus “pointus” que le texte, des “petits plus” qu´il n´est pas indispensable de lire dans un premier temps, mais qui permettent de ne pas mourir idiot. Les cadres marqués FAQ seront... vos questions fréquemment posées (triées et classées par Jidé, mises à jour le plus fréquemment possible).
1.1. Qu´est-ce que c´est ?
Fondamentalement, tous les microprocesseurs (dans la suite du texte j´abrège en “microP) se ressemblent, et vous les utilisez tous les jours. Le coeur de l´ordinateur sur lequel vous lisez actuellement cette page est un microP, et vous en avez au moins une dizaine à la maison : les machines à laver, votre télé et chaîne hifi, le réveil sur la table de nuit, chez moi même la machine à café. Des microP, il y en a aussi quelques milliers dans un T.G.V...
Dans les principes (qu´on verra plus loin), la différence entre votre le processeur Intel Duocore machintruc de votre P.C. et la puce à 8  pattes que vous venez de voir en photo et qui figure dans presque tous mes montages n´est qu´une différence d´échelle (de taille) : nombre de pattes, vitesse, mémoire... mais ils fonctionnent tous les deux de la même manière.
1.2. A quoi ça sert ?
Dans ce qui nous intéresse ici, c´est-à-dire l´utilisation des microP dans les p´tits trains, cela sert surtout à remplacer tous les circuits électroniques à base de CMOS, les 4000 et les 555 que le Meccano électronique utilise à gogo, et la majeure partie des composants qui vont autour (diodes, condensateurs, résistances) par une puce unique qui fait tout, et qui peut même faire beaucoup plus.
Par exemple, nous allons recréer dans cette première partie tout le montage du Meccano que nous avons appelé Youbitonmatic, un montage sonore bien connu de nos lecteurs fidèles, et qui reproduit le klaxon deux tons des locos S.N.C.F. (taaa-tiiiiiii-taaaa). Dans ce cadre, on peut réellement, physiquement, remplacer tout ceci par cela :
Merveilleux, vous allez dire... Évidemment mais attention : en réalité on ne fait que déplacer le problème. Ce qui est réalisé par les circuits intégrés (le 4017 pour la séquence tiii-taaa, les 555 pour le son de 370 et 660 Hz) l´est maintenant par le programme embarqué dans le microP, et ce programme, il faut bien l´écrire.
Donc, en pratique, utiliser des microP revient surtout à “traduire” les assemblages de circuits intégrés (et autres composants) chers à Jidé par des programmes, sachant que les capacités des microP sont telles que les logiques que l´on peut mettre en oeuvre sont presque illimitées en nombre de circuits et d´opérations. Par exemple, dans notre exemple, comme j´ai encore quatre “pattes” de libres sur les huit (les pattes 3, 4, 5 et 7), je peux définir quatre autres successions de tiiii-taaaa différentes, simplement en ajoutant 4 autres boutons poussoirs.
Attention : pour les besoins de PicTrain, je n´utilise qu´une petite partie des fonctions des microP, je simplifie beaucoup, je suis à la limite du simplisme. Même un tout petit microP comme le 12F675 que j´utilise fréquemment comporte des tas d´autres possibilités : convertisseur analogique-numérique, comparateur de tension, compteur d´impulsions... qu´on aura peut-être l´occasion d´utiliser un jour dans nos p´tits trains.
FAQ   Allons donc, c´est impossible de remplacer tous ces composants par un seul truc à huit pattes ! Une preuve matérielle serait la bienvenue... — JIDÉ : Eh si, c´est possible, je ne le croyais pas non plus, “avant”... Voici la photo du montage complet en train de faire tiiii-taaa-tiiii devant moi... Tu n´y crois toujours pas ? Eh bien, voici la vidéo du même sujet, et avec le son !
1.3. Comment ça marche ?
La grande différence entre les circuits logiques et les microP est le cycle du programme :
Souvent les circuits logiques sont utilisés de manière “statique” : il y a un événement à un bout (bouton poussoir par exemple), et il se produit quelque chose à l´autre bout (une succession de tiiii-taaaa par exemple), et puis on revient au repos en attente d´un autre événement.
Un microP “tourne” tout le temps, c´est-à-dire qu´il exécute en permanence des instructions du programme : dans notre exemple, le microP “regarde” toutes les 3/1·000·000 (trois millionnièmes !) de seconde si quelqu´un a appuyé sur le bouton ; si c´est le cas il exécute les instructions spécifiques à la production des sons tiiii et taaaa, et après retourne à la surveillance du bouton. Mais il ne s´arrête jamais (sauf exception volontaire bien entendu, que l´on verra plus tard). Pire, il peut faire deux choses en même temps !
1.4. C´est quoi, un programme ?
Un programme est une suite d´instructions (de commandes) exécutées par le microP, et qui permettent d´obtenir le résultat voulu. Dans la gamme de microP que j´utilise, il y en a 35 instructions différentes, mais au plus 20 utilisées couramment, et qui permettent cependant d´obtenir à peu près tout ce que l´on désire.
Dans notre exemple, on peut résumer le programme comme ça :
Je regarde si on appuie sur le bouton.
Si oui, je mets “là où il faut” les paramètres du son tiiii.
J´émets le son tiiii.
Je mets “là où il faut” les paramètres du son taaaa et j´émets le son taaaa.
Je refais la même chose pour un autre son tiiii.
Et je retourne au début pour regarder mon bouton.
La totalité de ce qui est ci-dessus fait 50 lignes de programme, ce qui peut paraître beaucoup, mais chaque ligne est vraiment une seule instruction très élémentaire, facile à comprendre.
La programmation est un jeu logique, que l´on peut comparer au jeu, très fameux en modélisme ferroviaire, qui consiste à faire se croiser deux trains sur des voies trop courtes pour les contenir. Chaque manoeuvre est une instruction, et la succession des manoeuvres est un programme.
La programmation n´est pas plus compliquée que cela (elle est juste un peu plus longue...)
1.5. Comment fait-on, pratiquement ?
Là, c´est effectivement un peu plus compliqué que les montages à circuits logiques.
Bien entendu, au départ, il faut vraiment savoir ce que l´on veut faire : en termes de métier, il faut “spécifier” le montage, le décrire, en français... Un gribouillis sur une nappe en papier est suffisant, mais il est en général utile de le savoir avant de commencer.
Ensuite, et en parallèle, on définit ce qui sera fait par le microP et ce qui reste électronique, et on commence la conception du programme et du schéma électronique (pour ce qui est de cette dernière partie, je vous renvoie à tous les articles généraux du Meccano électronique ici même).
Pour l´écriture du programme, on utilise un logiciel fourni par le fabricant du microP (c´est une des raisons qui me pousse à utiliser les PIC de Microchip : leurs logiciels sont gratuits). Cet outil possède des fonctions sophistiquées, mais il est aussi et surtout un traitement de texte permettant d´écrire et de contrôler ses programmes.
PTI+   Le langage utilisé s´appelle l´assembleur, il est à mi-chemin entre notre langage parlé courant et les zéros et les uns du microP. Voici une phrase en français : "Le bouton poussoir est-il appuyé ?". Voici la même phrase en assembleur : "btfss entree1, poussoir". Voici encore la même en “langage machine” binaire : "00 01 11 00 00 11 10 01 10 11 10 11".
Lorsque le programme (en assembleur) est au point (ou lorsque l´on croit que cela va fonctionner...), le même logiciel permet de le traduire en un fichier (binaire) particulier utilisable par le microP.
La dernière opération est d´inscrire (on dit même “graver”) ce fichier final dans le microP, et puis de tester. C´est dans cette opération qu´intervient le seul investissement financier nécessaire : le programmateur de microP, une carte électronique spécialisée, branchée sur votre P.C. (sous Windows ou éventuellement Linux) via un câble série.
Cet outil sert à écrire le programme dans le microprocesseur. Pour ma part j´utilise un outil du commerce, le “mini-programmateur de PIC”, disponible chez Gotronic en V.P.C. pour 59 euros (référence 24230). [Ci-contre , photo © Gotronic.]
1.6. Quelques caractéristiques générales
1.6.1. Mes microprocesseurs : PIC de Microchip
Il existe une dizaine de fabricants de microP, et chacun a une gamme de 50 ou 100 modèles différents, il devient donc difficile de faire un choix.
Dans la plupart des montages, j´utiliserai le microP 12F629 (ou 12F675) de Microchip (une de ces deux références précisément, aucune autre !), et ce pour trois raisons :
Les outils de développement (hors le programmateur, la carte) sont gratuits.
Ces microP sont assez faciles d´utilisation et bien adaptés aux utilisations non professionnelles comme les nôtres.
Il ne sont pas chers (12F675 = 1,60 euro la pièce par dix, chez Sélectronic).
Et aussi parce qu´ils sont la matière première des cours d´un des papes francophones de la vulgarisation, je veux parler de Bigonoff (voir les liens).
1.6.2. Caractéristiques électriques
Quoique puissants et minuscules [ci-contre un microP tel qu´il se présente avant qu´on le protège par un pavé de plastique et qu´on lui fixe ses huit pattes, photo © Microchip], les microP ne sont pas plus délicats que les circuits intégrés logiques, et les entrées/sorties permettent en général des intensités de 20 mA par patte , suffisantes pour des leds “normales”.
Cependant, les microP fonctionnent tous sous 5 volts, et nécessitent donc une alimentation séparée (facilement détournée de l´alimentation générale 12 volts du Meccano électronique ou de toute alimentation ferroviaire du commerce, sortie accessoires : voir notre nouvelle AlimFixe).
Par ailleurs, je pense qu´il est en général utile de séparer les circuits logiques des circuits d´alimentation des trains par des optocoupleurs, pour des raisons de sécurité de nos puces. Les parasites générés par les moteurs et surtout par le contact rail/roue sont quelquefois très gênants pour le bon fonctionnement des montages, et par ailleurs une “remontée” du 15 volts dans un microP le fait fumer... et mourir !
Mais cette discussion se tiendra lorsque l´on examinera le “Numerax à microP”, une alimentation de train à boutons poussoirs.
1.7 Liens Internet
Microchip : Le site du fabricant des microP que j´utilise, vous y trouverez absolument toute la documentation, ainsi que les outils de programmation (gratuits). Bien évidemment, c´est en anglais.
Bigonoff : Un des meilleurs sites de vulgarisation des microprocesseurs, surtout les PIC de Microchip. Je vous le recommande chaudement, beaucoup de mes connaissances viennent de ses cours.
FAQ    On m´a dit que les ordinateurs, c´était compliqué, et qu´un type qui se lance là-dedans n´a plus le temps de s´occuper de son réseau ! — JIDÉ : C´est même pas vrai, voici le réseau en N que Psi est en train de se construire . Ainsi que les plus grands modélistes nous le conseillent, il a commencé par une maquette de maquette au 1/10 faite en carton et dessinée par Xtrcad...
À suivre : “Un peu plus sur les microP
Psi

10/11/07
N.B. — Textes, schémas, programmes © Psi pour Ptitrain. Photos Jidé ou D.R. quand signalé. — Toutes vos remarques et commentaires sont bienvenus, et les pages de Ptitrain ne sont pas statiques : les erreurs sont corrigées sitôt connues, les améliorations, éclaircissements, etc. feront l´objet de mises à jour fréquentes.
Ptitrain, l´e-magazine du train éclectique. — Directeur de la publication : Christophe Franchini.
Rédacteur en chef : Jean-Denis Rondinet